From b16b9e4656e7199c2aec74a4c8ebc7a875d3ba73 Mon Sep 17 00:00:00 2001
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Date: Mon, 2 Feb 2015 15:02:49 +0100
Subject: massive reduction of unneeded files

---
 nx-X11/extras/freetype2/ChangeLog                  | 10022 ---------
 nx-X11/extras/freetype2/Jamfile                    |   157 -
 nx-X11/extras/freetype2/Jamrules                   |    61 -
 nx-X11/extras/freetype2/Makefile                   |    32 -
 nx-X11/extras/freetype2/README                     |    39 -
 nx-X11/extras/freetype2/builds/amiga/README        |    90 -
 .../amiga/include/freetype/config/ftconfig.h       |    20 -
 .../amiga/include/freetype/config/ftmodule.h       |   123 -
 nx-X11/extras/freetype2/builds/amiga/makefile      |   207 -
 nx-X11/extras/freetype2/builds/amiga/smakefile     |   236 -
 .../freetype2/builds/amiga/src/base/ftdebug.c      |   185 -
 .../freetype2/builds/amiga/src/base/ftsystem.c     |   450 -
 nx-X11/extras/freetype2/builds/ansi/ansi-def.mk    |    93 -
 nx-X11/extras/freetype2/builds/ansi/ansi.mk        |    21 -
 nx-X11/extras/freetype2/builds/atari/ATARI.H       |    16 -
 nx-X11/extras/freetype2/builds/atari/FNames.SIC    |    37 -
 nx-X11/extras/freetype2/builds/atari/FREETYPE.PRJ  |    33 -
 nx-X11/extras/freetype2/builds/atari/README.TXT    |    51 -
 nx-X11/extras/freetype2/builds/beos/beos-def.mk    |    95 -
 nx-X11/extras/freetype2/builds/beos/beos.mk        |    19 -
 nx-X11/extras/freetype2/builds/beos/detect.mk      |    40 -
 nx-X11/extras/freetype2/builds/compiler/ansi-cc.mk |    84 -
 nx-X11/extras/freetype2/builds/compiler/bcc-dev.mk |    82 -
 nx-X11/extras/freetype2/builds/compiler/bcc.mk     |    82 -
 nx-X11/extras/freetype2/builds/compiler/emx.mk     |    81 -
 nx-X11/extras/freetype2/builds/compiler/gcc-dev.mk |    93 -
 nx-X11/extras/freetype2/builds/compiler/gcc.mk     |    81 -
 nx-X11/extras/freetype2/builds/compiler/intelc.mk  |    86 -
 .../extras/freetype2/builds/compiler/unix-lcc.mk   |    87 -
 .../extras/freetype2/builds/compiler/visualage.mk  |    78 -
 nx-X11/extras/freetype2/builds/compiler/visualc.mk |    81 -
 nx-X11/extras/freetype2/builds/compiler/watcom.mk  |    85 -
 nx-X11/extras/freetype2/builds/compiler/win-lcc.mk |    83 -
 nx-X11/extras/freetype2/builds/detect.mk           |   159 -
 nx-X11/extras/freetype2/builds/dos/detect.mk       |   117 -
 nx-X11/extras/freetype2/builds/dos/dos-def.mk      |    54 -
 nx-X11/extras/freetype2/builds/dos/dos-emx.mk      |    21 -
 nx-X11/extras/freetype2/builds/dos/dos-gcc.mk      |    21 -
 nx-X11/extras/freetype2/builds/dos/dos-wat.mk      |    17 -
 nx-X11/extras/freetype2/builds/freetype.mk         |   312 -
 nx-X11/extras/freetype2/builds/link_dos.mk         |    42 -
 nx-X11/extras/freetype2/builds/link_std.mk         |    42 -
 nx-X11/extras/freetype2/builds/mac/README          |    14 -
 nx-X11/extras/freetype2/builds/mac/freetype.make   |   109 -
 nx-X11/extras/freetype2/builds/mac/ftlib.prj       |   Bin 59597 -> 0 bytes
 nx-X11/extras/freetype2/builds/modules.mk          |    77 -
 nx-X11/extras/freetype2/builds/newline             |     1 -
 nx-X11/extras/freetype2/builds/os2/detect.mk       |    72 -
 nx-X11/extras/freetype2/builds/os2/os2-def.mk      |    54 -
 nx-X11/extras/freetype2/builds/os2/os2-dev.mk      |    31 -
 nx-X11/extras/freetype2/builds/os2/os2-gcc.mk      |    26 -
 nx-X11/extras/freetype2/builds/toplevel.mk         |   139 -
 nx-X11/extras/freetype2/builds/unix/.cvsignore     |     9 -
 nx-X11/extras/freetype2/builds/unix/aclocal.m4     |  5922 -----
 nx-X11/extras/freetype2/builds/unix/config.guess   |  1459 --
 nx-X11/extras/freetype2/builds/unix/config.sub     |  1549 --
 nx-X11/extras/freetype2/builds/unix/configure      | 22250 -------------------
 nx-X11/extras/freetype2/builds/unix/configure.ac   |   178 -
 nx-X11/extras/freetype2/builds/unix/detect.mk      |    90 -
 .../freetype2/builds/unix/freetype-config.in       |   134 -
 nx-X11/extras/freetype2/builds/unix/freetype2.in   |    11 -
 nx-X11/extras/freetype2/builds/unix/freetype2.m4   |   178 -
 nx-X11/extras/freetype2/builds/unix/ft-munmap.m4   |    23 -
 nx-X11/extras/freetype2/builds/unix/ft2unix.h      |    61 -
 nx-X11/extras/freetype2/builds/unix/ftconfig.in    |   334 -
 nx-X11/extras/freetype2/builds/unix/ftsystem.c     |   397 -
 nx-X11/extras/freetype2/builds/unix/install-sh     |   316 -
 nx-X11/extras/freetype2/builds/unix/install.mk     |   100 -
 nx-X11/extras/freetype2/builds/unix/ltmain.sh      |  6422 ------
 nx-X11/extras/freetype2/builds/unix/mkinstalldirs  |   150 -
 nx-X11/extras/freetype2/builds/unix/unix-cc.in     |   100 -
 nx-X11/extras/freetype2/builds/unix/unix-def.in    |    98 -
 nx-X11/extras/freetype2/builds/unix/unix-dev.mk    |    26 -
 nx-X11/extras/freetype2/builds/unix/unix-lcc.mk    |    24 -
 nx-X11/extras/freetype2/builds/unix/unix.mk        |    61 -
 nx-X11/extras/freetype2/builds/unix/unixddef.mk    |    55 -
 nx-X11/extras/freetype2/builds/vms/ftconfig.h      |   331 -
 nx-X11/extras/freetype2/builds/vms/ftsystem.c      |   321 -
 nx-X11/extras/freetype2/builds/win32/detect.mk     |   147 -
 nx-X11/extras/freetype2/builds/win32/ftdebug.c     |   211 -
 .../freetype2/builds/win32/visualc/freetype.dsp    |   349 -
 .../freetype2/builds/win32/visualc/freetype.dsw    |    29 -
 .../freetype2/builds/win32/visualc/freetype.sln    |    33 -
 .../freetype2/builds/win32/visualc/freetype.vcproj |  1717 --
 .../freetype2/builds/win32/visualc/index.html      |    38 -
 nx-X11/extras/freetype2/builds/win32/w32-bcc.mk    |    23 -
 nx-X11/extras/freetype2/builds/win32/w32-bccd.mk   |    25 -
 nx-X11/extras/freetype2/builds/win32/w32-dev.mk    |    35 -
 nx-X11/extras/freetype2/builds/win32/w32-gcc.mk    |    26 -
 nx-X11/extras/freetype2/builds/win32/w32-icc.mk    |    23 -
 nx-X11/extras/freetype2/builds/win32/w32-intl.mk   |    23 -
 nx-X11/extras/freetype2/builds/win32/w32-lcc.mk    |    24 -
 .../extras/freetype2/builds/win32/w32-mingw32.mk   |    28 -
 nx-X11/extras/freetype2/builds/win32/w32-vcc.mk    |    23 -
 nx-X11/extras/freetype2/builds/win32/w32-wat.mk    |    23 -
 nx-X11/extras/freetype2/builds/win32/win32-def.mk  |    55 -
 nx-X11/extras/freetype2/configure                  |    66 -
 nx-X11/extras/freetype2/devel/ft2build.h           |    41 -
 nx-X11/extras/freetype2/devel/ftoption.h           |   577 -
 nx-X11/extras/freetype2/docs/CHANGES               |  2477 ---
 nx-X11/extras/freetype2/docs/CUSTOMIZE             |   125 -
 nx-X11/extras/freetype2/docs/DEBUG                 |   183 -
 nx-X11/extras/freetype2/docs/FTL.txt               |   174 -
 nx-X11/extras/freetype2/docs/GPL.txt               |   339 -
 nx-X11/extras/freetype2/docs/INSTALL               |    67 -
 nx-X11/extras/freetype2/docs/INSTALL.ANY           |    99 -
 nx-X11/extras/freetype2/docs/INSTALL.GNU           |   140 -
 nx-X11/extras/freetype2/docs/INSTALL.UNX           |    65 -
 nx-X11/extras/freetype2/docs/INSTALL.VMS           |    36 -
 nx-X11/extras/freetype2/docs/PATENTS               |    27 -
 nx-X11/extras/freetype2/docs/TODO                  |    23 -
 nx-X11/extras/freetype2/docs/TRUETYPE              |    26 -
 nx-X11/extras/freetype2/docs/UPGRADE.UNX           |   127 -
 nx-X11/extras/freetype2/docs/VERSION.DLL           |   110 -
 nx-X11/extras/freetype2/docs/formats.txt           |   139 -
 nx-X11/extras/freetype2/docs/license.txt           |    28 -
 nx-X11/extras/freetype2/docs/modules.txt           |    14 -
 nx-X11/extras/freetype2/docs/raster.txt            |   624 -
 nx-X11/extras/freetype2/docs/reference/.cvsignore  |     1 -
 nx-X11/extras/freetype2/docs/reference/README      |     2 -
 nx-X11/extras/freetype2/docs/release               |    32 -
 .../freetype2/include/freetype/cache/ftccache.h    |   272 -
 .../freetype2/include/freetype/cache/ftccmap.h     |   216 -
 .../freetype2/include/freetype/cache/ftcglyph.h    |   295 -
 .../freetype2/include/freetype/cache/ftcimage.h    |   104 -
 .../freetype2/include/freetype/cache/ftcmanag.h    |   175 -
 .../freetype2/include/freetype/cache/ftcmru.h      |   246 -
 .../freetype2/include/freetype/cache/ftcsbits.h    |    96 -
 .../freetype2/include/freetype/config/ftconfig.h   |   353 -
 .../freetype2/include/freetype/config/ftheader.h   |   564 -
 .../freetype2/include/freetype/config/ftmodule.h   |    19 -
 .../freetype2/include/freetype/config/ftoption.h   |   577 -
 .../freetype2/include/freetype/config/ftstdlib.h   |   144 -
 .../extras/freetype2/include/freetype/freetype.h   |  3083 ---
 nx-X11/extras/freetype2/include/freetype/ftbbox.h  |    89 -
 nx-X11/extras/freetype2/include/freetype/ftbdf.h   |   200 -
 nx-X11/extras/freetype2/include/freetype/ftcache.h |   825 -
 .../extras/freetype2/include/freetype/ftchapters.h |    69 -
 .../extras/freetype2/include/freetype/fterrdef.h   |   231 -
 .../extras/freetype2/include/freetype/fterrors.h   |   207 -
 nx-X11/extras/freetype2/include/freetype/ftglyph.h |   565 -
 nx-X11/extras/freetype2/include/freetype/ftgzip.h  |   100 -
 nx-X11/extras/freetype2/include/freetype/ftimage.h |  1236 -
 .../extras/freetype2/include/freetype/ftincrem.h   |   292 -
 nx-X11/extras/freetype2/include/freetype/ftlist.h  |   274 -
 nx-X11/extras/freetype2/include/freetype/ftlzw.h   |    99 -
 nx-X11/extras/freetype2/include/freetype/ftmac.h   |   162 -
 nx-X11/extras/freetype2/include/freetype/ftmm.h    |   378 -
 .../extras/freetype2/include/freetype/ftmodapi.h   |   319 -
 .../extras/freetype2/include/freetype/ftmoderr.h   |   154 -
 nx-X11/extras/freetype2/include/freetype/ftoutln.h |   472 -
 nx-X11/extras/freetype2/include/freetype/ftpfr.h   |   172 -
 .../extras/freetype2/include/freetype/ftrender.h   |   229 -
 nx-X11/extras/freetype2/include/freetype/ftsizes.h |   159 -
 .../extras/freetype2/include/freetype/ftsnames.h   |   167 -
 .../extras/freetype2/include/freetype/ftstroke.h   |   686 -
 nx-X11/extras/freetype2/include/freetype/ftsynth.h |    71 -
 nx-X11/extras/freetype2/include/freetype/ftsysio.h |   195 -
 .../extras/freetype2/include/freetype/ftsysmem.h   |   202 -
 .../extras/freetype2/include/freetype/ftsystem.h   |   309 -
 .../extras/freetype2/include/freetype/fttrigon.h   |   315 -
 nx-X11/extras/freetype2/include/freetype/fttypes.h |   558 -
 .../extras/freetype2/include/freetype/ftwinfnt.h   |   257 -
 nx-X11/extras/freetype2/include/freetype/ftxf86.h  |    60 -
 .../freetype2/include/freetype/internal/autohint.h |   205 -
 .../freetype2/include/freetype/internal/ftcalc.h   |   111 -
 .../freetype2/include/freetype/internal/ftdebug.h  |   244 -
 .../freetype2/include/freetype/internal/ftdriver.h |   206 -
 .../freetype2/include/freetype/internal/ftgloadr.h |   147 -
 .../freetype2/include/freetype/internal/ftmemory.h |   367 -
 .../freetype2/include/freetype/internal/ftobjs.h   |   847 -
 .../freetype2/include/freetype/internal/ftrfork.h  |   184 -
 .../freetype2/include/freetype/internal/ftserv.h   |   260 -
 .../freetype2/include/freetype/internal/ftstream.h |   529 -
 .../freetype2/include/freetype/internal/fttrace.h  |   108 -
 .../freetype2/include/freetype/internal/internal.h |    49 -
 .../freetype2/include/freetype/internal/pcftypes.h |    56 -
 .../freetype2/include/freetype/internal/psaux.h    |   741 -
 .../freetype2/include/freetype/internal/pshints.h  |   626 -
 .../include/freetype/internal/services/svbdf.h     |    57 -
 .../include/freetype/internal/services/svgldict.h  |    60 -
 .../include/freetype/internal/services/svmm.h      |    79 -
 .../include/freetype/internal/services/svpfr.h     |    65 -
 .../include/freetype/internal/services/svpostnm.h  |    58 -
 .../include/freetype/internal/services/svpscmap.h  |   113 -
 .../include/freetype/internal/services/svpsinfo.h  |    55 -
 .../include/freetype/internal/services/svsfnt.h    |    69 -
 .../include/freetype/internal/services/svttcmap.h  |    77 -
 .../include/freetype/internal/services/svwinfnt.h  |    50 -
 .../include/freetype/internal/services/svxf86nm.h  |    55 -
 .../freetype2/include/freetype/internal/sfnt.h     |   553 -
 .../freetype2/include/freetype/internal/t1types.h  |   191 -
 .../freetype2/include/freetype/internal/tttypes.h  |  1413 --
 .../extras/freetype2/include/freetype/t1tables.h   |   399 -
 .../extras/freetype2/include/freetype/ttnameid.h   |  1076 -
 .../extras/freetype2/include/freetype/tttables.h   |   694 -
 nx-X11/extras/freetype2/include/freetype/tttags.h  |    83 -
 nx-X11/extras/freetype2/include/freetype/ttunpat.h |    59 -
 nx-X11/extras/freetype2/include/ft2build.h         |    39 -
 nx-X11/extras/freetype2/objs/.cvsignore            |     4 -
 nx-X11/extras/freetype2/objs/README                |     1 -
 nx-X11/extras/freetype2/src/Jamfile                |    17 -
 nx-X11/extras/freetype2/src/autofit/Jamfile        |    18 -
 nx-X11/extras/freetype2/src/autofit/afangles.c     |   302 -
 nx-X11/extras/freetype2/src/autofit/afdummy.c      |    37 -
 nx-X11/extras/freetype2/src/autofit/afdummy.h      |    18 -
 nx-X11/extras/freetype2/src/autofit/afglobal.c     |   236 -
 nx-X11/extras/freetype2/src/autofit/afglobal.h     |    41 -
 nx-X11/extras/freetype2/src/autofit/afhints.c      |   989 -
 nx-X11/extras/freetype2/src/autofit/afhints.h      |   248 -
 nx-X11/extras/freetype2/src/autofit/aflatin.c      |  1871 --
 nx-X11/extras/freetype2/src/autofit/aflatin.h      |   169 -
 nx-X11/extras/freetype2/src/autofit/afloader.c     |   467 -
 nx-X11/extras/freetype2/src/autofit/afloader.h     |    50 -
 nx-X11/extras/freetype2/src/autofit/afmodule.c     |    70 -
 nx-X11/extras/freetype2/src/autofit/afmodule.h     |    16 -
 nx-X11/extras/freetype2/src/autofit/aftypes.h      |   290 -
 nx-X11/extras/freetype2/src/autofit/autofit.c      |     9 -
 .../freetype2/src/autohint/CatharonLicense.txt     |   123 -
 nx-X11/extras/freetype2/src/autohint/Jamfile       |    21 -
 nx-X11/extras/freetype2/src/autohint/ahangles.c    |   147 -
 nx-X11/extras/freetype2/src/autohint/ahangles.h    |    64 -
 nx-X11/extras/freetype2/src/autohint/aherrors.h    |    40 -
 nx-X11/extras/freetype2/src/autohint/ahglobal.c    |   402 -
 nx-X11/extras/freetype2/src/autohint/ahglobal.h    |    59 -
 nx-X11/extras/freetype2/src/autohint/ahglyph.c     |  1699 --
 nx-X11/extras/freetype2/src/autohint/ahglyph.h     |    95 -
 nx-X11/extras/freetype2/src/autohint/ahhint.c      |  1937 --
 nx-X11/extras/freetype2/src/autohint/ahhint.h      |    75 -
 nx-X11/extras/freetype2/src/autohint/ahloader.h    |    61 -
 nx-X11/extras/freetype2/src/autohint/ahmodule.c    |   143 -
 nx-X11/extras/freetype2/src/autohint/ahmodule.h    |    42 -
 nx-X11/extras/freetype2/src/autohint/ahtypes.h     |   527 -
 nx-X11/extras/freetype2/src/autohint/autohint.c    |    32 -
 nx-X11/extras/freetype2/src/autohint/mather.py     |    78 -
 nx-X11/extras/freetype2/src/autohint/module.mk     |    25 -
 nx-X11/extras/freetype2/src/autohint/rules.mk      |    77 -
 nx-X11/extras/freetype2/src/base/Jamfile           |    36 -
 nx-X11/extras/freetype2/src/base/descrip.mms       |    23 -
 nx-X11/extras/freetype2/src/base/ftapi.c           |   121 -
 nx-X11/extras/freetype2/src/base/ftbase.c          |    38 -
 nx-X11/extras/freetype2/src/base/ftbbox.c          |   659 -
 nx-X11/extras/freetype2/src/base/ftbdf.c           |    84 -
 nx-X11/extras/freetype2/src/base/ftcalc.c          |   624 -
 nx-X11/extras/freetype2/src/base/ftdbgmem.c        |   763 -
 nx-X11/extras/freetype2/src/base/ftdebug.c         |   242 -
 nx-X11/extras/freetype2/src/base/ftgloadr.c        |   362 -
 nx-X11/extras/freetype2/src/base/ftglyph.c         |   712 -
 nx-X11/extras/freetype2/src/base/ftinit.c          |   161 -
 nx-X11/extras/freetype2/src/base/ftmac.c           |  1092 -
 nx-X11/extras/freetype2/src/base/ftmm.c            |   202 -
 nx-X11/extras/freetype2/src/base/ftnames.c         |    94 -
 nx-X11/extras/freetype2/src/base/ftobjs.c          |  3311 ---
 nx-X11/extras/freetype2/src/base/ftoutln.c         |   795 -
 nx-X11/extras/freetype2/src/base/ftpfr.c           |   126 -
 nx-X11/extras/freetype2/src/base/ftrfork.c         |   717 -
 nx-X11/extras/freetype2/src/base/ftstream.c        |   803 -
 nx-X11/extras/freetype2/src/base/ftstroke.c        |  1906 --
 nx-X11/extras/freetype2/src/base/ftsynth.c         |   287 -
 nx-X11/extras/freetype2/src/base/ftsystem.c        |   303 -
 nx-X11/extras/freetype2/src/base/fttrigon.c        |   499 -
 nx-X11/extras/freetype2/src/base/fttype1.c         |    70 -
 nx-X11/extras/freetype2/src/base/ftutil.c          |   397 -
 nx-X11/extras/freetype2/src/base/ftwinfnt.c        |    49 -
 nx-X11/extras/freetype2/src/base/ftxf86.c          |    37 -
 nx-X11/extras/freetype2/src/base/rules.mk          |    96 -
 nx-X11/extras/freetype2/src/bdf/Jamfile            |    21 -
 nx-X11/extras/freetype2/src/bdf/README             |   148 -
 nx-X11/extras/freetype2/src/bdf/bdf.c              |    34 -
 nx-X11/extras/freetype2/src/bdf/bdf.h              |   295 -
 nx-X11/extras/freetype2/src/bdf/bdfdrivr.c         |   915 -
 nx-X11/extras/freetype2/src/bdf/bdfdrivr.h         |    76 -
 nx-X11/extras/freetype2/src/bdf/bdferror.h         |    44 -
 nx-X11/extras/freetype2/src/bdf/bdflib.c           |  2435 --
 nx-X11/extras/freetype2/src/bdf/descrip.mms        |    23 -
 nx-X11/extras/freetype2/src/bdf/module.mk          |    31 -
 nx-X11/extras/freetype2/src/bdf/rules.mk           |    80 -
 nx-X11/extras/freetype2/src/cache/Jamfile          |    35 -
 nx-X11/extras/freetype2/src/cache/descrip.mms      |    25 -
 nx-X11/extras/freetype2/src/cache/ftcache.c        |    31 -
 nx-X11/extras/freetype2/src/cache/ftcbasic.c       |   445 -
 nx-X11/extras/freetype2/src/cache/ftccache.c       |   604 -
 nx-X11/extras/freetype2/src/cache/ftccback.h       |    85 -
 nx-X11/extras/freetype2/src/cache/ftccmap.c        |   303 -
 nx-X11/extras/freetype2/src/cache/ftcerror.h       |    40 -
 nx-X11/extras/freetype2/src/cache/ftcglyph.c       |   189 -
 nx-X11/extras/freetype2/src/cache/ftcimage.c       |   154 -
 nx-X11/extras/freetype2/src/cache/ftcmanag.c       |   680 -
 nx-X11/extras/freetype2/src/cache/ftcmru.c         |   355 -
 nx-X11/extras/freetype2/src/cache/ftcsbits.c       |   344 -
 nx-X11/extras/freetype2/src/cache/rules.mk         |    80 -
 nx-X11/extras/freetype2/src/cff/Jamfile            |    21 -
 nx-X11/extras/freetype2/src/cff/cff.c              |    29 -
 nx-X11/extras/freetype2/src/cff/cffcmap.c          |   326 -
 nx-X11/extras/freetype2/src/cff/cffcmap.h          |    87 -
 nx-X11/extras/freetype2/src/cff/cffdrivr.c         |   480 -
 nx-X11/extras/freetype2/src/cff/cffdrivr.h         |    39 -
 nx-X11/extras/freetype2/src/cff/cfferrs.h          |    41 -
 nx-X11/extras/freetype2/src/cff/cffgload.c         |  2594 ---
 nx-X11/extras/freetype2/src/cff/cffgload.h         |   208 -
 nx-X11/extras/freetype2/src/cff/cffload.c          |  2313 --
 nx-X11/extras/freetype2/src/cff/cffload.h          |    74 -
 nx-X11/extras/freetype2/src/cff/cffobjs.c          |   775 -
 nx-X11/extras/freetype2/src/cff/cffobjs.h          |   171 -
 nx-X11/extras/freetype2/src/cff/cffparse.c         |   688 -
 nx-X11/extras/freetype2/src/cff/cffparse.h         |    69 -
 nx-X11/extras/freetype2/src/cff/cfftoken.h         |    97 -
 nx-X11/extras/freetype2/src/cff/cfftypes.h         |   255 -
 nx-X11/extras/freetype2/src/cff/descrip.mms        |    23 -
 nx-X11/extras/freetype2/src/cff/module.mk          |    22 -
 nx-X11/extras/freetype2/src/cff/rules.mk           |    72 -
 nx-X11/extras/freetype2/src/cid/Jamfile            |    21 -
 nx-X11/extras/freetype2/src/cid/ciderrs.h          |    40 -
 nx-X11/extras/freetype2/src/cid/cidgload.c         |   449 -
 nx-X11/extras/freetype2/src/cid/cidgload.h         |    51 -
 nx-X11/extras/freetype2/src/cid/cidload.c          |   644 -
 nx-X11/extras/freetype2/src/cid/cidload.h          |    53 -
 nx-X11/extras/freetype2/src/cid/cidobjs.c          |   501 -
 nx-X11/extras/freetype2/src/cid/cidobjs.h          |   163 -
 nx-X11/extras/freetype2/src/cid/cidparse.c         |   198 -
 nx-X11/extras/freetype2/src/cid/cidparse.h         |   123 -
 nx-X11/extras/freetype2/src/cid/cidriver.c         |   157 -
 nx-X11/extras/freetype2/src/cid/cidriver.h         |    39 -
 nx-X11/extras/freetype2/src/cid/cidtoken.h         |   103 -
 nx-X11/extras/freetype2/src/cid/descrip.mms        |    23 -
 nx-X11/extras/freetype2/src/cid/module.mk          |    21 -
 nx-X11/extras/freetype2/src/cid/rules.mk           |    70 -
 nx-X11/extras/freetype2/src/cid/type1cid.c         |    29 -
 nx-X11/extras/freetype2/src/gzip/Jamfile           |     8 -
 nx-X11/extras/freetype2/src/gzip/adler32.c         |    48 -
 nx-X11/extras/freetype2/src/gzip/descrip.mms       |    23 -
 nx-X11/extras/freetype2/src/gzip/ftgzip.c          |   605 -
 nx-X11/extras/freetype2/src/gzip/infblock.c        |   387 -
 nx-X11/extras/freetype2/src/gzip/infblock.h        |    36 -
 nx-X11/extras/freetype2/src/gzip/infcodes.c        |   250 -
 nx-X11/extras/freetype2/src/gzip/infcodes.h        |    31 -
 nx-X11/extras/freetype2/src/gzip/inffixed.h        |   151 -
 nx-X11/extras/freetype2/src/gzip/inflate.c         |   273 -
 nx-X11/extras/freetype2/src/gzip/inftrees.c        |   462 -
 nx-X11/extras/freetype2/src/gzip/inftrees.h        |    63 -
 nx-X11/extras/freetype2/src/gzip/infutil.c         |    86 -
 nx-X11/extras/freetype2/src/gzip/infutil.h         |    98 -
 nx-X11/extras/freetype2/src/gzip/rules.mk          |    75 -
 nx-X11/extras/freetype2/src/gzip/zconf.h           |   278 -
 nx-X11/extras/freetype2/src/gzip/zlib.h            |   830 -
 nx-X11/extras/freetype2/src/gzip/zutil.c           |   181 -
 nx-X11/extras/freetype2/src/gzip/zutil.h           |   216 -
 nx-X11/extras/freetype2/src/lzw/Jamfile            |     9 -
 nx-X11/extras/freetype2/src/lzw/ftlzw.c            |   463 -
 nx-X11/extras/freetype2/src/lzw/rules.mk           |    70 -
 nx-X11/extras/freetype2/src/lzw/zopen.c            |   400 -
 nx-X11/extras/freetype2/src/lzw/zopen.h            |   114 -
 nx-X11/extras/freetype2/src/otlayout/otlayout.h    |   205 -
 nx-X11/extras/freetype2/src/otlayout/otlbase.c     |   181 -
 nx-X11/extras/freetype2/src/otlayout/otlbase.h     |    14 -
 nx-X11/extras/freetype2/src/otlayout/otlcommn.c    |   940 -
 nx-X11/extras/freetype2/src/otlayout/otlcommn.h    |   277 -
 nx-X11/extras/freetype2/src/otlayout/otlconf.h     |    78 -
 nx-X11/extras/freetype2/src/otlayout/otlgdef.c     |   175 -
 nx-X11/extras/freetype2/src/otlayout/otlgdef.h     |    14 -
 nx-X11/extras/freetype2/src/otlayout/otlgpos.c     |   980 -
 nx-X11/extras/freetype2/src/otlayout/otlgpos.h     |    14 -
 nx-X11/extras/freetype2/src/otlayout/otlgsub.c     |   867 -
 nx-X11/extras/freetype2/src/otlayout/otlgsub.h     |    26 -
 nx-X11/extras/freetype2/src/otlayout/otljstf.c     |   189 -
 nx-X11/extras/freetype2/src/otlayout/otljstf.h     |    14 -
 nx-X11/extras/freetype2/src/otlayout/otlparse.c    |   142 -
 nx-X11/extras/freetype2/src/otlayout/otlparse.h    |    99 -
 nx-X11/extras/freetype2/src/otlayout/otltable.h    |    60 -
 nx-X11/extras/freetype2/src/otlayout/otltags.h     |    88 -
 nx-X11/extras/freetype2/src/otlayout/otlutils.h    |    33 -
 nx-X11/extras/freetype2/src/pcf/Jamfile            |    21 -
 nx-X11/extras/freetype2/src/pcf/descrip.mms        |    35 -
 nx-X11/extras/freetype2/src/pcf/module.mk          |    32 -
 nx-X11/extras/freetype2/src/pcf/pcf.c              |    36 -
 nx-X11/extras/freetype2/src/pcf/pcf.h              |   237 -
 nx-X11/extras/freetype2/src/pcf/pcfdrivr.c         |   651 -
 nx-X11/extras/freetype2/src/pcf/pcfdrivr.h         |    44 -
 nx-X11/extras/freetype2/src/pcf/pcferror.h         |    40 -
 nx-X11/extras/freetype2/src/pcf/pcfread.c          |  1175 -
 nx-X11/extras/freetype2/src/pcf/pcfread.h          |    45 -
 nx-X11/extras/freetype2/src/pcf/pcfutil.c          |   132 -
 nx-X11/extras/freetype2/src/pcf/pcfutil.h          |    55 -
 nx-X11/extras/freetype2/src/pcf/readme             |   114 -
 nx-X11/extras/freetype2/src/pcf/rules.mk           |    80 -
 nx-X11/extras/freetype2/src/pfr/Jamfile            |    21 -
 nx-X11/extras/freetype2/src/pfr/descrip.mms        |    23 -
 nx-X11/extras/freetype2/src/pfr/module.mk          |    22 -
 nx-X11/extras/freetype2/src/pfr/pfr.c              |    29 -
 nx-X11/extras/freetype2/src/pfr/pfrcmap.c          |   158 -
 nx-X11/extras/freetype2/src/pfr/pfrcmap.h          |    46 -
 nx-X11/extras/freetype2/src/pfr/pfrdrivr.c         |   203 -
 nx-X11/extras/freetype2/src/pfr/pfrdrivr.h         |    39 -
 nx-X11/extras/freetype2/src/pfr/pfrerror.h         |    40 -
 nx-X11/extras/freetype2/src/pfr/pfrgload.c         |   801 -
 nx-X11/extras/freetype2/src/pfr/pfrgload.h         |    49 -
 nx-X11/extras/freetype2/src/pfr/pfrload.c          |  1081 -
 nx-X11/extras/freetype2/src/pfr/pfrload.h          |   118 -
 nx-X11/extras/freetype2/src/pfr/pfrobjs.c          |   465 -
 nx-X11/extras/freetype2/src/pfr/pfrobjs.h          |    96 -
 nx-X11/extras/freetype2/src/pfr/pfrsbit.c          |   671 -
 nx-X11/extras/freetype2/src/pfr/pfrsbit.h          |    36 -
 nx-X11/extras/freetype2/src/pfr/pfrtypes.h         |   364 -
 nx-X11/extras/freetype2/src/pfr/rules.mk           |    73 -
 nx-X11/extras/freetype2/src/psaux/Jamfile          |    21 -
 nx-X11/extras/freetype2/src/psaux/descrip.mms      |    23 -
 nx-X11/extras/freetype2/src/psaux/module.mk        |    22 -
 nx-X11/extras/freetype2/src/psaux/psaux.c          |    28 -
 nx-X11/extras/freetype2/src/psaux/psauxerr.h       |    41 -
 nx-X11/extras/freetype2/src/psaux/psauxmod.c       |   119 -
 nx-X11/extras/freetype2/src/psaux/psauxmod.h       |    38 -
 nx-X11/extras/freetype2/src/psaux/psobjs.c         |  1784 --
 nx-X11/extras/freetype2/src/psaux/psobjs.h         |   212 -
 nx-X11/extras/freetype2/src/psaux/rules.mk         |    71 -
 nx-X11/extras/freetype2/src/psaux/t1cmap.c         |   456 -
 nx-X11/extras/freetype2/src/psaux/t1cmap.h         |   123 -
 nx-X11/extras/freetype2/src/psaux/t1decode.c       |  1165 -
 nx-X11/extras/freetype2/src/psaux/t1decode.h       |    64 -
 nx-X11/extras/freetype2/src/pshinter/Jamfile       |    21 -
 nx-X11/extras/freetype2/src/pshinter/descrip.mms   |    23 -
 nx-X11/extras/freetype2/src/pshinter/module.mk     |    22 -
 nx-X11/extras/freetype2/src/pshinter/pshalgo.c     |  2091 --
 nx-X11/extras/freetype2/src/pshinter/pshalgo.h     |   255 -
 nx-X11/extras/freetype2/src/pshinter/pshglob.c     |   750 -
 nx-X11/extras/freetype2/src/pshinter/pshglob.h     |   196 -
 nx-X11/extras/freetype2/src/pshinter/pshinter.c    |    28 -
 nx-X11/extras/freetype2/src/pshinter/pshmod.c      |   120 -
 nx-X11/extras/freetype2/src/pshinter/pshmod.h      |    39 -
 nx-X11/extras/freetype2/src/pshinter/pshnterr.h    |    40 -
 nx-X11/extras/freetype2/src/pshinter/pshrec.c      |  1215 -
 nx-X11/extras/freetype2/src/pshinter/pshrec.h      |   176 -
 nx-X11/extras/freetype2/src/pshinter/rules.mk      |    72 -
 nx-X11/extras/freetype2/src/psnames/Jamfile        |    21 -
 nx-X11/extras/freetype2/src/psnames/descrip.mms    |    23 -
 nx-X11/extras/freetype2/src/psnames/module.mk      |    22 -
 nx-X11/extras/freetype2/src/psnames/psmodule.c     |   408 -
 nx-X11/extras/freetype2/src/psnames/psmodule.h     |    38 -
 nx-X11/extras/freetype2/src/psnames/psnamerr.h     |    41 -
 nx-X11/extras/freetype2/src/psnames/psnames.c      |    25 -
 nx-X11/extras/freetype2/src/psnames/pstables.h     |  9437 --------
 nx-X11/extras/freetype2/src/psnames/rules.mk       |    70 -
 nx-X11/extras/freetype2/src/raster/Jamfile         |    21 -
 nx-X11/extras/freetype2/src/raster/descrip.mms     |    23 -
 nx-X11/extras/freetype2/src/raster/ftraster.c      |  3298 ---
 nx-X11/extras/freetype2/src/raster/ftraster.h      |    46 -
 nx-X11/extras/freetype2/src/raster/ftrend1.c       |   273 -
 nx-X11/extras/freetype2/src/raster/ftrend1.h       |    44 -
 nx-X11/extras/freetype2/src/raster/module.mk       |    22 -
 nx-X11/extras/freetype2/src/raster/raster.c        |    26 -
 nx-X11/extras/freetype2/src/raster/rasterrs.h      |    41 -
 nx-X11/extras/freetype2/src/raster/rules.mk        |    69 -
 nx-X11/extras/freetype2/src/sfnt/Jamfile           |    21 -
 nx-X11/extras/freetype2/src/sfnt/descrip.mms       |    23 -
 nx-X11/extras/freetype2/src/sfnt/module.mk         |    22 -
 nx-X11/extras/freetype2/src/sfnt/rules.mk          |    73 -
 nx-X11/extras/freetype2/src/sfnt/sfdriver.c        |   400 -
 nx-X11/extras/freetype2/src/sfnt/sfdriver.h        |    38 -
 nx-X11/extras/freetype2/src/sfnt/sferrors.h        |    39 -
 nx-X11/extras/freetype2/src/sfnt/sfnt.c            |    36 -
 nx-X11/extras/freetype2/src/sfnt/sfobjs.c          |   854 -
 nx-X11/extras/freetype2/src/sfnt/sfobjs.h          |    54 -
 nx-X11/extras/freetype2/src/sfnt/ttcmap0.c         |  1991 --
 nx-X11/extras/freetype2/src/sfnt/ttcmap0.h         |    80 -
 nx-X11/extras/freetype2/src/sfnt/ttload.c          |  1912 --
 nx-X11/extras/freetype2/src/sfnt/ttload.h          |   137 -
 nx-X11/extras/freetype2/src/sfnt/ttpost.c          |   521 -
 nx-X11/extras/freetype2/src/sfnt/ttpost.h          |    46 -
 nx-X11/extras/freetype2/src/sfnt/ttsbit.c          |  1467 --
 nx-X11/extras/freetype2/src/sfnt/ttsbit.h          |    72 -
 nx-X11/extras/freetype2/src/smooth/Jamfile         |    21 -
 nx-X11/extras/freetype2/src/smooth/descrip.mms     |    23 -
 nx-X11/extras/freetype2/src/smooth/ftgrays.c       |  2159 --
 nx-X11/extras/freetype2/src/smooth/ftgrays.h       |    57 -
 nx-X11/extras/freetype2/src/smooth/ftsmerrs.h      |    41 -
 nx-X11/extras/freetype2/src/smooth/ftsmooth.c      |   374 -
 nx-X11/extras/freetype2/src/smooth/ftsmooth.h      |    49 -
 nx-X11/extras/freetype2/src/smooth/module.mk       |    22 -
 nx-X11/extras/freetype2/src/smooth/rules.mk        |    69 -
 nx-X11/extras/freetype2/src/smooth/smooth.c        |    26 -
 nx-X11/extras/freetype2/src/tools/cordic.py        |    79 -
 .../extras/freetype2/src/tools/docmaker/.cvsignore |     1 -
 .../extras/freetype2/src/tools/docmaker/content.py |   585 -
 .../freetype2/src/tools/docmaker/docbeauty.py      |   109 -
 .../freetype2/src/tools/docmaker/docmaker.py       |   107 -
 .../freetype2/src/tools/docmaker/formatter.py      |   203 -
 .../extras/freetype2/src/tools/docmaker/sources.py |   355 -
 .../extras/freetype2/src/tools/docmaker/tohtml.py  |   489 -
 .../extras/freetype2/src/tools/docmaker/utils.py   |   128 -
 nx-X11/extras/freetype2/src/tools/glnames.py       |  4954 -----
 nx-X11/extras/freetype2/src/tools/test_bbox.c      |   160 -
 nx-X11/extras/freetype2/src/tools/test_trig.c      |   236 -
 nx-X11/extras/freetype2/src/truetype/Jamfile       |    21 -
 nx-X11/extras/freetype2/src/truetype/descrip.mms   |    23 -
 nx-X11/extras/freetype2/src/truetype/module.mk     |    22 -
 nx-X11/extras/freetype2/src/truetype/rules.mk      |    72 -
 nx-X11/extras/freetype2/src/truetype/truetype.c    |    36 -
 nx-X11/extras/freetype2/src/truetype/ttdriver.c    |   465 -
 nx-X11/extras/freetype2/src/truetype/ttdriver.h    |    38 -
 nx-X11/extras/freetype2/src/truetype/tterrors.h    |    40 -
 nx-X11/extras/freetype2/src/truetype/ttgload.c     |  2039 --
 nx-X11/extras/freetype2/src/truetype/ttgload.h     |    55 -
 nx-X11/extras/freetype2/src/truetype/ttgxvar.c     |  1520 --
 nx-X11/extras/freetype2/src/truetype/ttgxvar.h     |   182 -
 nx-X11/extras/freetype2/src/truetype/ttinterp.c    |  7742 -------
 nx-X11/extras/freetype2/src/truetype/ttinterp.h    |   318 -
 nx-X11/extras/freetype2/src/truetype/ttobjs.c      |   901 -
 nx-X11/extras/freetype2/src/truetype/ttobjs.h      |   437 -
 nx-X11/extras/freetype2/src/truetype/ttpload.c     |   273 -
 nx-X11/extras/freetype2/src/truetype/ttpload.h     |    48 -
 nx-X11/extras/freetype2/src/type1/Jamfile          |    21 -
 nx-X11/extras/freetype2/src/type1/module.mk        |    22 -
 nx-X11/extras/freetype2/src/type1/rules.mk         |    73 -
 nx-X11/extras/freetype2/src/type1/t1afm.c          |   282 -
 nx-X11/extras/freetype2/src/type1/t1afm.h          |    66 -
 nx-X11/extras/freetype2/src/type1/t1driver.c       |   303 -
 nx-X11/extras/freetype2/src/type1/t1driver.h       |    38 -
 nx-X11/extras/freetype2/src/type1/t1errors.h       |    40 -
 nx-X11/extras/freetype2/src/type1/t1gload.c        |   431 -
 nx-X11/extras/freetype2/src/type1/t1gload.h        |    46 -
 nx-X11/extras/freetype2/src/type1/t1load.c         |  2094 --
 nx-X11/extras/freetype2/src/type1/t1load.h         |    93 -
 nx-X11/extras/freetype2/src/type1/t1objs.c         |   552 -
 nx-X11/extras/freetype2/src/type1/t1objs.h         |   170 -
 nx-X11/extras/freetype2/src/type1/t1parse.c        |   443 -
 nx-X11/extras/freetype2/src/type1/t1parse.h        |   135 -
 nx-X11/extras/freetype2/src/type1/t1tokens.h       |    84 -
 nx-X11/extras/freetype2/src/type1/type1.c          |    33 -
 nx-X11/extras/freetype2/src/type42/Jamfile         |    21 -
 nx-X11/extras/freetype2/src/type42/descrip.mms     |    23 -
 nx-X11/extras/freetype2/src/type42/module.mk       |    22 -
 nx-X11/extras/freetype2/src/type42/rules.mk        |    69 -
 nx-X11/extras/freetype2/src/type42/t42drivr.c      |   233 -
 nx-X11/extras/freetype2/src/type42/t42drivr.h      |    38 -
 nx-X11/extras/freetype2/src/type42/t42error.h      |    40 -
 nx-X11/extras/freetype2/src/type42/t42objs.c       |   643 -
 nx-X11/extras/freetype2/src/type42/t42objs.h       |   126 -
 nx-X11/extras/freetype2/src/type42/t42parse.c      |  1115 -
 nx-X11/extras/freetype2/src/type42/t42parse.h      |    90 -
 nx-X11/extras/freetype2/src/type42/t42types.h      |    54 -
 nx-X11/extras/freetype2/src/type42/type42.c        |    25 -
 nx-X11/extras/freetype2/src/winfonts/Jamfile       |     8 -
 nx-X11/extras/freetype2/src/winfonts/descrip.mms   |    23 -
 nx-X11/extras/freetype2/src/winfonts/fnterrs.h     |    41 -
 nx-X11/extras/freetype2/src/winfonts/module.mk     |    21 -
 nx-X11/extras/freetype2/src/winfonts/rules.mk      |    65 -
 nx-X11/extras/freetype2/src/winfonts/winfnt.c      |   754 -
 nx-X11/extras/freetype2/src/winfonts/winfnt.h      |   107 -
 nx-X11/extras/freetype2/tests/Jamfile              |    41 -
 nx-X11/extras/freetype2/tests/gview.c              |  1292 --
 nx-X11/extras/freetype2/vms_make.com               |   549 -
 550 files changed, 214421 deletions(-)
 delete mode 100644 nx-X11/extras/freetype2/ChangeLog
 delete mode 100644 nx-X11/extras/freetype2/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/Jamrules
 delete mode 100644 nx-X11/extras/freetype2/Makefile
 delete mode 100644 nx-X11/extras/freetype2/README
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/README
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftconfig.h
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftmodule.h
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/makefile
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/smakefile
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/src/base/ftdebug.c
 delete mode 100644 nx-X11/extras/freetype2/builds/amiga/src/base/ftsystem.c
 delete mode 100644 nx-X11/extras/freetype2/builds/ansi/ansi-def.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/ansi/ansi.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/atari/ATARI.H
 delete mode 100644 nx-X11/extras/freetype2/builds/atari/FNames.SIC
 delete mode 100644 nx-X11/extras/freetype2/builds/atari/FREETYPE.PRJ
 delete mode 100644 nx-X11/extras/freetype2/builds/atari/README.TXT
 delete mode 100644 nx-X11/extras/freetype2/builds/beos/beos-def.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/beos/beos.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/beos/detect.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/ansi-cc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/bcc-dev.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/bcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/emx.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/gcc-dev.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/gcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/intelc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/unix-lcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/visualage.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/visualc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/watcom.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/compiler/win-lcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/detect.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/dos/detect.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/dos/dos-def.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/dos/dos-emx.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/dos/dos-gcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/dos/dos-wat.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/freetype.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/link_dos.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/link_std.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/mac/README
 delete mode 100644 nx-X11/extras/freetype2/builds/mac/freetype.make
 delete mode 100644 nx-X11/extras/freetype2/builds/mac/ftlib.prj
 delete mode 100644 nx-X11/extras/freetype2/builds/modules.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/newline
 delete mode 100644 nx-X11/extras/freetype2/builds/os2/detect.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/os2/os2-def.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/os2/os2-dev.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/os2/os2-gcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/toplevel.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/.cvsignore
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/aclocal.m4
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/config.guess
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/config.sub
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/configure
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/configure.ac
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/detect.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/freetype-config.in
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/freetype2.in
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/freetype2.m4
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/ft-munmap.m4
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/ft2unix.h
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/ftconfig.in
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/ftsystem.c
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/install-sh
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/install.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/ltmain.sh
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/mkinstalldirs
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/unix-cc.in
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/unix-def.in
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/unix-dev.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/unix-lcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/unix.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/unix/unixddef.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/vms/ftconfig.h
 delete mode 100644 nx-X11/extras/freetype2/builds/vms/ftsystem.c
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/detect.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/ftdebug.c
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsp
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsw
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/visualc/freetype.sln
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/visualc/freetype.vcproj
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/visualc/index.html
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-bcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-bccd.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-dev.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-gcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-icc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-intl.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-lcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-mingw32.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-vcc.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/w32-wat.mk
 delete mode 100644 nx-X11/extras/freetype2/builds/win32/win32-def.mk
 delete mode 100644 nx-X11/extras/freetype2/configure
 delete mode 100644 nx-X11/extras/freetype2/devel/ft2build.h
 delete mode 100644 nx-X11/extras/freetype2/devel/ftoption.h
 delete mode 100644 nx-X11/extras/freetype2/docs/CHANGES
 delete mode 100644 nx-X11/extras/freetype2/docs/CUSTOMIZE
 delete mode 100644 nx-X11/extras/freetype2/docs/DEBUG
 delete mode 100644 nx-X11/extras/freetype2/docs/FTL.txt
 delete mode 100644 nx-X11/extras/freetype2/docs/GPL.txt
 delete mode 100644 nx-X11/extras/freetype2/docs/INSTALL
 delete mode 100644 nx-X11/extras/freetype2/docs/INSTALL.ANY
 delete mode 100644 nx-X11/extras/freetype2/docs/INSTALL.GNU
 delete mode 100644 nx-X11/extras/freetype2/docs/INSTALL.UNX
 delete mode 100644 nx-X11/extras/freetype2/docs/INSTALL.VMS
 delete mode 100644 nx-X11/extras/freetype2/docs/PATENTS
 delete mode 100644 nx-X11/extras/freetype2/docs/TODO
 delete mode 100644 nx-X11/extras/freetype2/docs/TRUETYPE
 delete mode 100644 nx-X11/extras/freetype2/docs/UPGRADE.UNX
 delete mode 100644 nx-X11/extras/freetype2/docs/VERSION.DLL
 delete mode 100644 nx-X11/extras/freetype2/docs/formats.txt
 delete mode 100644 nx-X11/extras/freetype2/docs/license.txt
 delete mode 100644 nx-X11/extras/freetype2/docs/modules.txt
 delete mode 100644 nx-X11/extras/freetype2/docs/raster.txt
 delete mode 100644 nx-X11/extras/freetype2/docs/reference/.cvsignore
 delete mode 100644 nx-X11/extras/freetype2/docs/reference/README
 delete mode 100644 nx-X11/extras/freetype2/docs/release
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftccache.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftccmap.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftcglyph.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftcimage.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftcmanag.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftcmru.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/cache/ftcsbits.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/config/ftconfig.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/config/ftheader.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/config/ftmodule.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/config/ftoption.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/config/ftstdlib.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/freetype.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftbbox.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftbdf.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftcache.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftchapters.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/fterrdef.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/fterrors.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftglyph.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftgzip.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftimage.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftincrem.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftlist.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftlzw.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftmac.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftmm.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftmodapi.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftmoderr.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftoutln.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftpfr.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftrender.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftsizes.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftsnames.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftstroke.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftsynth.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftsysio.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftsysmem.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftsystem.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/fttrigon.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/fttypes.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftwinfnt.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ftxf86.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/autohint.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftcalc.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftdebug.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftdriver.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftgloadr.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftmemory.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftobjs.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftrfork.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftserv.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/ftstream.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/fttrace.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/internal.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/pcftypes.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/psaux.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/pshints.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svbdf.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svgldict.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svmm.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svpfr.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svpostnm.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svpscmap.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svpsinfo.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svsfnt.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svttcmap.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svwinfnt.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/services/svxf86nm.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/sfnt.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/t1types.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/internal/tttypes.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/t1tables.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ttnameid.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/tttables.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/tttags.h
 delete mode 100644 nx-X11/extras/freetype2/include/freetype/ttunpat.h
 delete mode 100644 nx-X11/extras/freetype2/include/ft2build.h
 delete mode 100644 nx-X11/extras/freetype2/objs/.cvsignore
 delete mode 100644 nx-X11/extras/freetype2/objs/README
 delete mode 100644 nx-X11/extras/freetype2/src/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afangles.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afdummy.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afdummy.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afglobal.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afglobal.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afhints.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afhints.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/aflatin.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/aflatin.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afloader.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afloader.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afmodule.c
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/afmodule.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/aftypes.h
 delete mode 100644 nx-X11/extras/freetype2/src/autofit/autofit.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/CatharonLicense.txt
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahangles.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahangles.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/aherrors.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahglobal.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahglobal.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahglyph.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahglyph.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahhint.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahhint.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahloader.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahmodule.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahmodule.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/ahtypes.h
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/autohint.c
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/mather.py
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/autohint/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/base/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/base/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftapi.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftbase.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftbbox.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftbdf.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftcalc.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftdbgmem.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftdebug.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftgloadr.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftglyph.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftinit.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftmac.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftmm.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftnames.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftoutln.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftpfr.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftrfork.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftstream.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftstroke.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftsynth.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftsystem.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/fttrigon.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/fttype1.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftutil.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftwinfnt.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/ftxf86.c
 delete mode 100644 nx-X11/extras/freetype2/src/base/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/README
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/bdf.c
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/bdf.h
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/bdfdrivr.c
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/bdfdrivr.h
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/bdferror.h
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/bdflib.c
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/bdf/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/cache/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/cache/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcache.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcbasic.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftccache.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftccback.h
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftccmap.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcerror.h
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcglyph.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcimage.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcmanag.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcmru.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/ftcsbits.c
 delete mode 100644 nx-X11/extras/freetype2/src/cache/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/cff/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cff.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffcmap.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffcmap.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffdrivr.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffdrivr.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cfferrs.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffgload.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffgload.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffload.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffload.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffobjs.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffparse.c
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cffparse.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cfftoken.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/cfftypes.h
 delete mode 100644 nx-X11/extras/freetype2/src/cff/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/cff/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/cff/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/cid/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/cid/ciderrs.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidgload.c
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidgload.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidload.c
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidload.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidobjs.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidparse.c
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidparse.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidriver.c
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidriver.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/cidtoken.h
 delete mode 100644 nx-X11/extras/freetype2/src/cid/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/cid/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/cid/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/cid/type1cid.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/adler32.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/ftgzip.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/infblock.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/infblock.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/infcodes.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/infcodes.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/inffixed.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/inflate.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/inftrees.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/inftrees.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/infutil.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/infutil.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/zconf.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/zlib.h
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/zutil.c
 delete mode 100644 nx-X11/extras/freetype2/src/gzip/zutil.h
 delete mode 100644 nx-X11/extras/freetype2/src/lzw/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/lzw/ftlzw.c
 delete mode 100644 nx-X11/extras/freetype2/src/lzw/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/lzw/zopen.c
 delete mode 100644 nx-X11/extras/freetype2/src/lzw/zopen.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlayout.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlbase.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlbase.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlcommn.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlcommn.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlconf.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlgdef.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlgdef.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlgpos.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlgpos.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlgsub.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlgsub.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otljstf.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otljstf.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlparse.c
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlparse.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otltable.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otltags.h
 delete mode 100644 nx-X11/extras/freetype2/src/otlayout/otlutils.h
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcf.c
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcf.h
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcfdrivr.c
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcfdrivr.h
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcferror.h
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcfread.c
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcfread.h
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcfutil.c
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/pcfutil.h
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/readme
 delete mode 100644 nx-X11/extras/freetype2/src/pcf/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfr.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrcmap.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrcmap.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrdrivr.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrdrivr.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrerror.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrgload.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrgload.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrload.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrload.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrobjs.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrsbit.c
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrsbit.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/pfrtypes.h
 delete mode 100644 nx-X11/extras/freetype2/src/pfr/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/psaux.c
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/psauxerr.h
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/psauxmod.c
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/psauxmod.h
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/psobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/psobjs.h
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/t1cmap.c
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/t1cmap.h
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/t1decode.c
 delete mode 100644 nx-X11/extras/freetype2/src/psaux/t1decode.h
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshalgo.c
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshalgo.h
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshglob.c
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshglob.h
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshinter.c
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshmod.c
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshmod.h
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshnterr.h
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshrec.c
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/pshrec.h
 delete mode 100644 nx-X11/extras/freetype2/src/pshinter/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/psmodule.c
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/psmodule.h
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/psnamerr.h
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/psnames.c
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/pstables.h
 delete mode 100644 nx-X11/extras/freetype2/src/psnames/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/raster/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/raster/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/raster/ftraster.c
 delete mode 100644 nx-X11/extras/freetype2/src/raster/ftraster.h
 delete mode 100644 nx-X11/extras/freetype2/src/raster/ftrend1.c
 delete mode 100644 nx-X11/extras/freetype2/src/raster/ftrend1.h
 delete mode 100644 nx-X11/extras/freetype2/src/raster/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/raster/raster.c
 delete mode 100644 nx-X11/extras/freetype2/src/raster/rasterrs.h
 delete mode 100644 nx-X11/extras/freetype2/src/raster/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/sfdriver.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/sfdriver.h
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/sferrors.h
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/sfnt.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/sfobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/sfobjs.h
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttcmap0.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttcmap0.h
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttload.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttload.h
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttpost.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttpost.h
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttsbit.c
 delete mode 100644 nx-X11/extras/freetype2/src/sfnt/ttsbit.h
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/ftgrays.c
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/ftgrays.h
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/ftsmerrs.h
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/ftsmooth.c
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/ftsmooth.h
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/smooth/smooth.c
 delete mode 100644 nx-X11/extras/freetype2/src/tools/cordic.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/.cvsignore
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/content.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/docbeauty.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/docmaker.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/formatter.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/sources.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/tohtml.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/docmaker/utils.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/glnames.py
 delete mode 100644 nx-X11/extras/freetype2/src/tools/test_bbox.c
 delete mode 100644 nx-X11/extras/freetype2/src/tools/test_trig.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/truetype.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttdriver.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttdriver.h
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/tterrors.h
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttgload.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttgload.h
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttgxvar.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttgxvar.h
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttinterp.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttinterp.h
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttobjs.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttobjs.h
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttpload.c
 delete mode 100644 nx-X11/extras/freetype2/src/truetype/ttpload.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/type1/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/type1/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1afm.c
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1afm.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1driver.c
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1driver.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1errors.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1gload.c
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1gload.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1load.c
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1load.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1objs.c
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1objs.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1parse.c
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1parse.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/t1tokens.h
 delete mode 100644 nx-X11/extras/freetype2/src/type1/type1.c
 delete mode 100644 nx-X11/extras/freetype2/src/type42/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/type42/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/type42/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/type42/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42drivr.c
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42drivr.h
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42error.h
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42objs.c
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42objs.h
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42parse.c
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42parse.h
 delete mode 100644 nx-X11/extras/freetype2/src/type42/t42types.h
 delete mode 100644 nx-X11/extras/freetype2/src/type42/type42.c
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/descrip.mms
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/fnterrs.h
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/module.mk
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/rules.mk
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/winfnt.c
 delete mode 100644 nx-X11/extras/freetype2/src/winfonts/winfnt.h
 delete mode 100644 nx-X11/extras/freetype2/tests/Jamfile
 delete mode 100644 nx-X11/extras/freetype2/tests/gview.c
 delete mode 100644 nx-X11/extras/freetype2/vms_make.com

(limited to 'nx-X11/extras/freetype2')

diff --git a/nx-X11/extras/freetype2/ChangeLog b/nx-X11/extras/freetype2/ChangeLog
deleted file mode 100644
index df8395022..000000000
--- a/nx-X11/extras/freetype2/ChangeLog
+++ /dev/null
@@ -1,10022 +0,0 @@
-2004-06-23  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/ftmemory.h [FT_DEBUG_MEMORY]: Declare
-	FT_QAlloc_Debug and FT_QRealloc_Debug.
-
-	* src/base/ftutil.c (FT_QAlloc): Fix error and debug messages.
-	(FT_QRealloc): Call FT_QAlloc if original pointer is NULL.
-	Fix error message.
-
-2004-06-23  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/ftmemory.h, src/base/ftutil.c
-	(FT_QAlloc, FT_QRealloc), src/base/ftdbgmem.c (FT_QAlloc_Debug,
-	FT_QRealloc_Debug): New functions that perform allocation without
-	zero-ing out the corresponding blocks.
-
-	* include/freetype/internal/ftmemory.h (FT_MEM_QALLOC,
-	FT_MEM_QREALLOC, FT_MEM_QNEW, FT_MEM_QNEW_ARRAY,
-	FT_MEM_QRENEW_ARRAY, FT_QALLOC, FT_QREALLOC, FT_QNEW, FT_QNEW_ARRAY,
-	FT_QRENEW_ARRAY): New macros.
-
-	* src/base/ftstream.c (FT_Stream_EnterFrame): Use FT_QALLOC.
-	* src/gzip/ftgzip.c (FT_Stream_OpenGzip):  Use FT_QNEW_ARRAY.
-	* src/sfnt/sfobjs.c (tt_face_get_name): Use FT_QNEW_ARRAY.
-
-	* src/sfnt/ttload.c (tt_face_load_directory, tt_face_load_metrics,
-	tt_face_load_gasp): Use FT_QNEW_ARRAY.
-	(tt_face_load_kern): Use FT_QNEW_ARRAY.
-	Small optimization in the kerning table verifier; this speeds up
-	TrueType face opening by about 7%.
-	(tt_face_load_hdmx): Use FT_QNEW_ARRAY and FT_QALLOC.
-
-	* include/freetype/config/ftmodule.h: Changed the order of modules,
-	putting TrueType and Type 1 first.  This dramatically improves the
-	performance of face open/close operations.  For example, putting the
-	TrueType driver first in the list results in a 5x speedup when
-	opening `Vera.ttf'.
-
-	The very problem is that both the PCF and BDF drivers do a lot more
-	than necessary to detect that they cannot handle a font file.
-
-2004-06-22  Werner Lemberg  <wl@gnu.org>
-
-	* src/pcf/pcfread.c (pcf_read_TOC, pcf_get_properties,
-	pcf_get_metrics, pcf_get_bitmaps, pcf_get_encodings): Improve
-	debugging messages.
-
-	* src/pcf/pcfdrivr.c (FT_COMPOMENT): Move up.
-	(PCF_Face_Init): Simplify code.
-
-	* src/bdf/bdfdrivr.h (BDF_FaceRec): New element `default_glyph'.
-
-	* src/bdf/bdflib.c (_bdf_add_property, _bdf_parse_start),
-	src/bdf/bdf.h (bdf_font_t): s/default_glyph/default_char/.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Fix number of glyphs.
-	Set `default_glyph'.
-	(BDF_Glyph_Load): Use `default_glyph' for undefined glyph.
-
-	* docs/CHANGES: Updated.
-
-2004-06-21  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2004-06-21  David Turner  <david@freetype.org>
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
-	load_truetype_glyph): Don't access (unrounded)
-	`TT_Size.root.metrics' but (rounded) `TT_Size.metrics'.  This fixes
-	a scaling bug that caused incorrect rendering when the bytecode
-	interpreter was enabled.
-
-2004-06-14  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
-
-	* src/winfonts/winfnt.c (FNT_Face_Init): Set x_ppem and y_ppem
-	based on pixel_width and pixel_height.
-	(FNT_Size_Set_Pixels): Updated.
-
-2004-06-14  Werner Lemberg  <wl@gnu.org>
-
-	* src/lzw/zopen.c: Comment out inclusion of signal.h and unistd.h.
-	Reported by Hyv�rinen Jyrki Juhani.
-
-2004-06-11  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2004-06-10  David Turner  <david@freetype.org>
-
-	* src/base/ftobject.c, src/base/fthash.c, src/base/ftexcept.c,
-	src/base/ftsysio.c, src/base/ftsysmem.c, src/base/ftlist.c: Removed.
-	Obsolete.
-
-	* src/raster/ftraster.c (Alignment, PAlignment): New union to fix
-	problems with 64bit systems.
-	(AlignProfileSize): Use it.
-
-2004-06-08  David Turner  <david@freetype.org>
-
-	* include/freetype/freetype.h (FT_GlyphMetrics): Move `lsb_delta'
-	and `rsb_delta' elements to...
-	(FT_GlyphSlotRec): Here to retain binary compatibility with older
-	FreeType versions.
-	Update all users.
-
-	* src/sfnt/sfobjs.c (tt_face_get_name): Remove compiler warning.
-
-	* src/winfonts/winfnt.c (FNT_Load_Glyph): Add missing initialization
-	of slot->metrics.width and slot->metrics.height when loading a
-	Windows FNT glyph.  Thanks to Huw Davies.
-
-	* include/freetype/cache/ftcmru.h (FTC_MruNode_CompareFunc): Change
-	return type to FT_Bool.
-
-	* src/cache/ftbasic.c (ftc_basic_family_compare): Change return
-	type to FT_Bool.
-
-	* src/cache/ftccache.c (FTC_Cache_Init, ftc_cache_init): Make
-	the former call the latter, not vice versa.
-	(FTC_Cache_Done, ftc_cache_done): Ditto.
-
-	* src/cache/ftcglyph.c (FTC_GNode_Compare, ftc_gnode_compare): Make
-	the former call the latter, not vice versa.
-	(FTC_GCache_Init, ftc_gcache_init): Ditto.
-	(FTC_GCache_Done, ftc_gcache_done): Ditto.
-
-	* src/cache/ftcimage.c (FTC_INode_Free, ftc_inode_free): Make the
-	former call the latter, not vice versa.
-	(FTC_INode_Weight, ftc_inode_weight): Ditto.
-
-	* src/cache/ftcmanag.c (ftc_size_node_compare,
-	ftc_size_node_compare_faceid, ftc_face_node_compare): Change return
-	type to FT_Bool.
-
-	* src/cache/ftcsbits.c (FTC_SNode_Free, ftc_snode_free): Make the
-	former call the latter, not vice versa.
-	(FTC_SNode_Weight, ftc_snode_weight): Ditto.
-	(FTC_SNode_Compare, ftc_snode_compare): Ditto.
-
-	* src/cache/ftcsbits.c: Fix some bugs and inefficiencies in the cache
-	sub-system.
-
-2004-06-05  Werner Lemberg  <wl@gnu.org>
-
-	* src/autofit/afloader.c (af_loader_load_g): Set `lsb_delta' and
-	`rsb_delta' in slot->metrics and tune side bearings slightly.
-
-2004-06-04  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2004-06-04  David Chester  <davidchester@gmx.net>
-
-	Improve inter-letter spacing for autohinted glyphs.
-
-	* include/freetype/freetype.h (FT_Glyph_Metrics): Add elements
-	`lsb_delta' and `rsb_delta'.
-
-	* src/autohint/ahhint.c (ah_hinter_load): Set `lsb_delta' and
-	`rsb_delta' in slot->metrics and tune side bearings slightly.
-
-2004-06-04  David Turner  <david@freetype.org>
-
-	* src/autofit/*: Important fixes to the auto-fitter.  The output
-	now seems to be 100% equivalent to the auto-hinter, while being
-	about 2% faster (which proves that script-specific algorithm
-	selection isn't a performance problem).
-
-	To test it, change `autohint' to `autofit' in
-	<freetype/config/ftmodule.h> and recompile.
-
-	A few more testing is needed before making this the official
-	auto-hinting module.
-
-2004-06-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c (compute_glyph_metrics): Fix compiler
-	warnings.
-
-2004-06-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/sfobjs.c (tt_face_get_name): Make sure that an English
-	name record for the Apple platform is preferred to a non-English
-	entry for the Microsoft platform.  Problem reported by HANDA
-	Ken'ichi.
-
-2004-05-19  George Williams  <gww@silcom.com>
-
-	* src/type1/t1load.c (mm_axis_unmap, mm_weights_unmap): New
-	auxiliary functions.
-	(T1_Get_MM_Var): Provide axis tags.
-	Use mm_axis_unmap and mm_weights_unmap to provide default values
-	for design and normalized axis coordinates.
-
-	* include/freetype/t1tables.h (PS_DesignMapRec): Change type of
-	`design_points' to FT_Long.
-	Update all users.
-
-2004-05-17  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftbbox.c (BBox_Conic_Check): Fix boundary cases.
-	Reported by Mikey Anbary <manbary@vizrt.com>.
-
-2004-05-15  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/sfobjs.c (sfnt_done_face): Free face->postscript_name.
-
-2004-05-15  George Williams  <gww@silcom.com>
-
-	* src/sfnt/ttload.c (tt_face_load_max_profile): Always set
-	face->root.num_glyphs.
-
-2004-05-14  Masatake YAMATO  <jet@gyve.org>
-	    George Williams  <gww@silcom.com>
-
-	* src/sfnt/ttload.c (sfnt_dir_check): Handle `bhed' properly.
-
-2004-05-14  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftcbasic.c (ftc_basic_family_compare,
-	ftc_basic_family_init, ftc_basic_family_get_count,
-	ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
-	ftc_basic_gnode_compare_faceid): Adjust parameters and return types
-	to prototypes given in header files from include/freetype/cache.
-	Use casts to proper types locally.
-	(ftc_basic_image_family_class, ftc_basic_image_cache_class,
-	ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class): Remove
-	casts.
-
-	* src/cache/ftccback.h: Adjust parameters and return types to
-	prototypes given in header files from include/freetype/cache.
-
-	* src/cache/ftcimage.c (ftc_inode_free, ftc_inode_new,
-	ftc_inode_weight): Adjust parameters and return types to prototypes
-	given in header files from include/freetype/cache.  Use casts to
-	proper types locally.
-
-	* src/cache/ftcsbits.c (ftc_snode_free, ftc_snode_new,
-	ftc_snode_weight, ftc_snode_compare): Adjust parameters and return
-	types to prototypes given in header files from
-	include/freetype/cache.  Use casts to proper types locally.
-
-	* src/cache/ftccmap.c (ftc_cmap_node_free, ftc_cmap_node_new,
-	ftc_cmap_node_weight, ftc_cmap_node_compare,
-	ftc_cmap_node_remove_faceid): Adjust parameters and return types to
-	prototypes given in header files from include/freetype/cache.  Use
-	casts to proper types locally.
-	(ftc_cmap_cache_class): Remove casts.
-
-	* src/cache/ftcglyph.c (ftc_gnode_compare, ftc_gcache_init,
-	ftc_gcache_done): Adjust parameters and return types to prototypes
-	given in header files from include/freetype/cache.  Use casts to
-	proper types locally.
-
-	* src/cache/ftcmanag.c (ftc_size_node_done, ftc_size_node_compare,
-	ftc_size_node_init, ftc_size_node_reset,
-	ftc_size_node_compare_faceid, ftc_face_node_init,
-	ftc_face_node_done, ftc_face_node_compare: Adjust parameters and
-	return types to prototypes given in header files from
-	include/freetype/cache.  Use casts to proper types locally.
-
-	(ftc_size_list_class, ftc_face_list_class): Remove casts.
-
-2004-05-13  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahmodule.c (ft_autohinter_init, ft_autohinter_done):
-	Use FT_Module as parameter and do a cast to FT_AutoHinter locally.
-	(autohint_module_class): Remove casts.
-
-	* src/base/ftglyph.c (ft_bitmap_glyph_init, ft_bitmap_glyph_copy,
-	ft_bitmap_glyph_done, ft_bitmap_glyph_bbox, ft_outline_glyph_init,
-	ft_outline_glyph_done, ft_outline_glyph_copy,
-	ft_outline_glyph_transform, ft_outline_glyph_bbox,
-	ft_outline_glyph_prepare): Use FT_Glyph as parameter and do a cast
-	to FT_XXXGlyph locally.
-	Use FT_CALLBACK_DEF throughout.
-	(ft_bitmap_glyph_class, ft_outline_glyph_class): Remove casts.
-
-	* src/bdf/bdfdrivr.c (bdf_cmap_init, bdf_cmap_done,
-	bdf_cmap_char_index, bdf_cmap_char_next): Use FT_CMap as parameter
-	and do a cast to BDF_CMap locally.
-	(bdf_cmap_class): Remove casts.
-
-2004-05-12  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffgload.h (CFF_Builder): Remove `error'.
-	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Replace
-	`Memory_Error' with `Fail' und update all users.
-
-2004-05-11  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/psaux.h (T1_ParseState): New
-	enumeration.
-	(T1_BuilderRec): Replace `path_begun' with `parse_state'.
-	Remove `error'.
-	* src/psaux/t1decode.c (t1_decoder_parse_charstrings): Replace
-	`Memory_Error' with `Fail' and update all users.
-	Don't use `builder->error'.
-	Replace `path_begun' with `parse_state' and check parsing states.
-
-	* src/psaux/psobjs.c (t1_builder_init, t1_builder_start_point):
-	Replace `path_begun' with `parse_state' and check parsing states.
-
-2004-05-10  George Williams  <gww@silcom.com>
-
-	* src/truetype/ttxgvar.c (ft_var_load_avar): Do free arrays in case
-	of error -- `avar' is optional so we can't rely on tt_done_blend
-	being called automatically.
-
-2004-05-09  George Williams  <gww@silcom.com>
-
-	* src/truetype/ttxgvar.c (ft_var_load_avar, ft_var_load_gvar): Fix
-	error handling.
-
-2004-05-07  Werner Lemberg  <wl@gnu.org>
-
-	* src/pfr/pfrobjs.c, src/pfr/pfrobjs.h (pfr_face_init,
-	pfr_face_done, pfr_face_get_kerning, pfr_slot_init, pfr_slot_done,
-	pfr_slot_load): Don't use PFR_XXX but FT_XXX arguments which are
-	typecast to the proper PFR_XXX types within the function.
-	Update code accordingly.
-
-	* src/pfr/pfrdrivr.c (pfr_get_kerning, pfr_get_advance,
-	pfr_get_metrics, pfr_get_service): Don't use PFR_XXX but FT_XXX
-	arguments which are typecast to the proper PFR_XXX types within the
-	function.
-	Update code accordingly.
-	Use FT_CALLBACK_DEF throughout.
-	(pfr_metrics_service_rec, pfr_driver_class): Remove casts.
-
-2004-05-06  Masatake YAMATO  <jet@gyve.org>
-
-	* src/truetype/ttgxvar.c (ft_var_load_gvar): Use FT_FACE_STREAM.
-	(*): Rename local variable OffsetToData to offsetToData.
-
-2004-05-06  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffobjs.c (cff_size_done, cff_size_init, cff_size_reset,
-	cff_slot_done, cff_slot_init, cff_face_init, cff_face_done): Access
-	root fields directly.
-	* src/cff/cffdrivr.c (Load_Glyph): Access root fields directly.
-
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph): Save current
-	frame before calling TT_Vary_Get_Glyph_Deltas.
-
-	* src/pcf/pcfdrivr.c (PCF_CMapRec): Rename `cmap' to `root' for
-	consistency.
-	(pcf_cmap_init, pcf_cmap_done, pcf_cmap_char_index,
-	pcf_cmap_char_next): Don't use PCF_XXX but FT_XXX arguments which
-	are typecast to the proper PCF_XXX types within the function.
-	Update code accordingly.
-	(pcf_cmap_class): Remove casts.
-	(PCF_Face_Done, PCF_Face_Init, PCF_Set_Pixel_Size): Don't use
-	PCF_XXX but FT_XXX arguments which are typecast to the proper
-	PCF_XXX types within the function.
-	Update code accordingly.
-	Use FT_CALLBACK_DEF throughout.
-	(PCF_Set_Point_Size): New wrapper function.
-	(PCF_Glyph_Load, pcf_driver_requester): Use FT_CALLBACK_DEF.
-	(pcf_driver_class): Remove casts.
-
-2004-05-04  Steve Hartwell  <shspamsink@comcast.net>
-
-	* src/truetype/ttobjs.c (tt_driver_done): Fix typo.
-
-2004-05-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Done, BDF_Face_Init,
-	BDF_Set_Pixel_Size): Don't use BDF_XXX but FT_XXX arguments which
-	are typecast to the proper BDF_XXX types within the function.
-	Update code accordingly.
-	Use FT_CALLBACK_DEF throughout.
-	(BDF_Set_Point_Size): New wrapper function.
-	(bdf_driver_class): Remove casts.
-
-	* src/cff/cffdrivr.c (Get_Kerning, Load_Glyph, cff_get_interface):
-	Don't use CFF_XXX but FT_XXX arguments which are typecast to the
-	proper CFF_XXX types within the function.
-	Update code accordingly.
-	Use FT_CALLBACK_DEF throughout.
-	(cff_driver_class): Remove casts.
-
-	* src/cff/cffobjs.h, src/cff/cffobjs.c (cff_size_done,
-	cff_size_init, cff_size_reset, cff_slot_done, cff_slot_init,
-	cff_face_init, cff_face_done, cff_driver_init, cff_driver_done):
-	Don't use CFF_XXX but FT_XXX arguments which are typecast to the
-	proper CFF_XXX types within the function.
-	Update code accordingly.
-	(cff_point_size_reset): New wrapper function.
-
-	* src/cid/cidobjs.h, src/cid/cidobjs.c (cid_slot_done,
-	cid_slot_init, cid_size_done, cid_size_init, cid_size_reset,
-	cid_face_done, cid_face_init, cid_driver_init, cid_driver_done):
-	Don't use CID_XXX but FT_XXX arguments which are typecast to the
-	proper CID_XXX types within the function.
-	Update code accordingly.
-	(cid_point_size_reset): New wrapper function.
-
-	* src/cid/cidgload.c, src/cid/cidgload.h (cid_slot_load_glyph):
-	Don't use CID_XXX but FT_XXX arguments which are typecast to the
-	proper CID_XXX types within the function.
-	Update code accordingly.
-
-	* src/cid/cidriver.c (cid_get_interface):
-	Don't use CID_XXX but FT_XXX arguments which are typecast to the
-	proper CID_XXX types within the function.
-	Update code accordingly.
-	Use FT_CALLBACK_DEF.
-	(t1cid_driver_class): Remove casts.
-
-	* src/truetype/ttdriver.c (tt_get_interface): Use FT_CALLBACK_DEF.
-	* src/truetype/ttgxvar.c (ft_var_load_avar): Don't free non-local
-	variables (this is done later).
-	(ft_var_load_avar): Fix call to FT_FRAME_ENTER.
-	(TT_Get_MM_Var): Fix size for `fvar_fields'.
-	(TT_Vary_Get_Glyph_Deltas): Handle deallocation of local variables
-	correctly.
-
-	* src/base/ftdbgmem.c (ft_mem_debug_realloc): Don't abort if
-	current size is zero.
-
-2004-05-03  Steve Hartwell  <shspamsink@comcast.net>
-
-	* src/truetype/ttobjs.h, src/truetype/ttobjs.c (tt_face_init,
-	tt_face_done, tt_size_init, tt_size_done, tt_driver_init,
-	tt_driver_done): Don't use TT_XXX but FT_XXX arguments which are
-	typecast to the proper TT_XXX types within the function.
-	Update code accordingly.
-
-	* src/truetype/ttdriver.c (Get_Kerning, Set_Char_Sizes,
-	Set_Pixel_Sizes, Load_Glyph, tt_get_interface): Don't use TT_XXX but
-	FT_XXX arguments which are typecast to the proper TT_XXX types
-	within the function.
-	Update code accordingly.
-	(tt_driver_class): Remove casts.
-
-2004-05-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttload.c (tt_face_free_names): Check that `table->names'
-	is not NULL.  Reported by Gordon Childs <gchilds@quickcut.com.au>.
-
-2004-04-29  Werner Lemberg  <wl@gnu.org>
-
-	* docs/formats.txt: Add more information on PFR format.
-
-2004-04-28  Werner Lemberg  <wl@gnu.org>
-
-	* docs/formats.txt: New file.
-	* docs/CHANGES: Updated.
-
-2004-04-28  Masatake YAMATO  <jet@gyve.org>
-
-	* include/freetype/internal/tttypes.h (GX_BlendRec_)
-	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Fix a typo.
-
-	* src/truetype/ttgxvar.h (GX_BlendRec_): Fix a typo.
-
-2004-04-27  Masatake YAMATO  <jet@gyve.org>
-
-	* src/truetype/ttgxvar.h: Use FT_LOCAL instead of FT_LOCAL_DEF
-	for function declarations.
-
-2004-04-25  George Williams  <gww@silcom.com>
-
-	* src/truetype/ttgxvar.c (ft_var_apply_tuple): Fix typo.
-
-2004-04-25  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/Jamfile, docs/CHANGES: Updated.
-
-2004-04-24  Werner Lemberg  <wl@gnu.org>
-
-	* src/pcf/pcfdrivr.c: Revert change from 2004-04-17.
-	* src/pcf/pcfutil.c: Use FT_LOCAL_DEF.
-	* src/pcf/pcfutil.h: Include FT_CONFIG_CONFIG_H.
-	Use FT_BEGIN_HEADER and FT_END_HEADER.
-	Use FT_LOCAL.
-
-2004-04-24  George Williams  <gww@silcom.com>
-
-	Add support for Apple's distortable font technology (in GX fonts).
-
-	* devel/ftoption.h, include/freetype/config/ftoption.h
-	(TT_CONFIG_OPTION_GX_VAR_SUPPORT): New macro.
-
-	* include/freetype/ftmm.h (FT_Var_Axis, FT_Var_Named_Style,
-	FT_MM_Var): New structures.
-	(FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
-	FT_Set_Var_Blend_Coordinates): New function declarations.
-
-	* include/freetype/internal/services/svmm.h (FT_Get_MM_Var_Func,
-	FT_Set_Var_Design_Func): New typedefs.
-	Update MultiMasters service.
-
-	* include/freetype/internal/tttypes.h
-	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include FT_MULTIPLE_MASTERS_H.
-	(GX_Blend) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New typedef.
-	(TT_Face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: New members `doblend'
-	and `blend'.
-
-	* include/freetype/tttags.h (TTAG_avar, TTAG_cvar, TTAG_gvar): New
-	macros.
-
-	* include/freetype/internal/fttrace.h: Add `ttgxvar'.
-
-	* src/base/ftmm.c (FT_Get_MM_Var, FT_Set_Var_Design_Coordinates,
-	FT_Set_Var_Blend_Coordinates): New functions.
-
-	* src/sfnt/sfobjs.c (sfnt_load_face)
-	[TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Set FT_FACE_FLAG_MULTIPLE_MASTERS
-	flag for GX var fonts.
-
-	* src/truetype/ttgxvar.c, src/truetype/ttgxvar.h: New files.
-
-	* src/truetype/truetype.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
-	ttgxvar.c.
-
-	* src/truetype/ttdriver.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
-	FT_MULTIPLE_MASTERS_H, FT_SERVICE_MULTIPLE_MASTERS_H, and ttgxvar.h.
-	(tt_service_gx_multi_masters) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]:
-	New service.
-	(tt_services) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Updated.
-
-	* src/truetype/ttgload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
-	ttgxvar.h.
-	(TT_Process_Simple_Glyph, load_truetype_glyph)
-	[TT_CONFIG_OPTION_GX_VAR_SUPPORT] :Support GX var fonts.
-
-	* src/truetype/ttobjs.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
-	ttgxvar.h.
-	(tt_done_face) [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
-	tt_done_blend.
-
-	* src/truetype/ttpload.c [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Include
-	ttgxvar.h.
-	(tt_face_load_cvt)  [TT_CONFIG_OPTION_GX_VAR_SUPPORT]: Call
-	tt_face_vary_cvt.
-
-	* src/truetype/rules.mk (TT_DRV_SRC): Add ttgxvar.c.
-
-	* src/type1/t1driver.c (t1_service_multi_masters): Add T1_Get_MM_Var
-	and T1_Set_Var_Design.
-
-	* src/type1/t1load.c (FT_INT_TO_FIXED, FT_FIXED_TO_INT): New macros.
-	(T1_Get_MM_Var, T1_Set_Var_Design): New functions.
-
-	* src/type1/t1load.h (T1_Get_MM_Var, T1_Set_Var_Design): New
-	function declarations.
-
-2004-04-23  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ftcache.h (FT_Get_CharMap_Index): Rename
-	declaration and move to...
-	* include/freetype/freetype.h (FT_Get_Charmap_Index): Here.
-	(FREETYPE_PATCH): Set to 9.
-
-	* src/base/ftobjs.c (FT_Get_Charmap_Index): New function.
-
-	* builds/unix/configure.ac (version_info): Set to 9:7:3.
-	* builds/unix/configure: Updated.
-
-	* builds/win32/visualc/index.html,
-	builds/win32/visualc/freetype.dsp,
-	builds/win32/visualc/freetype.vcproj: s/218/219/.
-
-	* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
-	s/2.1.8/2.1.9/.
-
-	* docs/CHANGES, docs/VERSION.DLL: Updated.
-
-2004-04-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffparse.c (cff_parser_run), src/psaux/psobjs.c
-	(ps_parser_load_field): Use FT_CHAR_BIT.
-
-2004-04-21  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.8 released.
-	=========================
-
-
-	* src/cff/cffobjs.c (cff_face_init): Fix a small memory leak.
-
-	* src/autofit/afloader.c (af_loader_load_g), src/autofit/afmodule.c
-	(af_autofitter_load_glyph), src/base/ftdebug.c (FT_Trace_Get_Name):
-	Remove compiler warnings.
-
-	* src/autofit/aftypes.h: Undefine AF_DEBUG.
-
-	* src/lzw/zopen.c (rmask), src/pcf/pcfdrivr.c (pcf_service_bdf,
-	pcf_services), src/pcf/pcfread.c (tableNames), src/psaux/psobjs.c
-	(ft_char_table), src/type42/t42drivr.c (t42_service_glyph_dict,
-	t42_service_ps_font_name): Decorate data arrays with `const' to
-	avoid populating the `.data' segment.
-
-	* src/lzw/Jamfile: New file.
-
-2004-04-20  Werner Lemberg  <wl@gnu.org>
-
-	* src/psaux/psobjs.c (T1Radix): Renamed to...
-	(ps_radix): This.
-	Update current cursor position.
-
-	* docs/CHANGES: Updated.
-
-2004-04-18  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph),
-	src/ttdriver.c (Load_Glyph): Change type of `glyph_index' to
-	FT_UInt.  From Lex Warners.
-
-2004-04-17  Chisato Yamauchi  <cyamauch@a.phys.nagoya-u.ac.jp>
-
-	* src/sfnt/ttload.c (tt_face_load_sfnt_header): Really fix change
-	from 2004-03-19.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Use `ft_strlen'.
-
-	* src/pcf/pcfutil.c, src/pcf/pcfutil.h: Decorate functions with
-	`static'.
-	Remove unused function `RepadBitmap'.
-	* src/pcf/pcfdrivr.c: Don't include pcfutil.h.
-
-2004-04-16  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/freetype-config.in (usage): Fix and improve usage
-	information.
-
-2004-04-15  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/ftconfig.in, builds/vms/ftconfig.h: Define
-	FT_CHAR_BIT.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Don't apply autohinting if
-	glyph is vertically distorted or mirrored.
-
-	* src/cff/cffgload.c (cff_slot_load): Handle zero `size' properly
-	for embedded bitmaps.
-
-	* docs/CHANGES: Updated.
-
-2004-04-15  bytesoftware  <bytesoftware@btinternet.com>
-
-	* include/freetype/config/ftconfig.h, src/base/ftstream.c
-	(FT_Stream_ReadFields): More fixes using FT_CHAR_BIT.
-
-2004-04-14  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftconfig.h (FT_CHAR_BIT): New macro.
-
-2004-04-14  Alex Strelnikov  <ptktyrf@mail.ru>
-
-	* src/cache/ftcsbits.c (ftc_snode_load): Initialize `*asize' in case
-	of error.
-
-2004-04-14  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftmac.c [__GNUC__]: Define OS_INLINE.
-	* builds/unix/configure.ac: Don't try to remove `-ansi' compilation
-	switch on the Mac.
-
-	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
-	--copy' from libtool 1.5.6.
-	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
-	automake 1.8a.
-	* builds/unix/configure: Regenerated with autoconf 2.59a.
-
-2004-04-13  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftconfig.h: Use CHAR_BIT to define
-	size of FT_SIZEOF_xxx.
-
-2004-04-12  Chisato Yamauchi  <cyamauch@a.phys.nagoya-u.ac.jp>
-
-	* include/freetype/internal/sfnt.h (TT_Find_SBit_Image_Func,
-	TT_Load_SBit_Metrics_Func): New typedefs.
-	(SFNT_Interface): Add find_sbit_image and load_sbit_metrics.
-
-	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
-	* src/sfnt/ttsbit.h (tt_find_sbit_image, tt_load_sbit_metrics): New
-	declarations.
-	* src/sfnt/ttsbit.c (find_sbit_image): Renamed to...
-	(tt_find_sbit_image): This.
-	Updated all callers.
-	(load_sbit_metrics): Renamed to...
-	(tt_load_sbit_metrics): This.
-	Updated all callers.
-
-2004-04-12  Werner Lemberg  <wl@gnu.org>
-
-	* configure: Accept makepp also.
-
-	* builds/unix/detect.mk: Use proper path to unix-def.mk.
-	* builds/unix/unix-def.in (BUILD_DIR, PLATFORM): Remove.
-	* builds/unix/unix.mk (BUILD_DIR, PLATFORM): Define.
-	Use BUILD_DIR.
-
-	* docs/INSTALL, docs/INSTALL.GNU, docs/INSTALL.UNX: Update
-	documentation on makepp.
-
-2004-04-11  Werner Lemberg  <wl@gnu.org>
-
-	* src/lzw/zopen.c: Don't include sys/param.h and sys/stat.h.
-
-2004-04-10  Werner Lemberg  <wl@gnu.org>
-
-	* src/lzw/ftlzw.c: Include zopen.h dependent on
-	FT_CONFIG_OPTION_USE_LZW.
-
-	* src/base/ftdebug.c: s/index/idx/ to avoid compiler warnings.
-
-2004-04-02  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
-	--copy' from libtool 1.5.2.
-	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
-	automake 1.8a.
-	* builds/unix/configure: Regenerated with autoconf 2.59a.
-
-2004-04-01  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/ft-munmap.m4 (FT_MUNMAP_PARAM): Fix arguments of
-	AC_COMPILE_IFELSE.
-	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
-	automake 1.8a.
-	* builds/unix/configure: Regenerated with autoconf 2.59a.
-	* builds/unix/config.guess, builds/unix/config.sub: Updated from
-	`config' CVS module at subversions.gnu.org
-	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
-	`texinfo' CVS module at subversions.gnu.org.
-	* builds/freetype.mk (refdoc): Updated.
-
-2004-03-31  Werner Lemberg  <wl@gnu.org>
-
-	Handle broken FNT files which don't have a trailing NULL byte
-	in the face name string.
-
-	* src/winfonts/winfnt.h (FNT_FontRec): New member `family_name'.
-	* src/winfonts/winfnt.c (fnt_font_done): Free font->family_name.
-	(FNT_Face_Init): Append a final zero byte to the font face name.
-
-2004-03-30  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttload.c (tt_face_load_sfnt_header): Fix change from
-	2004-03-19.
-
-2004-03-27  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/descrip.mms (OBJS): Add ftbbox.obj.
-
-2004-03-26  George Williams  <gww@silcom.com>
-
-	Add vertical phantom points.
-
-	* include/freetype/internal/tttypes.h (TT_LoaderRec): Add
-	`top_bearing', `vadvance', `pp3, and `pp4'.
-
-	* src/autofit/afloader.c (af_loader_load_g): Handle two more points.
-
-	* src/autohint/ahhint.c (ah_hinter_load): Handle two more points.
-	* src/truetype/ttgload.c (Get_VMetrics): New function.
-	(TT_Load_Simple_Glyph, TT_Process_Simple_Glyph): Handle two more
-	points.
-	(load_truetype_glyph): Use Get_VMetrics.
-	Handle two more points.
-	(compute_glyph_metrics): Thanks to vertical phantom points we now
-	can always compute `advance_height' and `top_bearing'.
-	* src/truetype/ttobjs.h (TT_SubglyphRec): Add vertical phantom
-	points.
-
-
-	* src/autohint/ahglyph.c (ah_outline_load): Fix allocation of
-	`news'.
-
-2004-03-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Fix left side bearing.
-
-2004-03-20  Steve Hartwell  <shspamsink@comcast.net>
-
-	* src/cache/ftcmru.c (FTC_MruList_RemoveSelection): Handle a NULL
-	value for `selection' as `select all'.
-
-2004-03-19  Steve Hartwell  <shspamsink@comcast.net>
-
-	* src/sfnt/ttload.c (tt_face_load_sfnt_header): Reject face_index
-	values > 0 if loading non-TTC fonts.
-
-	* src/base/ftmac.c (open_face_from_buffer): Set positive face_index
-	to zero before calling FT_Open_Face.
-
-	* docs/CHANGES: Updated.
-
-2004-03-04  Werner Lemberg  <wl@gnu.org>
-
-	* Jamfile, vms_make.com, builds/win32/visualc/freetype.dsp,
-	builds/win32/visualc/freetype/vcproj, include/freetype/ftmoderr.h:
-	Add LZW module.
-
-	* Jamfile.in: Removed.
-
-	* docs/CHANGES: Updated.
-
-	* include/freetype/internal/ftobjs.h: s/MIN/FT_MIN/, s/MAX/FT_MAX/,
-	s/ABS/FT_ABS/.  Updated all callers.
-
-	* src/type1/t1load.c (parse_dict), src/pcf/pcfdrivr.c
-	(PCF_Face_Init): Use FT_ERROR_BASE.
-
-2004-03-04  Albert Chin  <china@thewrittenword.com>
-
-	Add support for PCF fonts compressed with LZW (extension .pcf.Z,
-	created with `compress').
-
-	* include/freetype/config/ftoption.h, devel/ftoption.h
-	(FT_CONFIG_OPTION_USE_LZW): New macro.
-
-	* include/freetype/ftlzw.h: New file.
-	* include/freetype/config/ftheader.h (FT_LZW_H): New macro for
-	ftlzw.h.
-
-	* src/lzw/*: New files.
-
-	* src/pcf/pcfdrivr.c: Include FT_LZW_H.
-	(PCF_Face_Init): Try LZW also.
-
-	* src/gzip/ftgzip.c: s/0/Gzip_Err_Ok/ where appropriate.
-	Beautify.
-
-2004-03-03  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshalgo.c (psh_hint_table_init): Simplify code.
-
-2004-03-02  Werner Lemberg  <wl@gnu.org>
-
-	Add embedded bitmap support to CFF driver.
-
-	* src/cff/cffobjs.h (CFF_SizeRec): New structure.
-
-	* src/cff/cffgload.c (cff_builder_init): Updated.
-	(cff_slot_load): Updated.
-	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Load sbit.
-
-	* src/cff/cffobjs.c (sbit_size_reset)
-	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: New function.
-	(cff_size_get_globals_funcs, cff_size_done, cff_size_init): Updated.
-	(cff_size_reset): Updated.
-	[TT_CONFIG_OPTION_EMBEDDED_BITMAPS]: Call sbit_size_reset.
-
-	* src/cff/cffdrivr.c (Load_Glyph): Updated.
-	(cff_driver_class): Use CFF_SizeRec.
-
-	* docs/CHANGES: Updated.
-
-2004-03-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshglob.c (psh_globals_scale_widths): Don't use
-	FT_RoundFix but FT_PIX_ROUND.
-	(psh_blues_snap_stem): Don't use blue_shift but blue_threshold.
-
-	* src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD_MAXIMUM): New macro.
-	(psh_glyph_find_string_points): Use PSH_STRONG_THRESHOLD_MAXIMUM.
-	(psh_glyph_find_blue_points): New function.  Needed for fonts like
-	p052003l.pfb (URW Palladio L Roman) which have flex curves at the
-	base line within blue zones, but the flex curves aren't covered by
-	hints.
-	(ps_hints_apply): Use psh_glyph_find_blue_points.
-
-2004-02-27  Garrick Meeker  <garrick@digitalanarchy.com>
-
-	* builds/unix/configure.ac: Fix compiler flags for
-	`--with-old-mac-fonts'.
-	* builds/unix/configure: Regenerated.
-
-	* src/base/ftmac.c: s/TARGET_API_MAC_CARBON/!TARGET_API_MAC_OS8/.
-	(FT_New_Face_From_Resource): New function.
-	(FT_New_Face): Use FT_New_Face_From_Resource.
-	(FT_New_Face_From_FSSpec): Use FT_New_Face_From_Resource.
-	[__MWERKS__]: Don't include FSp_fopen.h.
-
-2004-02-26  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshglob.c (psh_globals_new): Fix value of
-	`dim->stdw.count'.
-	Don't assign default values to blue scale and blue shift.
-
-2004-02-25  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2004-02-25  Garrick Meeker  <garrick@digitalanarchy.com>
-	    Steve Hartwell  <shspamsink@comcast.net>
-
-	Improve MacOS fond support.  Provide a new API
-	`FT_New_Face_From_FSSpec' similar to `FT_New_Face'.
-
-	* src/base/ftmac.c [__MWERKS__]: Include FSp_fpopen.h.
-	STREAM_FILE [__MWERKS__]: New macro.
-	(ft_FSp_stream_close, ft_FSp_stream_io) [__MWERKS__]: New functions.
-	(file_spec_from_path) [__MWERKS__]: Updated #if statement.
-	(get_file_type, make_lwfn_spec): Use `const' for argument.
-	(is_dfont) [TARGET_API_MAC_CARBON]: Removed.
-	(count_face_sfnt, count_faces): New functions.
-	(parse_fond): Do some range checking.
-	(read_lwfn): Change type of second argument.
-	No longer call FSpOpenResFile.
-	(OpenFileAsResource): New function.
-	(FT_New_Face_From_LWFN): Use `const' for second argument.
-	Use OpenFileAsResource.
-	(FT_New_Face_From_Suitcase): Change type of second argument.
-	No longer call FSpOpenResFile.
-	Loop over all resource indices.
-	(FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Removed.
-	(FT_GetFile_From_Mac_Name): Use `const' for first argument.
-	(ResourceForkSize): Removed.
-	(FT_New_Face): Updated to use new functions.
-	(FT_New_Face_From_FSSpec): New function.
-
-	* include/freetype/ftmac.h: Updated.
-
-2004-02-24  Malcolm Taylor  <mtaylor@clear.net.nz>
-
-	* src/autohint/ahhint.c (ah_hinter_load) <FT_GLYPH_FORMAT_OUTLINE>:
-	Handle case where outline->num_vedges is zero while computing hinted
-	metrics.
-
-2004-02-24  Gordon Childs  <gchilds@quickcut.com.au>
-
-	* src/cff/cffcmap.c (cff_cmap_unicode_init): Provide correct value
-	for `count'.
-
-2004-02-24  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/t1tables.h (PS_PrivateRec): Add
-	`expansion_factor'.
-
-	* src/pshinter/pshglob (psh_blues_scale_zones): Fix computation
-	of blues->no_overshoots -- `blues_scale' is stored with a
-	magnification of 1000, and `scale' returns fractional pixels.
-
-	* src/type1/t1load.c (T1_Open_Face): Initialize `blue_shift',
-	`blue_fuzz', `expansion_factor', and `blue_scale' according to the
-	Type 1 specification.
-
-	* src/type1/t1tokens.h: Handle `ExpansionFactor'.
-
-	* docs/CHANGES: Updated.
-
-2004-02-24  Masatake YAMATO  <jet@gyve.org>
-
-	Provide generic access to MacOS resource forks.
-
-	* src/base/ftrfork.c, include/freetype/internal/ftrfork.h: New
-	files.
-
-	* src/base/ftobjs.c: Include FT_INTERNAL_RFORK_H.
-	(Mac_Read_POST_Resource, Mac_Read_sfnt_Resource): Remove arguments
-	`resource_listoffset' and `resource_data' and adapt code
-	accordingly.  These values are calculated outside of the function
-	now.
-	Add new argument `offsets'.
-	(IsMacResource): Use `FT_Raccess_Get_HeaderInfo' and
-	`FT_Raccess_Get_DataOffsets'.
-	(load_face_in_embedded_rfork): New function.
-	(load_mac_face): Use load_face_in_embedded_rfork.
-	(ft_input_stream_new): Renamed to...
-	(FT_Stream_New): This.  Use FT_BASE_DEF.  Updated all callers.
-	(ft_input_stream_free): Renamed to...
-	(FT_Stream_Free): This.  Use FT_BASE_DEF.  Updated all callers.
-
-	* src/base/ftbase.c: Include ftrfork.c.
-
-	* src/base/rules.mk (BASE_SRC), src/base/Jamfile: Updated.
-
-	* include/freetype/internal/internal.h (FT_INTERNAL_RFORK_H):
-	New macro.
-
-	* include/freetype/internal/fttrace.h: Added `rfork' as a new
-	trace definition.
-
-	* include/freetype/internal/ftstream.h: Declare FT_Stream_New and
-	FT_Stream_Free.
-
-	* include/freetype/config/ftoption.h, devel/ftoption.h
-	(FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK): New option.
-
-	* include/freetype/config/ftstdlib.h (ft_strrchr): New macro.
-
-2004-02-23  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-	* include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
-
-2004-02-23  Masatake YAMATO  <jet@gyve.org>
-
-	Provide a simple API to control FreeType's tracing levels.
-
-	* include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
-	FT_Trace_Get_Name): New declarations.
-
-	* src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
-	functions.
-
-2004-02-23  David Turner  <david@freetype.org>
-
-	* src/autofit/afhints.c, src/autofit/afhints.h,
-	src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave
-	bugs have been fixed.  The auto-fitter works, doesn't crash, but
-	still produces unexpected results...
-
-2004-02-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshalgo.c (PSH_STRONG_THRESHOLD): Changed to hold
-	the accepted shift for strong points in fractional pixels (which
-	is a heuristic value).
-	(psh_glyph_find_strong_points): Compute threshold for
-	psh_hint_table_find_strong_points.
-	(psh_hint_table_find_strong_point): Add parameter to pass threshold.
-
-2004-02-20  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshrec.c (ps_mask_table_set_bits): Don't call
-	ps_mask_table_alloc but ps_mask_table_last.
-	(ps_hints_t2mask): Use correct position and number for vertical
-	and horizontal hinter mask bits.
-
-	* docs/CHANGES: Updated.
-
-2004-02-19  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftstroke.c (FT_Glyph_StrokeBorder): Fix enum handling.
-	* src/cff/cffdrivr.c (cff_get_cmap_info): Remove compiler warning.
-
-2004-02-18  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h: Document FT_LOAD_TARGET_XXX properly.
-
-	* src/base/ftglyph.c (ft_bitmap_glyph_class,
-	ft_outline_glyph_class): Tag with FT_CALLBACK_TABLE_DEF.
-
-	* src/smooth/ftsmooth.c (ft_smooth_render): Handle
-	FT_RENDER_MODE_LIGHT.
-
-2004-02-17  Werner Lemberg  <wl@gnu.org>
-
-	Fix callback functions in cache module.
-
-	* src/cache/ftccback.h: New file for callback declarations.
-
-	* src/cache/ftcbasic.c (ftc_basic_family_compare,
-	ftc_basic_family_init, ftc_basic_family_get_count,
-	ftc_basic_family_load_bitmap, ftc_basic_family_load_glyph,
-	ftc_basic_gnode_compare_faceid): Use FT_CALLBACK_DEF.
-	(ftc_basic_image_family_class, ftc_basic_image_cache_class,
-	ftc_basic_sbit_family_class, ftc_basic_sbit_cache_class):
-	Use FT_CALLBACK_TABLE_DEF and local wrapper functions.
-
-	* src/cache/ftccache.c: Include ftccback.h.
-	(ftc_cache_init, ftc_cache_done): New wrapper functions which use
-	FT_LOCAL_DEF.
-
-	* src/cache/ftccmap.c: Include ftccback.h.
-	(ftc_cmap_cache_class): Use local wrapper functions.
-
-	* src/cache/ftcglyph.c: Include ftccback.h.
-	(ftc_gnode_compare, ftc_gcache_init, ftc_gcache_done): New wrapper
-	functions which use FT_LOCAL_DEF.
-
-	* src/cache/ftcimage.c: Include ftccback.h.
-	(ftc_inode_free, ftc_inode_new, ftc_inode_weight): New wrapper
-	functions which use FT_LOCAL_DEF.
-
-	* src/cache/ftcmanag.c (ftc_size_list_class, ftc_face_list_class):
-	Use FT_CALLBACK_TABLE_DEF.
-
-	* src/cache;/ftcsbits.c: Include ftccback.h.
-	(ftc_snode_free, ftc_snode_new, ftc_snode_weight,
-	ftc_snode_compare): New wrapper functions which use FT_LOCAL_DEF.
-
-	* src/cache/rules.mk (CACHE_DRV_H): Add ftccback.h.
-
-2004-02-17  Masatake YAMATO  <jet@gyve.org>
-
-	* include/freetype/ftmac.h (FT_GetFile_From_Mac_Name): Fix a typo
-	(FT_EXPORT_DEF -> FT_EXPORT).
-
-	* include/freetype/ftxf86.h (FT_Get_X11_Font_Format): Ditto.
-
-2004-02-15  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftobjs.c (FT_Set_Char_Size): Fix typo.
-
-2004-02-14  Masatake YAMATO  <jet@gyve.org>
-
-	* builds/unix/ftsystem.c: Include errno.h.
-	(ft_close_stream): Renamed to...
-	(ft_close_stream_by_munmap): This.
-	(ft_close_stream_by_free): New function.
-	(FT_Stream_Open): Use fallback method if mmap fails.
-	Use proper function for closing the stream.
-
-2004-02-14  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_dict): Initialize `start_binary'.
-
-2004-02-13  Robert Etheridge  <roberte@stcc.cc.tx.us>
-
-	* src/type42/t42objs.c (T42_Face_Init), src/type1/t1objs.c
-	(T1_Face_Init), src/cid/cidobjs.c (cid_face_init): Fix computation
-	of underline_position and underline_thickness.
-
-2004-02-12  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftobjs.c (FT_Set_Char_Size): Return immediately if
-	ppem values don't change.  Suggested by Graham Asher.
-
-2004-02-11  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidload.c (cid_face_open): Always allocate
-	face->cid_stream so that we can deallocate it safely.
-
-2004-02-10  Werner Lemberg  <wl@gnu.org>
-
-	Make the PS parser more tolerant w.r.t. non-standard font data.  In
-	general, an error is only reported in case of a syntax error; a
-	wrong type is now simply ignored (if possible).  To be independent
-	of the order of various MM-specific keywords, the parse_shared_dict
-	routine has been removed -- the PS parser is now capable to skip
-	this data.  It no longer fails on parsing e.g.
-
-	  dup /WeightVector exch def
-
-	Since the token following /WeightVector isn't `[' (starting an
-	array) it is simply ignored.
-
-	* include/freetype/fterrdef.h: Define `FT_Err_Ignore' (0xA2) as a
-	new internal error value.
-
-	* src/type1/t1load.c (parse_blend_axis_types,
-	parse_blend_design_positions, parse_blend_design_map): Return
-	T1_Err_Ignore if no proper array is following the keyword.
-	(parse_weight_vector): Use T1_ToTokenArray, initializing `blend'
-	structure, if necessary.
-	Return T1_Err_Ignore if no proper array is following the keyword.
-	(parse_shared_dict): Removed.
-	(parse_encoding): Set parser->root.error to return T1_Err_Ignore
-	if no result can be obtained.
-	Check for errors before accessing `elements' array.
-	(t1_keywords): Remove /shareddict.
-	(parse_dict): Reset error if t1_load_keyword returns T1_Err_Ignore.
-	Set keyword_flag only in case of success.
-	Check error code if skipping an unrecognized token.
-	(T1_Open_Face) [!T1_CONFIG_OPTION_NO_MM_SUPPORT]: Call T1_Done_Blend
-	if blend commands haven't set up a proper MM font.
-
-	* src/psaux/psobjs.c (ps_parser_load_field_table): Remove special
-	code for synthetic fonts.
-	Return PSaux_Err_Ignore if no proper value has been found.
-
-2004-02-09  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
-	<cff_op_endchar>: Preserve glyph width before calling
-	cff_operator_seac.
-
-2004-02-09  Martin Muskens  <mmuskens@aurelon.com>
-
-	* src/cff/cffgload.c (cff_decoder_parse_charstrings): Handle special
-	first argument for `hintmask' and `cntrmask' operators also.
-
-2004-02-08  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.in: Call AC_SUBST for `enable_shared',
-	`hardcode_libdir_flag_spec', and `wl'.
-	* builds/unix/configure: Regenerated.
-
-	* builds/unix/freetype-config.in: Make --prefix and --exec-prefix
-	actually work.
-	Report a proper --rpath (or -R) value for --libs argument if a
-	shared library has been built.
-
-	* docs/CHANGES: Updated.
-
-2004-02-07  Keith Packard  <keithp@keithp.com>
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init, BDF_Set_Pixel_Size): Fix
-	computation of various vertical and horizontal metric values.
-
-	* src/pcfdrivr.c (PCF_Set_Pixel_Size), src/pcfread (pcf_load_font):
-	Ditto.
-
-2004-02-07  Werner Lemberg  <wl@gnu.org>
-
-	* builds/win32/visualc/index.html,
-	builds/win32/visualc/freetype.dsp,
-	builds/win32/visualc/freetype.dsw, docs/CHANGES: Updated.
-
-2004-02-07  Vitaliy Pasternak  <v_a_pasternak@mail.ru>
-
-	* builds/win32/visualc/freetype.sln,
-	builds/win32/visualc/freetype.vcproj: New files for VS.NET 2003.
-
-2004-02-03  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP):
-	Initialize `node'.
-	* src/type1/t1load.c (parse_dict): Initialize `have_integer'.
-
-2004-02-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_dict): Handle `RD' and `-|' commands
-	outside of /Subrs or /CharStrings.  This can happen if there is
-	additional code manipulating those two arrays so that FreeType
-	doesn't recognize them properly.
-	(T1_Open_Face): Improve an error message.
-
-2004-02-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_charstrings): Exit immediately if
-	there are no elements in /CharStrings.  This is needed for fonts
-	like Optima-Oblique which not only define /CharStrings but access it
-	also.
-
-2004-02-01  David Turner  <david@freetype.org>
-
-	* src/sfnt/Jamfile: Removing `ttcmap' from the list of sources.
-
-	* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP)
-	<FTC_INLINE>: Provide macro version which doesn't use inline code.
-	* include/freetype/cache/ftcglyph.h (FTC_GCACHE_LOOKUP_CMP)
-	<FTC_INLINE>: Ditto.
-	Use FTC_MRULIST_LOOKUP_CMP.
-	* include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): New
-	macro.
-	(FTC_MRULIST_LOOKUP): Use it.
-
-	* src/cache/Jamfile (_sources), src/cache/descrip.mms: Updated.
-	* src/cache/ftcbasic.c: Fix compiler warnings.
-	* src/cache/ftcmanag.c (FTC_Manager_LookupSize,
-	FTC_Manager_LookupFace) <FTC_INLINE>: Use FTC_MRULIST_LOOKUP_CMP.
-	* src/cache/ftcmru.c (FTC_MruList_Find): Fix a bug (found after
-	heavy testing).
-
-	* Jamfile: Updating `refdoc' target, and adding `autohint' to the
-	list of modules to build.  Both the autohinter and autofitter will
-	be built by default.  But which one will be used is determined by
-	the content of `ftmodule.h'.
-
-	* src/autofit/*: Many updates, but the code is still buggy...
-
-2004-01-31  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffgload.c (cff_operator_seac): Fix magnitude of
-	accent offset.
-	Update code similarly to the seac support for Type 1 fonts.
-	(cff_decoder_parse_charstrings) <cff_op_endchar>: Fix magnitude
-	of accent offset.
-	Don't hint glyphs twice if seac is emulated.
-	<cff_op_flex>: Assign correct point tags.
-	* docs/CHANGES: Updated.
-
-2004-01-30  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1parse.c (T1_Get_Private_Dict): Use FT_MEM_MOVE, not
-	FT_MEM_COPY, for copying the private dict.
-
-	* src/type1/t1load.c (parse_subrs): Assign number of subrs only
-	in first run.
-	(parse_charstrings): Parse /CharStrings in second run without
-	assigning values.
-	(parse_dict): Skip all /CharStrings arrays but the first.  We need
-	this for non-standard fonts like `Optima' which have different
-	outlines depending on the resolution.  Note that there is no
-	guarantee that we get fitting /Subrs and /CharStrings arrays; this
-	can only be done by a real PS interpreter.
-
-2004-01-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
-
-	* builds/win32/visualc/index.html: New file, giving detailed
-	explanations about forcing CR+LF line endings for the VC++ project
-	files.
-
-2004-01-22  Garrick Meeker  <garrick@digitalanarchy.com>
-
-	* src/cff/cffload.c (cff_subfont_load): Initialize `dict'.
-
-2004-01-22  Werner Lemberg  <wl@gnu.org>
-
-	Add support for the hexadicimal representation of binary data
-	started with `StartData' in CID-keyed Type 1 fonts.
-
-	* include/freetype/internal/t1types.h (CID_FaceRec): Add new
-	members `binary_data' and `cid_stream'.
-
-	* src/cid/cidload.c (cid_read_subrs): Use `face->cid_stream'.
-	(cid_hex_to_binary): New auxiliary function.
-	(cid_face_open): Add new argument `face_index' to return quickly
-	if less than zero.  Updated all callers.
-	Call `cid_hex_to_binary', then open and assign memory stream to
-	`face->cid_stream' if `parser->binary_length' is non-zero.
-	* src/cid/cidload.h: Updated.
-
-	* src/cid/cidobjs.c (cid_face_done): Free `binary_data' and
-	`cid_stream'.
-
-	* src/cid/cidparse.c (cid_parser_new): Check arguments to
-	`StartData' and set parser->binary_length accordingly.
-	* src/cid/cidparse.h (CID_Parser): New member `binary_length'.
-
-	* src/cid/cidgload.c (cid_load_glyph): Use `face->cid_stream'.
-
-	* docs/CHANGES: Updated.
-
-2004-01-21  Werner Lemberg  <wl@gnu.org>
-
-	include/freetype/config/ftstdlib.h (ft_atoi): Replaced with...
-	(ft_atol): This.
-	* src/base/ftdbgmem.c: s/atol/ft_atol/.
-	* src/type42/t42drivr.c: s/ft_atoi/ft_atol/.
-
-2004-01-20  Masatake YAMATO  <jet@gyve.org>
-
-	* include/freetype/ftcache.h: Delete duplicated definition of
-	FTC_FaceID.
-
-	* src/cff/cffdrivr.c (cff_get_cmap_info): Call sfnt module's TT CMap
-	Info service function if the cmap comes from sfnt.  Return 0 if the
-	cmap is sythesized in cff module.
-
-2004-01-20  David Turner  <david@freetype.org>
-
-	* src/cache/ftcmanag.c (ftc_size_node_compare): Call
-	FT_Activate_Size.
-
-2004-01-20  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1parse.c (T1_Get_Private_Dict): Skip exactly one
-	CR, LF, or CR/LF after `eexec'.
-
-2004-01-18  David Turner  <david@freetype.org>
-
-	* src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Remove compiler
-	warning.
-
-	* src/tools/docmaker/*: Updating beautifier tool.
-
-2004-01-15  David Turner  <david@freetype.org>
-
-	* src/base/ftoutln.c (ft_orientation_extremum_compute): Fix
-	infinite loop bug.
-
-	* include/freetype/ftstroke.h: Include FT_GLYPH_H.
-	(FT_Stroker_Rewind, FT_Glyph_Stroke, FT_Glyph_StrokeBorder): New
-	declarations.
-
-	* src/base/ftstroke.c: Include FT_INTERNAL_OBJECTS_H.
-	(FT_Outline_GetOutsideBorder): Inverse result.
-	(FT_Stroker_Rewind, FT_Glyph_Stroke, FT_GlyphStrokeBorder): New
-	functions.
-	(FT_Stroker_EndSubPath): Close path if needed.
-	(FT_Stroker_Set, FT_Stroker_ParseOutline): Use FT_Stroker_Rewind.
-
-	* include/freetype/cache/ftcmanag.h (FTC_ScalerRec,
-	FTC_Manager_LookupSize): Moved to...
-	* include/freetype/ftcache.h (FTC_ScalerRec,
-	FTC_Manager_LookupSize): Here.
-
-	* src/tools/docmaker/docbeauty.py: New file to beautify the
-	documentation comments (e.g., to convert them to single block border
-	mode).
-	* src/tools/docmaker/docmaker.py (file_exists, make_file_list):
-	Moved to...
-	* src/tools/docmaker/utils.py (file_exists, make_file_list): Here.
-
-2004-01-14  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/ftmemory.h (FT_ARRAY_COPY,
-	FT_ARRAY_MOVE): New macros to make copying arrays easier.
-	Updated all relevant code to use them.
-
-2004-01-14  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffload.c (cff_font_load): Load charstrings_index earlier.
-	Use number of charstrings as argument to CFF_Load_FD_Select (as
-	documented in the CFF specs).
-
-2004-01-13  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/pshinter/pshalgo.c (psh_glyph_init): Move assignment of
-	`glyph->memory' up to free arrays properly in case of failure.
-
-2004-01-10  Masatake YAMATO  <jet@gyve.org>
-
-	Make `FT_Get_CMap_Language_ID' work with CFF.  Bug reported by
-	Steve Hartwell <shspamsink@comcast.net>.
-
-	* src/cff/cffdrivr.c: Include FT_SERVICE_TT_CMAP_H.
-	(cff_services): Added an entry for FT_SERVICE_ID_TT_CMAP.
-	(cff_get_cmap_info): New function.
-	(cff_service_get_cmap_info) New entry for cff_services.
-
-	* src/sfnt/ttcmap0.c: Exit loop after a format match has been found.
-	Suggested by Steve Hartwell <shspamsink@comcast.net>.
-
-2004-01-03  Masatake YAMATO  <jet@gyve.org>
-
-	* src/base/ftobjs.c (destroy_charmaps): New function.
-	(destroy_face, open_face): Use `destroy_charmaps'.
-
-2004-01-01  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2004-01-01  Michael Jansson  <mjan@em2-solutions.com>
-
-	* src/winfonts/winfnt.c (FNT_Size_Set_Pixels): Fix sign of
-	size->metrics.descender.
-
-2003-12-31  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
-	[FT_DEBUG_LEVEL_TRACE]: Use `%ld' in FT_TRACE4.
-	<cff_op_flex1>: Change type of dx and dy to FT_Pos and remove
-	cast for accessing arguments.
-
-2003-12-31  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Revert previous
-	change.  It's not necessary.
-
-2003-12-29  Smith Charles  <smith.charles@free.fr>
-
-	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Handle `repeated
-	flags set' correctly.
-
-2003-12-29  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffobjs.c (cff_face_init): Fix memory leak by deallocating
-	`full' and `weight' properly.
-	* src/cff/cffgload.c (cff_decoder_parse_charstrings)
-	<cff_op_hintmask> [FT_DEBUG_LEVEL_TRACE]: Use `0x' as prefix for
-	tracing output.
-
-2003-12-26  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/sfnt.h (TT_Set_SBit_Strike_Func):
-	Use FT_UInt for ppem values.
-	* src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Use FT_UInt for
-	ppem values.
-	* src/sfnt/ttsbit.h: Updated.
-
-	* src/base/ftobjs.c (FT_Set_Pixel_Sizes): Don't allow ppem values
-	larger than -0FFFF.
-
-2003-12-25  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/fttrigon.c, src/base/ftgloadr.c: Inlude
-	FT_INTERNAL_OBJECTS_H.
-
-	* src/base/ftstroke.c (FT_Outline_GetInsideBorder,
-	FT_Outline_GetOutsideBorder): s/or/o/ to make it compile with
-	C++ compilers.
-
-	* src/cache/ftcmru.c, include/freetype/cache/ftcmru.h:
-	s/select/selection/ to avoid compiler warning.
-	* src/cff/cffload.h: s/select/ftselect/ to avoid potential
-	compiler warning.
-
-2003-12-24  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftcsbits.c (FTC_SNode_Weight):
-	s/FTC_SBIT_ITEM_PER_NODE/FTC_SBIT_ITEMS_PER_NODE/.
-
-2003-12-24  David Turner  <david@freetype.org>
-
-	* Fixed compilation problems in the cache sub-system.
-
-	* Partial updates to src/autofit.
-
-	* Jamfile (FT2_COMPONENTS): Add autofit module.
-
-2003-12-23  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffgload.c (cff_lookup_glyph_by_stdcharcode): Handle
-	CID-keyed fonts.
-
-2003-12-23  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/ftobjs.h (FT_PAD_FLOOR, FT_PAD_ROUND,
-	FT_PAD_CEIL, FT_PIX_FLOOR, FT_PIX_ROUND, FT_CEIL): New macros.  They
-	are used to avoid compiler warnings with very pedantic compilers.
-	Note that `(x) & -64' causes a warning if (x) is not signed.  Use
-	`(x) & ~63' instead!
-	Updated all related code.
-
-	Add support for extraction of `inside' and `outside' borders.
-
-	* src/base/ftstroke.c (FT_StrokerBorder): New enumeration.
-	(FT_Outline_GetInsideBorder, FT_Outline_GetOutsideBorder,
-	FT_Stroker_GetBorderCounts, FT_Stroker_ExportBorder): New functions.
-	(FT_StrokeBorderRec): New boolean member `valid'.
-	(ft_stroke_border_get_counts): Updated.
-	* include/freetype/ftstroke.h: Updated.
-
-2003-12-22  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ftwinfnt.h (FT_WinFNT_ID_*): New definitions
-	to describe the `charset' field in FT_WinFNT_HeaderRec.
-	* src/winfonts/winfnt.c (FNT_Face_Init): Set encoding to
-	FT_ENCODING_NONE except for FT_WinFNT_ID_MAC.
-
-	* include/freetype/freetype.h (FT_Encoding): Improve comment,
-	based on work by Detlef W�rkner <TetiSoft@apg.lahn.de>.
-
-	* docs/CHANGES: Updated.
-
-2003-12-22  David Turner  <david@freetype.org>
-
-	* include/freetype/ftcache.h,
-	include/freetype/cache/ftcmanag.h,
-	include/freetype/cache/ftccache.h,
-	include/freetype/cache/ftcmanag.h,
-	include/freetype/cache/ftcmru.h (added),
-	include/freetype/cache/ftlru.h (removed),
-	include/freetype/cache/ftcsbits.h,
-	include/freetype/cache/ftcimage.h,
-	include/freetype/cache/ftcglyph.h,
-	src/cache/ftcmru.c,
-	src/cache/ftcmanag.c,
-	src/cache/ftccache.c,
-	src/cache/ftcglyph.c,
-	src/cache/ftcimage.c,
-	src/cache/ftcsbits.c,
-	src/cache/ftccmap.c,
-	src/cache/ftcbasic.c (added),
-	src/cache/ftclru.c (removed):
-
-	  *Complete* rewrite of the cache sub-system to `solve' the
-	  following points:
-
-	    - all public APIs have been moved to FT_CACHE_H, everything
-	      under `include/freetype/cache' is only needed by client
-	      applications that want to implement their own caches
-
-	    - a new function named FTC_Manager_RemoveFaceID to deal
-	      with the uninstallation of FaceIDs
-
-	    - the image and sbit cache are now abstract classes, that
-	      can be extended much more easily by client applications
-
-	    - better performance in certain areas. Further optimizations
-	      to come shortly anyway...
-
-	    - the FTC_CMapCache_Lookup function has changed its signature,
-	      charmaps can now only be retrieved by index
-
-	    - FTC_Manager_Lookup_Face => FTC_Manager_LookupFace
-	      FTC_Manager_Lookup_Size => FTC_Manager_LookupSize (still in
-	      private header for the moment)
-
-2003-12-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_dict): Stop parsing if `eexec' keyword
-	is encountered.
-
-2003-12-19  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cfftypes.h (CFF_MAX_CID_FONTS): Increase to 32.  For
-	example, the Japanese Hiragino font already contains 15 subfonts.
-
-	* src/cff/cffload.c (cff_font_load): Deallocate `sids' array for
-	CID-keyed fonts.
-
-	* devel/ftoption.h: Define FT_DEBUG_MEMORY.
-
-2003-12-18  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ttnameid.h (TT_ADOBE_ID_LATIN_1): New macro.
-	* src/type1/t1objs.c (T1_Face_Init): Use TT_ADOBE_ID* values.
-
-2003-12-18  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cfftypes.h (CFF_FontRecDictRec): Change type of
-	`cid_count' to `FT_ULong'.
-
-	* src/cff/cffgload.c (cff_slot_load): Take care of empty `cids'
-	array.
-
-	* src/cff/cffload.c (cff_charset_done): Free `cids' array.
-	(cff_font_load): Create cids array only for CID-keyed fonts which
-	are subsetted.
-
-	* src/cff/cffobjs.c (cff_face_init): Check the availability of
-	the PSNames modules for non-pure CFFs also.
-	Set FT_FACE_FLAG_GLYPH_NAMES for a non-pure CFF also if it isn't
-	CID-keyed.
-
-	* src/cff/rules.mk (CFF_DRV_H): Add cfftypes.h.
-
-2003-12-17  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/sfobjs.c (sfnt_init_face): Don't set
-	FT_FACE_FLAG_GLYPH_NAMES if the font contains a version 3.0 `post'
-	table.
-
-	* docs/CHANGES: Updated.
-
-2003-12-17  Masatake YAMATO  <jet@gyve.org>
-
-	Add new function FT_Get_CMap_Language_ID to extract the language ID
-	for TrueType/sfnt fonts.
-
-	* include/freetype/internal/services/svttcmap.h: New file.
-	* include/freetype/internal/ftserv.h (FT_SERVICE_TT_CMAP_H): Add
-	svttcmap.h.
-
-	* src/sfnt/sfdriver.c: Include ttcmap0.h.
-	(tt_service_get_cmap_info): New service.
-	(sfnt_services): Updated.
-
-	* src/sfnt/ttcmap0.c (tt_cmap*_get_info): New functions.
-	(tt_cmap*_class_rec): Add tt_cmap*_get_info members.
-	(tt_get_cmap_info): New function.
-	* src/sfnt/ttcmap0.h: Include FT_SERVICE_TT_CMAP_H.
-	(TT_CMap_ClassRec): New field `get_cmap_info'.
-	(tt_get_cmap_info): New declaration.
-
-	* src/base/ftobjs.c: Include FT_SERVICE_TT_CMAP_H.
-	(FT_Get_CMap_Language_ID): New function implementation.
-	* include/freetype/tttables.h (FT_Get_CMap_Language_ID): New
-	function declaration.
-
-2003-12-16  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttcmap.c, src/sfnt/ttcmap.h: Removed.  Obsolete.
-
-	* include/freetype/internal/sfnt.h (SFNT_Interface): Remove
-	obsolete fields `load_charmap' and `free_charmap'.
-	(TT_CharMap_Load_Func, TT_CharMap_Free_Func): Removed.
-	* src/sfnt/sfnt.c: Don't include ttcmap.c.
-	* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttcmap.c.
-	* src/sfnt/ttload.c: Don't include ttcmap.h.
-	* src/sfnt/sfdriver.c: Don't include ttcmap.h.
-	(sfnt_interface): Updated.
-
-	* include/freetype/internal/tttypes.h (TT_TableDirRec,
-	TT_CMapDirRec, TT_CMapDirEntryRec, TT_CMap0, TT_CMap2SubHeaderRec,
-	TT_CMap2Rec, TT_CMap4Segment, TT_CMap4Rec, TT_CMap6,
-	TT_CMapGroupRec, TT_CMap8_12Rec, TT_CMap10Rec, TT_CharMap_Func,
-	TT_CharNext_Func, TT_CMapTableRec, TT_CharMapRec): Removed.
-	Obsolete.
-	* src/cff/cffobjs.h (CFF_CharMapRec): Removed.  Obsolete.
-
-2003-12-15  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2003-12-15  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* builds/atari/*: New directory for building FreeType 2 on Atari
-	with the PureC compiler.
-
-2003-12-12  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String): Add
-	cast.
-	* src/cff/cffdrivr.c (cff_ps_has_glyph_names): Assure that return
-	value is either 0 or 1.
-
-2003-12-12  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffdrivr.c (cff_get_glyph_name): Improve error message.
-	(cff_get_name_index): Return if no PSNames service is available.
-	(cff_ps_has_glyph_names): Handle CID-keyed fonts correctly.
-	* src/cff/cfftypes.h (CFF_CharsetRec): New field `cids', used for
-	CID-keyed fonts.  This is the inverse mapping of `sids'.
-	* src/cff/cffload.c (cff_charset_load): New argument `invert'.
-	Initialize charset->cids if `invert' is set.
-	(cff_font_load): In call to cff_charset_load, set `invert' to true
-	for CID-keyed fonts.
-	* src/cff/cffgload.c (cff_slot_load): Handle glyph index as CID
-	and map it to the real glyph index.
-
-	* docs/CHANGES: Updated.
-
-2003-12-11  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffobjs.c (cff_face_init): Don't set
-	FT_FACE_FLAG_GLYPH_NAMES for CID-keyed fonts.
-	Don't construct a cmap for CID-keyed fonts.
-
-2003-12-10  Werner Lemberg  <wl@gnu.org>
-
-	Use implementation specific SID value 0xFFFF to indicate that
-	a dictionary element is missing.
-
-	* src/cff/cffload.c (cff_subfont_load): Initialize all fields
-	which hold SIDs to 0xFFFF.
-	(cff_index_get_sid_string): Handle SID value 0xFFFF.
-	Handle case where `psnames' is zero.
-	(cff_font_load): Updated.
-	Don't load encoding for CID-keyed CFFs.
-
-	* src/cff/cffobjs.c (cff_face_init): Updated.
-	Don't check for PSNames module if font is CID-keyed.
-	Compute style name properly (using the same algorithm as in the
-	CID driver).
-	Fix computation of style flags.
-
-	* src/cff/cfftoken.h: Comment out handling of base_font_name.
-	Rename `postscript' field to `embedded_postscript'
-	* src/cff/cfftypes.h (CFF_FontRecDictRec): Remove `base_font_name'
-	and `postscript'.
-
-2003-12-10  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/pcf/pcfdrivr.c (pcf_get_charset_id): New function (a clone
-	of the similar BDF function).
-	(pcf_service_bdf): Use it.
-
-2003-12-09  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/sfobjs.c (sfnt_load_face): Set FT_FACE_FLAG_GLYPH_NAMES
-	only if a `post' table is present.
-
-2003-12-09  George Williams  <gww@silcom.com>
-
-	* src/base/ftobjs.c (load_mac_face): Recent versions of Linux
-	support Mac's HFS+ file system, thus enable code to read /rsrc on
-	non-Macintosh platforms also.
-
-2003-12-08  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/psaux.h (PS_TableRec): Change type
-	of `lengths' to FT_PtrDist.
-	(T1_DecoderRec): Change type of `subrs_len' to FT_PtrDist.
-	* include/freetype/internal/t1types.h (T1_FontRec): Change type
-	of `subrs_len' and `charstrings_len' to FT_PtrDist.
-
-	* src/base/ftobjs.c (Mac_Read_POST_Resource): Replace `junk'
-	variable with better solution.
-	(IsMacResource): Remove unused variable `map_len'.
-	Replace `junk' variable with better solution.
-	(FT_Open_Face) [!FT_MACINTOSH]: Add conditional
-	FT_CONFIG_OPTION_MAC_FONTS.
-
-2003-12-08  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/autohint/ahhint.c (ah_hinter_hint_edges,
-	ah_hinter_align_strong_points): Add some casts.
-
-	* src/base/ftoutln.c (FT_OrientationExtremumRec): Change type
-	of `pos' to FT_Long.
-
-	* src/base/ftobjs.c (Mac_Read_POST_Resource,
-	Mac_Read_sfnt_Resource): Change type of `len' to FT_Long.
-
-	* src/type42/t42parse.c (t42_parse_dict): Add cast for `n_keywords'.
-
-2003-12-07  Werner Lemberg  <wl@gnu.org>
-
-	* docs/raster.txt: New file, taken from FreeType 1 and completely
-	revised.
-
-2003-12-04  Masatake YAMATO  <jet@gyve.org>
-
-	* src/type1/t1driver.c (Get_Interface): Remove FT_UNUSED for
-	t1_interface.  t1_interface is used.
-
-2003-11-27  David Turner  <david@freetype.org>
-
-	* src/pfr/pfrdrivr.c (pfr_get_metrics): Revert incorrect change of
-	2003-11-23: For PFR fonts, metrics->x_scale and metrics->y_scale are
-	the scaling values for outline units, not for metric units.
-
-2003-11-25  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftcalc.c, include/freetype/internal/ftcalc.h
-	(FT_MulDiv_No_Round): Surround code with `#ifdef
-	TT_CONFIG_OPTION_BYTECODE_INTERPRETER ... #endif'.
-
-2003-11-23  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftcalc.c (FT_MulDiv_No_Round): New function (32 and
-	64 bit version).
-	* include/freetype/internal/ftcalc.h: Updated.
-
-	* src/truetype/ttinterp.c (TT_MULDIV_NO_ROUND): New macro.
-	(TT_INT64): Removed.
-	(DO_DIV): Use TT_MULDIV_NO_ROUND.
-
-	* src/pfr/pfrdrivr.c (pfr_get_metrics): Directly use
-	metrics->x_scale and metrics->y_scale.
-
-2003-11-22  Rogier van Dalen  <R.C.van.Dalen@umail.leidenuniv.nl>
-
-	* src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
-	(Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
-	functions.  Similar to Direct_Move, Direct_Move_X, and
-	Direct_Move_Y but without touching.
-	(Compute_Funcs): Use new functions.
-
-	(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
-	Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
-	Round_Super_45): Fix rounding of value zero.
-
-	(DO_DIV): Don't use TT_MULDIV.
-
-	(Ins_SHC): This instruction actually touches the points.
-	(Ins_MSIRP): Fix undocumented behaviour.
-
-	* src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
-
-2003-11-22  Werner Lemberg  <wl@gnu.org>
-
-	* docs/VERSION.DLL, docs/CHANGES: Updated.
-
-	* src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
-	metrics->y_scale really precise.
-
-	(FT_Load_Glyph): Update computation of linearHoriAdvance and
-	linearVertAdvance.
-
-	* src/truetype/ttinterp.c (Update_Max): Use FT_REALLOC.
-
-2003-11-22  David Turner  <david@freetype.org>
-
-	* src/autofit/*: More updates.
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 8.
-	* builds/unix/configure.ac (version_info): Set to 9:6:3.
-	* README: Updated.
-
-2003-11-13  John A. Boyd Jr.  <jaboydjr@netwalk.com>
-
-	* src/bdf/bdfdrivr.c (bdf_interpret_style), src/pcf/pcfread.c
-	(pcf_interpret_style): Replace spaces with dashes in properties
-	SETWIDTH_NAME and ADD_STYLE_NAME to simplify parsing.
-
-2003-11-11  Werner Lemberg  <wl@gnu.org>
-
-	* docs/CHANGES: Updated.
-
-2003-11-11  John A. Boyd Jr.  <jaboydjr@netwalk.com>
-
-	Handle SETWIDTH_NAME and ADD_STYLE_NAME properties for BDF and PCF
-	fonts.
-
-	* src/bdf/bdfdrivr.c (bdf_interpret_style): New auxiliary function.
-	(BDF_Face_Init): Don't handle style properties but call
-	bdf_interpret_style.
-
-	* src/pcf/pcfread.c (pcf_interpret_style): New auxiliary function.
-	(pcf_load_font): Don't handle style properties but call
-	pcf_interpret_style.
-
-2003-11-07  Werner Lemberg  <wl@gnu.org>
-
-
-	* Version 2.1.7 released.
-	=========================
-
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 7.
-
-	* builds/unix/ft2unix.h: Fix comments.
-
-	* builds/unix/ftconfig.in: Synchronized with ANSI version.
-	Use `#undef' in templates as recommended in the autoconf
-	documentation.
-	Since real `#undef' lines don't survive during configuration, use
-	`/undef' instead; the postprocessing facility of the
-	AC_CONFIG_HEADERS autoconf macro converts them to `#undef'.
-
-	* builds/unix/install.mk (install): Install Unix version of
-	`ftconfig.h'.
-
-	* builds/unix/unix-cc.in (CFLAGS): Set FT_CONFIG_CONFIG_H macro
-	to include the correct `ftconfig.h' file.
-
-	* builds/unix/ft-munmap.m4 (FT_MUNMAP_DECL): Removed.
-	(FT_MUNMAP_PARAM): Updated syntax to autoconf 2.59.
-
-	* builds/unix/freetype2.m4: Updated syntax to autoconf 2.59.
-
-	* builds/unix/configure.ac: Use AC_CONFIG_HEADERS instead of
-	AC_CONFIG_HEADER to create ftconfig.h, and use second argument
-	to replace `/undef' with `#undef'.
-	Don't use FT_MUNMAP_DECL but AC_CHECK_DECLS to check for munmap.
-	Use AS_HELP_STRING in AC_ARG_WITH.
-	Update syntax to autoconf 2.59.
-
-	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
-	--copy' from libtool 1.5.
-	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
-	automake 1.7.8.
-	* builds/unix/configure: Regenerated with autoconf 2.59.
-	* builds/unix/config.guess, builds/unix/config.sub: Updated from
-	`config' CVS module at subversions.gnu.org
-	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
-	`texinfo' CVS module at subversions.gnu.org.
-
-	* builds/vms/ftconfig.h: Synchronized with ANSI version.
-
-	* docs/CUSTOMIZE: Fix documentation error.
-	* docs/CHANGES, docs/VERSION.DLL, docs/release: Updated.
-
-	* builds/freetype.mk (refdoc): Updated --title.
-
-2003-11-07  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.6 released.
-	=========================
-
-
-	* install: Removed.  Obsolete.
-
-2003-11-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/sfdriver.c: Include FT_SERVICE_SFNT_H.
-	(sfnt_service_sfnt_table): New service.
-	(sfnt_services): Updated.
-
-	* docs/license.txt: Reworded.
-
-2003-11-03  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/*: Add a guard to all public header files which
-	load FT_FREETYPE_H to reject freetype.h from FreeType 1.
-
-2003-11-02  Patrick Welche  <prlw1@newn.cam.ac.uk>
-
-	* builds/unix/freetype2.m4, builds/unix/ft-munmap.m4: Protect
-	first argument of AC_DEFUN with brackets to avoid possible
-	expansion.
-
-2003-11-02  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/cache/ftcglyph.h: Don't include stddef.h.
-
-	* include/freetype/freetype.h: Fix check for ft2build.h.
-
-2003-11-01  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h: Check that ft2build.h has been
-	loaded first.
-
-	* src/base/fttype1.c (FT_Get_PS_Font_Info): Fix incorrectly applied
-	patch.
-
-2003-10-31  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/base/fttype1.c (FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names):
-	Fix parameter order in calls to FT_FACE_FIND_SERVICE.
-
-2003-10-31  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/ftserv.h
-	(FT_SERVICE_POSTSCRIPT_NAMES_H): Removed.  Unused.
-
-	* src/type42/t42drivr.c (t42_services): Updated.
-
-2003-10-29  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/bdftypes.h: Removed.  Obsolete.
-	* src/base/ftbdf.c: Updated.
-
-	* include/freetype/internal/cfftypes.h: Moved to...
-	* src/cff/cfftypes.h: This place since no other module needs to
-	know about those types.
-
-	* include/freetype/internal/t42types.h: Moved to...
-	* src/type42/t42types.h: This place since no other module needs to
-	know about those types.
-
-	* include/freetype/internal/services/svbdf.h: Include FT_BDF_H.
-
-	* include/freetype/internal/services/svpsname.h: Renamed to...
-	* include/freetype/internal/services/svpscmap.h: This.
-	Updated `FT_Service_PsNames' -> `FT_Service_PsCMaps' and
-	`POSTSCRIPT_NAMES' -> `POSTSCRIPT_CMAPS' everywhere.
-
-	* include/freetype/internal/services/svpsinfo.h: New file, providing
-	PostScript info service.
-
-	* include/freetype/internal/ftserv.h (FT_SERVICE_POSTSCRIPT_CMAPS_H,
-	FT_SERVICE_POSTSCRIPT_INFO_H): New macros for svpscmap.h and
-	svpsinfo.h.
-	* include/freetype/internal/internal.h (FT_INTERNAL_TYPE42_TYPES_H,
-	FT_INTERNAL_CFF_TYPES_H, FT_INTERNAL_BDF_TYPES_H): Removed.
-
-	* src/base/fttype1.c: Don't include FT_INTERNAL_TYPE1_TYPES_H and
-	FT_INTERNAL_TYPE42_TYPES_H but FT_INTERNAL_SERVICE_H and
-	FT_SERVICE_POSTSCRIPT_INFO_H.
-	(FT_Get_PS_Font_Info, FT_Has_PS_Glyph_Names): Use new
-	POSTSCRIPT_INFO service.
-
-	* src/cff/cffdrivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
-	(cff_ps_has_glyph_names): New function.
-	(cff_service_ps_info): New service.
-	(cff_services): Updated.
-
-	* src/cff/cffload.h, src/cff/cffobjs.h, src/cff/cffparse.h: Don't
-	include FT_INTERNAL_CFF_TYPES_H but cfftypes.h directly.
-
-	* src/cif/cidriver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
-	(cid_ps_get_font_info): New function.
-	(cid_service_ps_info): New service.
-	(cid_services): Updated.
-
-	* src/type1/t1driver.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
-	(t1_ps_get_font_info, t1_ps_has_glyph_names): New functions.
-	(t1_service_ps_info): New service.
-	(t1_services): Updated.
-
-	* src/type42/t42drivr.c: Include FT_SERVICE_POSTSCRIPT_INFO_H.
-	(t42_ps_get_font_info, t42_ps_has_glyph_names): New functions.
-	(t42_service_ps_info): New service.
-
-	* src/type42/t42objs.h: Don't include FT_INTERNAL_TYPE42_TYPES_H
-	but t42types.h directly.
-
-	* src/psnames/psmodule.c (psnames_interface, psnames_services):
-	Renamed to...
-	(pscmaps_interface, pscmaps_services): This.
-	Updated all users.
-
-
-	* src/gzip/infblock.c (inflate_blocks): Remove compiler warning.
-
-2003-10-22  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_encoding): Handle `/Encoding [ ... ]'.
-
-	* src/type1/t1parse.c (T1_Get_Private_Dict): Test whether `eexec'
-	is real.
-
-	* src/type42/t42parse.c (t42_parse_encoding): Improve boundary
-	checking while parsing.
-
-	* docs/CHANGES: Updated.
-
-2003-10-21  Josselin Mouette  <joss@debian.org>
-
-	* include/freetype/internal/t1types.h (T1_FontRec): `paint_type'
-	and `stroke_width' aren't pointers.
-
-	* src/type42/t42objs.c (T42_Face_Done), src/type1/t1objs.c
-	(T1_Face_Done): Don't free `paint_type' and `stroke_width'.
-
-2003-10-20  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/winfonts/winfnt.c (fnt_cmap_class): Fix position of `const'.
-
-2003-10-19  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph): Patch from
-	2003-08-18 introduced a severe bug (FT_Render_Glyph was called
-	twice under some circumstances, causing strange results).  This
-	is fixed now by clearing the FT_LOAD_RENDER bit of `load_flags'.
-
-	* src/base/ftpfr.c (FT_Get_PFR_Metrics): Initialize `error'.
-	* src/psaux/psobjs.c (ps_tobytes): Initialize `n'.
-	* src/type42/t42parse.c (t42_parse_sfnts): Initialize `string_size'.
-
-2003-10-16  Werner Lemberg  <wl@gnu.org>
-
-	Completely revised Type 42 parser.  It now handles both fonts
-	produced with ttftot42 (tested version 0.3.1) and
-	TrueTypeToType42.ps (tested version May 2001; it is necessary to
-	fix the broken header comment to be `%!PS-TrueTypeFont...').
-
-	* src/type42/t42objs.c (T42_GlyphSlot_Load): Change fourth
-	parameter to `FT_UInt'.
-	* src/type42/t42objs.h: Updated.
-
-	* src/type42/t42parse.h (T42_ParserRec): Change type of `in_memory'
-	to FT_Bool.
-	(T42_Loader): Change type of `num_chars' and `num_glyphs' to
-	FT_UInt.
-	Add `swap_table' element.
-	* src/type42/t42parse.c (T42_KEYWORD_COUNT, T1_ToFixed,
-	T1_ToCoordArray, T1_ToTokenArray): Removed.
-	(T1_ToBytes): New macro.
-	(t42_is_alpha, t42_hexval): Removed.
-	(t42_is_space): Handle `\0'.
-	(t42_parse_encoding): Updated to use new PostScript parser routines
-	from psaux.
-	Handle `/Encoding [ ... ]' also.
-	(T42_Load_Status): New enumeration.
-	(t42_parse_sfnts): Updated to use new PostScript parser routines
-	from psaux.
-	(t42_parse_charstrings): Updated to use new PostScript parser
-	routines from psaux.
-	Handle `/CharStrings << ... >>' also.
-	Don't expect that /.notdef is the first element in dictionary.  Copy
-	code from type1 module to handle this.
-	(t42_parse_dict): Updated to use new PostScript parser routines
-	from psaux.
-	Remove code for synthetic fonts (which can't occur in Type 42
-	fonts).
-	(t42_loader_done): Release `swap_table'.
-
-	* src/psaux/psobjs.c (skip_string): Increase `cur' properly.
-
-	* src/type1/t1load.c (parse_charstrings): Make test for `.notdef'
-	faster.
-
-2003-10-15  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/autohint/ahglobal.c (blue_chars), src/winfonts/winfnt.c
-	(fnt_cmap_class_rec, fnt_cmap_class), src/bdf/bdflib.c (empty,
-	_num_bdf_properties), src/gzip/infutil.c (inflate_mask),
-	src/gzip/inffixed.h (fixed_bl, fixed_bd, fixed_tl, fixed_td),
-	src/gzip/inftrees.h (inflate_trees_fixed), srf/gzip/inftrees.c
-	(inflate_trees_fixed): Decorate with more `const' to avoid
-	writable global variables which are disallowed on ARM.
-
-2003-10-08  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_font_matrix, parse_charstrings): Remove
-	code specially for synthetic fonts; this is handled elsewhere.
-	(parse_encoding): Remove code specially for synthetic fonts; this is
-	handled elsewhere.
-	Improve boundary checking while parsing.
-	(parse_dict): Improve boundary checking while parsing.
-	Use ft_memcmp to simplify code.
-
-2003-10-07  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_subrs, parse_dict): Handle synthetic
-	fonts properly.
-	(parse_charstrings): Copy correct number of characters into
-	`name_table'.
-
-2003-10-06  Werner Lemberg  <wl@gnu.org>
-
-	Heavy modification of the PS parser to handle comments and strings
-	correctly.  This doesn't slow down the loading of PS fonts
-	significantly since charstrings aren't affected.
-
-	* include/freetype/config/ftstdlib.h (ft_xdigit): Renamed to...
-	(ft_isxdigit): This.  Updated all callers.
-	(ft_isdigit): New alias to `isdigit'.
-
-	* include/freetype/internal/psaux.h (PS_Parser_FuncsRec): Renamed
-	`skip_alpha' to `skip_PS_token'.
-	Add parameter to `to_bytes' and change some argument types.
-
-	* src/psaux/psauxmod.c (ps_parser_funcs): Updated.
-	* src/psaux/psobjs.c (ft_char_table): New array to map character
-	codes (ASCII and EBCDIC) of digits to numbers.
-	(OP): New auxiliary macro holding either `>=' or `<' depending on
-	the character encoding.
-	(skip_comment): New function.
-	(skip_spaces): Use it.
-	(skip_alpha): Removed.
-	(skip_literal_string, skip_string): New functions.
-	(ps_parser_skip_PS_token): New function.  This is a better
-	replacement of...
-	(ps_parser_skip_alpha): Removed.
-	(ps_parser_to_token, ps_parser_to_token_array): Updated.
-	(T1Radix): Rewritten, using `ft_char_table'.
-	(t1_toint): Renamed to...
-	(ps_toint): This.  Update all callers.
-	Use `ft_char_table'.
-	(ps_tobytes): Add parameter to handle delimiters and change some
-	argument types.
-	Use `ft_char_table'.
-	(t1_tofixed): Renamed to...
-	(ps_tofixed): This.  Update all callers.
-	Use `ft_char_table'.
-	(t1_tocoordarray): Renamed and updated to...
-	(ps_tocoordarray): This.  Update all callers.
-	(t1_tofixedarray): Renamed and updated to...
-	(ps_tofixedarray): This.  Update all callers.
-	(t1_tobool): Renamed to...
-	(ps_tobool): This.  Update all callers.
-	(ps_parser_load_field): Updated.
-	(ps_parser_load_field_table): Use `T1_MAX_TABLE_ELEMENTS'
-	everywhere.
-	(ps_parser_to_int, ps_parser_to_fixed, ps_parser_to_coord_array,
-	ps_parser_to_fixed_array): Skip spaces.  Updated.
-	(ps_parser_to_bytes): Add parameter to handle delimiters and change
-	some argument types.  Updated.
-	* src/psaux/psobjs.h: Updated.
-
-	* src/cid/cidload.c (cid_parse_dict): Updated.
-	* src/cid/cidparse.c (cid_parser_new): Check whether the `StartData'
-	token was really found.
-	* src/cid/cidparse.h (cid_parser_skip_alpha): Updated and renamed
-	to...
-	(cid_parser_skip_PS_token): This.
-
-	* src/type1/t1parse.h (T1_ParserRec): Use `FT_Bool' for boolean
-	fields.
-	(T1_Skip_Alpha): Replaced with...
-	(T1_Skip_PS_Token): This new macro.
-	* src/type1/t1parse.c (hexa_value): Removed.
-	(T1_Get_Private_Dict): Use `ft_isxdigit' and
-	`psaux->ps_parser_funcs_to_bytes' for handling ASCII hexadecimal
-	encoding.
-	After decrypting, replace the four random bytes at the beginning
-	with whitespace.
-	* src/type1/t1load.c (t1_allocate_blend): Use proper error values.
-	(parser_blend_design_positions, parse_blend_design_map,
-	parse_weight_vector): Updated.
-	(is_space): Handle `\f' also.
-	(is_name_char): Removed.
-	(read_binary_data): Updated.
-	(parse_encoding): Use `ft_isdigit'.
-	Updated.
-	(parse_subrs): Updated.
-	(TABLE_EXTEND): New macro.
-	(parse_charstrings): Updated.
-	Provide a workaround for buggy fonts which have more entries in the
-	/CharStrings dictionary then expected; the function now adds some
-	slots and skips entries which still exceed the new limit.
-	(parse_dict): Updated.
-	Terminate on the token `closefile'.
-
-	* src/type42/t42parse.c (T1_Skip_Alpha): Replaced with...
-	(T1_Skip_PS_Token): This new macro.  Updated all callers.
-	(t42_parse_encoding): Use `ft_isdigit'.
-
-
-	* src/base/ftmm.c (ft_face_get_mm_service): Return FT_Err_OK if
-	success.
-
-2003-10-05  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ftmodule.h: Renamed to...
-	* include/freetype/ftmodapi.h: This to avoid duplicate file names.
-	* include/freetype/config/ftheader.h (FT_MODULE_H): Updated.
-
-2003-10-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftoutln.c (FT_OrientationExtremumRec,
-	FT_Outline_Get_Orientation): Trivial typo fixes to make it compile.
-
-2003-10-02  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
-
-	* src/winfonts/winfnt.c (FT_WinFNT_HeaderRec): `color_table_offset'
-	has four bytes, not two.
-	Fix all users.
-	(fnt_font_load, FNT_Load_Glyph): Add more font validity tests.
-
-2003-10-01  David Turner  <david@freetype.org>
-
-	* src/autofit/*: Adding first source files of the new multi-script
-	`auto-fitter'.
-
-	* include/freetype/ftoutln.h (FT_Orientation): New enumeration.
-	(FT_Outline_Get_Orientation): New declaration.
-
-	* src/base/ftoutln.c (FT_OrientationExtremumRec): New structure.
-	(ft_orientation_extremum_compute): New auxiliary function.
-	(FT_Outline_Get_Orientation): New function to compute the fill
-	orientation of a given glyph outline.
-
-	* include/freetype/internal/ftserv.h (FT_FACE_LOOKUP_SERVICE): Fixed
-	trivial bug which could crash the font engine when a cached service
-	pointer was retrieved.
-
-2003-09-30  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidload.c (cid_parse_dict): Skip token if no keyword is
-	found.
-
-	* src/type1/t1parse.c (IS_T1_WHITESPACE, IS_T1_LINESPACE,
-	IS_T1_SPACE): Removed.
-	(PFB_Tag): Removed.
-	(read_pfb_tag): Don't use PFB_Tag.
-
-	* src/type42/t42parse.c (t42_is_space): Handle `\f' also.
-	(t42_parse_encoding): Handle synthetic fonts.
-
-2003-09-29  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/t1types.h: Don't include
-	FT_INTERNAL_OBJECTS_H but FT_INTERNAL_SERVICE_H.
-	* src/truetype/ttobjs.c: Don't include
-	FT_SERVICE_POSTSCRIPT_NAMES_H.
-
-2003-09-29  David Turner  <david@freetype.org>
-
-	Added new service to handle glyph name dictionaries, replacing the
-	old internal header named `psnames.h' by `services/svpsname.h'.
-	Note that this is different from `services/svpostnm.h' which only
-	handles the retrieval of PostScript font names for a given face.
-	(Should we merge these two services into a single header?)
-
-	* include/freetype/internal/psnames.h: Removed.  Most of its
-	contents is moved to...
-	* include/freetype/internal/services/svpsname.h: New file.
-
-	* include/freetype/internal/services/svpostnm.h
-	(FT_SERVICE_ID_POSTSCRIPT_NAME): Replaced with...
-	(FT_SERVICE_ID_POSTSCRIPT_FONT_NAME): New macro.
-	(PsName): Service named changed to...
-	(PsFontName): This.
-	Updated `FT_Service_PsName' -> `FT_Service_PsFontName' and
-	`POSTSCRIPT_NAME' -> `POSTSCRIPT_FONT_NAME' everywhere.
-
-	* include/freetype/internal/internal.h
-	(FT_INTERNAL_POSTSCRIPT_NAMES_H): Removed.
-	* include/freetype/internal/psaux.h: Include
-	FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(T1_DecoderRec): Updated type of `psnames'.
-	* include/freetype/internal/t1types.h: Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	Include FT_INTERNAL_OBJECTS_H.
-	* include/freetype/internal/t42types.h: Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H.
-	* include/freetype/internal/tttypes.h (TT_FaceRec): Updated.
-
-	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE): Changed
-	order of parameters.  All callers updated.
-	(FT_FACE_FIND_GLOBAL_SERVICE): New macro to look up a service
-	globally, checking all modules.
-	(FT_ServiceCacheRec): Updated.
-	(FT_SERVICE_POSTSCRIPT_NAMES_H): New macro for accessing
-	`svpsname.h'.
-
-	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c
-	(ft_module_get_service): New function.
-
-	* src/cff/cffdrivr.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
-	but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(cff_get_glyph_name, cff_get_name_index): Use new POSTSCRIPT_NAMES
-	service.
-	* src/cff/cffcmap.c (cff_cmap_unicode_init): Updated.
-	* src/cff/cffload.c, src/cff/cffload.h:  Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(cff_index_get_sid_string): Updated.
-	* src/cff/cffobjs.c:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
-	but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(cff_face_init): Use new POSTSCRIPT_NAMES service.
-	* src/cff/cffobjs.h:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
-	but FT_SERVICE_POSTSCRIPT_NAMES_H.
-
-	* src/cid/cidobjs.c:  Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
-	but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(cid_face_init): Use new POSTSCRIPT_NAMES service.
-	* src/cid/cidriver.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H.
-
-	* src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Use
-	new POSTSCRIPT_NAMES service.
-	* src/psaux/t1decode.h (t1_lookup_glyph_by_stdcharcode,
-	t1_decode_init): Use new POSTSCRIPT_NAMES service.
-	* src/psaux/t1cmap.h, src/psaux/t1decode.h: Dont' include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H.
-
-	* src/psnames/psmodule.c:  Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(ps_build_unicode_table): Renamed to...
-	(ps_unicodes_init): This.
-	(ps_lookup_unicode): Renamed to...
-	(ps_unicodes_char_index): This.
-	(ps_next_unicode): Renamed to...
-	(ps_unicodes_char_next): This.
-	(psnames_interface): Updated.
-	(psnames_services): New services list.
-	(psnames_get_service): New function.
-	(psnames_module_class): Updated.
-
-	* src/sfnt/sfobjs.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
-	but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(sfnt_init_face): Use new POSTSCRIPT_NAMES service.
-	* src/sfnt/ttpost.c: Don't include FT_INTERNAL_POSTSCRIPT_NAMES_H
-	but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(tt_face_get_ps_name): Updated.
-
-	* src/truetype/ttobjs.c:  Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-
-	* src/type1/t1driver.c:  Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	* src/type1/t1objs.c:  Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-	(T1_Face_Init): Use new POSTSCRIPT_NAMES service.
-
-	* src/type42/t42drivr.c (t42_get_ps_name): Renamed to...
-	(t42_get_ps_font_name): This.
-	(t42_service_ps_name): Renamed to...
-	(t42_service_ps_font_name): This.
-	(t42_services): Updated.
-	* src/type42/t42objs.c (T42_Face_Init): Use new POSTSCRIPT_NAMES
-	service.
-	* src/type42/t42objs.h:  Don't include
-	FT_INTERNAL_POSTSCRIPT_NAMES_H but FT_SERVICE_POSTSCRIPT_NAMES_H.
-
-
-	* src/base/ftglyph.c (FT_Get_Glyph): Don't access `slot' before
-	testing its validity.  Reported by Henry Maddocks
-	<maddocks@metservice.com>.
-
-2003-09-21  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE):
-	Fix compilation warning (s/pptr/Pptr/).
-
-	* include/freetype/internal/internal.h (FT_INTERNAL_PFR_H,
-	FT_INTERNAL_FNT_TYPES_H): Removed.
-
-2003-09-21  David Turner  <david@freetype.org>
-
-	Migrating the PFR and WINFNT drivers to the new service-based
-	internal API.
-
-	* include/freetype/internal/fnttypes.h: Removed.  Most of its data
-	are moved to winfnt.h and...
-	* include/freetype/internal/services/svwinfnt.h: New file.
-
-	* include/freetype/internal/pfr.h: Removed.  Most of its data are
-	moved to...
-	* include/freetype/internal/services/svpfr.h: New file.
-
-	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
-	FT_FACE_LOOKUP_SERVICE): Simplify fix of 2003-09-16 by removing
-	pointer type argument.
-	Updated all callers.
-	Update macro names of services header files.
-
-	* src/base/ftobjs.c (FT_Get_Name_Index): Simplified code.
-
-	* src/base/ftpfr.c: Include FT_SERVICE_PFR_H instead of
-	FT_INTERNAL_PFR_H.
-	(ft_pfr_check, FT_Get_PFR_Metrics, FT_Get_PFR_Kerning,
-	FT_Get_PFR_Advance): Use services provided in `PFR_METRICS'.
-
-	* src/base/ftwinfnt.c: Include FT_SERVICE_WINFNT_H instead of
-	FT_INTERNAL_FNT_TYPES_H.
-	(FT_Get_WinFNT_Header): Use service provided in `WINFNT'.
-
-	* src/pfr/pfrdrivr.c: Include FT_SERVICE_PFR_H and
-	FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_PFR_H.
-	(pfr_service_bdf): Updated.
-	(pfr_services): New services list.
-	(pfr_get_service): New function.
-	(pfr_driver_class): Updated.
-
-	* src/winfonts/winfnt.c: Include FT_SERVICE_WINFNT_H and
-	FT_SERVICE_XFREE86_NAME_H instead of FT_INTERNAL_FNT_TYPES_H.
-	(winfnt_get_header, winfnt_get_service): New functions.
-	(winfnt_service_rec): New structure providing WINFNT services.
-	(winfnt_services): New services list.
-	(winfnt_driver_class): Updated.
-	* src/winfonts/winfnt.h: Add most of the removed fnttypes.h data.
-
-	* src/sfnt/sfdriver.c (sfnt_service_ps_name): Fix typo.
-
-	* src/type1/t1driver.c (t1_service_ps_name): Fix typo.
-
-	* src/cff/cffobjs.c, src/cid/cidobjs.c, src/pfr/pfrsbit.c,
-	src/psaux/psobjs.c, src/sfnt/sfobjs.c, src/truetype/ttobjs.c,
-	src/type1/t1objs.c, src/type42/t42objs.c: Removing various compiler
-	warnings.
-
-2003-09-19  David Bevan  <dbevan@emtex.com>
-
-	* src/type1/t1parse.c (pfb_tag_fields): Removed.
-	(read_pfb_tag): Fix code so that it doesn't fail on end-of-file
-	indicator (0x8003).
-	* docs/CHANGES: Updated.
-
-2003-09-16  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/ftserv.h (FT_FACE_FIND_SERVICE,
-	FT_FACE_LOOKUP_SERVICE): Add parameter to pass pointer type.
-	Ugly, I know, but this is needed for compilation with C++ --
-	maybe someone knows a better solution?
-	Updated all callers.
-
-	* src/base/ftobjs.c (FT_Get_Name_Index, FT_Get_Glyph_Name): Remove
-	C++ compiler warnings.
-
-	* src/base/ftbdf.c (FT_Get_BDF_Charset_ID, FT_Get_BDF_Property):
-	Fix order of arguments passed to FT_FACE_FIND_SERVICE.
-
-2003-09-15  Werner Lemberg  <wl@gnu.org>
-
-	Avoid header files with identical names.
-
-	* include/freetype/internal/services/bdf.h: Renamed to...
-	* include/freetype/internal/services/svbdf.h: This.
-	Add copyright notice.
-	* include/freetype/internal/services/glyfdict.h: Renamed to...
-	* include/freetype/internal/services/svgldict.h: This.
-	Add copyright notice.
-	* include/freetype/internal/services/multmast.h: Renamed to...
-	* include/freetype/internal/services/svmm.h: This.
-	Add copyright notice.
-	Add FT_BEGIN_HEADER and FT_END_HEADER.
-	* include/freetype/internal/services/sfnt.h: Renamed to...
-	* include/freetype/internal/services/svsfnt.h: This.
-	Add copyright notice.
-	* include/freetype/internal/services/postname.h: Renamed to...
-	* include/freetype/internal/services/svpostnm.h: This.
-	Add copyright notice.
-	* include/freetype/internal/services/xf86name.h: Renamed to...
-	* include/freetype/internal/services/svxf86nm.h: This.
-	Add copyright notice.
-
-	* include/freetype/internal/ftserv.h: Add FT_BEGIN_HEADER and
-	FT_END_HEADER.
-	Add copyright notice.
-	Update macro names of services header files.
-
-	* builds/freetype.mk (SERVICES_DIR): New variable.
-	(BASE_H): Add services header files.
-
-2003-09-11  Werner Lemberg  <wl@gnu.org>
-
-	* builds/toplevel.mk (distclean): Remove `builds/unix/freetype2.pc'.
-
-	* src/cff/cffdrivr.c: Don't load headers twice.
-
-	* include/freetype/internal/ftserv.h (FT_SERVICE_SFNT_H): New macro.
-	* src/base/ftobjs.c: Include FT_SERVICE_SFNT_H.
-
-	* src/cff/cffcmap.c: Include `cfferrs.h'.
-	* src/pfr/pfrdrivr.c: Include `pfrerror.h'.
-	* src/sfnt/sfdriver.c: Include `sferrors.h'.
-	* src/psaux/psobjs.h: Add declaration for `ps_parser_to_bytes'.
-
-2003-09-11  David Turner  <david@freetype.org>
-
-	Introducing the concept of `module services'.  This is the first
-	step towards a massive simplification of the engine's internals, in
-	order to get rid of various numbers of hacks.
-
-	Note that these changes will break source & binary compatibility for
-	authors of external font drivers.
-
-	* include/freetype/config/ftconfig.h (FT_BEGIN_STMNT, FT_END_STMNT,
-	FT_DUMMY_STMNT): New macros.
-
-	* include/freetype/internal/ftserv.h: New file, containing the new
-	structures and macros to provide `services'.
-
-	* include/freetype/internal/internal.h (FT_INTERNAL_EXTENSION_H,
-	FT_INTERNAL_EXTEND_H, FT_INTERNAL_HASH_H, FT_INTERNAL_OBJECT_H):
-	Removed, obsolete.
-	(FT_INTERNAL_SERVICE_H): New macro for `ftserv.h'.
-
-	* include/freetype/internal/services/bdf.h,
-	include/freetype/internal/services/glyfdict.h,
-	include/freetype/internal/services/postname.h,
-	include/freetype/internal/services/xf86name.h: New files.
-
-	* include/freetype/ftmm.h (FT_Get_MM_Func, FT_Set_MM_Design_Func,
-	FT_Set_MM_Blend_Func): Function pointers moved (in modified form)
-	to...
-	* include/freetype/internal/services/multmast.h: New file.
-
-	* include/freetype/internal/sfnt.h (SFNT_Interface): `get_interface'
-	is now of type `FT_Module_Requester'.
-	(SFNT_Get_Interface_Func, SFNT_Load_Table_Func): Function pointers
-	moved (in modified form) to...
-	* include/freetype/internal/servies/sfnt.h: New file.
-
-	* include/freetype/tttables.h (FT_Get_Sfnt_Table_Func): Function
-	pointer moved (in modified form) to `services/sfnt.h'.
-
-	* include/freetype/ftmodule.h (FT_Module_Interface): Make it a
-	a typedef to `FT_Pointer'.
-
-	* include/freetype/internal/tttypes.h (TT_FaceRec): Add
-	`postscript_name'.
-	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Remove
-	`postscript_name'.
-	Add `services' element.
-	(FT_LibraryRec): Remove `meta_class'.
-
-	* src/base/ftbdf.c: Include FT_SERVICE_BDF_H.
-	(test_font_type): Removed.
-	(FT_Get_BDF_Charset_ID, FT_Get_BDF_Property): Use services
-	provided in `FT_SERVICE_ID_BDF'.
-
-	* src/base/ftmm.c: Include FT_SERVICE_MULTIPLE_MASTERS_H.
-	(ft_face_get_mm_service): New auxiliary function to get services
-	from `FT_SERVICE_ID_MULTI_MASTERS'.
-	(FT_Get_Multi_Master, FT_Set_MM_Design_Coordinates,
-	FT_Set_MM_Blend_Coordinates): Use `ft_face_get_mm_service'.
-
-	* src/base/ftobjs.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
-	FT_SERVICE_GLYPH_DICT_H.
-	(ft_service_list_lookup): New function to get a specific service.
-	(destroy_face): Updated.
-	(Mac_Read_POST_Resource): Simplify some code.
-	(IsMacResource): Fix warnings.
-	(FT_Get_Name_Index, FT_Get_Glyph_Name): Use services provided in
-	`FT_SERVICE_ID_GLYPH_DICT'.
-	(FT_Get_Postscript_Name): Use service provided in
-	`FT_SERVICE_ID_POSTSCRIPT_NAME'.
-	(FT_Get_Sfnt_Table, FT_Load_Sfnt_Table): Use services provided in
-	`FT_SERVICE_ID_SFNT_TABLE'.
-
-	* src/base/ftxf86.c: Include FT_SERVICE_XFREE86_NAME_H.
-	(FT_Get_X11_Font_Format): Use service provided in
-	`FT_SERVICE_ID_XF86_NAME'.
-
-	* src/bdf/bdfdrivr.c: Include FT_SERVICE_BDF_H and
-	FT_SERVICE_XFREE86_NAME_H.
-	(bdf_get_charset_id): New function.
-	(bdf_service_bdf): New structure providing BDF services.
-	(bdf_services): New services list.
-	(bdf_driver_requester): Use `ft_service_list_lookup'.
-
-	* src/cff/cffdrivr.c: Include FT_SERVICE_XFREE86_NAME_H and
-	FT_SERVICE_GLYPH_DICT_H.
-	(cff_service_glyph_dict): New structure providing CFF services.
-	(cff_services): New services list.
-	(cff_get_interface): Use `ft_service_list_lookup'.
-
-	* src/cid/cidriver.c: Include FT_SERVICE_POSTSCRIPT_NAME_H and
-	FT_SERVICE_XFREE86_NAME_H.
-	(cid_service_ps_name): New structure providing CID services.
-	(cid_services): New services list.
-	(cid_get_interface): Use `ft_service_list_lookup'.
-
-	* src/pcf/pcfdrivr.c: Include FT_SERVICE_BDF_H and
-	FT_SERVICE_XFREE86_NAME_H.
-	(pcf_service_bdf): New structure providing PCF services.
-	(pcf_services): New services list.
-	(pcf_driver_requester): Use `ft_service_list_lookup'.
-
-	* src/sfnt/sfdriver.c: Include FT_SERVICE_GLYPH_DICT_H and
-	FT_SERVICE_POSTSCRIPT_NAME_H.
-	(get_sfnt_glyph_name): Renamed to...
-	(sfnt_get_glyph_name): This.
-	(get_sfnt_postscript_name): Renamed to...
-	(sfnt_get_ps_name): This.
-	Updated.
-	(sfnt_service_glyph_dict, sfnt_service_ps_name): New structures
-	providing services.
-	(sfnt_services): New services list.
-	(sfnt_get_interface): Use `ft_service_list_lookup'.
-
-	* src/truetype/ttdriver.c: Include FT_SERVICE_XFREE86_NAME_H.
-	(tt_services): New services list.
-	(tt_get_interface): Use `ft_service_list_lookup'.
-
-	* src/type1/t1driver.c: Include FT_SERVICE_MULTIPLE_MASTERS_H,
-	FT_SERVICE_GLYPH_DICT_H, FT_SERVICE_XFREE86_NAME_H, and
-	FT_SERVICE_POSTSCRIPT_NAME_H.
-	(t1_service_glyph_dict, t1_service_ps_name,
-	t1_service_multi_masters): New structures providing Type 1 services.
-	(t1_services): New services list.
-	(Get_Interface): Use `ft_service_list_lookup'.
-
-	* src/type42/t42drivr.c: Include FT_SERVICE_XFREE86_NAME_H,
-	FT_SERVICE_GLYPH_DICT_H, and FT_SERVICE_POSTSCRIPT_NAME_H.
-	(t42_service_glyph_dict, t42_service_ps_name): New strucures
-	providing Type 42 services.
-	(t42_services): New services list.
-	(T42_Get_Interface): Use `ft_service_list_lookup'.
-
-
-	* README, docs/CHANGES: Updating version numbers for 2.1.6, and
-	removing obsolete warnings in the documentation.
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 6.
-	* builds/unix/configure.ac (version_info): Set to 9:5:3.
-	* builds/unix/configure: Regenerated.
-
-	* include/freetype/internal/ftcore.h,
-	include/freetype/internal/ftexcept.h,
-	include/freetype/internal/fthash.h,
-	include/freetype/internal/ftobject.h: Removed.  Obsolete.
-
-2003-09-09  David Turner  <david@freetype.org>
-
-	Fixing PFR kerning support.  The tables within the font file contain
-	(charcode,charcode) kerning pairs, we need to convert them to
-	(gindex,gindex).
-
-	* src/base/ftpfr.c (ft_pfr_check): Fix serious typo.
-	* src/pfr/prfload.c: Remove dead code.
-	(pfr_get_gindex, pfr_compare_kern_pairs, pfr_sort_kerning_pairs):
-	New functions.
-	(pfr_phy_font_done): Free `kern_pairs'.
-	(pfr_phy_font_load): Call `pfr_sort_kerning_pairs'.
-	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Fix kerning extraction.
-	* src/pfr/pfrtypes.h (PFR_KERN_PAIR_INDEX): New macro.
-	(PFR_KernPairRec): Make `kerning' an FT_Int.
-	(PFR_PhyFontRec): New element `kern_pairs'.
-	(PFR_KernFlags): Values of PFR_KERN_2BYTE_CHAR and
-	PFR_KERN_2BYTE_ADJ were erroneously reversed.
-
-	* include/freetype/ftoption.h: Commenting out the macro
-	TT_CONFIG_OPTION_BYTECODE_INTERPRETER.
-
-2003-09-02  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.5 released.
-	=========================
-
-
-2003-08-31  Manish Singh  <yosh@gimp.org>
-
-	* src/bdf/bdflib.c (_bdf_readstream): Don't use FT_MEM_COPY but
-	FT_MEM_MOVE.
-
-2003-08-30  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h (FT_ENCODING_SJIS, FT_ENCODING_GB2312,
-	FT_ENCODING_BIG5, FT_ENCODING_WANSUNG, FT_ENCODING_JOHAB): New
-	enumerations of FT_Encoding.  The FT_ENCODING_MS_* variants except
-	FT_ENCODING_MS_SYMBOL are now deprecated.
-	Updated all users.
-	* docs/CHANGES: Document it.
-
-2003-08-27  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Accept lowercase characters
-	for spacing.
-
-2003-08-27  Mike FABIAN  <mfabian@suse.de>
-
-	* src/pcf/pcfread.c (pcf_load_font), src/bdf/bdfdrivr.c
-	(BDF_Face_Init): Accept lowercase characters for slant and weight.
-
-2003-08-18  David Turner  <david@freetype.org>
-
-	* include/freetype/config/ftoption.h: Disabling TrueType bytecode
-	interpreter until the UNPATENTED_HINTING works as advertised.
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph): Use `|' for
-	setting `load_flags'.
-
-	* Jamfile: Adding the `refdoc' target to the Jamfile in order to
-	build the API Reference in `docs/reference' automatically.
-
-	* include/freetype/t1tables.h (PS_FontInfoRec), src/cid/cidtoken.h,
-	src/type1/t1tokens.h, src/type42/t42parse.c: Resetting the types of
-	`italic_angle', `underline_position', and `underline_thickness' to
-	their previous values (i.e., long, short, and ushort) in order to
-	avoid breaking binary compatibility.
-
-	* include/freetype/ttunpat.h: Fixing documentation comment.
-
-	* include/freetype/config/ftoption.h, devel/ftoption.h
-	(TT_CONFIG_OPTION_OPTION_COMPILE_UNPATENTED_HINTING): Replaced
-	with...
-	(TT_CONFIG_OPTION_UNPATENTED_HINTING): This.  Updated all users.
-	(TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): Removed.
-
-	* include/freetype/internal/ftobjs.h (FT_DEBUG_HOOK_TYPE1): Removed.
-	(FT_DEBUG_HOOK_UNPATENTED_HINTING): New macro.  Use this with
-	`FT_Set_Debug_Hook' to get the same effect as the removed
-	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING.
-
-	* src/truetype/ttobjs.c (tt_face_init): Use
-	`FT_DEBUG_HOOK_UNPATENTED_HINTING'.
-
-2003-08-06  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
-	(cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Fix
-	previous change.
-
-2003-08-05  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c
-	(cff_slot_load), src/cid/cidgload.c (cid_slot_load_glyph): Apply
-	font matrix to advance width also.
-	* docs/CHANGES: Updated.
-
-2003-07-26  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.ac (version_info): Set to 9:4:3.
-	* builds/unix/configure: Updated.
-	* docs/CHANGES, docs/VERSION.DLL: Updated.
-
-	* include/freetype/freetype.h (FT_GlyphSlot): Change 2003-06-16
-	also breaks binary compatibility.  Reintroduce an unsigned integer
-	at the old position of `flags' called `reserved'.
-
-2003-07-25  Werner Lemberg  <wl@gnu.org>
-
-	Make API reference valid HTML 4.01 transitional.
-
-	* src/tools/docmaker/tohtml.py (html_header_1): Add doctype
-	and charset.
-	(html_header_2): Fix style elements and add some more.
-	Fix syntax.
-	(block_header, block_footer, description_header, description_footer,
-	marker_header, marker_footer, source_header, source_footer,
-	chapter_header): Don't use <center>...</center> but `align=center'
-	table attribute.
-	(chapter_inter, chapter_footer): Add <li> and use special <ul>
-	class.
-	Use double quotes around table widths given in percent.
-	(keyword_prefix, keyword_suffix): Don't change font colour directly
-	but use a new <span> class.
-	(section_synopsis_header, section_synopsis_footer): Don't change
-	colour.
-	(code_header, code_footer): Don't change font colour directly but
-	use a special <pre> class.
-	(print_html_field): <tr> gets the `valign' attribute, not <table>.
-	(print_html_field_list): Ditto.
-	(index_exit): Don't use <center>...</center> but `align=center'
-	table attribute.
-	(section_enter): Ditto.
-	(toc_exit): Don't emit </table>.
-	(block_enter): Use <h4><a>, not <a><h4>.
-	(__init__): Fix tag order in self.html_footer.
-
-2003-07-25  David Turner  <david@freetype.org>
-
-	This change reimplements fix from 2003-05-30 without breaking
-	binary compatibility.
-
-	* include/freetype/t1tables.h (PS_FontInfoRec): `italic_angle',
-	`is_fixed_pitch', `underline_position', `underline_thickness' are
-	reverted to be normal values.
-
-	* include/freetype/internal/psaux.h (T1_FieldType): Remove
-	`T1_FIELD_TYPE_BOOL_P', `T1_FIELD_TYPE_INTEGER_P',
-	`T1_FIELD_TYPE_FIXED_P', `T1_FIELD_TYPE_FIXED_1000_P'.
-	(T1_FIELD_TYPE_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P,
-	T1_FIELD_FIXED_1000_P): Removed.
-	(T1_FIELD_TYPE_BOOL): Renamed to...
-	(T1_FIELD_BOOL): New macro.  Updated all callers.
-
-	* src/type42/t42parse.c: `italic_angle', `is_fixed_pitch',
-	`underline_position', `underline_thickness', `paint_type',
-	`stroke_width' are reverted to be normal values.
-	(T42_KEYWORD_COUNT): New macro.
-	(t42_parse_dict): New array `keyword_flags' to mark that a value has
-	already been assigned to a dictionary entry.
-	* src/type42/t42objs.c (T42_Face_Init, T42_Face_Done): Updated.
-
-	* src/cid/cidtoken.h: `italic_angle', `is_fixed_pitch',
-	`underline_position', `underline_thickness' are reverted to be
-	normal values.
-	* src/cid/cidobjs.c (cid_face_done, cid_face_init): Updated.
-
-	* src/psaux/psobjs.c (ps_parser_load_field): Updated.
-
-	* src/type1/t1tokens.h: `italic_angle', `is_fixed_pitch',
-	`underline_position', `underline_thickness', `paint_type',
-	`stroke_width' are reverted to be normal values.
-	* src/type1/t1objs.c (T1_Face_Done, T1_Face_Init): Updated.
-	* src/type1/t1load.c (T1_FIELD_COUNT): New macro.
-	(parse_dict): Add parameter for keyword flags.
-	Record only first instance of a field.
-	(T1_Open_Face): New array `keyword_flags'.
-
-2003-07-24  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 5.
-	* builds/unix/configure.ac (version_info): Set to 10:0:3.
-	* builds/unix/configure: Updated.
-	* builds/freetype.mk (refdoc): Fix --title.
-
-	* docs/CHANGES, docs/VERSION.DLL, README: Updated.
-
-	* src/tools/docmaker/sources.py (re_crossref): Fix regular
-	expression to handle trailing punctuation characters.
-	* src/tools/docmaker/tohtml.py (make_html_word): Updated.
-
-	* docs/release: New file.
-
-2003-07-23  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
-
-	* include/freetype/internal/psaux.h (PS_Parser_FuncsRec): New
-	member function `to_bytes'.
-
-	* src/psaux/psauxmod.c (ps_parser_funcs): New member
-	`ps_parser_to_bytes'.
-	(psaux_module_class): Increase version to 0x20000L.
-
-	* src/psaux/psobjs.c (IS_T1_LINESPACE): Add \f.
-	(IS_T1_NULLSPACE): New macro.
-	(IS_T1_SPACE): Add it.
-	(skip_spaces, skip_alpha): New functions.
-	(ps_parser_skip_spaces, ps_parser_skip_alpha): Use them.
-	(ps_tobytes, ps_parser_to_bytes): New functions.
-
-2003-07-07  Werner Lemberg  <wl@gnu.org>
-
-	* builds/freetype.mk (DOC_DIR): New variable.
-	(refdoc): Use *_DIR variables.
-	(distclean): Remove documentation files.
-
-	* builds/detect.mk (std_setup, dos_setup): Mention `make refdoc'.
-
-	* configure: Set DOC_DIR variable.
-
-2003-07-07  Patrik H�gglund  <patrik.hagglund@bredband.net>
-
-	* builds/freetype.mk (refdoc): New target to build the
-	documentation.
-	(.PHONY): Updated.
-
-	* include/freetype/freetype.h: Improve documentation of FT_CharMap.
-	* include/freetype/ftimage,h: Fix documentation of FT_OUTLINE_FLAGS.
-	* include/freetype/tttables.h: Document FT_Sfnt_Tag.
-
-2003-07-06  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfread.c
-	(pcf_load_font): Fix computation of height if PIXEL_SIZE property is
-	missing.
-
-2003-07-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftcsbits.c (ftc_sbit_node_compare): Only add `size' if
-	there is no error.  Reported by Knut St. Osmundsen
-	<bird-freetype@anduin.net>.
-
-2003-06-30  Werner Lemberg  <wl@gnu.org>
-
-	A new try to synchronize bitmap font access.
-
-	* include/freetype/freetype.h (FT_Bitmap_Size): `height' is now
-	defined to return the baseline-to-baseline distance.  This was
-	already the value returned by the BDF and PCF drivers.
-
-	The `width' field now gives the average width.  I wasn't able to
-	find something better.  It should be taken as informative only.
-
-	New fields `size', `x_ppem', and `y_ppem'.
-
-	* src/pcf/pcfread.c (pcf_load_font): Updated to properly fill
-	FT_Bitmap_Size.
-	Do proper rounding and conversion from 72.27 to 72 points.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Updated to properly fill
-	FT_Bitmap_Size.
-	Do proper rounding and conversion from 72.27 to 72 points.
-
-	* src/sfnt/sfobjs.c (sfnt_load_face): Updated to properly fill
-	FT_Bitmap_Size.
-
-	* src/winfonts/winfnt.c (FNT_Face_Init): Updated to properly fill
-	FT_Bitmap_Size.
-
-2003-06-29  Werner Lemberg  <wl@gnu.org>
-
-	Redesigning the FNT driver to return multiple faces, not multiple
-	strikes.  At least one font (app850.fon from WinME) contains
-	different FNT charmaps for its subfonts.  Consequently, the previous
-	design of having multiple bitmap strikes in a single font face fails
-	since we have only one charmap per face.
-
-	* include/freetype/internal/fnttypes.h (FNT_Size_Rec): Removed.
-	(FNT_FaceRec): Remove `num_fonts' field and replace `fonts' with
-	`font'.
-
-	* src/base/ftwinfnt.c (FT_Get_WinFNT_Header): Updated.
-
-	* src/winfonts/winfnt.c (fnt_font_load): Don't set pixel_width equal
-	to pixel_height.
-	(fnt_face_done_fonts): Removed.
-	(fnt_face_get_dll_fonts): Renamed to...
-	(fnt_face_get_dll_font): This.  Add second function argument to
-	select face index.
-	Updated to load just one subfont.
-	(fnt_font_done, FNT_Face_Done): Updated.
-	(FNT_Face_Init): Handle `face_index'.
-	Updated.
-	(FNT_Size_Set_Pixels): Simplified; similar to BDF and PCF, the
-	bitmap width is now ignored.
-	(FNT_Load_Glyph): Updated.
-	Fix glyph index computation.
-	(winfnt_driver_class): Updated.
-
-2003-06-25  Owen Taylor  <otaylor@redhat.com>
-
-	* src/sfnt/ttload.c (tt_face_load_hdmx): Don't assign
-	num_records until we actually decide to load the table,
-	otherwise, we'll segfault in tt_face_free_hdmx.
-
-2003-06-24  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffdrivr.c (cff_get_glyph_name): Protect against zero
-	glyph name pointer.  Reported by Mikey Anbary <manbary@vizrt.com>.
-
-2003-06-23  Werner Lemberg  <wl@gnu.org>
-
-	* src/tools/glnames.py: Updated to AGL 2.0.
-	* src/psnames/pstables.h: Regenerated.
-
-2003-06-22  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/cache/ftcglyph.h, include/freetype/ttnameid.h,
-	src/base/ftcalc.c, src/base/fttrigon.c, src/cff/cffgload.c,
-	src/otlayout/otlgsub.c, src/pshinter/pshrec.c,
-	src/psnames/psmodule.c, src/sfnt/sfobjs.c, src/truetype/ttdriver.c:
-	Decorate constants with `U' and `L' if appropriate.
-
-	* include/freetype/ftmoderr.h: Updated to include recent module
-	additions.
-
-	* src/pshinter/pshnterr.h (FT_ERR_BASE): Define as
-	`FT_Mod_Err_PShinter'.
-	* src/type42/t42error.h (FT_ERR_BASE): Define as
-	`FT_Mod_Err_Type42'.
-
-	* src/pshinter/pshrec.h (PS_HINTS_MAGIC): Removed.  Not used.
-
-	* include/freetype/config/ftconfig.h [__MWERKS__]: Define FT_LONG64
-	and FT_INT64.
-
-2003-06-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/winfonts/winfnt.c (FNT_Load_Glyph): Use first_char in
-	computation of glyph_index.
-	(FNT_Size_Set_Pixels): To find a strike, first check pixel_height
-	only, then try to find a better hit by comparing pixel_width also.
-	Without this fix it isn't possible to access all strikes.
-	Also compute metrics.max_advance to be in sync with other bitmap
-	drivers.
-
-	* src/base/ftobjs.c (FT_Set_Char_Size): Remove redundant code.
-	(FT_Set_Pixel_Size): Assign value to `metrics' after validation of
-	arguments.
-
-2003-06-20  Werner Lemberg  <wl@gnu.org>
-
-	Synchronize computation of height and width for bitmap strikes.  The
-	`width' field in the FT_Bitmap_Size structure is now only useful to
-	enumerate different strikes.  The `max_advance' field of the
-	FT_Size_Metrics structure should be used to get the (maximum) width
-	of a strike.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Don't use AVERAGE_WIDTH for
-	computing `available_sizes->width' but make it always equal to
-	`available_sizes->height'.
-
-	* src/pcf/pcfread.c (pcf_load_font): Don't use RESOLUTION_X for
-	computing `available_sizes->width' but make it always equal to
-	`available_sizes->height'.
-
-	* src/truetype/ttdriver.c (Set_Pixel_Sizes): Pass only single
-	argument to function.
-
-	* src/psnames/psmodule.c (ps_unicode_value): Handle `.' after
-	`uniXXXX' and `uXXXX[X[X]]'.
-
-2003-06-19  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdfdrivr.c: s/FT_Err_/BDF_Err/.
-	* src/cache/ftccache.c, src/cache/ftcsbits.c, src/cache/ftlru.c:
-	s/FT_Err_/FTC_Err_/.
-	* src/cff/cffcmap.c: s/FT_Err_/CFF_Err_/.
-	* src/pcf/pcfdrivr.c: s/FT_Err_/PCF_Err_/.
-	* src/psaux/t1cmap.c: Include psauxerr.h.
-	s/FT_Err_/PSaux_Err_/.
-	* src/pshinter/pshnterr.h: New file.
-	* src/pshinter/rules.mk: Updated.
-	* src/pshinter/pshalgo.c, src/pshinter/pshrec.c: Include pshnterr.h.
-	s/FT_Err_/PSH_Err_/.
-	* src/pfr/pfrdrivr.c, src/pfr/pfrobjs.c, src/pfr/pfrsbit.c:
-	s/FT_Err_/PFR_Err_/.
-	* src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
-	src/sfnt/ttload.c: s/FT_Err_/SFNT_Err_/.
-	* src/truetype/ttgload.c: s/FT_Err_/TT_Err_/.
-	* src/gzip/ftgzip.c: Load FT_MODULE_ERRORS_H and define
-	FT_ERR_PREFIX and FT_ERR_BASE.
-	s/FT_Err_/Gzip_Err_/.
-
-2003-06-19  Dirck Blaskey  <listtarget@danbala.com>
-
-	* src/cff/cffload (cff_encoding_load): `nleft' must be FT_UInt,
-	otherwise adding 1 might wrap the result.
-
-2003-06-18  Werner Lemberg  <wl@gnu.org>
-
-	* src/psnames/psmodule.c (ps_unicode_value): Add support to
-	recognize `uXXXX[X[X]]' glyph names.
-	Don't handle glyph names starting with `uni' which have more than
-	four digits.
-
-2003-06-16  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h (FT_Open_Flags): Replaced with
-	#defines for the constants.
-	(FT_Open_Args): Change type of `flags' to FT_UInt.
-	(FT_GlyphSlot): Move `flags' to FT_Slot_Internal.
-
-	* include/freetype/ftimage.h (FT_Outline_Flags, FT_Raster_Flag):
-	Replaced with #defines for the constants.
-
-	* include/freetype/internal/ftobjs.h (FT_Slot_Internal): New
-	field `flags' (from FT_GlyphSlot).
-	Updated all affected source files.
-	(FT_GLYPH_OWN_BITMAP): New macro (from ftgloadr.h).
-
-	* include/freetype/internal/ftgloadr.h (FT_GLYPH_OWN_BITMAP): Moved
-	to ftobjs.h.
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Use dummy
-	FT_GlyphSlot_Internal object.
-
-2003-06-15  Werner Lemberg  <wl@gnu.org>
-
-	* builds/compiler/gcc.mk, builds/compiler/gcc-dev.mk (CFLAGS):
-	Add -fno-strict-aliasing to get rid of zillion warnings from gcc
-	version 3.3.
-
-2003-06-14  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ftglyph.h (ft_glyph_bbox_unscaled,
-	ft_glyph_bbox_subpixels, ft_glyph_bbox_gridfit,
-	ft_glyph_bbox_truncate, ft_glyph_bbox_pixels): Replaced with
-	FT_GLYPH_BBOX_UNSCALED, FT_GLYPH_BBOX_SUBPIXELS,
-	FT_GLYPH_BBIX_GRIDFIT, FT_GLYPH_BBOX_TRUNCATE, FT_GLYPH_BBOX_PIXELS.
-	The lowercase variants are now (deprecated aliases) to the uppercase
-	versions.
-	Updated all other files.
-
-	* include/freetype/ftmodule.h (ft_module_font_driver,
-	ft_module_renderer, ft_module_hinter, ft_module_styler,
-	ft_module_driver_scalable, ft_module_driver_no_outlines,
-	ft_module_driver_has_hinter): Replaced with FT_MODULE_FONT_DRIVER,
-	FT_MODULE_RENDERER, FT_MODULE_HINTER, FT_MODULE_STYLER,
-	FT_MODULE_DRIVER_SCALABLE, FT_MODULE_DRIVER_NO_OUTLINES,
-	FT_MODULE_DRIVER_HAS_HINTER.
-	The lowercase variants are now (deprecated aliases) to the uppercase
-	versions.
-	Updated all other files.
-
-	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Handle bbox_mode better
-	as enumeration.
-
-	* src/pcf/pcfdrivr.c (pcf_driver_class), src/winfonts/winfnt.c
-	(winfnt_driver_class), src/bdf/bdfdrivr.c (bdf_driver_class): Add
-	the FT_MODULE_DRIVER_NO_OUTLINES flag.
-
-2003-06-13  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/pfr/pfrobjs.c (pfr_slot_load): Apply font matrix.
-
-2003-06-13  Werner Lemberg  <wl@gnu.org>
-
-	* builds/dos/detect.mk: Test not only for `Dos' but for `DOS' also.
-
-	* builds/dos/dos-emx.mk, builds/compiler/emx.mk: New files for
-	EMX gcc compiler.
-	* builds/dos/detect.mk: Add target `emx'.
-
-	* builds/compiler/watcom.mk (LINK_LIBRARY): GNU Make for DOS doesn't
-	like a trailing semicolon; add a dummy command.
-
-	* src/cid/cidload.c: Remove parse_font_bbox code (already enclosed
-	with #if 0 ... #endif).
-
-	* src/type1/t1tokens.h: Handle /FontName.
-	* src/type1/t1load.c (parse_font_name): Removed.
-	Remove parse_font_bbox code (already enclosed with #if 0 ...
-	#endif).
-
-	* src/type42/t42parse.c (t42_parse_font_name): Removed.
-	Remove t42_parse_font_bbox code (already enclosed with #if 0 ...
-	#endif).
-	(t42_keywords): Handle /FontName with T1_FIELD_KEY.
-
-2003-06-12  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/psaux.h (T1_FieldType): Add
-	T1_FIELD_TYPE_KEY.
-	(T1_FIELD_KEY): New macro.
-	* src/psaux/psobjs.c (ps_parser_load_field): Handle
-	T1_FIELD_TYPE_KEY.
-
-	* src/cid/cidtoken.h: Use T1_FIELD_KEY for /CIDFontName.
-
-2003-06-11  Alexander Malmberg  <alexander@malmberg.org>
-
-	* src/cache/ftlru.c (FT_LruList_Remove_Selection): Decrease
-	number of nodes.
-	(FT_LruList_Lookup): Fix assertion for out-of-memory case.
-
-2003-06-11  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidload.c (cid_decrypt): Removed.
-	(cid_read_subrs): Use t1_decrypt from psaux module.
-	* src/cid/cidload.h: Updated.
-	* src/cid/cidgload.c (cid_load_glyph): Use t1_decrypt from psaux
-	module.
-
-2003-06-10  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidobjs.c: Apply change 2003-05-31 from <Ron.Dev@gmx.de>.
-	Compute style flags.
-	Fix computation of root->height.
-	* src/cid/cidtoken.h: Handle FontBBox.
-	* src/cid/cidload.c (cid_load_keyword): Handle
-	T1_FIELD_LOCATION_BBOX.
-	(parse_font_bbox): Commented out.
-	(cid_field_record): Comment out element for parsing FontBBox.
-
-	* src/type42/t42parse.c (t42_parse_font_bbox): Commented out.
-	(t42_keywords): Handle FontBBox with T1_FIELD_BBOX, not with
-	T1_FIELD_CALLBACK.
-	(t42_parse_font_bbox): Commented out.
-	(t42_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
-	* src/type42/t42objs.c (T42_Face_Init): Apply change 2003-05-31
-	from <Ron.Dev@gmx.de>.
-
-2003-06-09  George Williams  <gww@silcom.com>
-
-	* src/truetype/ttinterp.c (SetSuperRound) <0x30>: Follow Apple's
-	TrueType specification.
-	(Ins_MDRP, Ins_MIRP): Fix single width cut-in test.
-
-2003-06-09  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/gzip/ftgzip.c: (inflate_mask): Replaced with...
-	(NO_INFLATE_MASK): This.
-	* src/gzip/infutil.h: Declare `inflate_mask' conditionally by
-	NO_INFLATE_MASK.
-
-2003-06-09  Alexis S. L. Carvalho  <alexis@cecm.usp.br>
-
-	* src/gzip/ftgzip.c (ft_gzip_file_fill_output): Handle Z_STREAM_END
-	correctly.
-
-2003-06-09  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/pshinter/pshglob.c (psh_globals_new): Change calculation of
-	dim->stdw.count to avoid compiler problem.
-
-	* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Move the block
-	variables to the beginning of the function to avoid compiler
-	problems.
-	Add casts necessary for 16bit compilers.
-
-2003-06-09  Werner Lemberg  <wl@gnu.org>
-
-	* src/pfr/rules.mk (PFR_DRV_SRC): Add pfrsbit.c.
-	(PFR_DRV_H): Add pfrtypes.h.
-
-	* include/freetype/config/ftconfig.h: s/__MWKS__/__MWERKS__/.
-
-2003-06-08  Karl Schultz  <kschultz@rsinc.com>
-
-	* src/pfr/pfrsbit.c (pfr_bitwriter_init): Change type of third
-	argument to FT_Bool.
-	(pfr_lookup_bitmap_data): Change type of third and fourth argument
-	to FT_UInt.  Updated caller.
-	(pfr_load_bitmap_bits): Change type of fourth argument to FT_Bool.
-
-2003-06-08  Werner Lemberg  <wl@gnu.org>
-
-	Completely revised FreeType's make management.
-
-	. In all makefiles `/' is used as the path separator.  The
-	  conversion to the real path separators is done as late as
-	  possible using $(subst ...).
-
-	. $(HOSTSEP) no longer exists.  Now, $(SEP) gives the path separator
-	  for the operating system, and the new $(COMPILER_SEP) the path
-	  separator for the compiler tools.
-
-	. $(BUILD) has been renamed to $(BUILD_DIR).  In general, all
-	  directory variables end with `_DIR'.  The variants ending in `_'
-	  (like `BASE_' have been removed).
-
-	The following ChangeLog entries only describe changes which are
-	not related to the redesign.
-
-	* builds/beos/beos-def.mk (BUILD_DIR): Fix typo.
-	* builds/compiler/watcom.mk (LINK_LIBRARY): Fix linker call to avoid
-	overlong arguments as suggested by J. Ali Harlow
-	<ali@avrc.city.ac.uk>.
-	* builds/dos/dos-wat.mk: New file.
-	* builds/freetype.mk (FREETYPE_H): Include header files from the
-	`devel' subdirectory.
-
-	* builds/os2/os2-dev.mk, builds/unix/unixddef.mk,
-	builds/unix/unixddef.mk, builds/win32/w32-bccd.mk,
-	builds/win32/w32-dev.mk (BUILD_DIR): Fix path.
-
-	* builds/unix/configure.ac, builds/unic/configure: Updated.
-	* builds/unix/unix-def.in (DISTCLEAN): Add `freetype2.pc'.
-
-2003-06-07  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftmac.c (FT_New_Face_From_SFNT): s/rlen/sfnt_size/ to
-	make it compile.
-
-	* devel/ftoption.h: Updated.
-
-2003-06-07  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* include/freetype/internal/psaux.h, src/truetype/ttgload.h:
-	s/index/idx/ to fix compiler warnings.
-
-	* src/sfnt/ttcmap0.c (tt_face_build_cmaps): Use more `volatile' to
-	fix compiler warning.
-
-	* src/gzip/ftgzip.c (BUILDFIXED): Removed.
-	* src/gzip/inftrees.c (inflate_trees_fixed) [!BUILDFIXED]: Use
-	FT_UNUSED to remove compiler warning.
-
-2003-06-06  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ftstroker.h: Renamed to...
-	* include/freetype/ftstroke.h: This.
-
-	* src/base/ftstroker.c: Renamed to...
-	* src/base/ftstroke.c: This.
-
-	* include/freetype/config/ftheader.h (FT_STROKER_H): Updated.
-
-	* src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk:
-	Updated.
-
-	* src/pcf/pcfdriver.c: Renamed to...
-	* src/pcf/pcfdrivr.c: This.
-	* src/pcf/pcfdriver.h: Renamed to...
-	* src/pcf/pcfdrivr.h: This.
-
-	* src/pcf/Jamfile, src/pcf/rules.mk: Updated.
-
-2003-06-05  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
-
-	* src/base/ftmac.c (file_spec_from_path) [TARGET_API_MAC_CARBON]:
-	Add `#if !defined(__MWERKS__)'.
-
-2003-06-05  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/psaux.h (T1_FieldType): Add
-	T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
-	(T1_FIELD_FIXED_1000, T1_FIELD_FIXED_1000_P): New macros.
-	* src/psaux/psobjs.c (ps_parser_load_field): Handle
-	T1_FIELD_TYPE_FIXED_1000 and T1_FIELD_TYPE_FIXED_1000_P.
-
-	* src/cff/cffparse.c (cff_kind_fixed_thousand): New enumeration.
-	(CFF_FIELD_FIXED_1000): New macro.
-	(cff_parser_run): Handle cff_kind_fixed_thousand.
-	* src/cff/cfftoken.h: Use CFF_FIELD_FIXED_1000 for blue_scale.
-	* src/cff/cffload (cff_subfont_load): Fix default values of
-	expansion_factor and blue_scale.
-
-	* src/cif/cidtoken.h, src/type1/t1tokens.h: Use T1_FIELD_FIXED_1000
-	for blue_scale.
-
-	* src/pshinter/pshglob.c (psh_globals_new): Fix default value of
-	blue_scale.
-
-2003-06-04  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* include/freetype/internal/ftdriver.h,
-	include/freetype/internal/ftobjs.h,
-	include/freetype/internal/psaux.h, src/cid/cidgload.c,
-	src/psaux/psobjs.c, src/psaux/t1decode.c, src/psaux/psobjs.h,
-	src/pshinter/pshrec.c, src/pshinter/pshalgo.c,
-	src/psnames/psmodule.c, src/raster/ftraster.c, src/sfnt/sfobjs.c,
-	src/smooth/ftgrays.c, src/smooth/ftsmooth.c, src/truetype/ttobjs.c,
-	src/truetype/ttdriver.c, src/truetype/ttgload.c, src/type1/t1afm.c,
-	src/type1/t1gload.c, src/type1/t1gload.h, src/type1/t1load.c,
-	src/type1/t1objs.c, src/type42/t42parse.c, src/type42/t42parse.h:
-	Many casts and slight argument type changes to make it work with
-	a 16bit compiler.
-
-2003-06-04  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftoption.h: Defining
-	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING by default is a bad idea
-	since some fonts (e.g. Arial) produce worse results than without
-	hinting.  Reverted.
-
-2003-06-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c (load_truetype_glyph)
-	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Call
-	FT_GlyphLoader_CheckPoints before adding phantom points.  This fixes
-	a segfault bug with fonts (e.g. htst3.ttf) which have nested
-	subglyphs more than one level deep.  Reported by Anthony Fok.
-
-	* include/freetype/config/ftoption.h: Define
-	TT_CONFIG_OPTION_BYTECODE_INTERPRETER,
-	TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING, and
-	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to make it the new
-	default.
-
-2003-06-03  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahhint.c (ah_hinter_hint_edges): Removed.  Just a
-	wrapper for ah_hint_edges.
-	(ah_hint_edges): Renamed to...
-	(ah_hinter_hint_edges): This.
-
-	* src/base/ftobjs.c (FT_Set_Hint_Flags): Removed.  Unused.
-
-	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec),
-	include/freetype/internal/psaux.h (T1_DecoderRec),
-	src/cff/cffgload.h (CFF_Builder): Remove `hint_flags' field.
-	Unused.
-
-	* src/cff/cffgload.c (cff_builder_init): Updated.
-	(cff_decoder_parse_charstrings) <cff_op_endchar>: Call hinter->apply
-	with decoder->hint_mode instead of builder->hint_flags.
-	* src/psaux/t1decode.c (t1_decoder_init): Updated.
-
-	* src/base/ftstroker.c (ft_stroke_border_export): s/index/idx/.
-
-	* src/sfnt/sfobjs.c (sfnt_load_face): Commented out code which
-	increased root->height by 15% if the line gap was zero.  There exist
-	fonts (containing e.g. form drawing characters) which intentionally
-	have a zero line gap value.
-
-	* src/truetype/ttinterp.c (Free_Project, CUR_Func_freeProj):
-	Removed.  Unused.
-	Updated all callers.
-
-2003-06-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffobjs.c (cff_face_init): Use symbolic names for
-	Adobe specific encoding IDs (there was a wrong EID value for custom
-	encoding).
-
-	* src/cff/cffcmap.h (CFF_CMapStdRec): Remove `count'.
-	* src/cff/cffcmap.c (cff_cmap_encoding_init,
-	cff_cmap_encoding_done): Updated.
-	(cff_cmap_encoding_char_index, cff_cmap_encoding_char_next): Use
-	256 as limit for character code.
-
-2003-06-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/winfonts/winfnt.c (FNT_Load_Glyph): Revert change from
-	2003-03-20.
-
-2003-05-31  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/fttrigon.h (FT_Vector_Normalize): Removed.
-
-2003-05-31    <Ron.Dev@gmx.de>
-
-	* src/type1/t1objs.c (T1_Face_Init): Improve algorithm for guessing
-	the font style by ignoring spaces and hyphens.
-
-	* builds/unix/freetype2.in: Fix `Version' field.
-
-2003-05-30  Werner Lemberg  <wl@gnu.org>
-
-	Avoid overwriting of numeric font dictionary entries for synthetic
-	fonts.  Additionally, some entries were handled as `integer' instead
-	of `number'.
-
-	* include/freetype/internal/psaux.h (T1_FieldType): Add
-	T1_FIELD_TYPE_BOOL_P, T1_FIELD_TYPE_INTEGER_P, and
-	T1_FIELD_TYPE_FIXED_P.
-	(T1_FIELD_BOOL_P, T1_FIELD_NUM_P, T1_FIELD_FIXED_P): New macros.
-	* src/psaux/psobjs.c (ps_parser_load_field): Handle new field types.
-
-	* include/freetype/internal/cfftypes.h (CFF_FontRecDict),
-	src/cff/cfftoken.h: Change type of underline_position and
-	underline_thickness to FT_Fixed.
-	* src/cff/cffload.c (cff_subfont_load): Fix default values of
-	underline_position and underline_thickness.
-	* src/cff/cffobjs.c (cff_face_init): Set underline_position
-	and underline_thickness in `root'.
-
-	* include/freetype/internal/t1types.h (T1_Font): Change point_type
-	and stroke_width to pointers.
-	* include/freetype/t1tables.h (PS_FontInfo): Change italic_angle,
-	is_fixed_pitch, underline_position, and underline_thickness to
-	pointers.
-	* src/type1/t1tokens.h: Change italic_angle, is_fixed_pitch,
-	underline_position, and underline_thickness to pointers.  Change
-	the type of the latter two to `fixed'.
-	Change type of stroke_width to `fixed' and make it a pointer.
-	Change paint_type to pointer.
-	* src/type1/t1objs.c (T1_Face_Done): Updated.
-	(T1_Face_Init): Updated.
-	Fix assignment of underline_position and underline_thickness.
-
-	* src/cid/cidtoken.h: Change italic_angle, is_fixed_pitch,
-	underline_position, and underline_thickness to pointers.  Change
-	the type of the latter two to `fixed'.
-	Change type of stroke_width to `fixed'.
-	* src/cid/cidobjs.c (cid_face_done): Updated.
-	(cid_face_init): Updated.
-	Fix assignment of underline_position and underline_thickness.
-
-	* src/type42/t42parse.c: Change italic_angle, is_fixed_pitch,
-	underline_position, and underline_thickness to pointers.  Change the
-	type of the latter two to `fixed'.
-	Change type of stroke_width to `fixed' and make it a pointer.
-	Change paint_type to pointer.
-	* src/type42/t42objs.c (T42_Face_Init): Updated.
-	Fix assignment of underline_position and underline_thickness.
-	(T42_Face_Done): Updated.
-
-	* src/base/ftobjs.c (open_face_from_buffer): Fix compiler warning.
-	* src/pshinter/pshglob.c, src/pshinter/pshglob.h
-	(psh_globals_set_scale): Make it a local function.
-
-	* test/gview.c: Fix renaming ps3->ps typo.
-	Formatting.
-
-2003-05-29  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshalgo1.[ch], src/pshinter/pshalgo2.[ch]: Removed.
-	* src/pshinter/pshalgo.h: Removed.
-
-	* src/pshinter/pshalgo3.[ch]: Renamed to...
-	* src/pshinter/pshalgo.[ch]: New files.
-	s/PSH3/PSH/.
-	s/psh3/psh/.
-	s/ps3/ps/.
-
-	* src/pshinter/pshrec.c, src/pshinter/pshinter.c: Updated.
-	* src/pshinter/rules.mk, src/pshinter/Jamfile: Updated.
-
-	* src/pshinter/pshglob.[ch] (psh_dimension_snap_width): Commented
-	out.
-
-	* tests/gview.c: Remove code for pshalgo1 and pshalgo2.
-	Updated.
-
-2003-05-28  Martin Zinser  <zinser@decus.de>
-
-	* vms_make.com: Reworked support for shareable images on VMS.  The
-	first version was kind of a hack; the current implementation of the
-	procedure to extract the required symbols is much cleaner.
-
-	Reworked creation of MMS files, avoiding a number of temporary files
-	which were created in the previous version.
-
-	Further work on creating descrip.mms files on the fly.
-
-	* builds/vms/descrip.mms, src/autohint/descrip.mms,
-	src/type1/descrip.mms: Removed.
-
-2003-05-28  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshalgo3.c (psh3_glyph_compute_extrema): Skip
-	contours with only a single point to avoid segfault.
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Activate code for
-	handling `origin'.
-
-2003-05-24  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahtypes.h (AH_OPTION_NO_STRONG_INTERPOLATION):
-	Removed since unused.
-
-2003-05-21  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftstdlib.h (ft_strcat): New wrapper macro
-	for strcat.
-
-	* src/base/ftmac.c (create_lwfn_name): s/isupper/ft_isupper/.
-	(parse_font): s/memcpy/ft_memcpy/.
-	(is_dfont) [TARGET_API_MAC_CARBON]: s/memcmp/ft_memcmp/.
-	* src/base/ftobjs.c (load_mac_face) [FT_MACINTOSH]:
-	s/strlen/ft_strlen/.
-	s/strcat/ft_strcat/.
-	s/strcpy/ft_strcpy/.
-	* src/gzip/zutil.h: s/memset/ft_memset/.
-	s/memcmp/ft_memcmp/.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
-	(PCF_Face_Init): Test for charset registry case-insensitively.
-
-	* src/gzip/ftgzip.c (ft_gzip_fil_io): Revert change from yesterday;
-	it has already been fixed differently.
-
-	* src/truetype/ttinterp.c (DO_SFVTL): Add missing braces around
-	if-clause.
-
-2003-05-21  Martin Zinser  <zinser@decus.de>
-
-	* t1load.c (parse_blend_axis_types): Fix compiler warning.
-
-	* descrip.mms: Removed.  Now created by...
-
-	* vms_make.com: New file.
-
-2003-05-21  Weiqi Gao  <weiqigao@networkusa.net>
-
-	* src/gzip/ftgzip.c (ft_gzip_file_io): Avoid zero value of `delta'
-	to prevent infinite loop.
-
-2003-05-21  Lars Clausen  <lrclause@cs.uiuc.edu>
-
-	* docs/VERSION.DLL: Provide better autoconf snippet to check
-	FreeType version.
-
-2003-05-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftobjs.c (open_face): Free `internal' not
-	`face->internal' in case of error to avoid possible segfault.
-
-	* src/pshinter/pshalgo3.c (ps3_hints_apply): Check whether we
-	actually have an outline.
-
-2003-05-20  David Chester  <davidchester@qmx.net>
-
-	* src/pshinter/pshalgo3.c (ps3_hints_apply): Try to optimize
-	y_scale so that the top of non-capital letters is aligned on a pixel
-	boundary whenever possible.
-
-	* src/autohint/ahhint.c (ah_hint_edges): Make sure that lowercase
-	m's maintain their symmetry.
-
-2003-05-20  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph): Oops!  David's
-	patch from yesterday has been resolved already in a different
-	way.  Reverted.
-
-2003-05-19  David Chester  <davidchester@qmx.net>
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph): Don't scale
-	y_scale locally but face->size->metrics.y_scale.
-
-2003-05-19  David Turner  <david@freetype.org>
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_char_next): Select proper start
-	value for `hi' to avoid infinite loop.
-
-2003-05-18  Yong Sun  <sunyong@njstar.com>
-
-	* src/raster/ftraster.c (Insert_Y_Turn): Fix overflow test.
-
-2003-05-18  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftoption.h [FT_CONFIG_OPTION_MAC_FONTS]:
-	New macro.
-	* src/base/ftobjs.c: Use it to control mac font support on non-mac
-	platforms.
-
-2003-05-17  George Williams  <gww@silcom.com>
-
-	Implement partial support of Mac fonts on non-Mac platforms.
-
-	* src/base/ftobjs.c (memory_stream_close, new_memory_stream,
-	open_face_from_buffer, Mac_Read_POST_Resource,
-	Mac_Read_sfnt_Resource, IsMacResource, IsMacBinary, load_mac_face)
-	[!FT_MACINTOSH]: New functions.
-	(FT_Open_Face) [!FT_MACINTOSH]: Use load_mac_face.
-
-2003-05-17  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Scale linear advance width only
-	if FT_FACE_FLAG_SCALABLE is set (otherwise we have a division by
-	zero since FNT and friends don't define `face->units_per_EM').
-
-2003-05-15  David Turner  <david@freetype.org>
-
-	* src/base/fttrigon.c (FT_Vector_Rotate): Avoid rounding errors
-	for small values.
-
-2003-05-15  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahtypes.h (AH_PointRec): Remove unused `in_angle'
-	and `out_angle' fields.
-
-2003-05-14  George Williams  <gww@silcom.com>
-
-	* src/base/ftmac.c (FT_New_Face_From_SFNT): Handle CFF files also.
-
-2003-05-14  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h: Fix typo in comment
-	(FT_HAS_FIXED_SIZES).
-
-2003-05-10  Dan Williams  <dan@bigw.org>
-
-	* builds/unix/aclocal.m4: Comment out definition of
-	`allow_undefined_flag' for Darwin 1.3.
-	* builds/unix/configure.ac: Add option --with-old-mac-fonts.
-	* builds/unix/ltmain.sh: Fix version numbering for Darwin 1.3.
-	* builds/unix/configure: Regenerated.
-
-	* include/freetype/config/ftconfig.h: Fix conditions for defining
-	`FT_MACINTOSH'.
-	* src/base/ftbase.c: Include `ftmac.c' conditionally.
-	* src/base/ftmac.c: Handle __GNUC__.
-
-2003-05-07  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
-
-	* src/cid/cidload.c (is_alpha): Removed.
-	(cid_parse_dict): Use `cid_parser_skip_alpha' instead of `is_alpha'.
-
-2003-05-07  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahoptim.c, src/autohint/ahoptim.h: Obsolete, removed.
-
-2003-05-07  David Turner  <david@freetype.org>
-
-	* src/autohint/ahglyph.c (ah_setup_uv): Exchange `for' loop and
-	`switch' statement to make it run faster.
-	(ah_outline_compute_segments): Reset `segment->score' and
-	`segment->link'.
-	(ah_outline_link_segments): Provide alternative code which does
-	the same but runs much faster.
-	Handle major direction also.
-	(ah_outline_compute_edges): Scale `edge_distance_threshold' down
-	after rounding instead of scaling comparison value in loop.
-
-	* src/autohint/ahhint.c (ah_hinter_align_stong_points): Provide
-	alternative code which runs faster.
-	Handle `before->scale == 0'.
-
-	* src/autohint/ahtypes.h (AH_SegmentRec): Move some fields down.
-	(AH_EdgeRec): Move some fields in structure.
-	New field `scale'.
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_char_next): Use binary search.
-
-2003-05-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahoptim.c (LOG): Renamed to...
-	(AH_OPTIM_LOG): This.
-	(AH_Dump_Springs): Fix log message format.
-
-	* src/autohint/ahhint.c (ah_hint_edges_3): Renamed to...
-	(ah_hint_edges): This.
-
-2002-05-02  Keith Packard  <keithp@keithp.com>
-
-	* src/bdf/bdfdrivr.c (BDF_Set_Pixel_Size): Initialize `max_advance'.
-
-2003-05-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahglyph.c (ah_test_extrema): Renamed to...
-	(ah_test_extremum): This.
-
-2003-04-28  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.ac: Generate `freetype.pc' from
-	`freetype.in'.
-	* builds/unix/configure: Regenerated.
-	* builds/unix/install.mk (install, uninstall): Handle `freetype.pc'.
-
-2003-04-28  Gustavo J. A. M. Carneiro  <gjc@inescporto.pt>
-
-	* builds/unix/freetype2.in: New file.  Contains building information
-	for the `pkg-config' package.
-
-2003-04-28  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Fix boundary check for
-	`glyph_index'.
-
-2003-04-25:  Graham Asher  <graham.asher@btinternet.com>
-
-	Added the optional unpatented hinting system for TrueType.  It
-	allows typefaces which need hinting to produce correct glyph forms
-	(e.g., Chinese typefaces from Dynalab) to work acceptably without
-	infringing Apple patents.  This system is compiled only if
-	TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING is defined in
-	ftoption.h.
-
-	* include/freetype/ttunpat.h: New file.  Defines
-	FT_PARAM_TAG_UNPATENTED_HINTING.
-
-	* include/freetype/config/ftheader.h (FT_TRUETYPE_UNPATENTED_H): New
-	macro to use when including ttunpat.h.
-
-	* include/freetype/config/ftoption.h
-	(TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
-	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING): New configuration macros
-	(not defined, but in comments) for the unpatented hinting system.
-
-	* include/freetype/internal/tttypes.h (TT_FaceRec)
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: New element `FT_Bool
-	unpatented_hinting'.
-
-	* src/truetype/ttinterp.c (NO_APPLE_PATENT, APPLE_THRESHOLD):
-	Removed.
-	(GUESS_VECTOR): New macro.
-	(TT_Run_Context) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
-	Set `both_x_axis'.
-	(tt_default_graphics_state)
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Updated.
-	(Current_Ratio) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
-	Handle `unpatented_hinting'.
-	(Direct_Move) [NO_APPLE_PATENT]: Removed.
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
-	(Project, FreeProject)
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Insert assertion.
-	(Compute_Funcs) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
-	Implement unpatented hinting.
-	(DO_SPVTCA, DO_SFVTCA, DO_SPVTL, DO_SFVTL, DO_SPVFS, DO_SFVFS,
-	Ins_SDPVTL): Call `GUESS_VECTOR'.
-	(DO_GPV, DO_GFV) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]:
-	Handle `unpatented_hinting'.
-	(Compute_Point_Displacement) [NO_APPLE_PATENT]: Removed.
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
-	hinting.
-	(Move_Zp2_Point, Ins_SHPIX, Ins_DELTAP, Ins_DELTAC)
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Implement unpatented
-	hinting.
-	(TT_RunIns): Updated.
-
-	* src/truetype/ttobjs.c
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Include
-	FT_TRUETYPE_UNPATENTED_H.
-	(tt_face_init) [TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING,
-	TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING]: Check
-	FT_PARAM_TAG_UNPATENTED_HINTING.
-
-	* src/truetype/ttobjs.h (TT_GraphicsState)
-	[TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING]: Add `both_x_axis'.
-
-2003-04-25  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdflib.c (hash_bucket, hash_lookup): Use `const' for first
-	argument.
-	(bdf_get_font_property): Use `const' for third argument.
-	Updated all callers.
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Set pixel width and height
-	similar to the PCF driver.
-	* src/bdf/bdf.h (_hashnode): Use `const' for `key'.
-	Updated.
-
-	* src/gzip/ftgzip.c: C++ doesn't like that the array `inflate_mask'
-	is declared twice.  It is perhaps better to modify the zlib source
-	files directly instead of this hack.
-	(zcalloc, zfree, ft_gzip_stream_close, ft_gzip_stream_io): Add casts
-	to make build with g++ successful.
-
-2003-04-24  Manish Singh  <yosh@gimp.org>
-
-	* src/cid/cidobjs.c (cid_face_init), src/type1/t1objs.c
-	(T1_Face_Init), src/type42/t42objs.c (T42_Face_Init): Split on `-'
-	also for searching the style name.
-
-2003-04-24  David Turner  <david@freetype.org>
-
-	* src/pcf/pcfread.c (pcf_load_font): Fixed the computation of
-	face->num_glyphs.  We must increase the value by 1 to respect the
-	convention that glyph index 0 always corresponds to the `missing
-	glyph'.
-
-2003-04-24  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/unix-cc.in (CFLAGS): Add @CPPFLAGS@.
-
-2003-04-24  Dieter Baron  <dillo@netbsd.org>
-
-	* builds/unix/freetype-config.in (cflags): Emit FreeType 2's include
-	files first.  Otherwise there are conflicts with FreeType 1
-	installed simultaneously.
-
-2003-04-23  Werner Lemberg  <wl@gnu.org>
-
-	Fixing bugs reported by Nelson Beebe.
-
-	* src/base/ftstroker.c (FT_Stroker_ParseOutline): Remove unused
-	variable `in_path'.
-
-	* src/base/ftobjs (ft_glyphslot_set_bitmap): Change type of
-	second argument to `FT_Byte*'.
-	* include/freetype/internal/ftobjs.h: Updated.
-
-	* src/bdf/bdflib.c (_bdf_readstream): Remove unused variable `res'.
-	(_bdf_parse_glyphs): Remove unused variable `next'.
-	Mark `call_data' as unused.
-
-	* src/cache/ftlru.c (FT_LruList_Lookup): Remove unused variable
-	`plast'.
-
-	* src/pcf/pcfread.c (pcf_seek_to_table_type): Slight recoding to
-	actually use `error'.
-	(pcf_load_font): Remove unused variable `avgw'.
-
-	* src/pfr/pfrobjs.c (pfr_face_get_kerning): Change return type
-	to `void'.
-	Mark `error' as unused.
-	* src/pfr/pfrobjs.h: Updated.
-	* src/pfr/pfrdrivr.c (pfr_get_kerning): Updated.
-
-	* src/sfnt/ttload.c (sfnt_dir_check): Remove unused variable
-	`format_tag'.
-
-	* src/sfnt/ttcmap0.c (tt_cmap6_validate, tt_cmap10_validate): Remove
-	unused variable `start'.
-	(tt_cmap10_char_next): Remove unused variable `result'
-
-	* src/sfnt/sfobjs.c (tt_face_get_name): Mark `error' as unused.
-
-	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Mark `error' as
-	unused.
-
-	* src/type1/t1objs.c (T1_Face_Init): Remove unused variable
-	`pshinter'.
-
-	* src/type1/t1gload.c (T1_Load_Glyph): Use `glyph_data_loaded'
-	only for FT_CONFIG_OPTION_INCREMENTAL.
-
-2003-04-23  Akito Hirai  <akito@kde.gr.jp>
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_validate): Provide a weak variant
-	of the glyph ID bounding check if FT_VALIDATE_TIGHT is not active.
-	Without this change, many CJK fonts from Dynalab are rejected.
-
-2003-04-23  Joe Marcus Clarke  <marcus@FreeBSD.org>
-
-	* src/base/ftbdf.c (FT_Get_BDF_Property): Check for valid
-	`get_interface'.
-
-2003-04-23  Paul Miller  <paulm@profoundeffects.com>
-
-	* src/base/ftmac.c (parse_fond): Fix handling of style names.
-
-2003-04-23  Werner Lemberg  <wl@gnu.org>
-
-	* src/pfr/pfrload.c (pfr_extra_item_load_font_id): Use FT_PtrDist
-	instead of FT_Uint for `len'.
-
-2003-04-22  Werner Lemberg  <wl@gnu.org>
-
-	* src/gzip/ftgzip.c (zcalloc) [!FT_CONFIG_OPTION_SYSTEM_ZLIB]:
-	Convert K&R format to modern C usage.
-	(FT_Stream_OpenGzip): Use long constant.
-
-2003-04-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftccache.c (ftc_cache_lookup): Remove shadow declaration
-	of `manager'.
-
-2003-04-20  Werner Lemberg  <wl@gnu.org>
-
-	* doc/INSTALL.UNX: Cleaned up.
-
-2003-04-09  Torrey Lyons  <torrey@mrcla.com>
-
-	* src/base/ftmac.c (open_face_from_buffer): Removed a double-free
-	bug that had nasty consequences when trying to open an `invalid'
-	font on a Mac.
-
-2003-04-09  Mike Fabian  <mfabian@suse.de>
-
-	* src/bdf/bdfdrivr.h (BDF_encoding_el), src/pcf/pcf.h
-	(PCF_EncodingRec): Changed FT_Short to FT_UShort in order to be able
-	to access more than 32768 glyphs in fonts.
-
-2003-04-08  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.4 released.
-	=========================
-
-
-2003-04-03  Martin Muskens  <mmuskens@aurelon.com>
-
-	* src/type1/t1load.c (T1_Open_Face): Fixed the code to make it
-	handle special cases where a font only contains a `.notdef' glyph
-	(happens in PDF-embedded fonts).  Otherwise, FT_Panic was called.
-
-2003-03-27  David Turner  <david@freetype.org>
-
-	* README: Udpated.
-
-	* README.UNX: Removed (now replaced by docs/INSTALL.UNX).
-
-	* src/pshinter/pshalgo3.c: The hinter now performs as in 2.1.3 and
-	will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is
-	used.
-	(psh3_dimension_quantize_len): Enabled.
-	(psh3_hint_align): Enable commented code.
-	(psh3_hint_align_light): Commented out.
-
-	* src/base/ftobjs.c (FT_Set_Char_Size): Changed the default
-	computations to include rounding in all cases; this is required to
-	provide accurate kerning data when native TrueType hinting is
-	enabled.
-
-	* src/type1/t1load.c (is_name_char): The Type 1 loader now accepts
-	more general names according to the PostScript specification (the
-	previous one was too restrictive).
-	(parse_font_name, parse_encoding, parse_charstrings, parse_dict):
-	Use `is_name_char'.
-	(parse_subrs): Handle empty arrays.
-
-2003-03-20  David Turner  <david@freetype.org>
-
-	Serious rewriting of the documentation.
-
-	* docs/BUGS, docs/BUILD: Removed.
-	* docs/DEBUG.TXT: Renamed to...
-	* docs/DEBUG: This.
-	* docs/CUSTOMIZE, docs/TRUETYPE, docs/UPGRADE.UNX: New files.
-	* docs/INSTALL.ANY, docs/INSTALL.UNX, docs/INSTALL.GNU New files,
-	containing platform specific information previously in INSTALL.
-	* docs/readme.vms: Renamed to...
-	* docs/INSTALL.VMS: This.
-
-	* docs/*: Updated.
-
-	Introduced three new functions to deal with glyph bitmaps within
-	FT_GlyphSlot objects:
-
-	  ft_glyphslot_free_bitmap
-	  ft_glyphslot_alloc_bitmap
-	  ft_glyphslot_set_bitmap
-
-	These functions are much more convenient to use than managing the
-	FT_GLYPH_OWN_BITMAP flag manually.
-
-	* include/freetype/internal/ftobjs.h (ft_glyphslot_free_bitmap,
-	ft_glyphslot_alloc_bitmap, ft_glyphslot_set_bitmap): New functions.
-	* src/base/ftobjs.c: Implement them.
-	(ft_glyphslot_done): Use ft_glyphslot_free_bitmap.
-
-	* src/bdf/bdfdrivr.c (BDF_Glyph_Load), src/pcf/pcfdriver.c
-	(PCF_Glyph_Load): Remove unused variable `memory'.
-	Use `ft_glyphslot_*' functions.
-	Don't set `FT_GLYPH_OWN_BITMAP'.
-
-	* src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Use
-	`ft_glyphslot_alloc_bitmap'.
-
-	* src/sfnt/ttsbit.c (Load_SBit_Image): Change 5th argument to type
-	`FT_GlyphSlot'.
-	Adding argument `depth' to handle recursive calls.
-	Use `ft_glyphslot_alloc_bitmap'.
-	(tt_face_load_sbit_image): Remove unused variable `memory'.
-	Don't handle `FT_GLYPH_OWN_BITMAP'.
-	Update call to Load_SBit_Image.
-
-	* src/type42/t42objs.c (ft_glyphslot_clear): Renamed to...
-	(t42_glyphslot_clear): This.  Updated caller.
-	Call `ft_glyphslot_free_bitmap'.
-
-	* src/winfonts/winfnt.c (FNT_Load_Glyph): Use
-	`ft_glyphslot_set_bitmap'.
-	Don't handle `FT_GLYPH_OWN_BITMAP'.
-
-	* src/cache/ftlru.c (FT_LruList_Lookup): Fixed an invalid assertion
-	check.
-
-	* src/autohint/ahglyph.c (ah_outline_load): Add two scaling
-	arguments.
-	* src/autohint/ahglyph.h: Updated.
-	* src/autohint/ahhint.c (ah_hinter_load): Updated.
-	* src/autohint/ahglobal.c (ah_hinter_compute_widths): Updated.
-
-	* src/cache/ftccache.c (ftc_family_done): Fixed small bug that could
-	crash the cache in rare circumstances (mostly with broken fonts).
-
-2003-03-15  David Turner  <david@freetype.org>
-
-	* src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a small rounding
-	bug.  Actually, it seems that previous versions of FreeType didn't
-	perform TrueType rounding exactly as appropriate.
-
-2003-03-14  David Turner  <david@freetype.org>
-
-	* src/truetype/ttdriver.c (Set_Char_Sizes): Fixing the small
-	TrueType native rendering glitches; they came from a small rounding
-	error.
-
-2003-03-13  David Turner  <david@freetype.org>
-
-	Added new environment variables to control memory debugging with
-	FreeType.  See the description of `FT2_DEBUG_MEMORY',
-	`FT2_ALLOC_TOTAL_MAX' and `FT2_ALLOC_COUNT_MAX' in DEBUG.TXT.
-
-	* src/base/ftdbgmem.c (FT_MemTableRec): Add `alloc_count',
-	`bound_total', `alloc_total_max', `bound_count', `alloc_count_max'.
-	(ft_mem_debug_alloc): Handle new variables.
-	(ft_mem_debug_init): s/FT_DEBUG_MEMORY/FT2_DEBUG_MEMORY/.
-	Handle new environment variables.
-	* docs/DEBUG.TXT: Updated.
-
-	Fixed the cache sub-system to correctly deal with out-of-memory
-	conditions.
-
-	* src/cache/ftccache.c (ftc_node_destroy): Comment out generic
-	check.
-	(ftc_cache_lookup): Implement loop.
-	* src/cache/ftccmap.c: Define FT_COMPONENT.
-	* src/cache/ftcsbits.c (ftc_sbit_node_load): Handle
-	FT_Err_Out_Of_Memory.
-	* src/cache/ftlru.c: Include FT_INTERNAL_DEBUG_H.
-	(FT_LruList_Lookup): Implement loop.
-
-	* src/pfr/pfrobjs.c (pfr_face_done): Fix memory leak.
-	(pfr_face_init): Fixing compiler warnings.
-
-	* src/psaux/psobjs.c (reallocate_t1_table): Fixed a bug (memory
-	leak) that only happened when a try to resize an array would end in
-	an out-of-memory condition.
-
-	* src/smooth/ftgrays.c (gray_convert_glyph): Removed compiler
-	warnings / volatile bug.
-
-	* src/truetype/ttobjs.c (tt_glyphzone_done): Removed segmentation
-	fault that happened in tight memory environments.
-
-2003-02-28  Pixel  <pixel@mandrakesoft.com>
-
-	* src/gzip/ftgzip.c (ft_gzip_file_done): Fixed memory leak: The ZLib
-	stream was not properly finalized.
-
-2003-02-25  Anthony Fok  <anthony@thizlinux.com>
-
-	* src/cache/ftccmap.c: Include FT_TRUETYPE_IDS_H.
-	(ftc_cmap_family_init): The cmap cache now
-	supports UCS-4 charmaps when available in Asian fonts.
-
-	* src/sfnt/ttload.c, src/base/ftobjs.c: Changed `asian' to `Asian'
-	in comments.
-
-2003-02-25  David Turner  <david@freetype.org>
-
-	* src/gzip/ftgzip.c (ft_gzip_file_fill_output): Fixed a bug that
-	caused FreeType to loop endlessly when trying to read certain
-	compressed gzip files.  The following test reveals the bug:
-
-	  touch 0123456789 ; gzip 0123456789 ; ftdump 0123456789.gz
-
-	Several fixes to the PFR font driver:
-
-	- The list of available embedded bitmaps was not correctly set in
-	  the root FT_FaceRec structure describing the face.
-
-	- The glyph loader always tried to load the outlines when
-	  FT_LOAD_SBITS_ONLY was specified.
-
-	- The table loaded now scans for *undocumented* elements of a
-	  physical font's auxiliary data record.  This is necessary to
-	  retrieve the `real' family and style names.
-
-	NOTE THAT THESE CHANGES THE FAMILY NAME OF MANY PFR FONTS!
-
-	* src/pfr/pfrload.c (pfr_aux_name_load): New function.
-	(pfr_phy_font_done): Free `family_name' and `style_name' also.
-	Remove unused variables.
-	(pfr_phy_font_load): Extract useful information from the auxiliary
-	bytes.
-
-	* src/pfr/pfrobjs.c (pfr_face_done): Set pointers to NULL.
-	(pfr_face_init): Provide fallback values for `family_name' and
-	`style_name'.
-	Handle strikes.
-	(pfr_slot_load): Handle FT_LOAD_SBITS_ONLY.
-	* src/pfr/pfrtypes.h (PFR_PhyFontRec): Add fields `ascent',
-	`descent', `leading', `family_name', and `style_name'.
-
-	* src/truetype/ttdriver.c (Set_Char_Sizes): Fixed a rounding bug
-	when computing the scale factors for a given character size in
-	points with resolution.
-
-	* devel/ft2build.h, devel/ftoption.h: New files (in a new directory)
-	which are special development versions of include/ft2build.h and
-	include/freetype/config/ftoption.h, respectively.
-
-2003-02-18  David Turner  <david@freetype.org>
-
-	Fixing the slight distortion problem that occurred due to the latest
-	auto-hinter changes.
-
-	* src/base/ftobjs.c (ft_recompute_scaled_metrics): Fix rounding.
-
-	* src/truetype/ttdriver.c (Set_Char_Sizes): New variable `metrics2'.
-	[!TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Removed.
-
-	* src/truetype/ttobjs.h (TT_SizeRec): New field `metrics'.
-	* src/truetype/ttobjs.c (Reset_Outline_Size): Fix initialization of
-	`metrics'.
-	[FT_CONFIG_CHESTER_ASCENDER]: Code removed.
-	(Reset_SBit_Size): Fix initialization of `metrics'.
-
-	* src/truetype/ttinterp.c (TT_Load_Context): Fix initialization of
-	`exec->metrics'.
-
-	* src/autohint/ahhint.c (ah_hinter_load): Disabled the advance width
-	`correction' which seemed to provide more trouble than benefits.
-
-2003-02-13  Graham Asher  <graham.asher@btinternet.com>
-
-	Changed the incremental loading interface in a way that makes it
-	simpler and allows glyph metrics to be changed (e.g., by adding a
-	constant, as required by CFF fonts) rather than just overridden.
-	This was required to make the GhostScript-to-FreeType bridge work.
-
-	* src/cff/cffgload.c (cff_slot_load) [FT_CONFIG_OPTION_INCREMENTAL]:
-	Allow metrics to be overridden.
-	* src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:
-	Ditto.
-
-	* src/truetype/ttgload.c (load_truetype_glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Simplify.
-	(compute_glyph_metrics) [FT_CONFIG_OPTION_INCREMENTAL]: Code block
-	moved down.
-
-	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-
-	* include/freetype/ftincrem.h: Updated.
-
-2003-01-31  David Turner  <david@freetype.org>
-
-	* docs/CHANGES, docs/VERSION.DLL, docs/TODO: Updating documentation
-	for the 2.1.4 release.
-
-	* builds/win32/visualc/freetype.dsp,
-	builds/win32/visualc/index.html: Updating the project file for
-	2.1.4.
-
-	* src/gzip/adler32.c, src/gzip/ftgzip.c, src/gzip/infblock.c,
-	src/gzip/infcodes.c, src/gzip/inflate.c, src/gzip/inftrees.c,
-	src/gzip/infutil.c: Removed old-style (K&R)function definitions.
-	This avoids warnings with Visual C++ at its most pedantic mode.
-
-	* src/pfr/pfrsbit.c: Removed compiler warnings.
-
-	* src/cache/ftccmap.c (ftc_cmap_family_init): Changed an FT_ERROR
-	into an FT_TRACE1 since it caused `ftview' and others to dump too
-	much junk when trying to display a waterfall with a font without a
-	Unicode charmap (e.g.  SYMBOL.TTF).
-
-	Implemented FT_CONFIG_CHESTER_BLUE_SCALE, corresponding to the last
-	patch from David Chester, but with a much simpler (and saner)
-	implementation.
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph)
-	[FT_CONFIG_CHESTER_BLUE_SCALE]: Try to optimize the y_scale so that
-	the top of non-capital letters is aligned on a pixel boundary
-	whenever possible.
-
-	* src/base/ftobjs.c (FT_Set_Char_Size)
-	[FT_CONFIG_CHESTER_BLUE_SCALE]: Round differently.
-	* src/truetype/ttdriver.c (Set_Char_Sizes)
-	[TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Do some rounding only
-	if this macro is defined.
-
-	* src/truetype/ttobjs.c (Reset_Outline_Size)
-	[FT_CONFIG_CHESTER_ASCENDER]: Round differently.
-
-	* src/pshinter/pshalgo3.c: Improved the Postscript hinter.  Getting
-	rid of stem snapping seems to work well here (though the stems are
-	still slightly moved to increase contrast).
-	(psh3_dimension_quantize_len): Commented out.
-	(psh3_hint_align_light): New function.
-	(psh3_hint_align): Comment out some code.
-
-	THIS IMPROVES ANTI-ALIASED RENDERING, BUT MONOCHROME AND LCD MODES
-	STILL SUCK.
-
-2003-01-22  David Chester  <davidchester@qmx.net>
-
-	* src/autohint/ahhint.c (ah_compute_stem_width): Small fix to the
-	stem width optimization.
-
-2003-01-22  David Turner  <david@freetype.org>
-
-	Adding a new API `FT_Get_BDF_Property' to retrieve the BDF
-	properties of a given PCF or BDF font.
-
-	* include/freetype/ftbdf.h (FT_PropertyType): New enumeration.
-	(BDF_Property, BDF_PropertyRec): New structure.
-	FT_Get_BDF_Property): New function.
-	* include/freetype/internal/bdftypes.h: Include FT_BDF_H.
-	(BDF_GetPropertyFunc): New function pointer.
-
-	* src/base/ftbdf.c (test_font_type): New helper function.
-	(FT_Get_BDF_Charset_ID): Use `test_font_type'.
-	(FT_Get_BDF_Property): New function.
-
-	* src/bdf/bdfdrivr.c: Include FT_BDF_H.
-	(bdf_get_bdf_property, bdf_driver_requester): New functions.
-	(bdf_driver_class): Use `bdf_driver_requester'.
-
-	* src/pcf/pcfdrivr.c: Include FT_BDF_H.
-	(pcf_get_bdf_property, pdc_driver_requester): New functions
-	(pcf_driver_class): Use `pcf_driver_requester'.
-
-	* src/pcf/pcfread.c: Include `pcfread.h'.
-	(pcf_find_property): Decorate it with FT_LOCAL_DEF.
-	* src/pcf/pcfread.h: New file, providing `pcf_find_property'.
-
-	* src/sfnt/ttload.c (sfnt_dir_check): Relaxed the `head' table size
-	verification to accept a few broken fonts who pad the size
-	incorrectly (the table should be padded, but its `size' field
-	shouldn't according to the specification).
-
-2003-01-18  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/ltmain.sh: Regenerated with `libtoolize --force
-	--copy' from libtool 1.4.3.
-	* builds/unix/aclocal.m4: Regenerated with `aclocal -I .' from
-	automake 1.7.1.
-	* builds/unix/configure: Regenerated with autoconf 2.54.
-	* builds/unix/config.guess, builds/unix/config.sub: Updated from
-	`config' CVS module at subversions.gnu.org.
-	* builds/unix/install-sh, builds/unix/mkinstalldirs: Updated from
-	`automake' CVS module at subversions.gnu.org.
-
-2003-01-15  David Turner  <david@freetype.org>
-
-	* include/freetype/freetype.h: Fixed documentation for
-	FT_Size_Metrics.
-
-2003-01-15  James Su  <suzhe@turbolinux.com.cn>
-
-	* src/gzip/ftgzip.c (ft_gzip_check_header): Bugfix: couldn't read
-	certain gzip-ed font files (typo: `&&' -> `&').
-
-2003-01-15  Huw D M Davies  <h.davies1@physics.ox.ac.uk>
-
-	Added a Windows .FNT specific API (mostly for Wine).  Also fixed a
-	nasty bug in the header loader which would cause invalid memory
-	overwrites.
-
-	* include/freetype/config/ftheader.h (FT_WINFONTS_H): New macro
-	for ftwinfnt.h.
-	* include/freetype/internal/fnttypes.h: Include FT_WINFONTS_H.
-	(FNT_FontRec): Updated.
-	Move Windows FNT definition to...
-	* include/freetype/ftwinfnt.h: This new file.
-	(FT_WinFNT_HeaderRec): Rename `reserved2' to `reserved1'.
-	* src/base/ftwinfnt.c: New file, providing `FT_Get_WinFNT_Header'.
-	* src/winfonts/winfnt.c (winfnt_header_fields): Updated.
-	Rename `reserved2' to `reserved1'.
-	(fnt_font_load): Updated.
-
-	* src/base/Jamfile, src/base/descrip.mms, src/base/rules.mk:
-	Updated.
-
-2003-01-14  Graham Asher  <graham.asher@btinternet.com>
-
-	* include/freetype/ftglyph.h, src/base/ftglyph.c: Added `const' to
-	the type of the first argument to FT_Matrix_Multiply, which isn't
-	changed -- this adds documentation and convenience.
-
-2003-01-13  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/sfnt/ttload.c (tt_face_load_metrics)
-	[FT_CONFIG_OPTION_INCREMENTAL]: TrueType typefaces without
-	horizontal metrics (without the `hmtx' table) are now tolerated if
-	an incremental interface has been specified that has a
-	get_glyph_metrics function, implying that metrics will be supplied
-	from outside.  This happens for certain Type 42 fonts passed from
-	GhostScript.
-
-2003-01-11  David Chester  <davidchester@qmx.net>
-
-	Patches to the auto-hinter in order to slightly improve the output.
-	Note that everything is controlled through the new
-	FT_CONFIG_OPTION_CHESTER_HINTS defined in `ftoption.h'.  There are
-	also individual FT_CONFIG_CHESTER_XXX macros to control individual
-	`features'.
-
-	Note that all improvements are enabled by default, but can be
-	tweaked for optimization and testing purposes.  The configuration
-	macros will most likely disappear in the short future.
-
-	* include/freetype/config/ftoption.h
-	(FT_CONFIG_OPTION_CHESTER_HINTS): New macro.
-	(FT_CONFIG_CHESTER_{SMALL_F,ASCENDER,SERIF,STEM,BLUE_SCALE})
-	[FT_CONFIG_OPTION_CHESTER_HINTS]: New macros to control individual
-	features.
-
-	* src/autohint/ahglobal.c (blue_chars) [FT_CONFIG_CHESTER_SMALL_F]:
-	Add blue zone for `fijkdbh'.
-	* src/autohint/ahglobal.h (AH_IS_TOP_BLUE)
-	[FT_CONFIG_CHESTER_SMALL_F]: Use `AH_BLUE_SMALL_F_TOP'.
-	* src/autohint/ahglyph.c (ah_outline_compute_edges)
-	[FT_CONFIG_CHESTER_SERIF]: Use `AH_EDGE_SERIF'.
-	(ah_outline_compute_blue_edges) [FT_CONFIG_CHESTER_SMALL_F]:
-	Increase threshold for `best_dist'.
-	* src/autohint/ahhint.c (ah_compute_stem_width)
-	[FT_CONFIG_CHESTER_SERIF]: Provide new version for improved serif
-	handling.
-	(ah_align_linked_edge) [FT_CONFIG_CHESTER_SERIF]: Use special
-	version of `ah_compute_stem_width'.
-	(ah_hint_edges_3) [FT_CONFIG_CHESTER_STEM]: A new algorithm for stem
-	alignment when stem widths are less than 1.5 pixels wide centers the
-	stem slightly off-center of the center of a pixel (this increases
-	sharpness and consistency).
-	[FT_CONFIG_CHESTER_SERIF]: Use special version of
-	`ah_compute_stem_width'.
-	* src/autohint/ahtypes.h [FT_CONFIG_CHESTER_SMALL_F]: Add
-	`AH_BLUE_SMALL_F_TOP'.
-
-2003-01-11  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/fnttypes.h (WinFNT_HeaderRec): Increase
-	size of `reserved2' to avoid memory overwrites.
-
-2003-01-08  Huw Dawies  <huw@codeweavers.com>
-
-	* src/winfonts/winfnt.c (winfnt_header_fields): Read 16 bytes into
-	`reserved2', not `reserved'.
-
-	* src/base/ftobjs.c (find_unicode_charmap): Fixed the error code
-	returned when the font doesn't contain a Unicode charmap.  This
-	allows FT2 to load `symbol.ttf' and a few others correctly since the
-	last release.
-	(open_face): Fix return value.
-
-2003-01-08  Owen Taylor  <owen@redhat.com>
-
-	Implemented the FT_RENDER_MODE_LIGHT hinting mode in the auto and
-	postscript hinters.
-
-	* src/autohint/ahtypes.h (AH_HinterRec): Add `do_stem_adjust'.
-	* src/autohint/ahhint.c (ah_compute_stem_width): Handle
-	hinter->do_stem_adjust.
-	(ah_hinter_load_glyph): Set hinter->do_stem_adjust.
-
-	* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add `do_stem_adjust'.
-	* src/pshinter/pshalgo3.c (psh3_hint_align): Use `do_stem_adjust'.
-	(ps3_hints_apply): Handle FT_RENDER_MODE_LIGHT.
-
-	* include/freetype/freetype.h (FT_Render_Mode): Add
-	FT_RENDER_MODE_LIGHT.
-
-	* src/truetype/ttgload.c: Fixing the TrueType loader to handle
-	invalid composites correctly by limiting the recursion depth.
-	(TT_MAX_COMPOSITE_RECURSE): New macro.
-	(load_truetype_glyph): Add argument `recurse_count'.
-	Load a composite only if the numbers of contours is -1, emit error
-	otherwise.
-	(TT_Load_Glyph): Updated.
-
-2003-01-08  David Turner  <david@freetype.org>
-
-	* Jamrules, Jamfile, Jamfile.in, src/*/Jamfile: Small changes to
-	support the compilation of FreeType 2 as part of larger projects
-	with their own configuration options (only with Jam).
-
-2003-01-07  David Turner  <david@freetype.org>
-
-	* src/base/ftstroker.c: Probably the last bug-fixes to the stroker;
-	the API is likely to change, however.
-	(ft_stroke_border_close): Don't record empty paths.
-	(ft_stroke_border_get_counts): Increase `num_points' also in for loop.
-	(ft_stroke_border_export): Don't increase `write' twice in for loops.
-	(ft_stroker_outside): Handle `phi' together with `theta'.
-	(FT_Stroker_ParseOutline): New function.
-
-	* src/base/fttrigon.c (FT_Angle_Diff): Fixing function: It returned
-	invalid values for large negative angle differences (resulting in
-	incorrect stroker computations, among other things).
-
-	* src/cache/ftccache.c (ftc_node_hash_unlink): Removing incorrect
-	assertion, and changing code to avoid hash table size contraction.
-
-	* src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms: Adding
-	`ftstroker' to default build, as optional component.
-
-2002-12-26  David Turner  <david@freetype.org>
-
-	* src/gzip/adler32.c, src/gzip/infblock.c, src/gzip/inflate.c,
-	src/gzip/inftrees.c, src/gzip/zconf.h, src/gzip/zlib.h,
-	src/gzip/zutil.h: Updates to allow compilation without compiler
-	warnings with LCC-Win32.
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
-	* builds/unix/configure.ac (version_info): Increased to 9:3:3.
-	* builds/unix/configure: Regenerated.
-	* docs/VERSION.DLL: Updated.
-
-2002-12-23  Anthony Fok  <anthony@thizlinux.com>
-
-	* builds/unix/configure.ac, builds/unix/unix-cc.in (LINK_LIBRARY),
-	builds/unix/unix-def.in (SYSTEM_ZLIB): Small fix to configure
-	sub-system on Unix to allow other programs to correctly link with
-	zlib when needed.
-
-2002-12-19  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/sfnt.h (SFNT_Load_Table_Func): New
-	function pointer.
-
-	* include/freetype/tttables.h (FT_Load_Sfnt_Table): New function.
-	* src/base/ftobjs.c: Implement it.
-
-	* src/sfnt/sfdriver.c (sfnt_get_interface): Handle `load_sfnt'
-	module request.
-
-2002-12-17  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c (find_unicode_charmap): Added some comments to
-	better explain what's happening there.
-	(open_face): Included Graham Asher's fix to prevent faces without
-	Unicode charmaps from loading.
-
-	* src/winfonts/winfnt.c: Included George Williams's fix to support
-	version 2 fonts correctly.
-	(winfnt_header_fields): Updated.
-	(fnt_font_load): Handle version 2 fonts.
-	(FNT_Load_Glyph): Updated.
-
-2002-12-16  David Turner  <david@freetype.org>
-
-	* docs/VERSION.DLL: Updating document to better explain the
-	differences between the three version numbers being used on Unix, as
-	well as providing an autoconf fragment provided by Lars Clausen.
-
-	* src/smooth/ftgrays.c (gray_render_conic): Fixed small bug that
-	prevented bezier arcs with negative vertical coordinates to be
-	rendered appropriately.
-
-2002-12-02  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
-
-	* src/base/ftobjs.c: Modified the logic to get Unicode charmaps.
-	Now it loads UCS-4 charmaps when there is one.
-	(find_unicode_charmap): New function.
-	(open_face): Refer to the above one.
-	(FT_Select_Charmap): Idem.
-
-2002-11-29  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
-
-	* include/freetype/ftgzip.h: Correct the name of the controlling
-	macro (was __FTXF86_H__ ...).
-
-2002-11-27  Vincent Caron  <v.caron@zerodeux.net>
-
-	* builds/unix/unix-def.in, builds/unix/freetype-config.in,
-	builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c
-	[FT_CONFIG_OPTION_SYSTEM_ZLIB]: Adding support for system zlib
-	installations if available on the target platform (Unix only).
-
-2002-11-23  David Turner  <david@freetype.org>
-
-	* src/cff/cffload.c (cff_charset_load, cff_encoding_load): Modified
-	charset loader to accept pre-defined charsets, even when the font
-	contains fewer glyphs.  Also enforced more checks to ensure that we
-	never overflow the character codes array in the encoding.
-
-2002-11-22  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
-
-	* include/freetype/ttnameid.h: Updated to latest OpenType
-	specification.
-
-2002-11-18  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.3 released.
-	=========================
-
-
-2002-11-07  David Turner  <david@freetype.org>
-
-	* src/cache/ftcsbit.c (ftc_sbit_node_load): Fixed a small bug that
-	caused problems with embedded bitmaps.
-
-	* src/otlayout/otlayout.h, src/otlyaout/otlconf.h,
-	src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
-	src/otlayout/otlparse.c, src/otlayout/otlparse.h,
-	src/otlayout/otlutils.h: Updating the OpenType Layout code, adding
-	support fot the first GSUB lookups.  Nothing that really compiles
-	for now though.
-
-	* src/autohint/ahhint.c (ah_align_serif_edge): Disabled serif stem
-	width quantization.  It produces slightly better shapes though this
-	is not distinguishable with many fonts.
-	Remove other dead code.
-
-	* src/Jamfile, src/*/Jamfile: Simplified.
-	Use $(FT2_SRC_DIR).
-
-2002-11-06  David Turner  <david@freetype.org>
-
-	* include/freetype/freetype.h (FT_LOAD_TARGET_LIGHT): New macro.
-	(FT_LOAD_TARGET, FT_LOAD_TARGET_MODE): Use `& 15' instead of `& 7'.
-
-2002-11-05  David Turner  <david@freetype.org>
-
-	* include/freetype/config/ftoption.h, src/gzip/ftgzip.c: Added
-	support for the FT_CONFIG_OPTION_SYSTEM_ZLIB option, used to specify
-	the use of system-wide zlib.
-
-	Note that this macro, as well as
-	FT_CONFIG_OPTION_BYTECODE_INTERPRETER, is not #undef-ed anymore.
-	This allows the build system to define them depending on the
-	configuration (typically by adding -D flags at compile time).
-
-	* src/sfnt/ttcmap0.c (tt_face_build_cmaps): Removed compiler
-	warnings in optimized mode relative to the `volatile' local
-	variables.  This was not a compiler bug after all, but the fact that
-	a pointer to a volatile variable is not the same as a volatile
-	pointer to a variable :-)
-
-	The fix was to change
-	  `volatile FT_Byte* p'
-	into
-	  `FT_Byte* volatile p'.
-
-	* src/pfr/pfrload.c (pfr_phy_font_load), src/pfr/pfrdrivr.c
-	(pfr_get_metrics), src/gzip/inftrees.c: Removed compiler warnings in
-	optimized modes.
-
-	* src/gzip/*.[hc]: Modified our zlib copy in order to prevent
-	exporting any zlib function names outside of the component.  This
-	prevents linking problems on some platforms, when applications want
-	to link FreeType _and_ zlib together.
-
-2002-11-05  Juliusz  <jch@pps.jussieu.fr>
-
-	* src/psaux/psobjs.c (ps_table_add): Modified increment loop in
-	order to implement exponential behaviour.
-
-2002-11-01  David Turner  <david@freetype.org>
-
-	Added PFR-specific public API.  Fixed the kerning retrievel routine
-	(it returned invalid values when the outline and metrics resolution
-	differ).
-
-	* include/freetype/ftpfr.h, include/freetype/internal/pfr.h: New
-	files.
-
-	* include/freetype/internal/internal.h (FT_INTERNAL_PFR_H): New
-	macro for pfr.h.
-
-	* src/base/ftpfr.c: New file.
-	* src/base/Jamfile, src/base/descrip.mms: Updated.
-
-	* src/pfr/pfrdrivr.c: Include FT_INTERNAL_PFR_H.
-	(pfr_get_kerning, pfr_get_advance, pfr_get_metrics): New functions.
-	(pfr_service_rec): New format interface.
-	(pfr_driver_class): Use `pfr_service_rec'.
-	Replace `pfr_face_get_kerning' with `pfr_get_kerning'.
-	* src/pfr/pfrobjs.c: Remove dead code.
-
-	* src/base/ftobjs.c (ft_glyphslot_clear): Small internal fix to
-	better support bitmap-based font formats.
-
-	* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Fix handling of
-	`scale'.
-	Fix arguments to `FT_Vector_From_Polar'.
-
-2002-10-31  David Turner  <david@freetype.org>
-
-	Add support for automatic handling of gzip-compressed PCF files.
-
-	* src/gzip/*: New files, taken from the zlib package (except
-	ftgzip.c).
-
-	* include/freetype/ftgzip.h, src/gzip/ftgzip.c: New files.
-	* include/freetype/config/ftheader.h (FT_GZIP_H): New macro for
-	`ftgzip.h'.
-
-	* src/pcf/pcfdriver.c: Include FT_GZIP_H and FT_ERRORS_H.
-	(PCF_Face_Init): If normal open fails, try to open gzip stream.
-	(PCF_Face_Done): Close gzip stream.
-
-	* include/freetype/internal/pcftypes.h (PCF_Public_FaceRec),
-	src/pcf/pcf.h (PCF_FaceRec): Add `gzip_stream' and `gzip_source'.
-
-	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_ZLIB):
-	New macro.
-	(T1_CONFIG_OPTION_DISABLE_HINTER, FT_CONFIG_OPTION_USE_CMAPS
-	FT_CONFIG_OPTION_NO_CONVENIENCE_FUNCS,
-	FT_CONFIG_OPTION_ALTERNATE_GLYPH_FORMATS): Removed.
-
-	(FT_EXPORT, FT_EXPORT_DEF, FT_DEBUG_LEVEL_ERROR,
-	FT_DEBUG_LEVEL_TRACE, FT_DEBUG_MEMORY): Comment out definitions so
-	that platform specific configuration file can override.
-
-	* include/freetype/internal/ftstream.h: Include FT_SYSTEM_H.
-
-2002-10-30  David Turner  <david@freetype.org>
-
-	* FreeType 2.1.3rc3 released.
-
-2002-10-25  David Turner  <david@freetype.org>
-
-	* include/freetype/ftcache.h (FT_POINTER_TO_ULONG): New macro.
-	(FTC_FACE_ID_HASH): Rewritten, using FT_POINTER_TO_ULONG.
-
-2002-10-22  Giuseppe Ghib�  <ghibo@mandrakesoft.com>
-
-	* include/freetype/freetype.h (FT_Encoding): Fix entry for latin-2.
-
-2002-10-07  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h (FT_Open_Face): Use `const' for `args'
-	(suggested by Graham).
-	* src/base/ftobjs.c (FT_Open_Face): Updated.
-	(ft_input_stream_new): Ditto.
-
-2002-10-05  David Turner  <david@freetype.org>
-
-	Adding support for embedded bitmaps to the PFR driver, and rewriting
-	its kerning loader/handler to use all kerning pairs in a physical
-	font (and not just the first item).
-
-	* src/pfr/pfr.c: Include `pfrsbit.c'.
-	* src/pfr/pfrgload.c: Include `pfrsbit.h'.
-	* src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): Rewritten.
-	(pfr_phy_font_done, pfr_phy_font_load): Updated.
-	* src/pfr/pfrobks.c: Include `pfrsbit.h'.
-	(pfr_face_init): Handle kerning and embedded bitmaps.
-	(pfr_slot_load): Load embedded bitmaps.
-	(PFR_KERN_INDEX): Removed.
-	(pfr_face_get_kerning): Rewritten.
-	* src/pfr/pfrsbit.c, src/pfr/pfrsbit.h: New files.
-	* src/pfr/pfrtypes.h (PFR_KernItemRec): New structure.
-	(PFR_KERN_INDEX): New macro.
-	(PFR_PhyFontRec): Add items for kerning and embedded bitmaps.
-	* src/pfr/Jamfile (_sources) [FT2_MULTI]: Add `pfrsbit'.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Don't load bitmap fonts if
-	FT_LOAD_NO_RECURSE is set.
-	Load embedded bitmaps only if FT_LOAD_NO_BITMAP isn't set.
-
-	* src/tools/docmaker/content.py, src/tools/docmaker/sources.py,
-	src/tools/docmaker/tohtml.py: Fixing a few nasty bugs.
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_validate): The validator for format 4
-	sub-tables is now capable of dealing with invalid `length' fields at
-	the start of the sub-table.  This allows fonts like `mg______.ttf'
-	(i.e.  Marriage) to return accurate charmaps.
-
-	* docs/CHANGES: Updated.
-
-2002-10-05  Werner Lemberg  <wl@gnu.org>
-
-	* src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
-	Update all callers.
-	(TRUNC): Add cast to `TCoord'.
-	Update all callers.
-	(TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
-	last_ey.
-	Update all casts.
-	(gray_render_line): Fix casts for `p' and `first'.
-
-2002-10-02  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
-	structure with FT_ALLOC instead of using the stack.
-
-2002-09-27  Werner Lemberg  <wl@gnu.org>
-
-	* src/include/freetype/internal/tttypes.h (num_sbit_strikes,
-	num_sbit_scales): Use `FT_ULong'.
-	* src/sfnt/sfobjs.c (sfnt_load_face): Updated accordingly.
-	* src/sfnt/ttsbit.c (tt_face_set_sbit_strike): Ditto.
-	(find_sbit_image): Remove cast.
-	* src/raster/ftrend1.c (ft_raster1_render): Fix cast.
-
-2002-09-27  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/sfnt/ttload.c (tt_face_load_names): Use cast.
-	* src/sfnt/ttcmap.c (code_to_next2): Use long constant.
-	(code_to_index4): Use cast.
-	(code_to_index8_12): Fix cast.
-	* src/sfnt/ttcmap0.c (tt_cmap4_char_next, tt_cmap8_char_index,
-	tt_cmap12_char_index): Use cast for `result'.
-	(tt_face_build_cmaps): Use cast.
-	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_ucs4): Use cast for
-	`code'.
-	(sfnt_load_face): Use FT_Int32 for `flags'.
-
-	* src/smooth/ftgrays.c (gray_render_scanline, gray_render_line,
-	gray_compute_cbox, gray_convert_glyph, gray_raster_reset): Add casts
-	to `TCoord' and `int'.
-	More 16bit fixes.
-	s/FT_Pos/TPos/.
-	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Add casts.
-
-2002-09-26  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttpost.c (load_post_names, tt_face_free_ps_names,
-	tt_face_get_ps_name): Replace switch statement with if clauses to
-	make it more portable.
-
-	* src/cff/cffobjs.c (cff_face_init): Ditto.
-
-	* include/freetype/ftmodule.h (FT_Module_Class): Use `FT_Long' for
-	`module_size'.
-	* include/freetype/ftrender.h (FT_Glyph_Class_): Use `FT_Long' for
-	`glyph_size'.
-
-	* src/base/ftobjs.c (FT_Render_Glyph): Change second parameter to
-	`FT_Render_Mode'.
-	(FT_Render_Glyph_Internal): Change third parameter to
-	`FT_Render_Mode'.
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Change second parameter
-	to `FT_Render_Mode'.
-
-	* src/raster/ftrend1.c (ft_raster1_render): Change third parameter
-	to `FT_Render_Mode'.
-	* src/smooth/ftsmooth.c (ft_smooth_render, ft_smooth_render_lcd,
-	ft_smooth_render_lcd_v): Ditto.
-	(ft_smooth_render_generic): Change third and fifth parameter to
-	`FT_Render_Mode'.
-
-	* include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
-	include/freetype/ftglyph.h: Updated.
-
-	* src/cff/cffdrivr.c (Load_Glyph), src/pcf/pcfdriver.c
-	(PCF_Glyph_Load), src/pfr/pfrobjs.c (pfr_slot_load),
-	src/winfonts/winfnt.c (FNT_Load_Glyph), src/t42/t42objs.c
-	(T42_GlyphSlot_Load), src/bdf/bdfdrivr.c (BDF_Glyph_Load): Change
-	fourth parameter to `FT_Int32'.
-
-	* src/pfr/pfrobjs.c (pfr_face_init): Add two missing parameters
-	and declare them as unused.
-
-	* src/cid/cidparse.h (CID_Parser): Use FT_Long for `postscript_len'.
-
-	* src/psnames/psnames.h (PS_Unicode_Value_Func): Change return
-	value to FT_UInt32.
-	* src/psnames/psmodule.c (ps_unicode_value, ps_build_unicode_table):
-	Updated accordingly.
-
-2002-09-26  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/cff/cffdrivr.c (Get_Kerning): Use FT_Long for `middle'.
-	(cff_get_glyph_name): Use cast for result of ft_strlen.
-	* src/cff/cffparse.c (cff_parse_real): User cast for assigning
-	`exp'.
-	* src/cff/cffload.c (cff_index_get_pointers): Use FT_ULong for
-	some local variables.
-	(cff_charset_load, cff_encoding_load): Use casts to FT_UInt for some
-	switch statements.
-	(cff_font_load): Use cast in call to CFF_Load_FD_Select.
-	* src/cff/cffobjs.c (cff_size_init): Use more casts.
-	(cff_face_init): Use FT_Int32 for `flags'.
-	* src/cff/cffgload.c (cff_operator_seac): Use cast for assigning
-	`adx' and `ady'.
-	(cff_decoder_parse_charstrings): Use FT_ULong for third parameter.
-	Use more casts.
-	* src/cff/cffcmap.c (cff_cmap_unicode_init): Use cast for `count'.
-
-	* src/cid/cidload.c (cid_read_subrs): Use FT_ULong for `len'.
-	* src/cid/cidgload.c (cid_load_glyph): Add missing cast for
-	`cid_get_offset'.
-
-	* src/psaux/t1decode.c (t1_decoder_parse_charstrings) <18>: Use
-	cast for `num_points'.
-	(t1_decoder_init): Use cast for assigning `decoder->num_glyphs'.
-
-	* src/base/ftdebug.c (ft_debug_init): Use FT_Int.
-	* include/freetype/internal/ftdriver.h (FT_Slot_LoadFunc): Use
-	`FT_Int32' for fourth parameter.
-	* src/base/ftobjs.c (open_face): Use cast for calling
-	clazz->init_face.
-
-	* src/raster/ftraster.c (Set_High_Precision): Use `1' instead of
-	`1L'.
-	(Finalize_Profile_Table, Line_Up, ft_black_init): Use casts.
-	* src/raster/ftrend1.c (ft_raster1_render): Ditto.
-
-	* src/sfnt/sfnt_dir_check: Compare `magic' with unsigned long
-	constant.
-
-2002-09-26  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* builds/amiga/include/freetype/config/ftmodule.h: Updated.
-
-2002-09-25  David Turner  <david@freetype.org>
-
-	* src/autohint/ahtypes.h (AH_HINT_METRICS): Disabling metrics
-	hinting in the auto-hinter.  This produces much better anti-aliased
-	text.
-
-	* docs/CHANGES: Updating the changes documentation.
-
-2002-09-25  Anthony Fok  <anthony@thizlinux.com>
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_validate, tt_cmap4_char_index,
-	tt_cmap4_char_next): Added support for opens___.ttf (it contains a
-	charmap that uses offset=0xFFFFU instead of 0x0000 to indicate a
-	missing glyph).
-
-2002-09-21  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/truetype/ttdriver.c (Load_Glyph): Fourth parameter must be
-	FT_Int32.
-	* src/truetype/ttgload.c, src/truetype/ttgload.h (TT_Load_Glyph):
-	Ditto.
-
-2002-09-19  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	More 16bit fixes.
-
-	* src/autohint/ahglobal.c (sort_values): Use FT_Pos for `swap'.
-	(ah_hinter_compute_widths): Use FT_Pos for `dist'.
-	Use AH_MAX_WIDTHS.
-	* src/autohint/ahglyph.c (ah_outline_scale_blue_edges): Use FT_Pos
-	for `delta'.
-	(ah_outline_compute_edges): Replace some ints with FT_Int and
-	FT_Pos.
-	(ah_test_extrema): Clean up code.
-	(ah_get_orientation): Use 4 FT_Int variables instead of FT_BBox to
-	hold indices.
-	* src/autohint/ahtypes.h (AH_SegmentRec): Change type of `score'
-	to FT_Pos.
-
-2002-09-19  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/config.guess, builds/unix/config.sub: Updated to
-	recent versions.
-
-2002-09-18  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c (FT_Library_Version): Bugfix.
-
-	* FreeType 2.1.3rc2 (release candidate 2) is released!
-
-2002-09-17  David Turner  <david@freetype.org>
-
-	* include/freetype/freetype.h, include/freetype/ftimage.h,
-	include/freetype/ftstroker.h, include/freetype/ftsysio.h,
-	include/freetype/ftsysmem.h, include/freetype/ttnameid.h: Updating
-	the in-source documentation.
-
-	* src/tools/docmaker/tohtml.py: Updating the HTML formatter in the
-	DocMaker tool.
-
-	* src/tools/docmaker.py: Removed.
-
-2002-09-17  Werner Lemberg  <wl@gnu.org>
-
-	More 16bit fixes.
-
-	* src/psaux/psobjs.c (reallocate_t1_table): Use FT_Long for
-	second parameter.
-
-2002-09-16  Werner Lemberg  <wl@gnu.org>
-
-	16bit fixes from Wolfgang Domr�se.
-
-	* src/type1/t1parse.h (T1_ParserRec): Change type of `base_len'
-	and `private_len' to FT_Long.
-	* src/type1/t1parse.c (T1_Get_Private_Dict): Remove cast for
-	`private_len'.
-	* src/type1/t1load.c: Use FT_Int cast for most calls of T1_ToInt.
-	Use FT_PtrDist where appropriate.
-	(parse_encoding): Use FT_Long for `count' and `n'.
-	(read_binary_data): Use FT_Long* for second parameter.
-	* src/type1/t1afm.c (afm_atoindex): Use FT_PtrDist.
-
-	* src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused label.
-	* src/pshinter/pshalgo3.c (psh3_hint_align): Remove unused variable.
-
-2002-09-14  Werner Lemberg  <wl@gnu.org>
-
-	Making ftgrays.c compile stand-alone again.
-
-	* include/freetype/ftimage.h: Include ft2build.h only if _STANDALONE_
-	isn't defined.
-	* src/smooth/ftgrays.c [_STANDALONE_]: Define ft_memset,
-	FT_BEGIN_HEADER, FT_END_HEADER.
-	(FT_MEM_ZERO): Define.
-	(TRaster) [GRAYS_USE_GAMMA]: Use `unsigned char' instead of FT_Byte.
-	(gray_render_span, gray_init_gamma): Don't use `FT_UInt'.
-	Don't cast with `FT_Byte'.
-	(grays_init_gamma): Don't use `FT_UInt'.
-
-2002-09-14  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftinit.c (FT_Add_Default_Modules): Improve error message.
-	* src/pcf/pcfdriver.c (PCF_Face_Done): Improve tracing message.
-	* include/freetype/config/ftoption.h (FT_MAX_MODULES): Increased
-	to 32.
-
-2002-09-10  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.ac (version_info): Set to 9:2:3.
-	* builds/unix/configure: Regenerated.
-	* docs/VERSION.DLL: Updated.
-
-2002-09-09  David Turner  <david@freetype.org>
-
-	* src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points),
-	src/pshinter/pshalgo3.c (psh3_glyph_find_strong_points): Adding fix
-	to prevent seg fault when hints are provided in an empty glyph.
-
-	* src/cache/ftccache.i (GEN_CACHE_LOOKUP) [FT_DEBUG_LEVEL_ERROR]:
-	Removed conditional code.  This fixes a bug that prevented
-	compilation in debug mode of template instantiation.
-
-	* include/freetype/ftimage.h: Removed incorrect `zft_' definitions
-	and updated constants documentation comments.
-
-	* src/cff/cffparse.c (cff_parser_run): Fixed the CFF table loader.
-	It didn't accept empty arrays, and this prevented the loading of
-	certain fonts.
-
-	* include/freetype/freetype.h (FT_FaceRec): Updating documentation
-	comment.  The `descender' value is always *negative*, not positive.
-
-2002-09-09  Owen Taylor  <owen@redhat.com>
-
-	* src/pcf/pcfdriver.c (PCF_Glyph_Load): Fixing incorrect computation
-	of bitmap metrics.
-
-2002-09-08  David Turner  <david@freetype.org>
-
-	Various updates to correctly support sub-pixel rendering.
-
-	* include/freetype/config/ftmodule.h: Add two renderers for LCD.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Updated.
-
-	* src/smooth/ftsmooth.c (ft_smooth_render_lcd,
-	ft_smooth_render_lcd_v): Set FT_PIXEL_MODE_LCD and
-	FT_PIXEL_MODE_LCD_V, respectively.
-
-	* include/freetype/cache/ftcimage.h (FTC_ImageTypeRec): New
-	structure.
-	Updated all users.
-	(FTC_ImageDesc): Removed.
-	(FTC_ImageCache_Lookup): Second parameter is now of type
-	`FTC_ImageType'.
-	Updated all users.
-	(FTC_IMAGE_DESC_COMPARE): Updated and renamed to...
-	(FTC_IMAGE_TYPE_COMPARE): This.
-	(FTC_IMAGE_DESC_HASH): Updated and renamed to...
-	(FTC_IMAGE_TYPE_HASH): This.
-
-	* include/freetype/cache/ftcsbits.h (FTC_SBitRec): Field `num_grays'
-	replaced with `max_grays'.
-	`pitch' is now FT_Short.
-	(FTC_SBitCache_Lookup): Second parameter is now of type
-	`FTC_ImageType'.
-	Updated all users.
-
-	* src/cache/ftcimage.c (FTC_ImageQueryRec, FTC_ImageFamilyRec):
-	Updated.
-	(ftc_image_node_init): Updated.
-	Moved code to convert type flags to load flags to...
-	(FTC_Image_Cache_Lookup): This function.
-	(ftc_image_family_init): Updated.
-
-	* src/cache/ftcsbit.c (FTC_SBitQueryRec, FTC_SBitFamilyRec):
-	Updated.
-	(ftc_sbit_node_load): Updated.
-	Moved code to convert type flags to load flags to...
-	(FTC_SBitCache_Lookup): This function.
-
-	* src/autohint/ahtypes.h (AH_HinterRec): Replace `no_*_hints' with
-	`do_*_snapping'.
-	Update all users (with negation).
-	* src/autohint/ahhint.c (ah_compute_stem_width): Fix threshold for
-	`dist' for `delta' < 40.
-
-	* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Replace `no_*_hints' with
-	`do_*_snapping'.
-	Update all users (with negation).
-	* src/pshinter/pshalgo3.c (psh3_dimension_quantize_len): New
-	function.
-	(psh3_hint_align): Use it.
-	Improve hinting code.
-	[STRONGER]: Removed.
-	(STRONGER): Removed.
-
-	* include/freetype/freetype.h (FT_Set_Hint_Flags, FT_HINT_*):
-	Removed.
-
-2002-09-05  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidobjs.c (CID_Size_Init): Renamed to...
-	(cid_size_init): This.
-	* src/psaux/psobjs.c (T1_Builder_Add_Point1): Renamed to...
-	(t1_builder_add_point1): This.
-
-	Updated all affected code.
-
-	* src/pshinter/pshalgo3.c (psh3_hint_align): Fix compiler warnings.
-	* src/type1/t1gload.c (T1_Compute_Max_Advance): Ditto.
-
-2002-09-04  David Turner  <david@freetype.org>
-
-	* include/freetype/freetype.h: Corrected the definition of
-	ft_encoding_symbol to be FT_ENCODING_MS_SYMBOL (instead of
-	the erroneous FT_ENCODING_SYMBOL).
-
-	* builds/unix/unix-def.in (datadir): Initialize it (thanks to
-	Anthony Fok).
-
-2002-08-29  David Turner  <david@freetype.org>
-
-	Slight modification to the Postscript hinter to slightly increase
-	the contrast of smooth hinting.  This is very similar to what the
-	auto-hinter does when it comes to stem width computations.  However,
-	it produces better results with well-hinted fonts.
-
-	* include/freetype/internal/psaux.h (T1_Decoder_FuncsRec): Add hint
-	mode to `init' member function.
-	(T1_DecoderRec): Add hint mode.
-	* include/freetype/internal/pshints (T1_Hints_ApplyFunc,
-	T2_Hints_ApplyFunc): Pass `hint_mode', not `hint_flags'.
-	* src/psaux/t1decode.c (t1_decoder_init): Add hint mode argument.
-	* src/pshinter/pshalgo1.c (ps1_hints_apply): Pass hint mode, not
-	hint flags.
-	* src/pshinter/pshalgo2.c (ps2_hints_apply): Ditto.
-	* src/pshinter/pshalgo3.c (ps3_hints_apply): Ditto.
-	(STRONGER): New macro.
-	(psh3_hint_align, psh3_hint_table_align_hints): Pass `glyph' instead
-	of `hint_flags'.
-	Implement announced changes.
-	* src/pshinter/pshalgo3.h (PSH3_GlyphRec): Add flags to control
-	vertical and horizontal hints and snapping.
-
-	* README, docs/CHANGES: Updating for the 2.1.3 release.
-
-2002-08-27  David Turner  <david@freetype.org>
-
-	* Massive re-formatting changes to many, many source files.  I don't
-	want to list them all here.  The operations performed were all
-	logical transformations of the sources:
-
-	- trying to convert all enums and constants to CAPITALIZED_STYLE,
-	  #with define definitions like
-
-	    #define my_old_constants   MY_NEW_CONSTANT
-
-	- big, big update of the documentation comments
-
-	* include/freetype/freetype.h, src/base/ftobjs.c,
-	src/smooth/ftsmooth.c, include/freetype/ftimage.h: Adding support
-	for LCD-optimized rendering though the new constants/enums:
-
-	  FT_RENDER_MODE_LCD, FT_RENDER_MODE_LCD_V
-	  FT_PIXEL_MODE_LCD,  FT_PIXEL_MODE_LCD_V
-
-	This is still work in progress, don't expect everything to work
-	correctly though most of the features have been implemented.
-
-	* Adding new FT_LOAD_XXX flags, used to specify both hinting and
-	rendering targets:
-
-	  FT_LOAD_TARGET_NORMAL :: anti-aliased hinting & rendering
-	  FT_LOAD_TARGET_MONO   :: monochrome bitmaps
-	  FT_LOAD_TARGET_LCD    :: horizontal RGB/BGR decimated
-	                           hinting & rendering
-	  FT_LOAD_TARGET_LCD_V  :: vertical RGB/BGR decimated
-	                           hinting & rendering
-
-	Note that FT_LOAD_TARGET_NORMAL is 0, which means that the default
-	behaviour of the font engine is _unchanged_.
-
-	* include/freetype/ftimage.h
-	(FT_Outline_{Move,Line,Conic,Cubic}To_Func): Renamed to...
-	(FT_Outline_{Move,Line,Conic,Cubic}ToFunc): This.
-	(FT_Raster_Span_Func): Renamed to ...
-	(FT_SpanFunc): This.
-	(FT_Raster_{New,Done,Reset,Set_Mode,Render}_Func): Renamed to ...
-	(FT_Raster_{New,Done,Reset,SetMode,Render}Func}: This.
-
-	Updated all affected code.
-
-	* include/freetype/ftrender.h
-	(FT_Glyph_{Init,Done,Transform,BBox,Copy,Prepare}_Func): Renamed
-	to ...
-	(FT_Glyph_{Init,Done,Transform,GetBBox,Copy,Prepare}Func): This.
-	(FTRenderer_{render,transform,getCBox,setMode}): Renamed to ...
-	(FT_Renderer_{RenderFunc,TransformFunc,GetCBoxFunc,SeteModeFunc}):
-	This.
-
-	Updated all affected code.
-
-	* src/autohint/ahtypes.h (AH_Point, AH_Segment, AH_Edge, AH_Globals,
-	AH_Face_Globals, AH_Outline, AH_Hinter): These typedefs are now
-	pointers to the corresponding `*Rec' structures.  All source files
-	have been updated accordingly.
-
-	* src/cff/cffgload.c (cff_decoder_init): Add hint mode as parameter.
-	* src/cff/cffgload.h (CFF_Decoder): Add `hint_mode' element.
-
-	* src/cid/cidgload.c (CID_Compute_Max_Advance): Renamed to...
-	(cid_face_compute_max_advance): This.
-	(CID_Load_Glyph): Renamed to...
-	(cid_slot_load_glyph): This.
-	* src/cid/cidload.c (CID_Open_Face): Renamed to...
-	(cid_face_open): This.
-	* src/cid/cidobjs.c (CID_GlyphSlot_{Done,Init}): Renamed to...
-	(cid_slot_{done,init}): This.
-	(CID_Size_{Get_Globals_Funcs,Done,Reset): Renamed to...
-	(cid_size_{get_globals_funcs,done,reset): This.
-	(CID_Face_{Done,Init}): Renamed to...
-	(cid_face_{done,init}): This.
-	(CID_Driver_{Done,Init}: Renamed to...
-	(cid_driver_{done,init}: This.
-	* src/cid/cidparse.c (CID_{New,Done}_Parser): Renamed to...
-	(cid_parser_{new,done}): This.
-	* src/cid/cidparse.h (CID_Skip_{Spaces,Alpha}): Renamed to...
-	(cid_parser_skip_{spaces,alpha}): This.
-	(CID_To{Int,Fixed,CoordArray,FixedArray,Token,TokenArray}): Renamed
-	to...
-	(cid_parser_to_{int,fixed,coord_array,fixed_array,token,token_array}):
-	This.
-	(CID_Load_{Field,Field_Table): Renamed to...
-	(cid_parser_load_{field,field_table}): This.
-	* src/cid/cidriver.c (CID_Get_Interface): Renamed to...
-	(cid_get_interface): This.
-
-	Updated all affected code.
-
-	* src/psaux/psobjs.c (PS_Table_*): Renamed to...
-	(ps_table_*): This.
-	(T1_Builder_*): Renamed to...
-	(t1_builder_*): This.
-	* src/psaux/t1decode.c (T1_Decoder_*): Renamed to...
-	(t1_decoder_*): This.
-
-	* src/psnames/psmodule.c (PS_*): Renamed to...
-	(ps_*): This.
-
-	Updated all affected code.
-
-	* src/sfnt/sfdriver (SFNT_Get_Interface): Renamed to...
-	(sfnt_get_interface): This.
-	* src/sfnt/sfobjs.c (SFNT_*): Renamed to...
-	(sfnt_*): This.
-	* src/sfnt/ttcmap.c (TT_CharMap_{Load,Free}): Renamed to...
-	(tt_face_{load,free}_charmap): This.
-	* src/sfnt/ttcmap0.c (TT_Build_CMaps): Renamed to...
-	(tt_face_build_cmaps): This.
-	* src/sfnt/ttload.c (TT_*): Renamed to...
-	(tt_face_*): This.
-	* src/sfnt/ttpost.c (TT_Post_Default_Names): Renamed to...
-	(tt_post_default_names): This.
-	(Load_*): Renamed to...
-	(load_*): This.
-	(TT_*): Renamed to...
-	(tt_face_*): This.
-	* src/sfnt/ttsbit.c (TT_*): Renamed to...
-	(tt_face_*): This.
-	({Find,Load,Crop}_*): Renamed to...
-	({find,load,crop}_*): This.
-
-	Updated all affected code.
-
-	* src/smooth/ftsmooth.c (ft_smooth_render): Renamed to...
-	(ft_smooth_render_generic): This.
-	Make function more generic by adding vertical and horizontal scaling
-	factors.
-	(ft_smooth_render, ft_smooth_render_lcd, ft_smooth_render_lcd_v):
-	New functions.
-
-	(ft_smooth_locd_renderer_class, ft_smooth_lcdv_renderer_class): New
-	classes.
-
-	* src/truetype/ttobjs.c (TT_{Done,New}_GlyphZone): Renamed to...
-	(tt_glyphzone_{done,new}): This.
-	(TT_{Face,Size,Driver}_*): Renamed to...
-	(tt_{face,size,driver}_*): This.
-	* src/truetype/ttpload.c (TT_Load_Locations): Renamed to...
-	(tt_face_load_loca): This.
-	(TT_Load_Programs): Renamed to...
-	(tt_face_load_fpgm): This.
-	(TT_*): Renamed to...
-	(tt_face_*): This.
-
-2002-08-27  Werner Lemberg  <wl@gnu.org>
-
-	* docs/VERSION.DLL: New file.
-
-2002-08-23  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/cff/cffgload.c (cff_operator_seac)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts (actually not
-	incremental in the case of CFF but just using callbacks to get glyph
-	recipes) pass the character code, not the glyph index, to the
-	get_glyph_data function; they have no valid charset table.
-
-	* src/cff/cffload.c (cff_font_load): Removed special cases for
-	FT_CONFIG_OPTION_INCREMENTAL, which are no longer necessary; CFF
-	fonts provided via the incremental interface now have to conform
-	more closely to the CFF font format.
-
-	* src/cff/cffload.h (cff_font_load): Removed argument now unneeded.
-
-	* src/cff/cffobjs.c (cff_face_init): Changed call to cff_font_load
-	to conform with new signature.
-
-2002-08-22  David Turner  <david@freetype.org>
-
-	* src/base/ftobject.c, src/base/ftsynth.c, src/base/ftstroker.c,
-	src/bdf/bdfdrivr.c: Removed compiler warnings.
-
-2002-08-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshalgo3.c (psh3_glyph_compute_inflections,
-	psh3_glyph_compute_extrema, psh3_hint_table_find_strong_point): Fix
-	compiler warnings and resolve shadowing of local variables.
-
-2002-08-21  David Turner  <david@freetype.org>
-
-	The automatic and Postscript hinter now automatically detect
-	inflection points in glyph outlines and treats them specially.  This
-	is very useful to prevent nasty effect like the disappearing
-	diagonals of `S' and `s' in many, many fonts.
-
-	* src/autohint/ahtypes.h (ah_flag_inflection): New macro.
-	* src/autohint/ahangles.c (ah_angle_diff): New function.
-	* src/autohint/ahangles.h: Updated.
-	* src/autohint/ahglyph.c (ah_outline_compute_inflections): New
-	function.
-	(ah_outline_detect_features): Use it.
-	* src/autohint/ahhint.c (ah_hinter_align_strong_points)
-	[!AH_OPTION_NO_WEAK_INTERPOLATION]: Handle inflection.
-
-	* src/tools/docmaker/docmaker.py, src/tools/docmaker/utils.py,
-	src/tools/docmaker/tohtml.py: Updating the DocMaker tool.
-
-	* include/freetype/freetype.h: Changing the type of the `load_flags'
-	parameter from `FT_Int' to `FT_Int32', this in order to support more
-	options.  This should only break binary and/or source compatibility
-	on 16-bit platforms (Atari?).
-	(FT_LOAD_NO_AUTOHINT): New macro.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Updated.
-	Handle FT_LOAD_NO_AUTOHINT.
-	(FT_Load_Char): Updated.
-
-	* src/pshinter/pshalgo3.c, src/base/ftobjs.c, src/base/ftobject.c,
-	src/autohint/ahglyph.c, include/freetype/freetype.h: Fixing typos
-	and removing compiler warnings.
-
-2002-08-20  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c (TT_Get_Metrics): Add guard for k = 0.
-
-2002-08-20  David Turner  <david@freetype.org>
-
-	* src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
-	src/pshinter/pshglob.c, src/pshinter/pshrec.c,
-	src/autohint/ahmodule.c [DEBUG_HINTER]: Removing compiler warnings
-	(only used in development builds anyway).
-
-	Improve support of local extrema and stem edge points.
-
-	* src/pshinter/pshalgo3.h (PSH3_Hint_TableRec): Use PSH3_ZoneRec
-	for `zones'.
-	(PSH3_DIR_UP, PSH3_DIR_DOWN): Exchange values.
-	(PSH3_DIR_HORIZONTAL, PSH3_DIR_VERTICAL): New macros.
-	(PSH3_DIR_COMPARE, PSH3_DIR_IS_HORIZONTAL, PSH3_IS_VERTICAL): New
-	macros.
-	(PSH3_POINT_INFLEX): New enum.
-	(psh3_point_{is,set}_{off,inflex}): New macros.
-	(PSH3_POINT_{EXTREMUM,POSITIVE,NEGATIVE,EDGE_MIN,EDGE_MAX): New
-	enum values.
-	(psh3_point_{is,set}_{extremum,positive,negative,edge_min,edge_max}):
-	New macros.
-	(PSH3_PointRec): New members `flags2' and `org_v'.
-	(PSH3_POINT_EQUAL_ARG, PSH3_POINT_ANGLE): New macros.
-
-	* src/pshinter/pshalgo3.c [DEBUG_HINTER]: Removing compiler
-	warnings.
-	(COMPUTE_INFLEXS): New macro.
-	(psh3_hint_align): Simplify some basic arithmetic computations.
-	(psh3_point_is_extremum): Removed.
-	(psh3_glyph_compute_inflections) [COMPUTE_INFLEXS]: New function.
-	(psh3_glyph_init) [COMPUTE_INFLEXS]: Use it.
-	(psh3_glyph_compute_extrema): New function.
-	(PSH3_STRONG_THRESHOLD): Increased to 30.
-	(psh3_hint_table_find_strong_point): Improved.
-	(psh3_glyph_find_strong_points,
-	psh3_glyph_interpolate_strong_points): Updated.
-	(psh3_hints_apply): Use psh3_glyph_compute_extrema.
-
-	* test/gview.c (draw_ps3_hint, ps3_draw_control_points): New
-	functions.
-	Other small updates.
-
-	* Jamfile: Small updates.
-
-2002-08-18  Arkadiusz Miskiewicz  <misiek@pld.ORG.PL>
-
-	* builds/unix/install.mk (install, uninstall): Add $(DESTDIR) to
-	make life easier for package maintainers.
-
-2002-08-18  Werner Lemberg  <wl@gnu.org>
-
-	* src/pcf/pcfdriver.c (PCF_Glyph_Load): Fix computation of
-	horiBearingX.
-	* src/bdf/bdfdrivr.c (BDF_GlyphLoad): Fix computation of
-	horiBearingY.
-
-2002-08-16  George Williams  <gww@silcom.com>
-
-	Add support for Apple composite glyphs.
-
-	* include/freetype/config/ftoption.h
-	(TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED): New macro.
-
-	* src/truetype/ttgload.c (OVERLAP_COMPOUND, SCALED_COMPONENT_OFFSET,
-	UNSCALED_COMPONENT_OFFSET): New macros for additional OpenType
-	glyph loading flags.
-	(load_truetype_glyph): Implement it.
-
-2002-08-16  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffgload.c (cff_free_glyph_data),
-	src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
-
-2002-08-15  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
-	* src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
-
-2002-08-15  Graham Asher  <graham.asher@btinternet.com>
-
-	Implemented the incremental font loading system for the CFF driver.
-	Tested using the GhostScript-to-FreeType bridge (under development).
-
-	* src/cff/cffgload.c (cff_get_glyph_data, cff_free_glyph_data): New
-	functions.
-	(cff_operator_seac, cff_compute_max_advance, cff_slot_load): Use
-	them.
-	* src/cff/cffload.c (cff_font_load): Add `face' parameter.
-	Load charset and encoding only if there are glyphs.
-	[FT_CONFIG_OPTION_INCREMENTAL]: Incremental fonts don't need
-	character recipes.
-	* src/cff/cffload.h, src/cff/cffobjs.c: Updated.
-
-	* src/cid/cidgload.c (cid_load_glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Corrected the incremental font
-	loading implementation to use the new system introduced on
-	2002-08-01.
-
-2002-08-06  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffcmap.c: Remove compiler warnings.
-	* src/cache/ftccache.c, src/cache/ftccache.i,
-	src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
-	* src/cff/cffload.c: s/select/fdselect/.
-	* src/raster/ftraster.c: s/wait/waiting/.
-
-2002-08-01  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
-	charstrings if there is an incremental loading interface.  Type 1
-	faces supplied by PostScript interpreters like GhostScript will
-	typically not provide any charstrings at load time, so this is
-	essential if they are to work.
-
-2002-08-01  Graham Asher  <graham.asher@btinternet.com>
-
-	Modified incremental loading interface to be closer to David's
-	preferences.  The header freetype.h is not now affected, the
-	interface is specified via an FT_Parameter, the pointer to the
-	interface is hidden in an internal part of the face record, and all
-	the definitions are in ftincrem.h.
-
-	* include/freetype/freetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
-	Removed.
-	* include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
-	Include FT_INCREMENTAL_H.
-	(FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
-	`incremental_interface'.
-
-	* src/base/ftobjs.c (open_face, FT_Open_Face)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-	* src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
-	Updated.
-
-	* src/truetype/ttgload.c (load_truetype_glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-	Free loaded glyph data properly.
-	(compute_glyph_metrics, TT_Load_Glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-	* src/truetype/ttobjs.c (TT_Face_Init)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-
-	* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-	(T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
-	Free loaded glyph data properly.
-	(T1_Load_Glyph): Updated.
-	[FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
-
-2002-07-30  David Turner  <david@freetype.org>
-
-	* include/freetype/ftincrem.h: Adding new experimental header file
-	to demonstrate a `cleaner' API to support incremental font loading.
-
-	* include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
-
-	* src/tools/docmaker/*: Adding new (more advanced) version of
-	the DocMaker tool, using Python's sophisticated regexps.
-
-2002-07-28  Werner Lemberg  <wl@gnu.org>
-
-	s/ft_memset/FT_MEM_SET/.
-	s/FT_MEM_SET/FT_MEM_ZERO/ where appropriate.
-
-2002-07-27  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
-
-2002-07-26  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c (load_truetype_glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
-
-	* src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
-	* src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
-	* src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
-	variable.
-	* src/truetype/ttgload.c (load_truetype_glyph): Remove statement
-	without effect.
-	* src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
-
-	* src/pshinter/pshalgo3.c (psh3_hint_table_record,
-	psh3_hint_table_init, psh3_hint_table_activate_mask): Fix error
-	message.
-
-2002-07-24  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/truetype/ttobjs.c: Fix for bug reported by Sven Neumann
-	[sven@gimp.org] on the FreeType development forum: `If
-	FT_CONFIG_OPTION_INCREMENTAL is undefined (this is the default), the
-	TrueType loader crashes in line 852 of src/truetype/ttgload.c when
-	it tries to access face->glyph_locations.'
-
-2002-07-18  Graham Asher  <graham.asher@btinternet.com>
-
-	Added types and structures to support incremental typeface loading.
-	The FT_Incremental_Interface structure, defined in freetype.h, is
-	designed to be passed to FT_Open_Face to provide callback functions
-	to obtain glyph recipes and metrics, for fonts like those passed
-	from PostScript that do not necessarily provide all, or any, glyph
-	information, when first opened.
-
-	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_INCREMENTAL):
-	New configuration macro to enable incremental face loading.  By
-	default it is not defined.
-
-	* include/freetype/freetype.h (FT_Basic_Glyph_Metrics,
-	FT_Get_Glyph_Data_Func, FT_Get_Glyph_Metrics_Func,
-	FT_Incremental_Interface_Funcs, FT_Incremental_Interface)
-	[FT_CONFIG_OPTION_INCREMENTAL]: New.
-	(FT_Open_Args, FT_FaceRec) [FT_CONFIG_OPTION_INCREMENTAL]: New field
-	`incremental_interface'.
-	(FT_Open_Flags) [FT_CONFIG_OPTION_INCREMENTAL]: New enum
-	`ft_open_incremental'.
-
-	* include/freetype/fttypes.h: Include FT_CONFIG_CONFIG_H.
-	(FT_Data): New structure to represent binary data.
-
-	* src/base/ftobjs.c (open_face) [FT_CONFIG_OPTION_INCREMENTAL]:
-	Add parameter for incremental loading.
-	(FT_Open_Face) [FT_CONFIG_OPTION_INCREMENTAL]: Use incremental
-	interface.
-
-	* src/truetype/ttgload.c (load_truetype_glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
-	for the TrueType driver.
-	(compute_glyph_metrics): Return FT_Error.
-	[FT_CONFIG_OPTION_INCREMENTAL]: Check for overriding metrics.
-	(TT_Load_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Don't look for
-	the glyph table while handling an incremental font.
-	Get glyph offset.
-
-	* src/truetype/ttobjs.c (TT_Face_Init)
-	[FT_CONFIG_OPTION_INCOREMENTAL]: Added the incremental loading
-	system for the TrueType driver.
-
-	* src/cid/cidgload.c (cid_load_glyph)
-	[FT_CONFIG_OPTION_INCREMENTAL]: Added the incremental loading system
-	for the CID driver.
-
-	* src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
-	Changes to support incremental Type 42 fonts: Assume a font has
-	glyphs if it has an incremental interface object.
-
-	* src/type1/t1gload.c (T1_Parse_Glyph): Renamed to...
-	(T1_Parse_Glyph_And_Get_Char_String): This.
-	[FT_CONFIG_OPTION_INCREMENTAL]: Added support for incrementally
-	loaded Type 1 faces.
-	(T1_Parse_Glyph): New function.
-	(T1_Load_Glyph): Updated.
-
-2002-07-17  David Turner  <david@freetype.org>
-
-	Cleaning up the cache sub-system code; linear hashing is now the
-	default.
-
-	* include/freetype/cache/ftccache.h, src/cache/ftccache.i,
-	src/cache/ftccache.c [!FTC_CACHE_USE_LINEAR_HASHING]: Removed.
-	(FTC_CACHE_USE_LINEAR_HASHING: Removed also.
-
-	FT_CONFIG_OPTION_USE_CMAPS is now the default.
-
-	* include/freetype/internal/ftdriver.h (FT_Driver_ClassRec): Remove
-	`get_char_index' and `get_next_char'.
-
-	* include/freetype/config/ftoption.h,
-	include/freetype/internal/tttypes.h, src/base/ftobjs.c,
-	src/bdf/bdfdrivr.c, src/cff/cffobjs.c, src/pcf/pcfdrivr.c,
-	src/pfr/pfrdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
-	src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
-	src/type42/t42objs.c, src/winfonts/winfnt.c
-	[!FT_CONFIG_OPTION_USE_CMAPS]: Removed.  The new cmap code is now
-	the default.
-
-	* src/type42/t42objs.c (T42_CMap_CharIndex, T42_CMap_CharNext):
-	Removed.
-	* src/type42/t42objs.h: Updated.
-
-	* src/cid/cidriver.c (Cid_Get_Char_Index, Cid_Get_Next_Char):
-	Removed.
-	(t1_cid_driver_class): Updated.
-	* src/truetype/ttdriver.c (tt_driver_class): Updated.
-	* src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Removed
-	(t1_driver_class): Updated.
-	* src/type42/t42drivr.c (t42_driver_class): Updated.
-
-	* src/base/ftobjs.c (open_face): Select Unicode cmap by default.
-
-	* src/sfnt/ttload.c (TT_Load_SFNT_Header): Fixed a recent bug that
-	prevented OpenType fonts to be recognized by FreeType.
-
-2002-07-11  David Turner  <david@freetype.org>
-
-	Changing the SFNT loader to check for SFNT-based font files
-	differently.  We now ignore the range `helper' fields and check the
-	`head' table's magic number instead.
-
-	* include/freetype/internal/tttypes.h (SFNT_HeaderRec): Add `offset'
-	field.
-
-	* src/sfnt/ttload.c (sfnt_dir_check): New function.
-	(TT_Load_SFNT_HeaderRec): Renamed to...
-	(TT_Load_SFNT_Header): This.
-	Implement new functionality.
-	* src/sfnt/ttload.h: Updated.
-	* src/sfnt/sfdriver.c (sfnt_interface): Updated.
-
-	* src/base/ftobject.c, src/base/fthash.c: Updated object sub-system
-	and dynamic hash table implementation (still experimental, don't
-	use).
-	* include/freetype/internal/fthash.h: Updated.
-	* include/freetype/internal/ftobjs.h (FT_LibraryRec): New member
-	`meta_class'.
-
-	Fixing a bug in the Type 1 loader that prevented valid font bounding
-	boxes to be loaded from multiple master fonts.
-
-	* include/freetype/t1tables.h (PS_BlendRec): Add `bboxes' field.
-
-	* include/freetype/internal/psaux.h (T1_FieldType): Add
-	`T1_FIELD_TYPE_BBOX'.
-	(T1_FieldLocation): Add `T1_FIELD_LOCATION_BBOX'.
-	(T1_FIELD_BBOX): New macro.
-
-	* src/psaux/psobjs.c (PS_Parser_LoadField): Handle T1_FIELD_TYPE_BBOX.
-	* src/type1/t1load.c (t1_allocate_blend): Create blend->bboxes.
-	(T1_Done_Blend): Free blend->bboxes.
-	(t1_load_keyword): Handle T1_FIELD_LOCATION_BBOX.
-	(parse_font_bbox): Commented out.
-	(t1_keywords): Comment out `parse_font_bbox'.
-	* src/type1/t1tokens.h: Define `FontBBox' field.
-
-2002-07-10  David Turner  <david@freetype.org>
-
-	* src/cff/cffobjs.c: Small fix to select the Unicode charmap by
-	default when needed.
-	Small fix to allow OpenType fonts to support Adobe charmaps when
-	needed.
-
-	* src/cff/cffcmap.c, src/cff/cffcmap.h: New files to support
-	charmaps for CFF fonts.
-
-	* src/cff/cff.c, src/cff/Jamfile, src/cff/rules.mk: Updated.
-
-	* include/freetype/internal/cfftypes.h (CFF_EncodingRec): Use
-	fixed-length arrays for `sids' and `codes'.  Add `count' member.
-	(CFF_FontRec): Add `psnames' member.
-
-	* src/cff/cffdrivr.c, src/cff/cffload.c, src/cff/cffload.h,
-	src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
-	src/cffparse.h, src/cff/cffgload.c, src/cff/cffgload.h: Adding
-	support for CFF charmaps, reformatting the sources, and removing
-	some bugs in the Encoding and Charset loaders.
-	Many fonts renamed to use lowercase only:
-
-	  CFF_Builder_Init -> cff_builder_init
-	  CFF_Builder_Done -> cff_builder_done
-	  CFF_Init_Decoder -> cff_decoder_init
-	  CFF_Parse_CharStrings -> cff_decoder_parse_charstrings
-	  CFF_Load_Glyph -> cff_slot_load
-	  CFF_Init_Decoder -> cff_decoder_init
-	  CFF_Prepare_Decoder -> cff_decoder_prepare
-	  CFF_Get_Standard_Encoding -> cff_get_standard_encoding
-	  CFF_Access_Element -> cff_index_access_element
-	  CFF_Forget_Element -> cff_index_forget_element
-	  CFF_Get_Name -> cff_index_get_name
-	  CFF_Get_String -> cff_index_get_sid_string
-	  CFF_Get_FD -> cff_fd_select_get
-	  CFF_Done_Charset -> cff_charset_done
-	  CFF_Load_Charset -> cff_charset_load
-	  CFF_Done_Encoding -> cff_encoding_done
-	  CFF_Load_Encoding -> cff_encoding_load
-	  CFF_Done_SubFont -> cff_subfont_done
-	  CFF_Load_Font -> cff_font_load
-	  CFF_Done_Font -> cff_font_done
-	  CFF_Size_Get_Global_Funcs -> cff_size_get_global_funcs
-	  CFF_Size_Done -> cff_size_done
-	  CFF_Size_Init -> cff_size_init
-	  CFF_Size_Reset -> cff_size_reset
-	  CFF_GlyphSlot_Done -> cff_slot_done
-	  CFF_GlyphSlot_Init -> cff_slot_init
-	  CFF_StrCopy -> cff_strcpy
-	  CFF_Face_Init -> cff_face_init
-	  CFF_Face_Done -> cff_face_done
-	  CFF_Driver_Init -> cff_driver_init
-	  CFF_Driver_Done -> cff_driver_done
-	  CFF_Parser_Init -> cff_parser_init
-	  CFF_Parser_Run -> cff_parser_run
-
-	  add_point -> cff_builder_add_point
-	  add_point1 -> cff_builder_add_point1
-	  add_contour -> cff_builder_add_contour
-	  close_contour -> cff_builder_close_contour
-	  cff_explicit_index -> cff_index_get_pointers
-
-2002-07-09  Owen Taylor  <owen@redhat.com>
-
-	* src/pshinter/pshglob.c (psh_globals_new): Fixed a bug that
-	prevented the hinter from using correct standard width and height
-	values, resulting in hinting bugs with certain fonts (e.g. Utopia).
-
-2002-07-07  David Turner  <david@freetype.org>
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Added code to return
-	successfully when the function is called with a bitmap glyph (the
-	previous code simply returned with an error).
-
-	* docs/DEBUG.TXT: Adding debugging support documentation.
-
-	* src/base/ftdebug.c (ft_debug_init), builds/win32/ftdebug.c
-	(ft_debug_init), builds/amiga/src/ftdebug.c (ft_debug_init): Changed
-	the syntax of the FT2_DEBUG environment variable used to control
-	debugging output (i.e. logging and error messages).  It must now
-	look like:
-
-	  any:6 memory:4 io:3   or
-	  any:6,memory:4,io:3   or
-	  any:6;memory:4;io:3
-
-2002-07-07  Owen Taylor  <owen@redhat.com>
-
-	* src/pshinter/pshglob.c (psh_blues_snap_stem): Adding support for
-	blue fuzz.
-	* src/pshinter/pshglob.h (PSH_BluesRec): Add `blue_fuzz' field.
-	* src/type1/t1load.c (T1_Open_Face): Initialize `blue_fuzz'.
-
-	Adding support for hinter-specific bit flags, and the new
-	FT_Set_Hint_Flags high-level API.
-
-	* include/freetype/freetype.h (FT_Set_Hint_Flags): New function.
-	(FT_HINT_NO_INTEGER_STEM, FT_HINT_NO_HSTEM_ALIGN,
-	FT_HINT_NO_VSTEM_ALIGN): New macros.
-
-	* include/freetype/internal/ftobjs.h (FT_Face_InternalRec): Add
-	`hint_flags' member.
-
-	* src/base/ftobjs.c (FT_Set_Hint_Flags): New function.
-
-	* include/freetype/internal/psaux.h (T1_DecoderRec): Add `hint_flags'
-	member.
-
-	* include/freetype/internal/pshints.h (T1_Hints_ApplyFunc,
-	T2_Hints_ApplyFunc): Add parameter to pass hint flags.
-
-	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings,
-	T1_Decoder_Init): Use decoder->hint_flags.
-	* src/cff/cffgload.h (CFF_Builder): Add `hint_flags' field.
-	* src/cff/cffgload.c (CFF_Builder_Init): Set builder->hint_flags.
-	(CFF_Parse_CharStrings): Updated.
-	* src/pshinter/pshalgo1.c (ps1_hints_apply): Add parameter to handle
-	hint flags (unused).
-	* src/pshinter/pshalgo1.h: Updated.
-	* src/pshinter/pshalgo2.c (ps2_hints_apply): Add parameter to handle
-	hint flags (unused).
-	* src/pshinter/pshalgo2.h: Updated.
-	* src/pshinter/pshalgo3.c (ps3_hints_apply): Add parameter to handle
-	hint flags.
-	* src/pshinter/pshalgo3.h: Updated.
-
-2002-07-04  David Turner  <david@freetype.org>
-
-	* src/pfr/pfrobjs.c (pfr_slot_load): Fixed a small bug that returned
-	incorrect advances when the outline resolution was different from
-	the metrics resolution.
-
-	* src/autohint/ahhint.c: Removing compiler warnings.
-
-	* src/autohint/ahglyph.c: s/FT_MEM_SET/FT_ZERO/ where appropriate.
-	(ah_outline_link_segments): Slight improvements to the serif
-	detection code.  More work is needed though.
-
-2002-07-03  David Turner  <david@freetype.org>
-
-	Small improvements to the automatic hinter.  Uneven stem-widths have
-	now disappeared and everything looks much better, even if there are
-	still issues with serifed fonts.
-
-	* src/autohint/ahtypes.h (AH_Globals): Added `stds' array.
-	* src/autohint/ahhint.c (OPTIM_STEM_SNAP): New #define.
-	(ah_snap_width): Commented out.
-	(ah_align_linked_edge): Renamed to...
-	(ah_compute_stem_width): This.
-	Don't allow uneven stem-widths.
-	(ah_align_linked_edge): New function.
-	(ah_align_serifed_edge): Don't strengthen serifs.
-	(ah_hint_edges_3, ah_hinter_scale_globals): Updated.
-
-2002-07-03  Owen Taylor  <owen@redhat.com>
-
-	Adding new algorithm based on Owen Taylor's recent work.
-
-	* src/pshinter/pshalgo3.c, src/pshinter/pshalgo3.h: New files.
-	* src/pshinter/pshalgo.h: Updated.
-	Use pshalgo3 by default.
-	* src/pshinter/pshinter.c: Include pshalgo3.c.
-
-	* src/pshinter/Jamfile, src/pshinter/rules.mk: Updated.
-
-2002-07-01  Owen Taylor  <owen@redhat.com>
-
-	* src/pshinter/pshalgo2.c (psh2_glyph_find_strong_points): Fix a bug
-	where, if a glyph has more than hint mask, the second mask gets
-	applied to points that should have been covered by the first mask.
-
-2002-07-01  Keith Packard  <keithp@keithp.com>
-
-	* src/sfnt/ttcmap0.c (tt_cmap8_char_next, tt_cmap12_char_next):
-	Fixing the cmap 8 and 12 parsing routines.
-
-2002-07-01  David Turner  <david@freetype.org>
-
-	* src/base/ftsynth.c: Include FT_TRIGONOMETRY_H.
-	(FT_Outline_Embolden): Renamed to...
-	(FT_GlyphSlot_Embolden): This.
-	Updated to new trigonometric functions.
-	(FT_Outline_Oblique): Renamed to...
-	(FT_GlyphSlot_Oblique): This.
-	(ft_norm): Removed.
-	* include/freetype/ftsynth.h: Updated.
-
-2002-06-26  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/ftobject.h: Updating the object
-	sub-system definitions (still experimental).
-
-	* src/base/fthash.c (ft_hash_remove): Fixing a small reallocation
-	bug.
-
-	* src/base/fttrigon.c (FT_Vector_From_Polar, FT_Angle_Diff): New
-	functions.
-	* include/freetype/fttrigon.h: Updated.
-
-
-	Adding path stroker component (work in progress).
-
-	* include/freetype/ftstroker.h, src/base/ftstroker.c: New files.
-	* src/base/Jamfile: Updated.
-
-	* include/freetype/config/ftheader.h (FT_STROKER_H): New macro.
-
-
-	* src/truetype/ttgload.c (TT_Load_Composite_Glyph),
-	src/base/ftoutln.c (FT_Vector_Transform): Fixed Werner's latest fix.
-	FT_Vector_Transform wasn't buggy, the TrueType composite loader was.
-
-2002-06-24  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
-
-2002-06-21  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.2 released.
-	=========================
-
-
-2002-06-21  Roberto Alameda  <ojancano@geekmail.de>.
-
-	* include/freetype/internal/t42types.h (T42_Font): Removed since
-	it is already in t42objs.h.
-	(T42_Face): Use T1_FontRec.
-
-	* src/base/fttype1.c (FT_Get_PS_Font_Info): Updated.
-	(FT_Has_PS_Glyph_Names): Check for type42 driver name also.
-	* src/type42/t42objs.h: Include FT_INTERNAL_TYPE42_TYPES_H.
-	(T42_Face): Removed since it is already in t42types.h.
-
-2002-06-21  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/pfrgload.c (pfr_glyph_load_compound): Fix loading of composite
-	glyphs.
-
-2002-06-21  Sven Neumann  <sven@convergence.de>
-
-	* src/prf/pfrtypes.h (PFR_KernPair): New structure.
-	(PFR_PhyFont): Use it.
-	(PFR_KernFlags): New enumeration.
-	* src/pfr/pfrload.c (pfr_extra_item_load_kerning_pairs): New
-	function.
-	(pfr_phy_font_extra_items): Use it.
-	(pfr_phy_font_done): Updated.
-	* src/pfr/pfrobjs.c (pfr_face_init): Set kerning flag conditionally.
-	(pfr_face_get_kerning): New function.
-	* src/pfr/pfrobjs.h: Updated.
-	* src/pfr/pfrdrivr.c (pfr_driver_class): Updated.
-
-2002-06-21  David Turner  <david@freetype.org>
-
-	* README, docs/CHANGES: Preparing the 2.1.2 release.
-
-2002-06-19  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/base/fttype1.c: Include FT_INTERNAL_TYPE42_TYPES_H.
-	(t1_face_check_cast): Removed.
-	(FT_Get_PS_Font_Info): Make it work with CID and Type 42 drivers
-	also.
-
-2002-06-19  Sebastien BARRE  <http://barre.nom.fr/contact.html#email>
-
-	* src/type42/t42parse.c (t42_parse_sfnts): Fix compiler warning.
-
-2002-06-19  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftoutln.c (FT_Vector_Transform): Fix serious typo
-	(xy <-> yx).
-	* src/truetype/ttgload.c (load_truetype_glyph): Replace `|' with
-	`||' to make code easier to read.
-
-2002-06-18  Roberto Alameda  <ojancano@geekmail.de>.
-
-	* src/type42/t42objs.c (t42_check_size_change): Removed.
-	(T42_Size_SetChars, T42_Size_SetPixels): Use FT_Activate_Size
-	instead.
-	(T42_GlyphSlot_Load): Remove call to t42_check_size_change.
-
-2002-06-18  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/psaux/t1cmap.c (t1_cmap_custom_char_index,
-	t1_cmap_custom_char_next): Fix index computation -- indices start
-	with 0 and not with cmap->first.
-
-	Provide default charmaps.
-
-	* src/bdf/bdfdrivr.c (BDF_Face_Init), src/pcf/pcfdriver.c
-	(PCF_Face_Init), src/pfr/pfrobjs.c (pfr_face_init),
-	src/type1/t1objs (T1_Face_Init), src/winfonts/winfnt.c
-	(FNT_Face_Init): Implement it.
-
-2002-06-17  Sven Neumann  <sven@gimp.org>
-
-	* src/pfr/pfrobjs.c (pfr_face_init): Fix typo.
-
-2002-06-16  Leonard Rosenthol  <leonardr@lazerware.com>
-
-	Updated Win32/VC++ projects to include the new PFR driver.
-
-	* builds/win32/visualc/freetype.dsp: Updated.
-
-2002-06-16  Anthony Fok  <fok@debian.org>
-
-	Install freetype2.m4.
-
-	* builds/unix/install.mk (install, uninstall): Handle it.
-
-2002-06-16  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	Same fix for PFR driver.
-
-	* src/pfr/pfrcmap.c (pfr_cmap_char_index, pfr_cmap_char_next):
-	Increase return value by 1.
-	* src/pfr/pfrobjs.c (pfr_slot_load): Decrease index by 1.
-
-2002-06-15  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	Fix glyph indices to make index zero always the undefined glyph.
-
-	* src/bdf/bdfdrivr.c (bdf_cmap_init): Don't decrease
-	cmap->num_encodings.
-	(bdf_cmap_char_index, bdf_cmap_char_next, BDF_Get_Char_Index):
-	Increase result by 1 for normal cases.
-	(BDF_Glyph_Load): Decrease index by 1.
-
-	* src/pcf/pcfdriver.c (pcf_cmap_char_index, pcf_cmap_char_next,
-	PCF_Char_Get_Index): Increase result by 1 for normal cases.
-	(PCF_Glyph_Load): Decrease index by 1.
-	* src/pcf/pcfread.c (pcf_get_encodings): Don't decrease j for
-	allocating `encoding'.
-
-	* src/base/ftobjs.c (FT_Load_Glyph, FT_Get_Glyph_Name): Fix
-	bounding tests.
-
-2002-06-14  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	Add new cmap support to BDF driver.
-
-	* src/bdf/bdfdrivr.c (BDF_CMapRec) [FT_CONFIG_OPTION_USE_CMAPS]:
-	New structure.
-	(bdf_cmap_init, bdf_cmap_done, bdf_cmap_char_index,
-	bdf_cmap_char_next) [FT_CONFIG_OPTION_USE_CMAPS]: New functions.
-	(BDF_Get_Char_Index) [!FT_CONFIG_OPTION_USE_CMAPS]: Use only
-	conditionally.
-	(BDF_Face_Init): Handle `AVERAGE_WIDTH' and `POINT_SIZE' keywords.
-	Implement new cmap handling.
-	(bdf_driver_class): Updated.
-
-2002-06-14  Werner Lemberg  <wl@gnu.org>
-
-	* Makefile, configure, */*.mk, builds/unix/unix-def.in,
-	docs/CHANGES, docs/INSTALL: s/TOP/TOP_DIR/.
-
-2002-06-12  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/bdflib.c: s/FT_Short/short/ for consistency.
-
-2002-06-11  David Turner  <david@freetype.org>
-
-	* builds/win32/ftdebug.c: Added a missing #endif.
-
-	* src/sfnt/ttload.c, src/bdf/bdflib.c: Removing compiler warnings.
-
-	Removed the bug in Type 42 driver that prevented un-hinted outlines
-	to be loaded.
-
-	* src/type42/t42objs.c (T42_Face_Init): Call FT_Done_Size.
-	(T42_Size_Init): Call FT_Activate_Size.
-	(t42_check_size_change): New function.
-	(T42_Size_SetChars, T42_Size_SetPixels): Use it.
-	(ft_glyphslot_clear): Replace FT_MEM_SET with FT_ZERO.
-	(T42_GlyphSlot_Load): Use t42_check_size_change.
-	Initialize more fields of `glyph'.
-
-	* builds/win32/visualc/freetype.dsp: Updated.
-
-2002-06-09  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.1 released.
-	=========================
-
-
-2002-06-08  Juliusz Chroboczek  <jch@pps.jussieu.fr>
-
-	* include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
-	src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/smooth/ftgrays.c: Don't
-	use `setjmp', `longjmp', and `jmp_buf' but `ft_setjmp', `ft_longjmp',
-	and `ft_jmp_buf'.
-	Removed direct references to <stdio.h> and <setjmp.h> when
-	appropriate, to eventually replace them with a
-	FT_CONFIG_STANDARD_LIBRARY_H.  Useful for the XFree86 Font Server
-	backend based on FT2.
-
-	* src/base/fttype1.c (FT_Has_PS_Glyph_Names): Fix return value.
-
-2002-06-08  David Turner  <david@freetype.org>
-
-	* src/pcf/pcfdriver.c (pcf_cmap_char_next): Fixed a bug that caused
-	the function to return invalid values.
-
-	* src/cache/ftccache.i: Removing a typo that prevented
-	the source's compilation.
-
-	* src/cache/ftccache.c (ftc_node_hash_unlink): Fixed a
-	bug that caused nasty memory overwrites.  The hash table's
-	buckets array wasn't correctly resized when shrinked.
-
-2002-06-08  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* builds/amiga/smakefile, builds/amiga/makefile: Updated.
-
-2002-06-08  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftccache.c (ftc_node_hash_unlink, ftc_node_hash_link)
-	[FTC_CACHE_USE_LINEAR_HASHING]: Fix returned error code.
-	Fix debugging messages.
-	* src/cache/ftccache.i (GEN_CACHE_LOOKUP): Move declaration of
-	`family' and `hash' up to make it compilable with g++.
-
-	* src/type42/t42error.h: New file.
-	* src/type42/t42drivr.c, src/type42/t42objs.c,
-	src/type42/t42parse.c: Use t42 error codes.
-	* src/type42/rules.mk: Updated.
-
-	* src/base/ftnames.c: Include FT_INTERNAL_STREAM_H.
-
-2002-06-08  David Turner  <david@freetype.org>
-
-	* src/cache/ftccmap.c: GEN_CACHE_FAMILY_COMPARE,
-	GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
-	New macros.
-	(ftc_cmap_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
-	ftc_cache_lookup.
-	(FTC_CMapCache_Lookup): Updated.
-
-	Adding various experimental optimizations to the cache manager.
-
-	* include/freetype/cache/ftccache.h (FTC_CACHE_USE_INLINE,
-	FTC_CACHE_USE_LINEAR_HASHING): New options.
-	(FTC_CacheRec) [FTC_CACHE_USE_LINEAR_HASHING]: New elements `p',
-	`mask', and `slack'.
-
-	* src/cache/ftccache.c (FTC_HASH_MAX_LOAD, FTC_HASH_MIN_LOAD,
-	FTC_HASH_SUB_LOAD) [FTC_CACHE_USE_LINEAR_HASHING,
-	FTC_HASH_INITIAL_SIZE]: New macros.
-	(ftc_node_mru_link, ftc_node_mru_up): Optimized.
-	(ftc_node_hash_unlink, ftc_node_hash_link)
-	[FTC_CACHE_USE_LINEAR_HASHING]: New variants.
-	(FTC_PRIMES_MIN, FTC_PRIMES_MAX, ftc_primes, ftc_prime_closest,
-	FTC_CACHE_RESIZE_TEST, ftc_cache_resize)
-	[!FTC_CACHE_USE_LINEAR_HASHING]: Define it conditionally.
-	(ftc_cache_init, ftc_cache_clear) [FTC_CACHE_USE_LINEAR_HASHING]:
-	Updated.
-	(ftc_cache_lookup) [FTC_CACHE_USE_LINEAR_HASHING]: Implement it.
-
-	* src/cache/ftccache.i: New file.
-
-	* src/cache/ftcsbits.c (GEN_CACHE_FAMILY_COMPARE,
-	GEN_CACHE_NODE_COMPARE, GEN_CACHE_LOOKUP) [FTC_CACHE_USE_INLINE]:
-	New macros.
-	(ftc_sbit_cache_lookup) [!FTC_CACHE_USE_INLINE]: Typedef to
-	ftc_cache_lookup.
-	(FTC_SBitCache_Lookup): Updated.
-
-	* src/type42/t42parse.c: Removing duplicate function.
-
-2002-06-07  Graham Asher  <graham.asher@btinternet.com>
-
-	* src/base/ftobjs.c (FT_Render_Glyph_Internal): Changed definition
-	from FT_EXPORT_DEF to FT_BASE_DEF.
-
-2002-06-07  David Turner  <david@freetype.org>
-
-	Fixed the bug that prevented the correct display of fonts with
-	`ftview'.
-
-	* src/type42/t42drivr.c: Split into...
-	* src/type42/t42drivr.h, src/type42/t42parse.c,
-	src/type42/t42parse.h, src/type42/t42objs.h, src/type42/t42objs.c,
-	src/type42/type42.c: New files.
-
-	(t42_get_glyph_name, t42_get_ps_name, t42_get_name_index): Use
-	`face->type1'.
-
-	(Get_Interface): Renamed to...
-	(T42_Get_Interface): This.
-	Updated.
-	(T42_Open_Face, T42_Face_Done): Updated.
-	(T42_Face_Init): Add new cmap support.
-	Updated.
-	(T42_Driver_Init, T42_Driver_Done, T42_Size_Init, T42_Size_Done,
-	T42_GlyphSlot_Init, T42_GlyphSlot_Done): Updated.
-	(Get_Char_Index, Get_Next_Char): Renamed to...
-	(T42_CMap_CharIndex, T42_CMap_CharNext): This.
-	Updated.
-	(T42_Char_Size, T42_Pixel_Size): Renamed to...
-	(T42_Size_SetChars, T42_Size_SetPixels): This.
-	(T42_Load_Glyph): Renamed to...
-	(T42_GlyphSlot_Load): This.
-
-	(t42_init_loader, t42_done_loader): Renamed to...
-	(t42_loader_init, t42_loader_done): This.
-	(T42_New_Parser, T42_Finalize_Parser): Renamed to...
-	(t42_parser_init, t42_parser_done): This.
-	(parse_dict): Renamed to...
-	(t42_parse_dict): This.
-	(is_alpha, is_space, hexval): Renamed to...
-	(t42_is_alpha, t42_is_space, t42_hexval): This.
-	(parse_font_name, parse_font_bbox, parse_font_matrix,
-	parse_encoding, parse_sfnts, parse_charstrings, parse_dict):
-	Renamed to...
-	(t42_parse_font_name, t42_parse_font_bbox, t42_parse_font_matrix,
-	t42_parse_encoding, t42_parse_sfnts, t42_parse_charstrings,
-	t42_parse_dict): This.
-	Updated.
-
-	(t42_keywords): Updated.
-
-	* src/type42/Jamfile, src/type42/descrip.mms: Updated.
-
-2002-06-03  Werner Lemberg  <wl@gnu.org>
-
-	Add 8bpp support to BDF driver.
-
-	* src/bdf/bdflib.c (_bdf_parse_start): Handle 8bpp.
-	* src/bdf/bdfdrivr.c (BDF_Glyph_Load): Ditto.
-	* src/bdf/README: Updated.
-
-2002-06-02  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/pfr/pfrload.c (pfr_phy_font_done): Free `blue_values' array.
-
-2002-05-29  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/bdf/bdflib.c (_bdf_readstream): Allocate `buf' dynamically.
-	(_bdf_parse_glyphs): Use correct size for allocating
-	`font->unencoded'.
-	(bdf_load_font): Free array conditionally.
-	Return proper error code in case of failure.
-	* src/bdf/bdfdrivr.c (BDF_Face_Init): Make it more robust against
-	unusual fonts.
-
-2002-05-29  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/descrip.mms, src/type42/descrip.mms: New files.
-	* descrip.mms (all): Updated.
-
-	* src/bdf/bdflib.c (_bdf_parse_glyphs): Fix typo which prevented
-	compilation.
-	* src/pshglob.c (psh_blues_scale_zones): Fix compiler warning.
-
-2002-05-28  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* builds/amiga/makefile, builds/amiga/smakefile,
-	amiga/include/freetype/config/ftmodule.h: Updated to include
-	support for BDF and Type42 drivers.
-
-	* docs/modules.txt: Updated.
-
-2005-05-28  David Turner  <david@freetype.org>
-
-	* docs/CHANGES: Updating file for next release (2.1.1).
-
-	* src/bdf/bdflib.c: Removing compiler warnings.
-
-	* include/freetype/ftxf86.h, src/base/ftxf86.c: New files.
-	They provide a new API (FT_Get_X11_Font_Format) to retrieve an
-	X11-compatible string describing the font format of a given face.
-	This was put in a new optional base source file, corresponding to a
-	new public header (named FT_XFREE86_H since this function should
-	only be used within the XFree86 font server IMO).
-
-	* include/freetype/config/ftheader.h (FT_XFREE86_H): New macro (not
-	documented yet).
-
-	* src/base/fttype1.c: New file, provoding two new API functions
-	(FT_Get_PS_Font_Info and FT_Has_PS_Glyph_Names).
-	* include/freetype/t1tables.h: Updated.
-
-	* src/base/Jamfile, src/base/rules.mk, src/base/descrip.mms:
-	Updating build control files for the new files `ftxf86.c' and
-	`fttype1.c' in src/base.
-
-	* src/pshinter/pshglob.c (psh_blues_scale_zones): Fixed a bug that
-	prevented family blue zones substitution from hapenning correctly.
-
-	* include/freetype/ftbdf.h FT_Get_BDF_Charset_ID): Adding
-	documentation comment.
-
-2002-05-28  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
-	but FT_STREAM_READ.
-	Declare `stream' variable.
-
-	* src/bdf/bdflib.c (_bdf_parse_glyphs): Replace floating point math
-	with calls to `FT_MulDiv'.
-
-2002-05-28  David Turner  <david@freetype.org>
-
-	Fixing the SFNT name table loader to support various buggy fonts.
-	It now ignores empty name entries, entries with invalid pointer
-	Offsets and certain fonts containing tables with broken
-	`storageOffset' fields.
-
-	Name strings are now loaded on demand, which reduces the memory
-	requirements for a given FT_Face tremendously (for example, the name
-	table of Arial.ttf is about 10Kb and contains 70 names).
-
-	This is a temporary fix.  The whole name table loader and interface
-	will be rewritten in a much more cleanly way shortly, once CSEH have
-	been introduced in the sources.
-
-	* include/freetype/internal/tttypes.h (TT_NameEntryRec): Change
-	type of `stringOffset' to FT_ULong.
-	(TT_NameTableRec): Change type of `numNameRecords' and
-	`storageOffset' to FT_UInt.
-	Replace `storage' with `stream'.
-	* src/base/ftnames.c (FT_Get_Sfnt_Name): Load name on demand.
-	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
-	Make code more robust.
-	* src/sfnt/sfobjs.c (TT_NameEntry_ConvertFunc): New typedef.
-	(tt_face_get_name): Use it.
-	Make code more robust.
-	* src/sfnt/ttload.c (TT_Load_Names): Use `static' for arrays.
-	Handle invalid `storageOffset' data better.
-	Set length fields to zero for invalid or ignored data.
-	Remove code within FT_DEBUG_LEVEL_TRACE.
-	(TT_Free_Names): Updated.
-
-2002-05-24  Tim Mooney  <enchanter@users.sourceforge.net>
-
-	* builds/unix/ft-munmap.m4: New file, extracted FT_MUNMAP_DECL and
-	FT_MUNMAP_PARAM from aclocal.m4 into here, so aclocal.m4 can be
-	rebuilt from sources.  Set macro serial to 1, and use third argument
-	to AC_DEFINE for our two custom symbols, so ftconfig.in could one day
-	be rebuilt with autoheader (not recommended now, ftconfig.in is a
-	custom source file)
-
-2002-05-22  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftheader.h (FT_BEZIER_H): Removed.
-	(FT_BDF_H): New macro for accessing `ftbdf.h'.
-
-	* src/type42/t42drivr.c (hexval): Fix typo.
-
-2002-05-21  Martin Muskens  <mmuskens@aurelon.com>
-
-	* src/psaux/psobjs.c (T1Radix): New function.
-	(t1_toint): Use it to handle numbers in radix format.
-
-	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Add dummy
-	for undocumented, obsolete opcode 15.
-
-2002-05-21  David Turner  <david@freetype.org>
-
-	* src/bdf/bdflib.c: Removed compiler warning, and changed all tables
-	to the `static const' storage specifier (instead of simply
-	`static').
-
-	* src/type42/t42drivr.c (hexval): Use more efficient code.
-	Removing compiler warnings.
-	* src/bdf/bdfdrivr.c: Removing compiler warnings.
-
-	* include/freetype/internal/ftbdf.h, src/base/ftbdf.c,
-	src/base/descrip.mms, src/base/Jamfile, src/base/rules.mk
-	(FT_Get_BDF_Charset_ID): New API to retrieve BDF-specific strings
-	from a face.  This is much cleaner than accessing the internal types
-	`BDF_Public_Face' defined in FT_INTERNAL_BDF_TYPES_H.
-
-2002-05-21  Werner Lemberg  <wl@gnu.org>
-
-	* src/bdf/README: Mention Microsoft's SBIT tool.
-
-	* src/cff/cffdrivr.c, src/cid/cidriver.c, src/pcf/pcfdriver.c,
-	src/truetype/ttdriver.c, src/type1/t1driver.c,
-	src/winfonts/winfnt.c, src/type42/t42drivr.c, src/bdf/bdfdrivr.c
-	[FT_CONFIG_OPTION_DYNAMIC_DRIVERS]: Completely removed.  It has
-	been never used.
-
-2002-05-21  Roberto Alameda  <ojancano@geekmail.de>.
-
-	* src/type42/t42drivr.c: s/T42_ENCODING_TYPE_/T1_ENCODING_TYPE_/.
-	(parse_font_matrix): Remove unnecessary code.
-	(parse_sfnts): Initialize some variables.
-	(t42_driver_class) [TT_CONFIG_OPTION_BYTECODE_INTERPRETER]: Use
-	ft_module_driver_has_hinter conditionally.
-	Moved some type 42 specific structure definitions to...
-	* include/freetype/internal/t42types.h: New file.
-	* include/freetype/internal/internal.h (FT_INTERNAL_T42_TYPES_H):
-	New macro.
-
-2002-05-20  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/cache/ftcsbits.h (FTC_SBit): Added a new field
-	`num_grays' for specifying the number of used gray levels.
-	* src/cache/ftcsbits.c (ftc_sbit_node_load): Initialize it.
-
-2002-05-19  Werner Lemberg  <wl@gnu.org>
-
-	Adding a driver for BDF fonts written by Francesco Zappa Nardelli
-	<Francesco.Zappa.Nardelli@ens.fr>.  Heavily modified by me to
-	better adapt it to FreeType, removing unneeded stuff.  Additionally,
-	it now supports Mark Leisher's BDF extension for anti-aliased
-	bitmap glyphs with 2 and 4 bpp.
-
-	* src/bdf/*: New driver.
-	* include/freetype/internal/bdftypes.h: New file.
-	* include/freetype/internal/fttrace.h: Added BDF driver components.
-	* include/freetype/fterrdef.h: Added error codes for BDF driver.
-	* include/freetype/config/ftmodule.h, src/Jamfile: Updated.
-	* include/freetype/internal/internal.h (FT_INTERNAL_BDF_TYPES_H):
-	New macro.
-
-	* include/freetype/config/ftstdlib.h (ft_sprintf): New alias for
-	sprintf.
-
-2002-05-18  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/fttrace.h: Added Type 42 driver
-	component.
-	* src/type42/t42drivr.c: Use it.
-
-	* include/freetype/internal/internal.h (FT_INTERNAL_PCF_TYPES_H):
-	New macro.
-
-2002-05-17  Werner Lemberg  <wl@gnu.org>
-
-	* src/type42/Jamfile: New file.
-
-2002-05-14  Werner Lemberg  <wl@gnu.org>
-
-	Adding a driver for Type42 fonts written by Roberto Alameda
-	<ojancano@geekmail.de>.
-
-	* src/type42/*: New driver.
-	* include/freetype/config/ftmodule.h, src/Jamfile: Updated.
-	* include/freetype/config/ftstdlib.h (ft_xdigit, ft_memcmp,
-	ft_atoi): New aliases for xdigit, memcmp, and atoi, respectively.
-
-2002-05-12  Owen Taylor  <otaylor@redhat.com>
-
-	* src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
-	with a zero length value.
-
-2002-05-12  Michael Pfeiffer  <michael.pfeiffer@utanet.at>
-
-	* builds/beos/beos.mk: Include `link-std.mk'.
-
-2002-05-12  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.h (T1_Loader): Renamed to...
-	(T1_LoaderRec): This.
-	(T1_Loader): Now pointer to T1_LoaderRec.
-	* src/type1/t1load.c: Updated.
-
-	* include/freetype/internal/t1types.h, src/type1/t1load.c,
-	src/type1/t1objs.c:
-	s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
-
-2002-05-06  Werner Lemberg  <wl@gnu.org>
-
-	* README: Add a note regarding libttf vs. libfreetype.
-
-2002-05-05  Werner Lemberg  <wl@gnu.org>
-
-	FreeType 2 can now be built in an external directory with the
-	configure script also.
-
-	* builds/freetype.mk (INCLUDES): Add `OBJ_DIR'.
-
-	* builds/unix/detect.mk (have_mk): New variable to test for
-	external build.
-	(unix-def.mk): Defined according to value of `have_mk'.
-	* builds/unix/unix.mk (have_mk): New variable to test for
-	external build.
-	Select include paths for unix-def.mk and unix-cc.mk according
-	to value of `have_mk'.
-	* builds/unix/unix-def.in (OBJ_BUILD): New variable.
-	(DISTCLEAN): Use it.
-	* builds/unix/unix-cc.in (LIBTOOL): Define default value only
-	if not yet defined.
-	* builds/unix/install.mk (install): Use `OBJ_BUILD' for installing
-	freetype-config.
-
-	* configure: Don't depend on bash features.
-	(ft2_dir, abs_curr_dir, abs_ft2_dir): New variables (code
-	partially taken from Autoconf).
-	Build a dummy Makefile if not building in source tree.
-
-	* docs/INSTALL: Document it.
-
-2002-05-04  David Turner  <david@freetype.org>
-
-	* src/truetype/ttgload.c (TT_Load_Glyph): Finally fixing the last
-	bug that prevented FreeType 2.x and FreeType 1.x to produce
-	bit-by-bit identical monochrome glyph bitmaps with native TrueType
-	hinting.  The culprit was a single-bit flag that wasn't set
-	correctly by the TrueType glyph loader.
-
-	* src/otlayout/otlayout.h, src/otlayout/otlbase.c,
-	src/otlayout/otlbase.h, src/otlayout/otlconf.h,
-	src/otlayout/otlgdef.c, src/otlayout/otlgdef.h,
-	src/otlayout/otlgpos.c, src/otlayout/otlgpos.h,
-	src/otlayout/otlgsub.c, src/otlayout/otlgsub.h,
-	src/otlayout/otljstf.c, src/otlayout/otljstf.h,
-	src/otlayout/otltable.c, src/otlayout/otltable.h,
-	src/otlayout/otltags.h: New OpenType Layout source files.  The
-	module is still incomplete.
-
-2002-05-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
-	(0xFFFU -> 0xFFFFU).
-
-2002-05-01  Werner Lemberg  <wl@gnu.org>
-
-	* docs/INSTALL: Fix URL of makepp.
-
-2002-05-01  David Turner  <david@freetype.org>
-
-	* src/sfnt/sfobjs.c (tt_face_get_name): Fixing a bug that caused
-	FreeType to crash when certain broken fonts (e.g. `hya6gb.ttf')
-	were opened.
-
-	* src/sfnt/ttload.c (TT_Load_Names): Applied a small work-around to
-	manage fonts containing a broken name table (e.g. `hya6gb.ttf').
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_validate): Fixed over-restrictive
-	validation test.  The charmap validator now accepts overlapping
-	ranges in format 4 charmaps.
-
-	* src/sfnt/ttcmap0.c (tt_cmap4_char_index): Switched to a binary
-	search algorithm.  Certain fonts contain more than 170 distinct
-	segments!
-
-	* include/freetype/config/ftstdlib.h: Adding an alias for the `exit'
-	function.  This will be used in the near future to panic in case of
-	unexpected exception (which shouldn't happen in theory).
-
-	* include/freetype/internal/fthash.h, src/base/fthash.c: New files.
-	This is generic implementation of dynamic hash tables using a linear
-	algorithm (to get rid of `stalls' during resizes).  In the future
-	this will be used in at least three parts of the library: the cache
-	sub-system, the object sub-system, and the memory debugger.
-
-	* src/base/Jamfile: Updated.
-
-	* include/freetype/internal/internal.h (FT_INTERNAL_HASH_H,
-	FT_INTERNAL_OBJECT_H): New macros.
-
-	* include/freetype/internal/ftcore.h: New file to group all new
-	definitions related to exception handling and memory management.  It
-	is very likely that this file will disappear or be renamed in the
-	future.
-
-	* include/freetype/internal/ftobject.h, include/freetype/ftsysmem.h:
-	Adding comments to better explain the object sub-system as well as
-	the new memory manager interface.
-
-2002-04-30  Wenlin Institute (Tom Bishop)  <wenlin@wenlin.com>
-
-	* src/base/ftmac.c (p2c_str): Removed.
-	(file_spec_from_path) [TARGET_API_MAC_CARBON]: Added support for
-	OS X.
-	(is_dfont) [TARGET_API_MAC_CARBON]: Define only for OS X.
-	Handle `nameLen' <= 6 also.
-	(parse_fond): Remove unused variable `name_table'.
-	Use functionality of old p2c_str directly.
-	Add safety checks.
-	(read_lwfn): Initialize `size_p'.
-	Check for size_p == NULL.
-	(new_memory_stream, open_face_from_buffer): Updated to FreeType 2.1.
-	(FT_New_Face_From_LWFN): Remove unused variable `memory'.
-	Remove some dead code.
-	(FT_New_Face_From_SFNT): Remove unused variable `stream'.
-	(FT_New_Face_From_dfont) [TARGET_API_MAC_CARBON]: Define only for
-	OS X.
-	(FT_New_Face_From_FOND): Remove unused variable `error'.
-	(ResourceForkSize): New function.
-	(FT_New_Face): Use it.
-	Handle empty resource forks.
-	Conditionalize some code for OS X.
-	Add code to call normal loader as a fallback.
-
-2002-04-30  Werner Lemberg  <wl@gnu.org>
-
-	`interface' is reserved on the Mac.
-
-	* include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
-	src/base/ftoutln.c: s/interface/func_interface/.
-	* src/base/ftbbox.c (FT_Outline_Get_BBox):
-	s/interface/bbox_interface/.
-	* src/cff/cffdrivr.c: s/interface/module_interface/.
-	* src/cff/cffload.c, src/cff/cffload.h:
-	s/interface/psnames_interface/.
-	* src/cid/cidriver.c: s/interface/cid_interface/.
-	* src/sfnt/sfdriver.c: s/interface/module_interface/.
-	* src/smooth/ftgrays.c: s/interface/func_interface/.
-	* src/truetype/ttdriver.c: s/interface/tt_interface/.
-	* src/type1/t1driver.c: s/interface/t1_interface/.
-
-	Some more variable renames to avoid troubles on the Mac.
-
-	* src/raster/ftraster.c:
-	s/Unknown|Ascending|Descending|Flat/\1_State/.
-	* src/smooth/ftgrays.c: s/TScan/TCoord/.
-
-	Other changes for the Mac.
-
-	* include/freetype/config/ftconfig.h: Define FT_MACINTOSH for
-	Mac platforms.
-	* src/base/ftobjs.c: s/macintosh/FT_MACINTOSH/.
-
-	* src/raster/ftrend1.c (ft_raster1_render): Make `pitch' always
-	an even number.
-
-2002-04-29  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
-
-	* descrip.mms (all): Add pfr driver.
-
-2002-04-28  Werner Lemberg  <wl@gnu.org>
-
-	* src/pfr/pfrerror.h: New file.
-	* include/freetype/ftmoderr.h: Add PFR error codes.
-	* src/pfr/pfrgload.c: Include pfrerror.h.
-	Use PCF error codes.
-	(pfr_extra_item_load_stem_snaps): Fix debug message.
-	* src/pfr/pfrgload.c: Include pfrerror.h.
-	Use PCF error codes.
-	(pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
-	pfr_glyph_load_compound): Fix debug message.
-	* src/pfr/pfrobjs.c: Include pfrerror.h.
-	Use PCF error codes.
-	(pfr_face_init): Return PFR_Err_Unknown_File_Format.
-	* src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
-
-	* src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
-	`root' -> `face->root'.
-	* src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
-	Removed.
-	* src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
-	FT_CONFIG_OPTION_USE_CMAPS.
-
-2002-04-27  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftccache.c (ftc_cache_lookup),
-	src/cache/ftccmap.c (ftc_cmap_family_init),
-	src/cache/ftcmanag.c (ftc_family_table_alloc),
-	src/cache/ftcsbits.c (FTC_SBit_Cache_Lookup): Use FTC_Err_*.
-	src/cache/ftcimage.c (FTC_Image_Cache_Lookup): Use FTC_Err_*.
-	(FTC_ImageCache_Lookup): Fix handling of invalid arguments.
-
-2002-04-22  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.ac: Set `version_info' to 9:1:3 (FT2
-	version 2.0.9 has 9:0:3).
-	* builds/unix/configure: Regenerated (using autoconf 2.53).
-
-2002-04-19  Werner Lemberg  <wl@gnu.org>
-
-	* src/pfr/pfrload.c (pfr_extra_items_farse): Fix debug message.
-	(pfr_phy_font_load): s/size/Size/ for local variable to avoid
-	compiler warning.
-	* src/pfr/pfrobjs.c (pfr_face_init): Fix debug message.
-	(pfr_slot_load): Remove redundant local variable.
-
-2002-04-19  David Turner  <david@freetype.org>
-
-	Adding a PFR font driver to the FreeType sources.  Note that it
-	doesn't support embedded bitmaps or kerning tables yet.
-
-	src/pfr/*: New files.
-
-	* include/freetype/config/ftmodule.h,
-	include/freetype/internal/fttrace.h, src/Jamefile: Updated.
-
-	* src/type1/t1gload.h (T1_Load_Glyph), src/type1/t1gload.c
-	(T1_Load_Glyph): Fixed incorrect parameter sign-ness in callback
-	function.
-
-	* include/freetype/internal/ftmemory.h (FT_MEM_ZERO, FT_ZERO): New
-	macros.
-
-	* include/freetype/internal/ftstream.h (FT_NEXT_OFF3, FT_NEXT_UOFF3,
-	FT_NEXT_OFF3_LE, FT_NEXT_UOFF3_LE): New macros to parse in-memory
-	24-bit integers.
-
-2002-04-18  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c, builds/win32/ftdebug.c,
-	builds/amiga/src/base/ftdebug.c: Version 2.1.0 couldn't be linked
-	against applications in Win32 and Amiga builds due to changes to
-	`src/base/ftdebug.c' that were not properly propagated to
-	`builds/win32' and `builds/amiga'.  This has been fixed.
-
-	* include/freetype/internal/ftobject.h,
-	include/freetype/internal/ftexcept.h, include/freetype/ftsysmem.h,
-	include/freetype/ftsysio.h, src/base/ftsysmem.c, src/base/ftsysio.c:
-	New experimental files.
-
-2002-04-17  David Turner  <david@freetype.org>
-
-
-	* Version 2.1.0 released.
-	=========================
-
-
-2002-04-17  Michael Jansson  <mjan@em2-solutions.com>
-
-	* src/type1/t1gload.c (T1_Compute_Max_Advance): Fixed a small bug
-	that prevented the function to return the correct value.
-
-2002-04-16  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
-
-	* src/pcf/pcfread (pcf_get_accell): Fix parsing of accelerator
-	tables.
-
-2002-04-15  David Turner  <david@freetype.org>
-
-	* docs/FTL.txt: Formatting.
-
-	* include/freetype/config/ftoption.h: Reduce the size of the
-	render pool from 32kByte to 16kByte.
-
-	* src/pcf/pcfread.c (pcf_seek_to_table_type): Remove compiler
-	warning.
-
-	* include/freetype/config/ftoption.h (FT_MAX_EXTENSIONS): Removed.
-
-	* docs/CHANGES: Preparing 2.1.0 release.
-
-2002-04-13  Werner LEMBERG  <wl@gnu.org>
-
-	* src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
-	compiler warning.
-
-2002-04-12  David Turner  <david@freetype.org>
-
-	* README.UNX: Updated the Unix-specific quick-compilation guide to
-	warn about the GNU Make requirement at compile time.
-
-	* include/freetype/config/ftstdlib.h,
-	include/freetype/config/ftconfig.h,
-	include/freetype/config/ftheader.h,
-	include/freetype/internal/ftmemory.h,
-	include/freetype/internal/ftobjs.h,
-
-	src/autohint/ahoptim.c,
-
-	src/base/ftdbgmem.c, src/base/ftdebug.c, src/base/ftmac.c,
-	src/base/ftobjs.c, src/base/ftsystem.c,
-
-	src/cache/ftcimage.c, src/cache/ftcsbits.c,
-
-	src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
-
-	src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
-
-	src/pcf/pcfdriver.c, src/pcf/pcfread.c,
-
-	src/psaux/t1cmap.c, src/psaux/t1decode.c,
-
-	src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
-	src/pshinter/pshrec.c,
-
-	src/psnames/psmodule.c,
-
-	src/raster/ftraster.c,
-
-	src/sfnt/sfdriver.c, src/sfnt/ttload.c,
-
-	src/smooth/ftgrays.c,
-
-	src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
-	src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c,
-
-	builds/unix/ftconfig.in, builds/vms/ftconfig.h,
-
-	builds/amiga/src/base/ftdebug.c:
-
-	Added the new configuration file `ftstdlib.h' used to define
-	aliases for all ISO C library functions used by the engine
-	(e.g. strlen, qsort, setjmp, etc.).
-
-	This eases the porting of FreeType 2 to environments like
-	XFree86 modules/extensions.
-
-	Also removed many #include <string.h>, #include <stdlib.h>, etc.
-	from the engine's sources where they are not needed.
-
-	* src/sfnt/ttpost.c: Use macro name for psnames.h.
-
-2002-04-12  Vincent Caron  <v.caron@zerodeux.net>
-
-	* configure, builds/detect.mk: Updated the build system to print
-	a warning message in case GNU Make isn't used to build the library.
-
-2002-04-11  David Turner  <david@freetype.org>
-
-	* README, docs/CHANGES, Jamfile.in: Updates for the 2.1.0 release.
-
-	* docs/FTL.txt: Updated license text to provide a preferred
-	disclaimer and adjust copyright dates/extents.
-
-	* include/freetype/cache/ftcglyph.h: Removing obsolete (and
-	confusing) comment.
-
-	* Jamfile.in: New file.
-
-2002-04-11  Maxim Shemanarev  <mcseemagg@yahoo.com>
-
-	* src/smooth/ftgrays.c (gray_hline): Minor optimization.
-
-2002-04-02  Werner Lemberg  <wl@gnu.org>
-
-	Fixes from the stable branch:
-
-	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
-	Removed.
-	[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
-	* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
-	[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
-
-	* src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
-	output of FreeType 1.
-
-	* src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
-	bug that created un-even stem widths when hinting Postscript fonts.
-
-	* src/type1/t1driver.c, src/type1/t1parse.c: 16bit fixes.
-
-2002-04-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c: 16bit fixes.
-	(TT_Load_Simple_Glyph): Improve debug messages.
-	(load_truetype_glyph): Remove dead code.
-	* src/truetype/ttinterp.c: 16bit fixes.
-	* src/truetype/ttobjs.c: Ditto.
-
-	* include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
-	src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
-	src/sfnt/ttpost.h: s/index/idx/.
-
-2002-03-31  Yao Zhang  <yaoz@vidar.niaaa.nih.gov>
-
-	* src/truetype/ttobjs.c (TT_Size_Init): Fix typo.
-
-2002-03-31  Werner Lemberg  <wl@gnu.org>
-
-	* src/otlayout/otlcommn.c, src/otlayout/otlcommn.h: s/index/idx/.
-	* src/psaux/t1cmap.c: Ditto.
-	* src/sfnt/ttcmap0.c: Ditto.
-
-	* include/freetype/internal/tttypes.h,
-	include/freetype/internal/sfnt.h (TT_Goto_Table_Func): Renamed to ...
-	(TT_Loader_GotoTableFunc): This.
-	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix debug
-	messages.
-	* src/psnames/psmodule.c (psnames_interface)
-	[!FT_CONFIG_OPTION_ADOBE_GLYPH_LIST]: Fix typo.
-	* src/sfnt/sfdriver.c (get_sfnt_table): 16bit fix.
-	* src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
-	* src/sfnt/ttcmap0.c: 16bit fixes.
-	(TT_Build_CMaps): Simplify debug messages.
-	(tt_cmap12_char_next): Fix offset.
-	* src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
-	messages.
-	(TT_Load_OS2): 16bit fix.
-
-2002-03-30  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/tttypes.h: Adding comments to some of
-	the TT_FaceRec fields.
-
-	* src/sfnt/ttcmap0.c (TT_Build_CMaps): Removed compiler warnings.
-
-	* src/sfnt/sfobjs.c (tt_name_entry_ascii_from_{utf16,ucs4,other}:
-	New functions.
-	(tt_face_get_name): Use them to properly extract an ascii font name.
-
-2002-03-30  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/t1tables.h (t1_blend_max): Fix typo.
-	* src/base/ftstream.c: Simplify FT_ERROR calls.
-	* src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
-
-	* src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
-	[TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
-	* src/cff/sfobjs.c (SFNT_Load_Face)
-	[TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
-	* src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
-	[TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
-
-	* src/truetype/ttdriver.c, src/truetype/ttobjs.c,
-	src/truetype/ttobjs.h: Renaming driver functions to the
-	FT_<Subject>_<Action> scheme:
-
-	  TT_Init_Driver => TT_Driver_Init
-	  TT_Done_Driver => TT_Driver_Done
-	  TT_Init_Face   => TT_Face_Init
-	  TT_Done_Face   => TT_Face_Done
-	  TT_Init_Size   => TT_Size_Init
-	  TT_Done_Size   => TT_Size_Done
-	  TT_Reset_Size  => TT_Size_Reset
-
-2002-03-29  Werner Lemberg  <wl@gnu.org>
-
-	* builds/vms/ftconfig.h: Rename LOCAL_DEF and LOCAL_FUNC to
-	FT_LOCAL and FT_LOCAL_DEF, respectively, as with other ftconfig.h
-	files.
-	* builds/unix/ftconfig.in: Add argument to FT_LOCAL and
-	FT_LOCAL_DEF.
-	* src/truetype/ttinterp.c: s/FT_Assert/FT_ASSERT/.
-	* builds/unix/configure.ac: Temporarily deactivate creation of
-	../../Jamfile.
-	* builds/unix/configure: Updated.
-
-2002-03-28  KUSANO Takayuki  <AE5T-KSN@asahi-net.or.jp>
-
-	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
-
-2002-03-28  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
-	compiler warnings.
-	* include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
-	some members.
-	* src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
-	* src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
-	cast.
-	(t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
-	`FT_CALLBACK_TABLE_DEF'.
-	* src/psaux/t1cmap.h: Updated.
-	* src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
-	instead of zero.
-	* src/type1/t1objs.c (T1_Face_Init): Use casts.
-
-2002-03-26  David Turner  <david@freetype.org>
-
-	* src/sfnt/sfdriver.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c:
-	Fixed a small bug in the FT_CMaps support code.
-
-2002-03-25  David Turner  <david@freetype.org>
-
-	* src/truetype/ttinterp.c (Norm): Replaced with...
-	(TT_VecLen): This.
-	(TT_MulFix14, TT_DotFix14): New functions.
-	(Project, Dual_Project, Free_Project, Compute_Point_Displacement,
-	Ins_SHPIX, Ins_MIAP, Ins_MIRP): Use them.
-	[FT_CONFIG_OPTION_OLD_CALCS]: Removed all code.
-
-2002-03-22  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
-	Various fixes to make the FT_CMaps support work correctly (more
-	tests are still needed).
-
-	* include/freetype/internal/ftobjs.h, src/sfnt/Jamfile,
-	src/sfnt/rules.mk, src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
-	src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h: Updated
-	the SFNT charmap support to use FT_CMaps.
-
-	* include/freetype/fterrdef.h: New file.
-	* include/freetype/fterrors.h: Include it.  It contains all error
-	codes.
-	* include/freetype/config/ftheader.h (FT_ERROR_DEFINITIONS_H): New
-	macro.
-
-	* include/freetype/internal/ftmemory.h, and a lot of other files:
-	Changed the names of memory macros.  Examples:
-
-	  MEM_Set   => FT_MEM_SET
-	  MEM_Copy  => FT_MEM_COPY
-	  MEM_Move  => FT_MEM_MOVE
-
-	  ALLOC     => FT_ALLOC
-	  FREE      => FT_FREE
-	  REALLOC   = >FT_REALLOC
-
-	FT_NEW was introduced to allocate a new object from a _typed_
-	pointer.
-
-	Note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced by
-	FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
-	arguments.
-
-	This results in _lots_ of sources being changed, but makes the code
-	more generic and less error-prone.
-
-	* include/freetype/internal/ftstream.h, src/base/ftstream.c,
-	src/cff/cffload.c, src/pcf/pcfread.c, src/sfnt/ttcmap.c,
-	src/sfnt/ttcmap0.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
-	src/sfnt/ttsbit.c, src/truetype/ttgload.c, src/truetype/ttpload.c,
-	src/winfonts/winfnt.c: Changed the definitions of stream macros.
-	Examples:
-
-	  NEXT_Byte     => FT_NEXT_BYTE
-	  NEXT_Short    => FT_NEXT_SHORT
-	  NEXT_UShortLE => FT_NEXT_USHORT_LE
-	  READ_Short    => FT_READ_SHORT
-	  GET_Long      => FT_GET_LONG
-	  etc.
-
-	Also introduced the FT_PEEK_XXXX functions.
-
-	* src/cff/cffobjs.c (CFF_Build_Unicode_Charmap): Removed commented
-	out function.
-	(find_encoding): Removed.
-	(CFF_Face_Init): Remove charmap support.
-
-	* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_USE_CMAPS,
-	TT_CONFIG_CMAP_FORMAT{0,2,4,6,8,10,12}): New macros to fine-tune
-	support of cmaps.
-
-2002-03-21  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c, src/pcf/pcfdriver.c, src/pcf/pcfread.c: Updated
-	to new FT_CMap definitions.
-
-	* src/psaux/t1cmap.h, src/psaux/t1cmap.c, src/type1/t1cmap.h,
-	src/type1/t1cmap.c: Updating and moving the Type 1 FT_CMap support
-	from `src/type1' to `src/psaux' since it is going to be shared by
-	the Type 1 and CID font drivers.
-
-	* src/psaux/Jamfile, src/psaux/psaux.c, src/psaux/psauxmod.c,
-	src/psaux/rules.mk, include/freetype/internal/psaux.h: Added support
-	for Type 1 FT_CMaps.
-
-2002-03-20  David Turner  <david@freetype.org>
-
-	* src/base/ftgloadr.c (FT_GlyphLoader_CheckSubGlyphs): Fixed a
-	memory allocation bug that was due to un-careful renaming of the
-	FT_SubGlyph type.
-
-	* src/base/ftdbgmem.c (ft_mem_table_destroy): Fixed a small bug that
-	caused the library to crash with Electric Fence when memory
-	debugging is used.
-
-	* Renaming stream macros.  Examples:
-
-	  FILE_Skip    => FT_STREAM_SKIP
-	  FILE_Read    => FT_STREAM_READ
-	  ACCESS_Frame => FT_FRAME_ENTER
-	  FORGET_Frame => FT_FRAME_EXIT
-	  etc.
-
-	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed memory leak.
-
-	* include/freetype/internal/ftobjs.h: Changing the definition of
-	FT_CMap_CharNextFunc slightly.
-
-	* src/cff/*.c: Updating CFF type definitions.
-
-2002-03-14  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/autohint.h, src/autohint/ahmodule.c,
-	src/base/ftapi.c, src/base/ftobjs.c: Updating the type definitions
-	for the auto-hinter module.
-
-	  FT_AutoHinter_Interface  => FT_AutoHinter_ServiceRec
-	  FT_AutoHinter_Interface* => FT_AutoHinter_Service
-	  etc.
-
-	  FT_AutoHinter_Get_Global_Func  => FT_AutoHinter_GlobalGetFunc
-	  FT_AutoHinter_Done_Global_Func => FT_AutoHinter_GlobalDoneFunc
-	  etc.
-
-	* ahloader.h [_STANDALONE_]: Removed all conditional code.
-
-	* include/freetype/internal/cfftypes.h, src/cff/*.c: Updating the
-	type definitions of the CFF font driver.
-
-	  CFF_Font  => CFF_FontRec
-	  CFF_Font* => CFF_Font
-	  etc.
-
-	* include/freetype/internal/fnttypes.h, src/winfonts/*.c: Updating
-	type definitions of the Windows FNT font driver.
-
-	* include/freetype/internal/ftdriver.h,
-	include/freetype/internal/ftobjs.h, src/base/ftapi.c,
-	src/base/ftobjs.c, src/cff/cffdrivr.c, src/cff/cffdrivr.h,
-	src/cid/cidriver.c, src/cid/cidriver.h, src/pcf/pcfdriver.c,
-	src/pcf/pcfdriver.h, src/truetype/ttdriver.c,
-	src/truetype/ttdriver.h, src/type1/t1driver.c, src/type1/t1driver.h,
-	src/winfonts/winfnt.c, src/winfonts/winfnt.h: Updating type
-	definitions for font drivers.
-
-	  FTDriver_initFace      => FT_Face_InitFunc
-	  FTDriver_initGlyphSlot => FT_Slot_InitFunc
-	  etc.
-
-	* src/cid/cidobjs.c (CID_Face_Init): Remove dead code.
-
-	* include/freetype/internal/ftobjs.h, src/base/ftobjs.c: Updated a
-	few face method definitions:
-
-	  FT_PSName_Requester     => FT_Face_GetPostscriptNameFunc
-	  FT_Glyph_Name_Requester => FT_Face_GetGlyphNameFunc
-	  FT_Name_Index_Requester => FT_Face_GetGlyphNameIndexFunc
-
-	* src/base/ftapi.c: New file.  It contains backwards compatibility
-	functions.
-
-	* include/freetype/internal/psaux.h, src/cid/cidload.c,
-	src/cidtoken.h, src/psaux/psobjs.c, src/psaux/psobjs.h,
-	src/psaux/t1decode.c, stc/type1/t1load.c, src/type1/t1tokens.h:
-	Updated common PostScript type definitions.
-	Renamed all enumeration values like to uppercase variants:
-
-	  t1_token_any      => T1_TOKEN_TYPE_ANY
-	  t1_field_cid_info => T1_FIELD_LOCATION_CID_INFO
-	  etc.
-
-	* include/freetype/internal/psglobals.h: Removed.
-	* include/freetype/internal/pshints.h, src/pshinter/pshglob.h:
-	Updated.
-
-	* include/freetype/internal/tttypes.h,
-	include/freetype/internal/sfnt.h, src/base/ftnames.c,
-	src/cff/cffdrivr.c, src/sfnt/*.c, src/truetype/*.c: Updated
-	SFNT/TrueType type definitions.
-
-	* include/freetype/freetype.h, include/freetype/internal/ftgloadr.h:
-	Updating type defintiions for the glyph loader.
-
-2002-03-13  Antoine Leca  <antoine@oriolnet.com>
-
-	* include/freetype/config/ftoption.h: Changed the automatic
-	detection of Microsoft C compilers to automatically support 64-bit
-	integers only since revision 9.00 (i.e. >= Visual C++ 2.0).
-
-2002-03-08  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftutil.c (FT_Realloc): Use MEM_Set instead of memset.
-
-2002-03-07  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
-	ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
-	ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
-	FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
-	* src/base/ftcalc.c (FT_MulFix): Ditto.
-	* src/cff/cffdrivr.c (cff_get_name_index): Ditto.
-	* src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init,
-	CFF_GlyphSlot_Init): Ditto.
-	* src/cid/cidobjs.c (CID_GlyphSlot_Init,
-	CID_Size_Get_Globals_Funcs): Ditto.
-	* src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
-	Ditto.
-	* src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
-	* src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
-	variables.
-
-	* include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
-	to...
-	(T1_Builder_FuncsRec): This.
-	(T1_Builder_Funcs): New typedef.
-	(PSAux_Interface): Remove compiler warnings.
-	* src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
-	(t1_builder_funcs): Updated.
-
-	* src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
-	(PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
-	(PSH_AlignmentRec): Updated.
-
-	* include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
-	typo.
-	* include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
-	* src/base/ftstream (FT_Get_Char): Rename to...
-	(FT_Stream_Get_Char): This.
-
-	* src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
-	a built-in function in gcc, causing warning messages with gcc 3.0.
-	* src/autohint/ahglyph.c (ah_outline_load): Ditto.
-	* src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
-	* src/cache/ftcmanag.c (ftc_family_table_alloc,
-	ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
-	Ditto.
-	* src/cff/cffload.c (cff_new_index, cff_done_index,
-	cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
-	CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
-	CFF_Done_Font): Ditto.
-	* src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
-	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
-	* src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
-	ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
-	* src/pshinter/pshalgo1.c (psh1_hint_table_record,
-	psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
-	* src/pshinter/pshalgo2.c (psh2_hint_table_record,
-	psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
-	* src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
-	TT_Get_PS_Name): Ditto.
-	* src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
-	load_truetype_glyph): Ditto.
-	* src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
-	* src/type1/t1afm.c (T1_Get_Kerning): Ditto.
-	* include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
-
-2002-03-06  David Turner  <david@freetype.org>
-
-	* src/type1/t1objs.c (T1_Face_Init), src/cid/cidobjs.c
-	(CID_Face_Init): Fixed another bug related to the
-	ascender/descender/text height of Postscript fonts.
-
-	* src/pshinter/pshalgo2.c (print_zone): Renamed to ...
-	(psh2_print_zone): This.
-	* src/pshinter/pshalgo1.c (print_zone): Renamed to ...
-	(psh1_print_zone): This.
-
-	* include/freetype/freetype.h, include/freetype/internal/ftobjs.h,
-	src/base/ftobjs.c: Adding the new FT_Library_Version API to return
-	the library's current version in dynamic links.
-	* src/base/ftinit.c (FT_Init_FreeType): Updated.
-
-2002-03-06  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshglob.h (PSH_DimensionRec): s/std/stdw/.
-	* src/pshinter/pshglob.c (psh_global_scale_widths,
-	psh_dimension_snap_width, psh_globals_destroy, psh_globals_new):
-	Ditto.
-
-2002-03-05  David Turner  <david@freetype.org>
-
-	* src/type1/t1objs.c (T1_Face_Init), src/cff/cffobjs.c
-	(CFF_Face_Init), src/cid/cidobjs.c (CID_Face_Init): Removing the bug
-	that returned global BBox values in 16.16 fixed format (instead of
-	integer font units).
-
-	* src/cid/cidriver.c (cid_get_postscript_name): Fixed a bug that
-	caused the CID driver to return Postscript font names with a leading
-	slash (`/') as in `/MOEKai-Regular'.
-
-	* src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
-	src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
-	that it accepts broken fonts like `foxjump.ttf', which made FreeType
-	crash when trying to load them.
-
-	Also improved the name table parser to be able to load
-	Windows-encoded entries before Macintosh or Unicode ones, since it
-	seems some fonts don't have reliable values here anyway.
-
-	* include/freetype/internal/psnames.h: Add typedef for
-	`PSNames_Service'.
-
-2002-03-05  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/aclocal.m4, builds/unix/ltmain.sh: Update to libtool
-	1.4.2.
-	Apply a small patch for AIX to make shared libraries work (this
-	patch is already in the CVS version of libtool).
-
-	* builds/unix/config.sub, builds/unix/config.guess: Updated to
-	recent versions.
-
-	* builds/unix/configure.ac: Fix typo
-	(AC_CONFIG_FILE->AC_CONFIG_FILES).
-
-	* builds/unix/configure: Regenerated.
-
-2002-02-28  David Turner  <david@freetype.org>
-
-	* include/freetype/ftconfig.h: Changed `FT_LOCAL xxxx' to
-	`FT_LOCAL( xxxx )' everywhere in the source.  The same goes for
-	`FT_LOCAL_DEF xxxx' which is translated to `FT_LOCAL_DEF( xxxxx )'.
-
-	* include/freetype/freetype.h (FREETYPE_MINOR, FREETYPE_PATCH):
-	Changing version to 2.1.0 to indicate an unstable branch.
-	Added the declarations of FT_Get_First_Char and FT_Get_Next_Char.
-
-	* src/base/ftobjs.c: Implement FT_Get_First_Char and
-	FT_Get_Next_Char.
-
-	* include/freetype/t1tables.h: Renaming structure types.  This
-
-	  typedef  T1_Struct_
-	  {
-	  } T1_Struct;
-
-	becomes
-
-	  typedef  PS_StructRec_
-	  {
-	  } PS_StructRec, *PS_Struct;
-
-	  typedef PS_StructRec  T1_Struct;  /* backwards-compatibility */
-
-	Hence, we increase the coherency of the source code by effectively
-	using the `Rec' prefix for structure types.
-
-2002-02-27  David Turner  <david@freetype.org>
-
-	* src/sfnt/ttload.c (TT_Load_Names): Simplifying and securing the
-	names table loader.  Invalid individual name entries are now handled
-	correctly.  This allows the loading of very buggy fonts like
-	`foxjump.ttf' without allocating tons of memory and causing crashes.
-
-	* src/otlayout/otlcommon.h, src/otlayout/otlcommon.c: Adding (still
-	experimental) code for OpenType Layout tables validation and
-	parsing.
-
-	* src/type1/t1cmap.h, src/type1/t1cmap.c: Adding (still
-	experimental) code for Type 1 charmap processing.
-
-	* src/sfnt/ttcmap0.c: New file.  It contains a new, still
-	experimental SFNT charmap processing support.
-
-	* include/freetype/internal/ftobjs.h: Adding validation support as
-	well as internal charmap object definitions (FT_CMap != FT_CharMap).
-
-2002-02-24  David Turner  <david@freetype.org>
-
-	* Renaming stream functions to the FT_<Subject>_<Action> scheme:
-
-	  FT_Seek_Stream    => FT_Stream_Seek
-	  FT_Skip_Stream    => FT_Stream_Skip
-	  FT_Read_Stream    => FT_Stream_Read
-	  FT_Read_Stream_At => FT_Stream_Read_At
-	  FT_Access_Frame   => FT_Stream_Enter_Frame
-	  FT_Forget_Frame   => FT_Stream_Exit_Frame
-	  FT_Extract_Frame  => FT_Stream_Extract_Frame
-	  FT_Release_Frame  => FT_Stream_Release_Frame
-	  FT_Get_XXXX       => FT_Stream_Get_XXXX
-	  FT_Read_XXXX      => FT_Stream_Read_XXXX
-
-	  FT_New_Stream( filename, stream ) =>
-	    FT_Stream_Open( stream, filename )
-
-	    (The function doesn't create the FT_Stream structure, it simply
-	    initializes it for reading.)
-
-	  FT_New_Memory_Stream( library, FT_Byte*  base, size, stream ) =>
-	    FT_Stream_Open_Memory( stream, const FT_Byte* base, size )
-
-	  FT_Done_Stream  => FT_Stream_Close
-	  FT_Stream_IO    => FT_Stream_IOFunc
-	  FT_Stream_Close => FT_Stream_CloseFunc
-
-	  ft_close_stream => ft_ansi_stream_close (in base/ftsystem.c only)
-	  ft_io_stream    => ft_ansi_stream_io    (in base/ftsystem.c only)
-
-	* src/base/ftutil.c: New file.  Contains all memory and list
-	management code (previously in `ftobjs.c' and `ftlist.c',
-	respectively).
-
-	* include/freetype/internal/ftobjs.h: Moving all code related to
-	glyph loaders to ...
-	* include/freetype/internal/ftgloadr.h: This new file.
-	`FT_GlyphLoader' is now a pointer to the structure
-	`FT_GlyphLoaderRec'.
-	(ft_glyph_own_bitmap): Renamed to ...
-	(FT_GLYPH_OWN_BITMAP): This.
-	* src/base/ftobjs.c: Moving all code related to glyph loaders
-	to ...
-	* src/base/ftgloadr.c: This new file.
-
-2002-02-22  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/ftdebug.h (FT_Trace): Remove comma in
-	enum to avoid compiler warnings.
-
-2002-02-21  David Turner  <david@freetype.org>
-
-	Modified the debug sub-system initialization.  Trace levels can now
-	be specified within the `FT2_DEBUG' environment variable.  See the
-	comments within `ftdebug.c' for more details.
-
-	* src/base/ftdebug.c: (FT_SetTraceLevel): Removed.
-	(ft_debug_init): New function.
-	(ft_debug_dummy): Removed.
-	Updated to changes in ftdebug.h
-
-	* include/freetype/internal/ftdebug.h: Always define
-	FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE is defined.
-	(FT_Assert): Renamed to ...
-	(FT_ASSERT): This.
-	Some stuff from ftdebug.h has been moved to ...
-
-	* include/freetype/internal/fttrace.h: New file, to define the trace
-	levels used for debugging.  It is used both to define enums and
-	toggle names for FT2_DEBUG.
-
-	* include/freetype/internal/internal.h: Updated.
-
-	* src/base/ftobjs.c, src/base/ftstream.c: Updated.
-
-	* include/freetype/internal/ftextend.h, src/base/ftextend.c:
-	Removed.  Both files are now completely obsolete.
-	* src/base/Jamfile, src/base/rules.mk: Updated.
-
-	* include/freetype/fterrors.h: Adding `#undef FT_ERR_CAT' and
-	`#undef FT_ERR_XCAT' to avoid warnings with certain compilers (like
-	LCC).
-
-	* src/pshinter/pshalgo2.c (print_zone): Renamed to ...
-	(psh2_print_zone): This to avoid errors during compilation of debug
-	library.
-
-	* src/smooth/ftgrays.c (FT_COMPONENT): Change definition to as
-	`trace_smooth'.
-
-2002-02-20  David Turner  <david@freetype.org>
-
-	* README: Adding `devel@freetype.org' address for bug reports.
-
-2002-02-20  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/install.mk (check): New dummy target.
-	(.PHONY): Add it.
-
-2002-02-19  Werner Lemberg  <wl@gnu.org>
-
-	* builds/freetype.mk (FT_CFLAGS): Use $(INCLUDE_FLAGS) first.
-
-	* src/cache/ftccache.c (ftc_cache_resize): Mark `error' as unused
-	to avoid compiler warning.
-	* src/cff/cffload.c (CFF_Get_String): Ditto.
-	* src/cff/cffobjs.c (CFF_StrCopy): Ditto.
-	* src/psaux/psobjs.c (PS_Table_Done): Ditto.
-	* src/pcf/pcfread.c (pcf_seek_to_table_type): Ditto.
-	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Ditto.
-	(pcf_get_bitmaps): The same for `sizebitmaps'.
-	* src/psaux/t1decode.c (T1_Decode_Parse_Charstrings): The same for
-	`orig_y'.
-	(t1operator_seac): Comment out more dead code.
-	* src/pshinter/pshalgo2.c (ps2_hints_apply): Add `DEBUG_HINTER'
-	conditional.
-	* src/truetype/ttgload.c (TT_Process_Simple_Glyph,
-	load_truetype_glyph): Add `TT_CONFIG_OPTION_BYTECODE_INTERPRETER'
-	conditional.
-
-2002-02-18  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahglyph.c (ah_outline_link_segments): Remove unused
-	variables.
-	* src/autohint/ahhint.c (ah_align_serif_edge): Use FT_UNUSED instead
-	of UNUSED.
-	* src/autohint/ahmodule.c (ft_autohinter_reset): Ditto.
-	* src/pshinter/pshrec.c (ps_mask_table_merge): Fix typo in variable
-	swapping code.
-	* src/pshinter/pshglob.h (PSH_Blue_Align): Add PSH_BLUE_ALIGN_NONE.
-	* src/pshinter/pshglob.c (psh_blues_snap_stem): Use it.
-	* src/pshinter/pshalgo1.c (psh1_hint_table_optimize): Ditto.
-	* src/pshinter/pshalgo2.c (psh2_hint_align): Ditto.
-	* include/freetype/internal/ftobjs.h (UNUSED): Removed.
-
-2002-02-10  Roberto Alameda  <ojancano@geekmail.de>
-
-	Add support for ISOLatin1 PS encoding.
-
-	* include/freetype/freetype.h (ft_encoding_latin_1): New tag
-	(`lat1').
-	* include/freetype/internal/t1types.h (T1_Encoding_Type): Add
-	`t1_encoding_isolatin1'.
-	* src/type1/t1driver.c (Get_Char_Index, Get_Next_Char): Handle
-	ft_encoding_latin_1.
-	* src/type1/t1load.c (parse_encoding): Handle `ISOLatin1Encoding'.
-	* src/type1/t1objs.c (T1_Face_Init): Handle `t1_encoding_isolatin1'.
-
-2002-02-09  Werner Lemberg  <wl@gnu.org>
-
-	* README: Fix typo.
-	* docs/CHANGES: Minor fixes.
-
-
-	* Version 2.0.8 released.
-	=========================
-
-
-2002-02-08  David Turner  <david@freetype.org>
-
-	* docs/CHANGES: Updating for 2.0.8.
-
-	* include/freetype/freetype.h: Setting `PATCH_LEVEL' to 8 and
-	removing `FT_Get_Next_Char' from the API (temporarily).
-
-	* include/freetype/freetype.h: Adding comments to FT_Get_Next_Char;
-	note that this function might temporarily be removed for the 2.0.8
-	release.
-
-2002-02-07  David Turner  <david@freetype.org>
-
-	* src/pcf/pcfread.c (pcf_load_font): Removed immature support of
-	the AVERAGE_WIDTH property.
-
-2002-02-06  David Turner  <david@freetype.org>
-
-	* src/sfnt/sfobjs.c (SFNT_Load_Face): Since many fonts embedded in
-	PDF documents do not include 'cmap', 'post' and 'name' tables, the
-	SFNT face loader has been changed to not immediately report an
-	error if these are not present.
-
-	Note that the specification _requires_ these tables, but Adobe
-	seems to ignore it completely.
-
-	* src/sfnt/ttcmap.c: Removing compiler warnings.
-
-	* src/pcf/pcfread.c (pcf_read_TOC): Use FT_UInt.
-	(pcf_parse_metric, pcf_parse_compressed_metric): Removed.  Code
-	is now in ...
-	(pcf_get_metric): Here.
-	(pcfSeekToType): Renamed to ...
-	(pcf_seek_to_table_type): This.
-	Use FT_Int.
-	(pcfHasType): Renamed to ...
-	(pcf_has_table_type): This.
-	Use FT_Int.
-	(find_property): Renamed to ...
-	(pcf_find_property): This.
-	Use FT_Int.
-	(pcf_get_bitmaps, pcf_get_encodings): Handle invalid PCF fonts
-	better (delaying format checks out of FT_Access_Frame ..
-	FT_Forget_Frame blocks to avoid leaving the stream in an incorrect
-	state when encountering an invalid PCF font).
-
-	* src/pcf/pcfdriver.c (PCF_Done_Face): Renamed to ...
-	(PCF_Face_Done): This.
-	(PCF_Init_Face): Renamed to ...
-	(PCF_Face_Init): This.
-	(PCF_Get_Char_Index): Renamed to ...
-	(PCF_Char_Get_Index): This.
-	(PCF_Get_Next_Char): Renamed to ...
-	(PCF_Char_Get_Next): This.
-	(pcf_driver_class): Updated.
-
-	* src/pcf/pcf.h (PCF_Done_Face): Removed.
-
-2002-02-06  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/pcf/pcfdriver.c (FT_Done_Face): Fixed small memory leak.
-
-	* src/pcf/pcfread.c (pcf_load_font): Now handles the `AVERAGE_WIDTH'
-	property to return correct character pixel (width/height) pairs for
-	embedded bitmaps.
-
-2002-02-04  Keith Packard  <keithp@keithp.com>
-
-	Adding the function `FT_Get_Next_Char', doing the obvious thing
-	w.r.t. the selected charmap.
-
-	* include/freetype/freetype.h: Add prototype.
-	* include/freetype/internal/ftdriver.h: Add `FTDriver_getNextChar'
-	typedef.
-	(FT_Driver_Class): Use it.
-	* include/freetype/internal/psnames.h: Add `PS_Next_Unicode_Func'
-	typedef.
-	(PSNames_Interface): Use it.
-	* include/freetype/internal/tttypes.h: Add `TT_CharNext_Func'
-	typedef.
-	(TT_CMapTable): Use it.
-
-	* src/base/ftobjs.c (FT_Get_Next_Char): New function, implementing
-	high-level API.
-	* src/cff/cffdrivr.c (cff_get_next_char): New function.
-	(cff_driver_class): Add it.
-	* src/cid/cidriver.c (Cid_Get_Next_Char): New function.
-	(t1cid_driver_class): Add it.
-	* src/pcf/pcfdriver.c (PCF_Get_Next_Char): New function.
-	(pcf_driver_class): Add it.
-	* src/psnames/psmodule.c (PS_Next_Unicode): New function.
-	(psnames_interface): Add it.
-	* src/sfnt/ttcmap.c (code_to_next0, code_to_next2, code_to_next4,
-	code_to_next6, code_to_next_8_12, code_to_next_10): New auxiliary
-	functions.
-	(TT_CharMap_Load): Use them.
-	* src/truetype/ttdriver.c (Get_Next_Char): New function.
-	(tt_driver_class): Add it.
-	* src/type1/t1driver.c (Get_Next_Char): New function.
-	(t1_driver_class): Add it.
-	* src/winfonts/winfnt.c (FNT_Get_Next_Char): New function.
-	(winfnt_driver_class): Add it.
-
-	* src/pcf/pcfread.c (pcf_load_font): For now, report Unicode for
-	Unicode and Latin 1 encodings.
-
-2002-02-02  Keith Packard  <keithp@keithp.com>
-
-	* builds/unix/freetype-config.in: Add missing `fi'.
-
-
-	* Version 2.0.7 released.
-	=========================
-
-
-2002-02-01  David Turner  <david@freetype.org>
-
-	* include/freetype/freetype.h: Increasing FREETYPE_PATCH to 7
-	for the new release.
-
-2002-01-31  David Turner  <david@freetype.org>
-
-	* README, README.UNX, docs/CHANGES: Updating documentation for the
-	2.0.7 release.
-
-2002-01-30  David Turner  <david@freetype.org>
-
-	* INSTALL: Moved to ...
-	* docs/INSTALL: Here to avoid conflicts with the `install' script on
-	Windows, where the filesystem doesn't preserve case.
-
-2002-01-29  David Turner  <david@freetype.org>
-
-	* configure: Fixed the script.  It previously didn't accept more
-	than one argument correctly.  For example, when typing:
-
-	  ./configure --disable-shared --disable-nls
-
-	the `--disable-nls' was incorrectly sent to the `make' program.
-
-2002-01-29  Werner Lemberg  <wl@gnu.org>
-
-	* README.UNX: Fix typo.
-	* builds/unix/install.mk (uninstall): Fix library name for libtool.
-
-2002-01-28  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
-
-	* src/pcf/pcfdriver.c (PCF_Done_Face): Fix incorrect destruction of
-	the face object (face->toc.tables, face->root.family_name,
-	face->root.available_size, face->charset_encoding,
-	face->charset_registry are now freed).  Thanks to Niels Moseley.
-
-2002-01-28  Roberto Alameda  <ojancano@geekmail.de>
-
-	* src/type1/t1load.c (parse_encoding): Set `loader->num_chars'.
-
-2002-01-28  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_subrs, parse_charstrings): Use copy
-	of `base' string for decrypting to not modify the original data.
-	Based on a patch by Jakub Bogusz <qboosh@pld.org.pl>.
-
-2002-01-27  Giuliano Pochini  <pochini@shiny.it>
-
-	* src/smooth/ftgrays.c (gray_render_scanline): Fix bug which caused
-	bad rendering of thin lines (less than one pixel thick).
-
-2002-01-25  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffdrivr.c (cff_get_name_index): Make last patch work
-	actually.
-
-2002-01-25  Martin Zinser  <zinser@decus.de>
-
-	* src/cache/ftccache.c (ftc_node_done, ftc_node_destroy): Fix
-	compilation warnings.
-	* src/base/descrip.mms (OBJS): Add `ftmm.obj'.
-	* src/cache/descrip.mms (ftcache.obj): Dependencies added.
-
-2002-01-25  WANG Yi  <wangyi@founder.com.cn>
-
-	* src/cff/cffdrivr.c (cff_get_name_index): Fix deallocation bug.
-
-2002-01-21  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
-
-	* docs/PATENTS: Typo fixed (thanks to Detlef `Hawkeye' W�rkner) in
-	the URL for the online resource.
-
-2002-01-18  Ian Brown  <ian.brown@printsoft.de>
-
-	* builds/win32/ftdebug.c: New file.
-	* builds/win32/visualc/freetype.dsp: Updated.
-
-2002-01-18  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* builds/amiga/src/base/ftsystem.c: Updated for AmigaOS 3.9.
-	* builds/amiga/README: Updated.
-
-2002-01-18  Ian Brown  <ian.brown@printsoft.de>
-
-	* builds/win32/visualc/freetype.dsp: Updated.
-
-2002-01-13  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/freetype2.a4: The script was still buggy.
-	* builds/unix/freetype-config.in: Make it really work for any install
-	prefix.
-
-2002-01-10  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/freetype2.a4: Fix some serious bugs.
-
-2002-01-09  David Turner  <david@freetype.org>
-
-	* builds/unix/configure.ac: Build top-level Jamfile.
-
-2002-01-09  Maxim Shemanarev  <mcseemagg@yahoo.com>
-
-	* src/smooth/ftgrays.c (gray_render_line): Small optimization to
-	the smooth anti-aliased renderer that deals with vertical segments.
-	This results in a 5-7% speedup in rendering speed.
-
-2002-01-08  David Turner  <david@freetype.org>
-
-	Added some wrapper scripts to make the installation more
-	Unix-friendly.
-
-	* configure, install: New files.
-
-	* INSTALL, README.UNX: Updated installation documentation to use the
-	new 'configure' and 'install' scripts.
-
-2002-01-07  David Turner  <david@freetype.org>
-
-
-	* Version 2.0.6 released.
-	=========================
-
-
-	* docs/BUGS, docs/CHANGES: Updating documentation for 2.0.6 release.
-
-	* src/tools/docmaker.py: Fixed HTML quoting in sources.
-	(html_format): Replaced with ...
-	(html_quote): New function.
-	(html_quote0): New function.
-	(DocCode::dump_html): Small improvement.
-	(DocParagraph::dump, DocBlock::html): Use html_quote0 and html_quote.
-
-	* include/freetype/config/ftoption.h: Setting default options for
-	a release build (debugging off, bytecode interpreter off).
-
-	* src/base/ftobjs.c, src/base/ftoutln.c, src/cache/ftccmap.c,
-	src/cff/cffload.c, src/cff/cffobjs.c, src/pshinter/pshalgo2.c,
-	src/sfnt/ttload.c, src/sfnt/ttsbit.c: Removing small compiler
-	warnings (in pedantic compilation modes).
-
-2002-01-05  David Turner  <david@freetype.org>
-
-	* src/autohint/ahhint.c (ah_align_linked_edge): Modified computation
-	of auto-hinted stem widths; this avoids color fringes in
-	`ClearType-like' rendering.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph_Header,
-	TT_Load_Simple_Glyph, TT_Load_Composite_Glyph, load_truetype_glyph):
-	Modified the TrueType loader to make it more paranoid; this avoids
-	nasty buffer overflows in the case of invalid glyph data (as
-	encountered in the output of some buggy font converters).
-
-2002-01-04  David Turner  <david@freetype.org>
-
-	* README.UNX: Added special README file for Unix users.
-
-	* builds/unix/ftsystem.c (FT_New_Stream): Fixed typo.
-
-	* src/base/ftobjs.c: Added #include FT_OUTLINE_H to get rid
-	of compiler warnings.
-
-	* src/base/ftoutln.c (FT_Outline_Check): Remove compiler warning.
-
-2002-01-03  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1objs.c (T1_Face_Init): Add cast to avoid compiler
-	warning.
-
-2002-01-03  Keith Packard  <keithp@keithp.com>
-
-	* builds/unix/ftsystem.c (FT_New_Stream): Added a fix to ensure that
-	all FreeType input streams are closed in child processes of a `fork'
-	on Unix systems.  This is important to avoid (potential) access
-	control issues.
-
-2002-01-03  David Turner  <david@freetype.org>
-
-	* src/type1/t1objs.c (T1_Face_Init): Fixed a bug that crashed the
-	library when dealing with certain weird fonts like `Stalingrad', in
-	`sadn.pfb' (this font has no full font name entry).
-
-	* src/base/ftoutln.c, include/freetype/ftoutln.h (FT_Outline_Check):
-	New function to check the consistency of outline data.
-
-	* src/base/ftobjs.c (FT_Load_Glyph): Use `FT_Outline_Check' to
-	ensure that loaded glyphs are valid.  This allows certain fonts like
-	`tt1095m_.ttf' to be loaded even though it appears they contain
-	really funky glyphs.
-
-	There still is a bug there, though.
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Fix error condition.
-
-2001-12-30  David Turner  <david@freetype.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load): Fix advance width
-	computation of auto-hinted glyphs.  This noticeably improves the
-	spacing of letters in KDE and Gnome.
-
-2001-12-25  Antoine Leca  <Antoine-Freetype@Leca-Marti.org>
-
-	* builds/dos/detect.mk: Correcting the order for Borland compilers:
-	16-bit bcc was never selected, always overridden by 32-bit bcc32.
-
-2001-12-22  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
-
-	* src/pfc/pcfread.c (pcf_load_font): Handle property `POINT_SIZE'
-	and fix incorrect computation of `available_sizes'.
-
-2001-12-22  David Turner  <david@freetype.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load): Auto-hinted glyphs had an
-	incorrect glyph advance in the case of mono-width fonts (like
-	Courier, Andale Mono, and others).
-
-2001-12-22  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* builds/amiga/*: Adaptations to latest changes.
-	Support added for MorphOS.
-
-2001-12-22  Werner Lemberg  <wl@gnu.org>
-
-	* src/pshinter/pshrec.c (FT_COMPONENT): Redefine to `trace_pshrec'.
-	(ps_mask_table_merge, ps_hints_open, ps_hints_stem,
-	ps_hints_t1stem3, ps_hints_t2mask, ps_hints_t2counter): Fix
-	FT_ERROR messages.
-	* src/pshinter/pshalgo1.c (FT_COMPONENT): Define as
-	`trace_pshalgo1'.
-	* src/pshinter/pshalgo2.c (FT_COMPONENT): Define as
-	`trace_pshalgo2'.
-	* include/freetype/internal/ftdebug.h (FT_Trace): Updated.
-
-	* docs/modules.txt: New file.
-
-2001-12-21  David Turner  <david@freetype.org>
-
-	* src/pshinter/pshrec.c (ps_hints_t2mask, ps_hints_t2counter):
-	Ignore invalid `hintmask' and `cntrmask' operators (instead of
-	returning an error).  Glyph 2028 of the CFF font `MSung-Light-Acro'
-	couldn't be rendered otherwise (it seems its charstring is buggy,
-	though this requires more analysis).
-	(FT_COMPONENT): Define.
-
-	* src/cff/cffgload.c (CFF_Parse_CharStrings), src/psaux/t1decode.c
-	(T1_Decoder_Parse_Charstrings), src/pshinter/pshalgo2.c (*), Fixed a
-	bug where the X and Y axis where inversed in the postscript hinter.
-	This caused problem when displaying on non-square surfaces.
-
-	* src/pshinter/pshalgo2.c: s/vertical/dimension/.
-
-	* src/pshinter/pshglob.c (psh_globals_new): Replaced a floating
-	point constant with a fixed-float equivalent.  For some reasons not
-	all compilers are capable of directly computing a floating pointer
-	constant casted to FT_Fixed, and will link a math library instead.
-
-2001-12-20  Werner Lemberg  <wl@gnu.org>
-
-	* src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix
-	tracing strings.
-	* src/cache/ftccmap.c (ftc_cmap_family_init): Ditto.
-	* src/cache/ftcmanag.c (ftc_family_table_alloc,
-	ftc_family_table_free, FTC_Manager_Check): Ditto.
-	* src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
-
-	* src/base/ftobjs.c (FT_Done_Library): Remove compiler warning.
-
-2001-12-20  David Turner  <david@freetype.org>
-
-	Added PostScript hinter support to the CFF and CID drivers.
-
-	* include/freetype/internal/cfftypes.h (CFF_Font): New member
-	`pshinter'.
-	* src/cff/cffload.c (CFF_Get_Standard_Encoding): New function.
-	* src/cff/cffload.h: Updated.
-	* src/cff/cffgload.c (CFF_Init_Builder): Renamed to ...
-	(CFF_Builder_Init): This.
-	Added new argument `hinting'.
-	(CFF_Done_Builder): Renamed to ...
-	(CFF_Builder_Done): This.
-	(CFF_Init_Decoder): Added new argument `hinting'.
-	(CFF_Parse_CharStrings): Implement vstem support.
-	(CFF_Load_Glyph): Updated.
-	Add hinting support.
-	(cff_lookup_glyph_by_stdcharcode): Use CFF_Get_Standard_Encoding().
-	(cff_argument_counts): Updated.
-	* src/cff/cffgload.h: Updated.
-	* src/cff/cffobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
-	(CFF_Size_Get_Globals_Funcs, CFF_Size_Done, CFF_Size_Init,
-	CFF_Size_Reset, CFF_GlyphSlot_Done, CFF_GLyphSlot_Init): New
-	functions.
-	(CFF_Init_Face): Renamed to ...
-	(CFF_Face_Init): This.
-	Add hinter support.
-	(CFF_Done_Face): Renamed to ...
-	(CFF_Face_Done): This.
-	(CFF_Init_Driver): Renamed to ...
-	(CFF_Driver_Init): This.
-	(CFF_Done_Driver): Renamed to ...
-	(CFF_Driver_Done): This.
-	* src/cff/cffobjs.h: Updated.
-	* src/cff/cffdrivr.c (cff_driver_class): Updated.
-
-	* include/freetype/internal/t1types.h (CID_FaceRec): New member
-	`pshinter'.
-	* src/cid/cidgload.c (CID_Load_Glyph): Add hinter support.
-	* src/cid/cidobjs.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
-	(CID_GlyphSlot_Done, CID_GlyphSlot_Init, CID_Size_Get_Globals_Funcs,
-	CID_Size_Done, CID_Size_Init, CID_Size_Reset): New functions.
-	(CID_Done_Face): Renamed to ...
-	(CID_Face_Done): This.
-	(CID_Init_Face): Renamed to ...
-	(CID_Face_Init): This.
-	Add hinting support.
-	(CID_Init_Driver): Renamed to ...
-	(CID_Driver_Init): This.
-	(CID_Done_Driver): Renamed to ...
-	(CID_Driver_Done): This.
-	* src/cid/cidobjs.h: Updated.
-	* src/cidriver.c: Updated.
-
-	* src/pshinter/pshrec.c (t2_hint_stems): Fixed.
-
-	* src/base/ftobjs.c (FT_Done_Library): Fixed a stupid bug that
-	crashed the library on exit.
-
-	* src/type1/t1gload.c (T1_Load_Glyph): Enable font matrix
-	transformation of hinted glyphs.
-
-	* src/cid/cidload.c (cid_read_subrs): Fix error condition.
-
-	* src/cid/cidobjs.c (CID_Face_Done): Fixed a memory leak; the subrs
-	routines were never released when CID faces were destroyed.
-
-	* src/cff/cffload.h, src/cff/cffload.c, src/cff/cffgload.c: Updated
-	to move the definition of encoding tables back within `cffload.c'
-	instead of making them part of a shared header (causing problems in
-	`multi' builds).  This reverts change 2001-08-08.
-
-	* docs/CHANGES: Updated for 2.0.6 release.
-	* docs/TODO: Added `stem3 and counter hints support' to the TODO
-	list for the Postscript hinter.
-	* docs/BUGS: Closed the AUTOHINT-NO-SBITS bug.
-
-2001-12-19  David Turner  <david@freetype.org>
-
-	* include/freetype/cache/ftcache.h: Added comments to indicate that
-	some of the exported functions should only be used by applications
-	that need to implement custom cache types.
-
-	* src/truetype/ttgload.c (cur_to_org, org_to_cur): Fixed a nasty bug
-	that prevented composites from loading correctly, due to missing
-	parentheses around macro parameters.
-
-	* src/sfnt/sfobjs.c (SFNT_Load_Face): Make the `post' and `name'
-	tables optional to load PCL fonts properly.
-
-	* src/truetype/ttgload.c (TT_Load_Glyph), src/base/ftobjs.c
-	(FT_Load_Glyph), include/freetype/freetype.h (FT_LOAD_SBITS_ONLY):
-	`Fixed' the bug that prevented embedded bitmaps to be loaded when
-	the auto-hinter is used.  This actually is a hack but will be enough
-	until the internal re-design scheduled for FreeType 2.1.
-
-	* src/raster/ftrend1.c (ft_raster1_render): Fixed a nasty outline
-	shifting bug in the monochrome renderer.
-
-	* README: Updated version numbers to 2.0.6.
-
-2001-12-17  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Fix test for invalid
-	glyph header.
-
-2001-12-15  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Remove compiler warning.
-	* include/freetype/ftcache.h (FTC_Node_Unref): Removed.  It is
-	already in ftcmanag.h.
-	* src/cache/ftcsbits.c (ftc_sbit_node_load): Remove unused variable
-	`gfam'.
-	* src/cache/ftcmanag.c (ftc_family_table_alloc,
-	* ftc_family_table_free): Use FT_EXPORT_DEF.
-	* include/freetype/cache/ftcmanag.h: Updated.
-	* src/cache/ftccache.c (ftc_node_destroy): Use FT_EXPORT_DEF.
-	* src/cache/ftccmap.c (ftc_cmap_node_init): Remove unused variable
-	`cfam'.
-	Remove compiler warning.
-	(FTC_CMapCache_Lookup): Remove compiler warnings.
-	(ftc_cmap_family_init): Ditto.
-	(FTC_CMapCache_Lookup): Ditto.
-
-	* builds/unix/configure.ac: Increase `version_info' to 8:0:2.
-	* builds/unix/configure: Regenerated.
-
-2001-12-14  Werner Lemberg  <wl@gnu.org>
-
-	* builds/mac/README: Updated.
-
-2001-12-14  Scott Long  <scott@swiftview.com>
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Fixing crash when
-	dealing with invalid fonts (i.e. glyph size < 10 bytes).
-
-2001-12-14  Sam Latinga  <slouken@devolution.com>
-
-	* builds/mac/freetype.make: A new Makefile to build with MPW on
-	MacOS classic.
-
-2001-12-14  David Turner  <david@freetype.org>
-
-	* src/truetype/ttgload.c (TT_Load_Glyph), src/type1/t1gload.c
-	(T1_Load_Glyph), src/cid/cidgload.c (CID_Load_Glyph),
-	src/cff/cffgload.c (CFF_Load_Glyph): Fixed a serious bug common to
-	all font drivers (the advance width was never hinted when it
-	should).
-
-	* include/freetype/freetype.h (FREETYPE_PATCH): New macro.
-	* src/base/ftdbgmem.c (debug_mem_dummy) [!FT_DEBUG_MEMORY]: Don't
-	use `extern' keyword.
-
-2001-12-12  David Turner  <david@freetype.org>
-
-	* src/pshinter/pshglob.c (psh_blues_scale_zones, psh_blues_snap_stem
-	psh_globals_new): Adding correct BlueScale/BlueShift support, plus
-	family blues processing.
-	* src/pshinter/pshglob.h (PSH_BluesRec): Updated.
-
-	Started adding support for the Postscript hinter in the CFF module.
-
-	* src/cff/cffgload.c: Include FT_INTERNAL_POSTSCRIPT_HINTS_H.
-	(CFF_Parse_CharStrings): Implement it.
-	* src/cff/cffgload.h: Updated.
-
-2001-12-12  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/freetype2.m4: Some portability fixes.
-
-2001-12-11  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
-
-	* src/base/descrip.mms (OBJS): Add ftdebug.obj.
-
-2001-12-11  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttload.c (TT_Load_Generic_Header): Typos.
-
-2001-12-11  David Turner  <david@freetype.org>
-
-	* builds/unix/freetype-config.in: Modified the script to prevent
-	passing `-L/usr/lib' to gcc.
-
-	* docs/FTL.TXT: Simple fix (change `LICENSE.TXT' to `FTL.TXT').
-
-	* builds/unix/freetype2.m4: New file for checking configure paths.
-	We need to install it in $(prefix)/share/aclocal/freetype2.m4 but I
-	didn't modify builds/unix/install.mk yet.
-
-	* INSTALL: Updated the instructions to build shared libraries with
-	Jam.  They were simply wrong.
-
-	* src/base/fttrigon.c (FT_Cos): Fixed a small bug that caused
-	slightly improper results for `FT_Cos' and `FT_Sin' (example:
-	FT_Sin(0) == -1!).
-
-2001-12-11  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* include/freetype/internal/ftstream.h (GET_LongLE, GET_ULongLE):
-	Fixed incorrect argument types.
-
-2001-12-10  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
-
-	* src/pcf/pcfdriver.c (PCF_Init_Face): Allow Xft to use PCF fonts
-	by setting the `face->metrics.max_advance' correctly.
-
-2001-12-07  David Turner  <david@freetype.org>
-
-	* include/freetype/cache/ftccmap.h, src/cache/ftccmap.c: Added new
-	charmap cache.
-	* src/cache/ftcache.c: Updated.
-
-	* src/autohint/ahhint.c (ah_hinter_hint_edges): s/UNUSED/FT_UNUSED/.
-
-2001-12-06  Leonard Rosenthol  <leonardr@lazerware.com>
-
-	Added support for reading .dfont files on Mac OS X.  Also added a
-	new routine which looks up a given font by name in the Mac OS and
-	returns the disk file where it resides.
-
-	* src/base/ftmac.c: Include <Files.h> and <TextUtils.h>.
-	(is_dfont): New auxiliary function.
-	(FT_New_Face_From_dfont): New function.
-	(FT_GetFile_From_Mac_Name): New exported function.
-	(FT_New_Face): Updated.
-	* include/freetype/ftmac.h: Updated.
-
-2001-12-06  David Turner  <david@freetype.org>
-
-	* src/cache/Jamfile, src/cache/rules.mk: Updated.
-
-2001-12-06  Werner Lemberg  <wl@gnu.org>
-
-	* INSTALL: Small update.
-
-2001-12-05  David Turner  <david@freetype.org>
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Re-ordered code for
-	debugging purposes.
-	Comment out use of `origin'.
-
-	* src/smooth/ftsmooth.c (ft_smooth_render): Fixed a nasty hidden bug
-	where outline shifting wasn't correctly undone after bitmap
-	rasterization.  This created problems with certain glyphs (like '"'
-	of certain fonts) and the cache system.
-
-	* src/pshinter/pshalgo1.c (psh1_hint_table_init): Fix typo.
-	* src/pshinter/pshalgo2.c (psh2_hint_table_init): Fix typo.
-	(ps2_hints_apply): Small fix.
-
-2001-12-05  David Turner  <david@freetype.org>
-
-	* src/pshinter/pshalgo2.c (psh2_hint_table_init),
-	src/pshinter/pshalgo1.c (psh1_hint_table_init): Removed compiler
-	warnings.
-
-	* include/freetype/ftcache.h, include/freetype/cache/*, src/cache/*:
-	Yet another massive rewrite of the caching sub-system in order to
-	both increase performance and allow simpler cache sub-classing.  As
-	an example, the code for the image and sbit caches is now much
-	simpler.
-
-	I still need to update the documentation in
-	www/freetype2/docs/cache.html to reflect the new design though.
-
-	* include/freetype/config/ftheader.h (FT_CACHE_CHARMAP_H): New
-	macro.
-	(FT_CACHE_INTERNAL_CACHE_H): Updated.
-
-2001-12-05  David Krause  <freetype@davidkrause.com>
-
-	* docs/license.txt: s/X Windows/X Window System/.
-
-2001-12-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/raster/ftraster.c: Fix definition condition of MEM_Set().
-	* src/smooth/ftgrays.c (M_Y): Change value to 192.
-	* src/base/ftdbgmem.c (ft_mem_table_destroy): Fix printf() parameter.
-	Remove unused variable.
-	* src/cache/ftcimage.c (ftc_image_node_init,
-	ftc_image_node_compare): Remove unused variables.
-	* src/cache/ftcsbits.c (ftc_sbit_node_weight): Remove unused
-	variable.
-	* src/raster/ftraster.c (MEM_Set): Move definition down to avoid
-	compiler warning.
-	* src/autohint/ahhint.c (ah_hinter_hint_edges): Use UNUSED() to
-	avoid compiler warnings.
-	* src/pcf/pcfread.c (tableNames): Use `const'.
-	(pcf_read_TOC): Change counter name to avoid compiler warning.
-	Use `const'.
-	* src/pshinter/pshrec.c (ps_hints_close): Remove redundant
-	declaration.
-	* src/pshinter/pshalgo1.c (psh1_hint_table_init): Rename variables
-	to avoid shadowing.
-	* src/pshinter/pshalgo2.c (psh2_hint_table_activate_mask): Ditto.
-	* src/type1/t1objs.h: Remove double declarations of `T1_Size_Init()'
-	and `T1_Size_Done()'.
-
-2001-11-20  Antoine Leca  <antoineleca@multimania.com>
-
-	* include/freetype/ttnameid.h: Added some new Microsoft language
-	codes and LCIDs as found in MSDN (Passport SDK).  Also added
-	comments about the meaning of bit 57 of the `OS/2' table
-	(TT_UCR_SURROGATES) which (with OpenType v.1.3) now means `there is
-	a character beyond 0xFFFF in this font'.  Thanks to Detlef W�rkner
-	<TetiSoft@apg.lahn.de> for noticing this.
-
-2001-11-20  David Turner  <david@freetype.org>
-
-	* src/pshinter/{pshalgo2.c, pshalgo1.c}: Fixed stupid bug in sorting
-	routine that created nasty alignment artefacts.
-
-	* src/pshinter/pshrec.c, tests/gview.c: Debugging updates.
-
-	* src/smooth/ftgrays.c: De-activated experimental gamma support.
-	Apparently, `optimal' gamma tables depend on the monitor type,
-	resolution and general karma, so it's better to compute them outside
-	of the rasterizer itself.
-	(gray_convert_glyph): Use `volatile' keyword.
-
-2001-10-29  David Turner  <david@freetype.org>
-
-	Adding experimental `gamma' support.  This produces smoother glyphs
-	at small sizes for very little cost.
-
-	* src/smooth/ftgrays.c (grays_init_gamma): New function.
-	(gray_raster_new): Use it.
-
-	Various fixes to the auto-hinter.  They merely improve the output of
-	sans-serif fonts.  Note that there are still problems with serifed
-	fonts and composites (accented characters).
-
-	* src/autohint/ahglyph.c (ah_outline_load,
-	ah_outline_link_segments): Implement it.
-	Fix typos.
-	(ah_outline_save, ah_outline_compute_segments): Fix typos.
-	* src/autohint/ahhint.c (ah_align_serif_edge): New argument
-	`vertical'.  Implement improvement.
-	(ah_hint_edges_3, ah_hinter_hint_edges): Implement it.
-	Fix typos.
-	(ah_hinter_align_strong_points, ah_hinter_align_weak_points): Fix
-	typos.
-	(ah_hinter_load): Set `ah_debug_hinter' if DEBUG_HINTER is defined.
-	* src/autohint/ahmodule.c: Implement support for DEBUG_HINTER macro.
-	* src/autohint/ahtypes.h: Ditto.
-	(AH_Hinter): Remove `disable_horz_edges' and `disable_vert_edges'
-	(making them global as `ah_debug_disable_horz' and
-	`ah_debug_disable_vert').
-	Fix typos.
-
-	* tests/gview.c: Updated the debugging glyph viewer to show the
-	hints generated by the `autohint' module.
-
-2001-10-27  David Turner  <david@freetype.org>
-
-	* src/cache/ftcchunk.c (ftc_chunk_cache_lookup): Fixed a bug that
-	considerably lowered the performance of the abstract chunk cache.
-
-2001-10-26  David Turner  <david@freetype.org>
-
-	* include/freetype/ftcache.h, include/freetype/cache/*.h,
-	src/cache/*.c: Major re-design of the cache sub-system to provide
-	better performance as well as an `Acquire'/`Release' API.  Seems to
-	work well here, but probably needs a bit more testing.
-
-2001-10-26  Leonard Rosenthol  <leonardr@lazerware.com>
-
-	* builds/mac/README: Updated to reflect my taking over the project
-	and that is now being actively maintained.
-
-	* src/base/ftmac.c (parse_fond): Applied patches from Paul Miller
-	<paulm@profoundeffects.com> to support loading a face other than the
-	first from a FOND resource.
-	(FT_New_Face_From_FOND): Updated.
-
-2001-10-25  Leonard Rosenthol  <leonardr@lazerware.com>
-
-	* builds/mac/ftlib.prj: Update of CodeWarrior project file for Mac
-	OS for latest version (7) of CWPro and for recent changes to the FT
-	source tree.
-
-2001-10-25  David Turner  <david@freetype.org>
-
-	* include/freetype/config/ftoption.h: Updated comments to explain
-	precisely how to use project-specific macro definitions without
-	modifying this file manually.
-
-	(FT_CONFIG_FORCE_INT64): Define.
-
-	(FT_DEBUG_MEMORY): New macro.
-
-2001-10-24  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* builds/unix/ftsystem.c (FT_New_Memory): Added a missing `{'.
-
-2001-10-23  David Turner  <david@freetype.org>
-
-	* include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
-	Improvements to the memory debugger to report more information in
-	case of errors.  Also, some allocations that occurred through REALLOC
-	couldn't be previously catched correctly.
-
-	* src/autohint/ahglyph.c (ah_outline_compute_segments,
-	ah_outline_compute_edges), src/raster/ftraster.c (ft_black_new),
-	src/smooth/ftgrays.c (gray_render_span, gray_raster_new): Replaced
-	liberal uses of memset() by the MEM_Set() macro.
-
-2001-10-23  David Turner  <david@freetype.org>
-
-	* src/raster/ftraster.c (Update): Removed to be inlined in ...
-	(Sort): Updated.
-
-2001-10-22  David Turner  <david@freetype.org>
-
-	* builds/unix/ftsystem.c (FT_New_Memory, FT_Done_Memory),
-	builds/vms/ftsystem.c (FT_New_Memory, FT_Done_Memory),
-	builds/amiga/ftsystem.c (FT_New_Memory, FT_Done_Memory),
-	src/base/ftdbgmem.c: Updated the memory debugger and
-	platform-specific implementations of `ftsystem' in order to be able
-	to debug memory allocations on Unix, VMS and Amiga too!
-
-	* src/pshinter/pshalgo2.c (psh2_hint_table_record_mask): Removed
-	some bogus warnings.
-
-	* include/freetype/internal/ftmemory.h, src/base/ftdbgmem.c:
-	Modified the debugging memory manager to report the location (source
-	file name + line number) where leaked memory blocks are allocated in
-	the source file.
-
-	* src/base/ftdbgmem.c: New debugging memory manager.  You must
-	define the FT_DEBUG_MEMORY macro in `ftoption.h' to enable it.  It
-	will record every memory block allocated and report simple errors
-	like memory leaks and double deletes.
-
-	* src/base/Jamfile: Include ftdbgmem.
-	* src/base/rules.mk: Ditto.
-	* src/base/ftbase.c: Include ftdbgmem.c.
-
-	* include/freetype/config/ftoption.h: Added the FT_DEBUG_MEMORY
-	macro definition.
-
-	* src/base/ftsystem.c (FT_New_Memory, FT_Done_Memory): Modified the
-	base component to use the debugging memory manager when the macro
-	FT_DEBUG_MEMORY is defined.
-
-2001-10-21  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffload.c (CFF_Done_Font): Free subfonts array only if
-	we are working with a CID keyed CFF font.  Otherwise, a variable
-	that was never allocated memory might freed.  This is a correction
-	to the previous patch for freeing subfonts.
-
-2001-10-21  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffload.c (CFF_Done_Font): Free the subfonts array to
-	avoid a memory leak.
-
-2001-10-21  David Turner  <david@freetype.org>
-
-	* src/pshinter/pshalgo2.c, src/pshinter/pshalgo1.c,
-	src/pshinter/pshglob.c: Removing compiler warnings in pedantic modes
-	(in multi-object compilation mode, mainly).
-
-2001-10-20  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/type1/t1load.c (parse_encoding): Add a test to make sure
-	that custom encodings (i.e., neither StandardEncoding nor
-	ExpertEncoding) are not loaded twice when the Type 1 font is
-	synthetic.
-
-	* src/type1/t1load.c (parse_font_name, parse_subrs): Added a test
-	for when loading synthetic fonts to make sure that the font name
-	and subrotuines are not loaded twice.  This is to remove a memory
-	leak that occurred because the original memory blocks for these
-	objects were not deallocated when the objects were parsed the
-	second time.
-
-2001-10-19  David Turner  <david@freetype.org>
-
-	* src/smooth/ftgrays.c, src/pshinter/pshglob.h,
-	src/pshinter/pshrec.c, src/pshinter/pshalgo2.c: Getting rid of
-	compiler warnings.
-
-	* src/pshinter/module.mk, src/pshinter/rules.mk: Adding control
-	files to build the PostScript hinter with the `old' build system.
-
-2001-10-19  Jacob Jansen  <joukj@hrem.stm.tudelft.nl>
-
-	* descrip.mms, src/pshinter/descrip.mms: Updates to the VMS build
-	files.
-
-2001-10-18  David Turner  <david@freetype.org>
-
-	* src/psnames/pstables.h, src/tools/glnames.py: Rewrote the
-	`glnames.py' script used to generate the `pstables.h' header file.
-	The old one contained a serious bug that made FreeType return
-	incorrect glyph names for certain glyphs.
-
-	* src/truetype/ttdriver.c (Set_Char_Sizes): Changing computation of
-	pixel size from character size to use rounding.  This is an
-	experiment to see whether this gives values similar to Windows for
-	scaled ascent/descent/etc.
-
-	* src/base/ftcalc.c (FT_Div64by32): Changed the implementation
-	slightly since the original code was mis-compiled on Mac machines
-	using the MPW C compiler.
-
-	* src/base/ftobjs.c (FT_Realloc): When a memory block was grown
-	through FT_Realloc(), the new bytes were not set to 0, which created
-	some strange bugs in the PostScript hinter.
-	(destroy_face): Don't deallocate unconditionally.
-
-	* src/cid/cidgload.c (CID_Compute_Max_Advance, CID_Load_Glyph):
-	Adding support to new PostScript hinter.
-
-	* include/freetype/internal/psglobal.h,
-	include/freetype/internal/pshints.h,
-	include/freetype/config/ftmodule.h, src/pshinter/Jamfile,
-	src/pshinter/pshalgo.h, src/pshinter/pshalgo1.h,
-	src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.h,
-	src/pshinter/pshalgo2.c, src/pshinter/pshglob.h,
-	src/pshinter/pshglob.c, src/pshinter/pshinter.c,
-	src/pshinter/pshmod.c, src/pshinter/pshmod.h, src/pshinter/pshrec.c,
-	src/pshinter/pshrec.h: Adding new PostScript hinter module.
-
-	* include/freetype/internal/ftobjs.h,
-	include/freetype/internal/internal.h,
-	include/freetype/internal/psaux.h,
-	include/freetype/internal/t1types.h, src/psaux/psobjs.c,
-	src/psaux/psobjs.h, src/psaux/t1decode.h, src/psaux/t1decode.c,
-	src/type1/t1driver.c, src/type1/t1gload.c, src/type1/t1objs.c,
-	src/type1/t1objs.h: Updates to use the new PostScript hinter.
-
-	* tests/Jamfile, tests/gview.c: Adding a new glyph hinting
-	viewer/debugger to the source tree.  Note that you will _not_ be
-	able to compile it since it depends on an unavailable graphics
-	library named `Nirvana' to render vector images.
-
-2001-10-17  David Turner  <david@freetype.org>
-
-
-	* Version 2.0.5 released.
-	=========================
-
-
-	* include/freetype/freetype.h, include/internal/ftobjs.h,
-	src/base/ftobjs.c, src/type1/t1driver.c: Adding a new function named
-	'FT_Get_Postscript_Name' to retrieve the PostScript name of a given
-	font.  Should work with all formats except pure CFF/CEF fonts (this
-	will be added soon).
-
-	* src/cid/cidriver (cid_get_postscript_name): New function.
-	(CID_Get_Interface): Handle `postscript_name' interface.
-
-	* src/sfnt/sfdriver.c (get_sfnt_postscript_name): New function.
-	(SFNT_Get_Interface): Handle `postscript_name' interface.
-
-	* src/type1/t1driver.c (t1_get_ps_name): New function.
-	(Get_Interface): Handle `postscript_name' interface.
-
-	* README, docs/CHANGES: Updated for 2.0.5 release.
-
-2001-10-08  David Turner  <david@freetype.org>
-
-	Fixed a bug in `glnames.py' that prevented it from generating
-	correct glyph names tables.  This resulted in the unavailability of
-	certain glyphs like `Cacute', `cacute' and `lslash' in Unicode
-	charmaps, even if these were present in the font (causing problems
-	for Polish users).
-
-	* src/tools/glnames.py (mac_standard_names): Fixed.
-	(t1_standard_strings): Some fixes and renamed to ...
-	(sid_standard_names): This.
-	(t1_expert_encoding): Fixed.
-	(the_adobe_glyph_list): Renamed to ...
-	(adobe_glyph_names): This.
-	(the_adobe_glyphs): Renamed to ...
-	(adobe_glyph_values): This.
-	(dump_mac_indices, dump_glyph_list, dump_unicode_values, main):
-	Updated.
-	* src/psnames/pstables.h: Regenerated.
-	* src/psnames/psmodule.c (PS_Unicode_Value): Fix offset.
-	Fix return value.
-	Use `sid_standard_table' and `ps_names_to_unicode' instead of
-	`t1_standard_glyphs' and `names_to_unicode'.
-	(PS_Macintosh_Name): Use `ps_glyph_names' instead of
-	`standard_glyph_names'.
-	(PS_Standard_Strings): Use `sid_standard_names' instead of
-	`t1_standard_glyphs'.
-
-	* doc/BUGS, doc/TODO: New documents.
-
-2001-10-07  Richard Barber  <rich@solutionuk.com>
-
-	* src/cache/ftlru.c (FT_Lru_Lookup_Node): Fixed a bug that prevented
-	correct LRU behaviour.
-
-2001-10-07  David Turner  <david@freetype.org>
-
-	setjmp() and longjmp() are now used for rollback (i.e. when memory
-	pool overflow occurs).
-
-	Function names are now all uniformly prefixed with `gray_'.
-
-	* src/smooth/ftgrays.c: Include <setjmp.h>.
-	(ErrRaster_MemoryOverflow): New macro.
-	(TArea): New type to store area values in each cell (using `int' was
-	too small on 16-bit systems).  <limits.h> is included to properly
-	get the needed data type.
-	(TCell, TRaster): Use it.
-	(TRaster): New element `jump_buffer'.
-	(gray_compute_cbox): Use `RAS_ARG' as the only parameter and get
-	`outline' from it.
-	(gray_record_cell): Use longjmp().
-	(gray_set_cell): Use gray_record_cell() for error handling.
-	(gray_render_line, gray_render_conic, gray_render_cubic): Simplify.
-	(gray_convert_glyph_inner): New function, using setjmp().
-	(gray_convert_glyph): Use it.
-
-2001-10-07  David Turner  <david@freetype.org>
-
-	Provide a public API to manage multiple size objects for a given
-	FT_Face in the new header file `ftsizes.h'.
-
-	* include/freetype/ftsizes.h: New header file,
-	* include/freetype/internal/ftobjs.h: Use it.
-	Remove declarations of FT_New_Size and FT_Done_Size (moved to
-	ftsizes.h).
-	* include/freetype/config/ftheader.h (FT_SIZES_H): New macro.
-	* src/base/ftobjs.c (FT_Activate_Size): New function.
-	* src/cache/ftcmanag.c: Include ftsizes.h.
-	(ftc_manager_init_size, ftc_manager_flush_size): Use
-	FT_Activate_Size.
-
-2001-09-20  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* builds/amiga/*: Added port to Amiga with the SAS/C compiler.
-
-2001-09-15  Detlef W�rkner  <TetiSoft@apg.lahn.de>
-
-	* src/type1/t1afm.c (T1_Done_AFM): Free `afm'.
-
-2001-09-10  Yao Zhang  <yzhang@sharemedia.com>
-
-	* src/sfnt/ttcmap.c (code_to_index2): Handle code values with
-	hi-byte == 0 correctly.
-
-2001-09-10  Werner Lemberg  <wl@gnu.org>
-
-	* builds/link-std.mk ($(PROJECT_LIBRARY)): Fix typo.
-
-2001-08-30  Martin Muskens  <mmuskens@aurelon.com>
-
-	* src/type1/t1load.c (parse_font_matrix): A new way to compute the
-	units per EM with greater accuracy (important for embedded T1 fonts
-	in PDF documents that were automatically generated from TrueType
-	ones).
-
-	* src/type1/t1load.c (is_alpha): Now supports `+' in font names;
-	this is used in embedded fonts.
-
-	* src/psaux/psobjs.c (PS_Table_Add): Fixed a reallocation bug that
-	generated a dangling pointer reference.
-
-2001-08-30  Anthony Feik  <afeick@hotmail.com>
-
-	* src/type1/t1afm.c (T1_Read_Afm): Now correctly sets the flag
-	FT_FACE_FLAG_KERNING when appropriate for Type1 + AFM files.
-
-2001-08-25  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/ttload.c (TT_Load_CMap): Fix frame length of
-	`cmap_rec_fields'.
-
-	* include/freetype/fterrors.h [!FT_CONFIG_OPTION_USE_MODULE_ERRORS]:
-	Undefine FT_ERR_BASE before defining again.
-
-2001-08-22  Werner Lemberg  <wl@gnu.org>
-
-	* src/truetype/ttinterp.h: Fix prototype of TT_Move_Func.
-
-2001-08-21  Werner Lemberg  <wl@gnu.org>
-
-	* builds/dos/dos-def.mk (NO_OUTPUT): Don't use `&>' but `>'.
-
-2001-08-21  David Turner  <david@freetype.org>
-
-	* include/freetype/config/ftoption.h: Changed the default setting
-	for FT_CONFIG_OPTION_USE_MODULE_ERRORS to undefined, since it breaks
-	source compatibility in a few cases.  Updated the comment to explain
-	that too.
-
-2001-08-17  Martin Muskens  <mmuskens@aurelon.com>
-
-	* src/base/ftcalc.c (FT_MulDiv): Fixed serious typo.
-
-2001-08-12  Werner Lemberg  <wl@gnu.org>
-
-	Updating to OpenType 1.3.
-
-	* include/freetype/internal/tttypes.h (TT_CMap0, TT_CMap2, TT_CMap4,
-	TT_CMap6): Adding field `language'.
-	(TT_CMapTable): Removing field `language'.
-	Type of `length' field changed to FT_ULong.
-	Adding fields for cmaps format 8, 10, and 12.
-	(TT_CMapGroup): New auxiliary structure.
-	(TT_CMap8_12, TT_CMap10): New structures.
-	* include/freetype/tttables.h (TT_HoriHeader, TT_VertHeader):
-	Removed last element of `Reserved' array.
-	* include/freetype/ttnameid.h (TT_PLATFORM_CUSTOM, TT_MS_ID_UCS_4,
-	TT_NAME_ID_CID_FINDFONT_NAME): New macros.
-
-	* src/sfnt/ttcmap.c (TT_CharMap_Load): Updated loading of `language'
-	field to the new structures.
-	Fixed freeing of arrays in case of unsuccessful loads.
-	Added support for loading format 8, 10, and 12 cmaps.
-	(TT_CharMap_Free): Added support for freeing format 8, 10, and 12
-	cmaps.
-	(code_to_index4): Small improvement.
-	(code_to_index6): Ditto.
-	(code_to_index8_12, code_to_index10): New functions.
-	* src/sfnt/ttload.c (TT_Load_Metrics_Header): Updated to new
-	structure.
-	(TT_Load_CMap): Ditto.
-
-	* src/sfnt/sfobjs.c (tt_encodings): Add MS UCS4 table (before MS
-	Unicode).
-
-2001-08-11  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1driver.c (t1_get_name_index): Fix compiler warning.
-
-2001-08-09  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffdrivr.c (get_cff_glyph_name): Renamed to
-	cff_get_glyph_name for consistency.
-
-	(cff_get_glyph_index): Minor documentation change.
-
-	* src/type1/t1driver.c (t1_get_name_index): New function used in
-	Get_Interface as the function returned when the `name_index'
-	function is requested.
-
-	(get_t1_glyph_name): Renamed to t1_get_glyph_name for consistency.
-
-2001-08-08  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffload.c: Removed definitions of cff_isoadobe_charset,
-	cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
-	and cff_expert_encoding arrays to cffload.h.
-
-	* src/cff/cffload.h: Added definitions of cff_isoadobe_charset,
-	cff_expert_charset, cff_expertsubset_charset, cff_standard_encoding,
-	and cff_expert_encoding arrays.
-
-	* src/cff/cffdrivr.c (cff_get_name_index): New function, returned
-	when `cff_get_interface' is called with a request for the
-	`name_index' function.
-
-	(cff_get_interface): Modified so that it returns the function
-	`cff_get_name_index' when the `name_index' function is requested.
-
-	* src/base/ftobjs.c (FT_Get_Name_Index): New function, used to
-	return a glyph index for a given glyph name only if the driver
-	supports glyph names.
-
-	* include/freetype/internal/ftobjs.h (FT_Name_Index_Requester):
-	New function pointer type defintion used in the function
-	FT_Get_Name_Index.
-
-	* include/freetype/freetype.h (FT_Get_Name_Index): Added
-	documentation and prototype.
-
-2001-07-26  Werner Lemberg  <wl@gnu.org>
-
-	* builds/cygwin/*: Removed.  Use the unix stuff instead.
-
-2001-07-26  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
-
-	* builds/vms/ftconfig.h (FT_CALLBACK_DEF): Updated to change dated
-	2001-06-27.
-
-2001-07-17  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/psaux.h (PS_Table): Use FT_Offset for
-	`cursor' and `capacity'.
-	* src/psaux/psobjc.c (reallocate_t1_table): Use FT_Long for second
-	parameter.
-	(PS_Table_Add): Use FT_Offset for `new_size'.
-
-	Add support for version 0.5 maxp tables.
-
-	* src/sfnt/ttload.c (TT_Load_MaxProfile): Implement it.
-	(TT_Load_OS2): Initialize some values.
-
-2001-07-13  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftsynth.c: Include ftcalc.h unconditionally.
-
-2001-07-07  David Turner  <david@freetype.org>
-
-	* src/truetype/ttgload.c, src/truetype/ttinterp.c, src/pcf/pcfread:
-	Removed pedantic compiler warnings when the bytecode interpreter is
-	compiled in.
-
-2001-07-03  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahhint.c (ah_hinter_align_weak_points): Remove
-	unused variable `edges'.
-	(ah_hinter_load): Remove unused variables `old_width' and
-	`new_width'.
-	* src/cid/cidload.c (cid_decrypt): Use `U' for constant (again).
-	* src/psaux/psobjs.c (T1_Decrypt): Ditto.
-	* src/type1/t1parse.c (T1_Get_Private_Dict): Ditto.
-
-2001-06-28  David Turner  <david@freetype.org>
-
-	* include/internal/ftstream.h: Modified the definitions
-	of the FT_GET_XXXX and NEXT_XXXX macros for 16-bit correctness.
-
-2001-06-26  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidload.c, src/cid/cidload.h (cid_decrypt): Use FT_Offset
-	instead of FT_Int as type for `length' parameter.
-	* include/freetype/internal/psaux.h (PSAux_Interface): Updated.
-
-2001-06-27  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* src/psaux/psobjs.c, src/psaux/psobjs.h (T1_Decrypt): Use FT_Offset
-	instead of FT_Int as type for `length' parameter.
-
-
-	* Version 2.0.4 released.
-	=========================
-
-
-2001-06-27  David Turner  <david@freetype.org>
-
-	* builds/unix/ftconfig.in: Changed the definition of the
-	FT_CALLBACK_DEF macro.
-
-	* include/freetype/ftconfig.h, src/*/*.c: Changed the definition and
-	use of the FT_CALLBACK_DEF macro in order to support 16-bit
-	compilers.
-
-	* builds/unix/ftconfig.in: Changed the definition of the
-	FT_CALLBACK_DEF macro.
-
-	* src/sfnt/ttload.c (TT_Load_Kern): The kern table loader now ensures
-	that the kerning table is correctly sorted (some problem fonts don't
-	have a correct kern table).
-
-2001-06-26  Wolfgang Domr�se  <porthos.domroese@harz.de>
-
-	* include/freetype/internal/ftstream.h (FT_GET_OFF3_LE): Fix typo.
-
-2001-06-24  David Turner  <david@freetype.org>
-
-	* src/base/ftcalc.c (ft_div64by32): Fixed the source to work
-	correctly on 16-bit systems.
-
-2001-06-23  Anthony Fok  <fok@debian.org>
-
-	* debian/*: Added Debian package build directory for 2.0.4.
-
-2001-06-22  David Turner  <david@freetype.org>
-
-	* docs/PATENTS: Added patents disclaimer.  This one was missing!
-
-	* docs/CHANGES, docs/todo: Updated for the upcoming 2.0.4 release.
-
-2001-06-20  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ftconfig.h: Add two more `L's to
-	constants.
-	Add missing semicolons.
-
-	* builds/toplevel.mk: Do similar change as for
-	builds/unix/detect.mk.
-
-	* include/freetype/freetype.h (FT_ENC_TAG): New version to make it
-	easier to redefine.
-	* include/freetype/ftimage.h (FT_IMAGE_TAG): Ditto.
-
-	* src/pcf/pcfread.c (pcf_get_encodings): Add cast.
-
-2001-06-19  David Turner  <david@freetype.org>
-
-	* builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
-	Updated the Visual C++ project (for the 2.0.4 release).
-
-	* builds/unix/detect.mk: Added rule for AIX detection (which uses
-	/usr/sbin/init instead of /sbin/init).
-
-	* include/freetype/fterrors.h, src/*/*err*.h: Updated some of the
-	error macros to simplify handling of new error scheme.
-
-2001-06-19  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/fttypes.h (FT_ERROR_MODULE): New macro.
-
-2001-06-19  David Turner  <david@freetype.org>
-
-	Removing _lots_ of compiler warnings when the most pedantic warning
-	levels of Visual C++ and Borland C++ are used.  Too many files to be
-	listed here, but FT2 now compiles without warnings with VC++ and the
-	`/W4' warning level (lint-style).
-
-	* include/freetype/freetype.h (FT_New_Memory_Face): Updated
-	documentation.
-	* include/freetype/fttypes.h (FT_BOOL): New macro.
-	* include/freetype/internal/ftdebug.h: Add #pragma for Visual C++
-	to suppress warning.
-	* include/freetype/internal/ftstream.h (FT_GET_SHORT_{BE,LE},
-	FT_GET_OFF3_{BE,LE}, FT_GET_LONG_{BE,LE}): New macros.
-	(NEXT_*): Use them.
-	* src/autohint/ahglobal.c: Include FT_INTERNAL_DEBUG_H.
-	(FT_New_Memory_Face): Add `const' to function declaration.
-
-2001-06-18  Werner Lemberg  <wl@gnu.org>
-
-	Minor cleanups to remove compiler warnings.
-
-	* include/freetype/cache/ftcmanag.h (FTC_MAX_BYTES_DEFAULT): Use
-	`L' for constant.
-	* include/freetype/config/ftoption.h (FT_RENDER_POOL_SIZE): Ditto.
-	* src/base/ftcalc.c (FT_MulDiv): Use `L' for constant.
-	* src/base/ftglyph.c (FT_Glyph_Get_CBox): Remove `error' variable.
-	* src/base/fttrigon.c (ft_trig_arctan_table): Use `L' for constants.
-	* src/base/ftobjs.c (FT_Done_Size): Fix return value.
-	(FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Get_Kerning): Remove
-	unused `memory' variable.
-	* src/autohint/ahglyph.c (ah_get_orientation): Use `L' for constant.
-	* src/autohint/ahhint.c (ah_hint_edges_3,
-	ah_hinter_align_edge_points): Remove unused `before' and `after'
-	variables.
-	(ah_hinter_align_weak_points): Remove unused `edge_limit' variable.
-	(ah_hinter_load): Remove unused `new_advance', `start_contour',
-	and `metrics' variables.
-	* src/cff/cffload.c (CFF_Load_Encoding): Remove dead code to avoid
-	compiler warning.
-	* src/cff/cffobjs.c (CFF_Init_Face): Remove unused `base_offset'
-	variable.
-	* src/cff/cffgload.c (CFF_Parse_CharStrings): Remove unused
-	`outline' variable.
-	(cff_compute_bias): Use `U' for constant.
-	* src/cid/cidload.c (cid_decrypt): Ditto.
-	* src/psaux/psobjs.c (T1_Decrypt): Ditto.
-	* src/psaux/t1decode.c (T1_Decoder_Parse_CharStrings): Ditto.
-	* src/sfnt/ttload.c (TT_Load_Kern): Remove unused `version'
-	variable.
-	* src/sfnt/ttsbit.c (TT_Load_SBit_Image): Remove unused `top'
-	variable.
-	* src/truetype/ttgload.c (load_truetype_glyph): Remove unused
-	`num_contours' and `ins_offset' variables.
-	(compute_glyph_metrics): Remove unused `Top' and `x_scale'
-	variables.
-	(TT_Load_Glyph): Remove unused `memory' variable.
-	* src/smooth/ftgrays.c (grays_raster_render): Use `L' for constants.
-
-2001-06-18  Werner Lemberg  <wl@gnu.org>
-
-	Make the new error scheme source compatible with older FT versions
-	by introducing another layer.
-
-	* include/freetype/fterrors.h (FT_ERRORDEF_, FT_NOERRORDEF_): New
-	macros.
-	(FT_NOERRORDEF): Removed.
-	* include/*/*err*.h: Use FT_ERRORDEF_ and FT_NOERRORDEF_.
-
-2001-06-16  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/freetype.h (FT_ENC_TAG): New macro.
-	(FT_Encoding_): Use it.
-	* include/freetype/ftimage.h (FT_IMAGE_TAG): Define it
-	conditionally.
-
-2001-06-14  David Turner  <david@freetype.org>
-
-	Modified the TrueType interpreter to let it use the new
-	trigonometric functions provided in `fttrigon.h'.  This gets rid of
-	some old 64-bit computation routines, as well as many warnings when
-	compiling the library with the `long long' 64-bit integer type.
-
-	* include/freetype/config/ftoption.h: Undefine
-	FT_CONFIG_OPTION_OLD_CALCS.
-	* include/freetype/internal/ftcalc.h: Rearrange use of
-	FT_CONFIG_OPTION_OLD_CALCS.
-	* src/base/ftcalc.c: Add declaration of FT_Int64 if
-	FT_CONFIG_OPTION_OLD_CALCS isn't defined.
-	* src/truetype/ttinterp.c: Use FT_TRIGONOMETRY_H.
-	(Norm): Add a special version if FT_CONFIG_OPTION_OLD_CALCS isn't
-	defined.
-	(Current_Ratio, Normalize): Simplify code.
-
-2001-06-11  Mike Owens  <MOwens@amtdatasouth.com>
-
-	* src/base/ftcalc.c (FT_MulDiv, FT_DivFix, FT_Sqrt64): Remove
-	compiler warnings.
-
-2001-06-08  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.in: Renamed to ...
-	* builds/unix/configure.ac: This to make sure that autoconf 2.50 is
-	needed.
-	Run `autoupdate' on it.
-	Increase `version_info' to 7:0:1.
-	* builds/unix/configure: Regenerated.
-
-2001-06-08  David Turner  <david@freetype.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph): Fixed a bug that
-	corrupted transformed glyphs that were auto-hinted (the transform
-	was applied twice).
-
-	Fixed a bug that returned an invalid linear width for composite
-	TrueType glyphs.
-
-	* include/internal/tttypes.h (TT_Loader_): Two new elements `linear'
-	and `linear_def'.
-	* src/truetype/ttgload.c (load_truetype_glyph,
-	compute_glyph_metrics): Use it.
-
-	* include/fttypes.h (FT_ERROR_BASE): New macro.
-	* src/base/ftobjs.c (FT_Open_Face, FT_Render_Glyph_Internal): Use it
-	to make source code work with the new error scheme implemented by
-	Werner.
-	* src/base/ftoutln.c (FT_Outline_Render): Ditto.
-
-2001-06-07  Werner Lemberg  <wl@gnu.org>
-
-	Updating to libtool 1.4.0 and autoconf 2.50.
-
-	* builds/unix/ltconfig: Removed.
-	* builds/unix/ltmain.sh, builds/unix/configure.in,
-	builds/unix/aclocal.m4: Updated.
-	* builds/unix/configure: Regenerated.
-
-2001-06-06  Werner Lemberg  <wl@gnu.org>
-
-	Complete redesign of error codes.  Please check ftmoderr.h for more
-	details.
-
-	* include/freetype/internal/cfferrs.h,
-	include/freetype/internal/tterrors.h,
-	include/freetype/internal/t1errors.h: Removed.  Replaced with files
-	local to the module.  All extra error codes have been moved to
-	`fterrors.h'.
-
-	* src/sfnt/ttpost.h: Move error codes to `fterrors.h'.
-
-	* src/autohint/aherrors.h, src/cache/ftcerror.h, src/cff/cfferrs.h,
-	src/cid/ciderrs.h, src/pcf/pcferror.h, src/psaux/psauxerr.h,
-	src/psnames/psnamerr.h, src/raster/rasterrs.h, src/sfnt/sferrors.h,
-	src/smooth/ftsmerrs.h, src/truetype/tterrors.h,
-	src/type1/t1errors.h, src/winfonts/fnterrs.h: New files defining the
-	error names for the module it belongs to.
-
-	* include/freetype/ftmoderr.h: New file, defining the module error
-	offsets.  Its structure is similar to `fterrors.h'.
-
-	* include/freetype/fterrors.h (FT_NOERRORDEF): New macro.
-	(FT_ERRORDEF): Redefined to use module error offsets.
-	All internal error codes are now public; unused error codes have
-	been removed, some are new.
-
-	* include/freetype/config/ftheader.h (FT_MODULE_ERRORS_H): New
-	macro.
-	* include/freetype/config/ftoption.h
-	(FT_CONFIG_OPTION_USE_MODULE_ERRORS): New macro.
-
-	All other source files have been updated to use the new error codes;
-	some already existing (internal) error codes local to a module have
-	been renamed to give them the same name as in the base module.
-
-	All make files have been updated to include the local error files.
-
-2001-06-06  Werner Lemberg  <wl@gnu.org>
-
-	* src/cid/cidtokens.h: Replaced with...
-	* src/cid/cidtoken.h: This file for 8+3 consistency.
-
-	* src/raster/ftraster.c: Use macros for header file names.
-
-	* src/include/freetype/tttables.h (TT_HoriHeader_, TT_VertHeader_):
-	Fix length of `Reserved' array.  Note that this isn't the real fix
-	since recent OpenType specs have introduced a `CaretOffset' field
-	instead of the first reserved byte.
-
-2001-05-29  Werner Lemberg  <wl@gnu.org>
-
-	* INSTALL: Minor fixes.
-
-
-	* Version 2.0.3 released.
-	=========================
-
-
-2001-05-29  David Turner  <david@freetype.org>
-
-	* INSTALL, docs/CHANGES: Updated.
-
-2001-05-25  David Turner  <david@freetype.org>
-
-	Moved several documents from the top-level to the `docs' directory.
-
-	* src/base/ftcalc.c (FT_DivFix): Small fix to return value.
-
-2001-05-16  David Turner  <david@freetype.org>
-
-	* src/truetype/ttgload.c (load_truetype_glyph): Fixed a bug in the
-	composite loader.  Spotted by Keith Packard.
-	* src/base/ftobjs.c (FT_GlyphLoader_Check_Points,
-	FT_GlyphLoader_Check_Subglyphs): Ditto.
-
-2001-05-14  David Turner  <david@freetype.org>
-
-	Fixed the incorrect blue zone computations, and improved the
-	composite support.  Note that these changes result in improved
-	rendering, while sometimes introducing their own artefacts.  This is
-	probably the last big change to the autohinter before the
-	introduction of a complete replacement.
-
-	* src/autohint/ahglobal.c (sort_values): Fix loop.
-	* src/autohint/ahglyph.c: Removed some obsolete code.
-	(ah_outline_compute_edges): Modify code to set the ah_edge_round
-	flag.
-	(ah_outline_compute_blue_edges): Add code to compute active blue
-	zones.
-	* src/autohint/ahhint.c (ah_hinter_glyph_load): Change load_flags
-	value.
-
-	* src/base/ftcalc.c (FT_DivFix): Fixed a bug in the 64-bit code that
-	created incorrect scale factors!
-	(FT_Round_Fix, FT_CeilFix, FT_FloorFix): Minor improvements.
-
-2001-05-12  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ftbbox.h: FTBBOX_H -> __FTBBOX_H__.
-	* include/freetype/fttrigon.h: __FT_TRIGONOMETRY_H__ ->
-	__FTTRIGON_H__.
-	Include FT_FREETYPE_H.
-	Beautified; added copyright.
-	* src/base/fttrigon.c: Beautified; added copyright.
-
-2001-05-11  David Turner  <david@freetype.org>
-
-	* src/cff/cffparse.c (cff_parse_font_matrix), src/cid/cidload.c
-	(parse_font_matrix), src/type1/t1load.c (parse_font_matrix): Fixed
-	the incorrect EM size computation.
-
-	* include/freetype/fttrigon.h, src/base/fttrigon.c: New files,
-	adding trigonometric functions to the core API (using Cordic
-	algorithms).
-	* src/base/ftbase.c, src/base/Jamfile, src/base/rules.mk: Use them.
-
-	* builds/newline: New file.
-	* builds/top_level.mk, builds/detect.mk: Use it.  This fixes
-	problems with Make on Windows 2000, as well as problems when `make
-	distclean' is invoked on a non-Unix platform when there is no
-	`config.mk' in the current directory.
-
-	* builds/freetype.mk: Fixed a problem with object deletions under
-	Dos/Windows/OS/2 systems.
-
-	Added new directory to hold tools and test programs.
-
-	* docs/docmaker.py, docs/glnames.py: Moved to...
-	* src/tools/docmaker.py, src/tools/glnames.py: This place.
-	* src/tools/cordic.py: New file used to compute arctangent table
-	needed by fttrigon.c.
-	* src/tools/test_bbox.c, src/tools/test_trig.c: New test files.
-
-	* src/tools/docmaker.py: Improved the script to add the current date
-	at the footer of each web page (useful to distinguish between
-	versions).
-
-	* Jamfile: Fixed incorrect HDRMACRO argument.
-
-	* TODO: Removed the cubic arc bbox computation note, since it has been
-	fixed recently.
-	* src/base/ftbbox.c (test_cubic_zero): Renamed to...
-	(test_cubic_extrema): This function.  Use `UL' for unsigned long
-	constants.
-
-	* include/freetype/t1tables.h, include/freetype/config/ftoption.h:
-	Formatting.
-
-2001-05-10  David Turner  <david@freetype.org>
-
-	* src/base/ftobjs.c (FT_Open_Face): Fixed a small memory leak
-	which happened when trying to open 0-size font files!
-
-2001-05-09  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/internal/ftcalc.h: Move declaration of
-	FT_SqrtFixed() out of `#ifdef FT_LONG64'.
-
-2001-05-08  Francesco Zappa Nardelli  <Francesco.Zappa.Nardelli@ens.fr>
-
-	* src/pcfdriver.c (PCF_Load_Glyph): Fixed incorrect bitmap width
-	computation.
-
-2001-05-08  David Turner  <david@freetype.org>
-
-	* docs/docmaker.py: Updated the DocMaker script in order to add
-	command line options (--output,--prefix,--title), fix the erroneous
-	line numbers reported during errors and warnings, and other
-	formatting issues.
-
-	* src/base/ftcalc.c (FT_MulDiv, FT_MulFix, FT_DivFix): Various tiny
-	fixes related to rounding in 64-bits routines and
-	pseudo-`optimizations'.
-
-2001-04-27  David Turner  <david@freetype.org>
-
-	* src/base/ftbbox.c (BBox_Cubic_Check): Fixed the coefficient
-	normalization algorithm (invalid final bit position, and invalid
-	shift computation).
-
-2001-04-26  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/config.guess, builds/unix/config.sub: Updated to
-	latest versions from gnu.org.
-
-	* builds/compiler/gcc-dev.mk: Add `-Wno-long-long' flag.
-
-	* include/freetype/internal/ftcalc.h: Define FT_SqrtFixed()
-	uncoditionally.
-	* src/base/ftbbox.c: Include FT_INTERNAL_CALC_H.
-	Fix compiler warnings.
-	* src/base/ftcalc.c: Fix (potential) compiler warnings.
-
-2001-04-26  David Turner  <david@freetype.org>
-
-	* src/base/ftcalc.c (FT_SqrtFixed): Corrected/optimized the 32-bit
-	fixed-point square root computation.  It is now used even with
-	64-bits integers, as it is _much_ faster than calling FT_Sqrt64 :-)
-
-	* src/base/ftbbox.c: Removed invalid `#include FT_BEZIER_H' line.
-
-2001-04-25  David Turner  <david@freetype.org>
-
-	* src/base/ftbbox.c (BBox_Cubic_Check): Rewrote function to use
-	direct computations with 16.16 values instead of sub-divisions.  It
-	is now slower, but proves a point :-)
-
-	* src/raster/ftraster.c, src/smooth/ftgrays.c, src/base/ftbbox.c:
-	Fixed the bezier stack depths.
-
-	* src/base/ftcalc.c (FT_MulFix): Minor rounding fix.
-
-	* builds/beos: Added BeOS-specific files to the old build system
-	(no changes were necessary to support BeOS in the Jamfile though).
-
-2001-04-20  David Turner  <david@freetype.org>
-
-	* ftconfig.h, ftoption.h: Updated `ftconfig.h' to detect 64-bit int
-	types on platforms where Autoconf is not available).  Also removed
-	FTCALC_USE_LONG_LONG and replaced it with
-	FT_CONFIG_OPTION_FORCE_INT64.
-
-	* builds/win32/freetype.dsp: Updated the Visual C++ project file.
-	Doesn't create a DLL yet.
-
-	* cffgload.c: Removed a compilation warning.
-
-2001-04-10  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* t1load.c (parse_charstrings): Changed code for placing .notdef
-	glyph into slot 0 so that we no longer have a memory access
-	violation.
-
-	* t1load.h: In structure T1_Loader, added swap_table (of type
-	PS_Table) to facilitate placing the .notdef glyph into slot 0.
-
-2001-04-10  Francesco Zappa Nardelli  <francesco.zappa.nardelli@ens.fr>
-
-	* src/pcf/pcfdriver.c (PCF_Get_Char_Index): Fix return value.
-
-2001-04-09  Laurence Withers  <lwithers@lwithers.demon.co.uk>
-
-	* builds/dos/detect.mk: Add support for bash.
-
-2001-04-05  Werner Lemberg  <wl@gnu.org>
-
-	* builds/os2/*.mk: These files have been forgotten to update to
-	the structure of similar makefiles.
-	* builds/dos/*.mk: Ditto.
-	* builds/ansi/*.mk: Ditto.
-
-	* builds/win32/win32-def.mk (BUILD): Fix typo.
-
-	* builds/compiler/*.mk (CLEAN_LIBRARY): Don't use NO_OUTPUT.
-	This is already used in the link_*.mk files.
-
-2001-04-03  Werner Lemberg  <wl@gnu.org>
-
-	* src/*/Jamfile: Slight changes	to make files more cryptic.
-
-2001-04-03  Werner Lemberg  <wl@gnu.org>
-
-	* Jamfile, src/Jamfile, src/*/Jamfile: Formatted.  Slight changes
-	to give files identical structure.
-
-2001-04-02  Werner Lemberg  <wl@gnu.org>
-
-	* CHANGES: Reformatted, minor fixes.
-	* TODO: Updated.
-	* README: Formatting.
-	* include/freetype/freetype.h: Formatting.
-
-	* Jamfile: Fix typo.
-
-	* src/cff/cffparse.c: Move error code #defines to...
-	* include/freetype/internal/cfferrs.h: This file.
-	* src/cff/cffdrivr.c, src/cff/cffobjs.c, src/cff/cffload.c: Replaced
-	`FT_Err_*' with `CFF_Err_*'.
-	* src/cid/cidparse.c: Replaced `FT_Err_*' with `T1_Err_*'.
-	* src/psaux/psobjs.c, src/psaux/t1decode.c: Ditto.
-	* src/sfnt/sfobcs.c, src/sfnt/ttload.c: Replaced `FT_Err_*' with
-	`TT_Err_*'.
-	* src/truetype/ttgload.c, src/truetype/ttobjs.c: Ditto.
-	* src/type1/t1gload.c, src/type1/t1load.c, src/type1/t1objs.c,
-	src/type1/t1parse.c: Replaced `FT_Err_*' with `T1_Err_*'.
-
-	* include/freetype/internal/cfferrs.h: Add
-	`CFF_Err_Unknown_File_Format'.
-	* include/freetype/internal/t1errors.h: Add
-	`T1_Err_Unknown_File_Format'.
-	* include/freetype/internal/tterrors.h: Add
-	`TT_Err_Unknown_File_Format'.
-
-	* src/cff/cffload.h: Add `cff_*_encoding' and `cff_*_charset'
-	references.
-	* src/psaux/psobjs.c: Include `FT_INTERNAL_TYPE1_ERRORS_H'.
-
-	* src/cff/cffobjs.c (CFF_Init_Face, CFF_Done_Face): Use
-	FT_LOCAL_DEF.
-	* src/cid/cidobjs.c (CID_Done_Driver): Ditto.
-	* src/trutype/ttobjs.c (TT_Init_Face, TT_Done_Face, TT_Init_Size):
-	Ditto.
-	* src/type1/t1objs.c (T1_Done_Driver): Ditto.
-	* src/pcf/pcfdriver.c (PCF_Done_Face): Ditto.
-	* src/pcf/pcf.h: Use FT_LOCAL for `PCF_Done_Face'.
-
-2001-04-02  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/sfnt/ttload.c (TT_Load_Metrics): Fix an improper pointer
-	dereference.  Submitted by Herbert Duerr <duerr@sun.com>.
-
-2001-03-26  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* include/freetype/config/ftconfig.h: Changed hexadecimal
-	constants to use suffix U to avoid problems with HP-UX's c89
-	compiler.  Submitted by G.W. Lucas <glucas@sonalysts.com>.
-
-2001-03-24  David Turner  <david.turner@freetype.org>
-
-	* Jamrules, Jamfile, src/Jamfile, src/*/Jamfile: Adding jamfiles to
-	the source tree.  See www.freetype.org/jam/index.html for details.
-
-
-	* Version 2.0.2 released.
-	=========================
-
-
-2001-03-20  Werner Lemberg  <wl@gnu.org>
-
-	* builds/win32/detekt.mk: Fix .PHONY target for Intel compiler.
-
-2001-03-20  David Turner  <david.turner@freetype.org>
-
-	* include/freetype/config/ftheader.h, include/freetype/ftsnames.h:
-	Renamed `ftnames.h' to `ftsnames.h', and FT_NAMES_H to
-	FT_SFNT_NAMES_H.
-
-	* docs/docmaker.py: Added generation of INDEX link in table of
-	contents.
-
-	* INSTALL, docs/BUILD: Updated documentation to indicate that the
-	compilation process has changed slightly (no more `src' required in
-	the include path).
-
-	* builds/*/*-def.mk: Changed the objects directory from `obj' to
-	`objs'.
-
-	* include/freetype/config/ftheader.h: Removed obsolete macros like
-	FT_SOURCE_FILE, etc. and added cache-specific macro definitions that
-	were previously defined in <freetype/ftcache.h>.  Added comments to
-	be included in a new API Reference section.
-
-	* src/*/*: Removed the use of FT_SOURCE_FILE, etc.  Now, each
-	component needs to add its own directory to the include path at
-	compile time.  Modified all `rules.mk' and `descrip.mms'
-	accordingly.
-
-2001-03-20  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/configure.in: Add $ft_version.
-	* builds/unix/freetype-config.in: Use it.
-	* builds/unix/configure: Updated.
-
-2001-03-19  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/type1/t1load.c (parse_font_matrix): Assign the units per em
-	value an unsigned short value, first by shifting right 16 bits,
-	then by casting the results to FT_UShort.
-
-	* src/cff/cffparse.c (cff_parse_font_bbox): Assign the units per em
-	value an unsigned short value, first by shifting right 16 bits,
-	then by casting the results to FT_UShort.
-
-2001-03-17  David Turner  <david.turner@freetype.org>
-
-	* src/cid/cidobjs.c, src/cid/cidload.c, src/pcf/pcfread.c,
-	src/type1/t1load.c, src/type1/t1objs.c: Added a few casts to remove
-	compiler warnings in pedantic modes.
-
-	* include/config/ft2build.h, include/config/ftheader.h: The file
-	`ft2build.h' was renamed to `ftheader.h' to avoid conflicts with the
-	top-level <ft2build.h>.
-
-	* include/config/ftheader.h: Added new section describing the #include
-	macros.
-
-2001-03-17  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffparse.c (cff_parse_font_bbox): Obtain rounded FT_Fixed
-	values for the bounding box numbers.
-
-	* src/cff/cffobjs.c (CFF_Init_Face): When processing a CFF/CEF font,
-	set `root->ascender' (`root->descender') to the integer part of
-	`root->bbox.yMax' (`root->bbox.yMin', respectively).
-
-2001-03-16  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffdrivr.c (get_cff_glyph_name):  New function.  Used in
-	cff_get_interface to facilitate getting a glyph name for glyph index
-	via FT_Get_Glyph_Name().
-
-	(cff_get_interface): Added support for getting a glyph name via the
-	`glyph_name' module interface.  Uses the new function
-	get_cff_glyph_name().
-	Submitted by Sander van der Wal <svdwal@xs4all.nl>.
-
-	* src/cff/cffobjs.c (CFF_Init_Face): Logical or the face flags with
-	FT_FACE_FLAG_GLYPH_NAMES only if FT_CONFIG_OPTION_NO_GLYPH_NAMES is
-	not defined.  This is to add support for getting a glyph name from a
-	glyph index via FT_Get_Glyph_Name().
-	Submitted by Sander van der Wal <svdwal@xs4all.nl>.
-
-	* src/cff/cffgload.c (CFF_Parse_CharStrings): Added support for
-	deprecated operator `dotsection'.
-	Submitted by Sander van der Wal <svdwal@xs4all.nl>.
-
-2001-03-12  Werner Lemberg  <wl@gnu.org>
-
-	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Fix error
-	messages.
-
-	* INSTALL, docs/BUILD: We need GNU make 3.78.1 or newer.
-
-2001-03-12  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* include/freetype/internal/psaux.h:  Changed the lenIV member of
-	the T1_Decoder_ struct to be an FT_Int instead of an FT_UInt.
-
-	* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings):  Adjust
-	for lenIV seed bytes at the start of a decrypted subroutine.
-
-	* src/cid/cidload.c (cid_read_subrs): Decrypt subroutines only
-	if lenIV >= 0.
-
-	* src/cid/cidgload.c (cid_load_glyph): Decrypt charstrings only
-	if lenIV >= 0.
-
-2001-03-11  Werner Lemberg  <wl@gnu.org>
-
-	* TODO: Updated.
-
-	* src/pcf/pcfread.c: Put READ_Fields() always in a conditional to
-	avoid compiler warnings.
-
-2001-03-10  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* TODO: New file.
-
-	* include/freetype/freetype.h: Added prototypes and notes for
-	three new functions: FT_RoundFix, FT_CeilFix, and FT_FloorFix.
-	* src/base/ftcalc.c (FT_RoundFix, FT_CeilFix, FT_FloorFix): Added
-	implementation code.
-
-	* src/cid/cidobjs.c (CID_Init_Face): Use calculated units_per_EM,
-	and if that is not available, default to 1000 units per EM.  Changed
-	assignment code for ascender and descender values.
-	* src/cid/cidload.c (parse_font_matrix): Added units_per_EM
-	processing.
-	(parse_font_bbox): Changed to use FT_Fixed number handling.
-
-	* src/type1/t1objs.c (T1_Init_Face): Changed the assignment code
-	for ascender, descender, and max_advance_width.
-	* src/type1/t1load.c (parse_font_bbox): Changed to use FT_Fixed
-	number handling.
-
-2001-03-10  Henrik Grubbstr�m  <grubba@roxen.com>
-
-	* src/*/*.c: Added many casts to make code more 64bit-safe.
-
-2001-03-07  Werner Lemberg  <wl@gnu.org>
-
-	* INSTALL, docs/BUILD: We need GNU make 3.78 or newer.
-
-2001-03-07  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/type1/t1objs.c (T1_Init_Face): Minor correction: We must wait
-	until parse_font_bbox is changed before we use logical shift rights
-	in the assignments of `root->ascender', `root->descender', and
-	`root->max_advance_width'.
-
-	(T1_Done_Face): Free `char_name' table to avoid a memory leak.
-	Submitted by Sander van der Wal <svdwal@xs4all.nl>.
-
-2001-03-05  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffgload.c (CFF_Load_Glyph): Set glyph control data to the
-	the Type 2 glyph charstring (used by conversion programs).
-	Submitted by Ha Shao <hashao@chinese.com>.
-
-2001-03-04  Antoine Leca  <Antoine.Leca@renault.fr>
-
-	* include/freetype/ttnameid.h: Correct a stupid typo which prevented
-	correct compilation (TT_MS_LANGID_TIGRIGNA_ETHIOPIA appeared twice).
-
-2001-03-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/autohint/ahtypes.h (AH_Hinter): Add elements
-	`disable_horz_edges', `disable_vert_edges'.
-	* src/autohint/ahhint.c	(ah_hint_edges_3, ah_hinter_hint_edges): Use
-	them (and remove static variables with the same names).
-	* src/pcf/pcfutil.c (BitOrderInvert): Add `const'.
-	* docs/glnames.py: Updated to latest pstables.h changes.
-
-	* builds/unix/detect.mk: Add test for Hurd.
-	* builds/hurd/detect.mk: Removed.
-
-2001-03-04  Sander van der Wal  <svdwal@xs4all.nl>
-
-	* src/psnames/pstables.h: Add more `const'.
-	* src/pcf/pcfutil.c: Ditto.
-
-2001-03-04  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixing typo
-	(FT_Glyph_Done -> FT_Done_Glyph).
-
-2001-03-01  Antoine Leca  <Antoine.Leca@renault.fr>
-
-	* include/freetype/ttnameid.h: Added some new Microsoft language
-	codes and LCIDs as found in Office Xp.
-
-2001-02-28  David Turner  <david.turner@freetype.org>
-
-	* builds/hurd/detect.mk: New file.  Added support to detect the GNU
-	Hurd operating system as Unix-like.  Fix submitted by Anthony Fok
-	<foka@debian.org>.
-
-	* src/type1/t1gload.c (T1_Load_Glyph): Set glyph control data to the
-	the Type 1 glyph charstring (used by conversion programs).
-	Submitted by Ha Shao <hashao@chinese.com>.
-
-2001-02-22  David Turner  <david.turner@freetype.org>
-
-	* src/base/ftgrays.c (grays_sweep): The function didn't exit
-	immediately if `num_cells' was 0 as it should.  Thanks to Boris for
-	finding this out.
-
-	* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fixed memory leak when
-	bitmap rendering fails (thanks to Graham Asher).
-
-2001-02-13  Werner Lemberg  <wl@gnu.org>
-
-	* docs/docmaker.py (DocSection::add_element): Use
-	`self.print_error()'.
-
-	* builds/unix/config.{guess,sub}: Updated (from ftp.gnu.org).
-
-2001-02-13  David Turner  <david.turner@freetype.org>
-
-	* docs/docmaker.py, include/freetype/*.h: Updated the DocMaker
-	script to support chapters and section block ordering.  Updated the
-	public header files accordingly.
-
-	* src/base/ftglyph.c (FT_Glyph_Copy): Advance width and glyph format
-	were not correctly copied.
-
-2001-02-08  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/cffparse.c (cff_parse_font_matrix): Removed an
-	unnecessary fprintf( stderr, ... ).
-
-2001-02-07  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/type1/t1objs.c (T1_Init_Face): Added code to get the
-	units_per_EM from the value assigned in parse_font_matrix, if
-	available.  Default to 1000 if not available.
-
-	* src/cff/cffparse.c (cff_parse_font_matrix): Added logic to get
-	the units_per_EM from the FontMatrix.
-
-	(cff_parse_fixed_thousand): New function.  Gets a real number from
-	the CFF font, but multiplies by 1000 (this is to avoid rounding
-	errors when placing this real number into a 16.16 fixed number).
-
-	(cff_parse_real): Added code so that the integer part is moved
-	into the high sixteen bits of the 16.16 fixed number.
-
-	* src/cff/cffobjs.c (CFF_Init_Face): Added logic to get the units
-	per EM from the CFF dictionary, if available.
-
-	* include/freetype/internal/cfftypes.h: In struct CFF_Font_Dict_,
-	added a units_per_em member to facilitate passing of units_per_em
-	from function cff_parse_font_matrix.
-
-	* src/type1/t1load.c (is_alpha): Make `-' a legal alphanumeric
-	character.  This is so that font names with `-' are fully parsed,
-	etc...
-
-2001-02-02  Werner Lemberg  <wl@gnu.org>
-
-	* src/psaux/psobjs.c (shift_elements): Remove if clause (which is
-	obsolete now).
-
-	(reallocate_t1_table, PS_Table_Done): Replace REALLOC() with ALLOC()
-	+ MEM_Copy() to avoid a memory bug.
-
-2001-02-01  David Turner  <david.turner@freetype.org>
-
-	* docs/docmaker.py: Improved the index sorting routine to place
-	capital letters before small ones.  Added the `<order>' marker to
-	section blocks in order to give the order of blocks.
-
-2001-01-30  Antoine Leca  <Antoine.Leca@renault.fr>
-
-	* include/freetype/ttnameid.h: Latest updates to Microsoft language
-	ID codes.
-
-2001-01-24  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/t1load.c (parse_font_matrix): Added heuristic to get
-	units_per_EM from the font matrix.
-
-	(parse_dict): Deleted test to see whether the FontInfo keyword has
-	been seen.  Deletion of this test allows fonts without FontInfo
-	dictionaries to be parsed by the Type 1 driver.
-
-	(T1_Open_Face): Deleted empty subroutines array test to make sure
-	fonts with no subroutines still are parsed.
-
-2001-01-17  Francesco Zappa Nardelli  <francesco.zappa.nardelli@ens.fr>
-
-	* src/pcfread.c (pcf_get_properties, pcf_get_metrics,
-	pcf_get_bitmaps): Fix compiler errors.
-
-2001-01-11  David Turner  <david.turner@freetype.org>
-
-	* src/pcf/pcfread.c: Removed some compilation warnings related
-	to comparison of signed vs. unsigned integers.
-
-	* include/freetype/internal/ftdebug.h: Changed the debug trace
-	constants from trace_t2xxxx to trace_cffxxxx to be able to compile
-	the CFF driver in debug mode.
-
-2001-01-11  Matthew Crosby  <mcrosby@marthon.org>
-
-	* builds/unix/freetype-config.in: Fix problems with separate
-	--prefix and --exec-prefix.
-
-2001-01-11  David Turner  <david.turner@freetype.org>
-
-	* docs/docmaker.py: Added cross-references generation as well as
-	more robust handling of pathname wildcard matching.
-
-2001-01-10  Werner Lemberg  <wl@gnu.org>
-
-	* docs/docmaker.py: Minor improvements to reduce unwanted spaces
-	and empty lines in output.
-
-2001-01-09  David Turner  <david.turner@freetype.org>
-
-	* docs/docmaker.py: Improved script to generate table of contents
-	and index pages.  It also supports wildcards on non Unix systems.
-
-	* include/freetype/*.h, include/freetype/cache/*.h: Updated comments
-	to include section definitions/delimitations for the API Reference
-	generator.
-
-	* include/freetype/freetype.h: Moved declaration of
-	`FT_Generic_Finalizer' and the `FT_Generic' structure to...
-	* include/freetype/fttypes.h: here.
-
-2001-01-04  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/ttnameid.h: Updated Unicode code range comments.
-
-2001-01-03  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/rules.mk: Use cffgload.{c,h} instead of t2gload.{c,h}.
-
-	* include/freetype/internal/internal.h: Changed to use cfftypes.h
-	(cfferrs.h) instead of t2types.h (t2errors.h, respectively).
-
-	* include/freetype/internal/cfftypes.h: Merged in changes from
-	t2types.h and made this the canonical `types' header for the CFF
-	driver.
-
-	* include/freetype/internal/t2types.h: This file was merged with
-	cfftypes.h and is no longer necessary.
-
-	* include/freetype/internal/t2errors.h:	Renamed to cfferrs.h.
-
-	* src/cff/cffobjs.c, src/cff/cffobjs.h, src/cff/cffparse.c,
-	src/cff/cffdrivr.c, src/cff/cff.c, src/cff/cffload.c,
-	src/cff/cffgload.c, src/cff/cffgload.h: Changed to use
-	cffgload.{c,h} instead of t2gload.{c,h}.  All occurrences of t2_
-	(T2_) were replaced with cff_ (CFF_, respectively).
-
-	* src/cff/t2gload.h: Renamed cffgload.h.
-
-	* src/cff/t2gload.c: Renamed cffgload.c
-
-2000-01-02  Jouk Jansen  <joukj@hrem.stm.tudelft.nl>
-
-	* builds/vms: Support files for VMS architecture added.
-	* descrip.mms, src/*/descrip.mms: VMS makefiles added.
-	* README.VMS: New file.
-
-2000-01-01  Werner Lemberg  <wl@gnu.org>
-
-	* LICENSE.TXT: Added info about PCF driver license.
-
-2001-01-01  Francesco Zappa Nardelli  <francesco.zappa.nardelli@ens.fr>
-
-	* src/pcf/*: New driver module for PCF font format (used in
-	X Window System).
-	* include/freetype/internal/ftdebug.h (FT_Trace): Added values for
-	PCF driver.
-	* include/freetype/internal/pcftypes.h: New file.
-	* include/freetype/config/ftmodule.h: Added PCF driver module.
-
-2001-01-01  Werner Lemberg  <wl@gnu.org>
-
-	* src/winfonts/winfnt.c (FNT_Get_Char_Index): Fix parameter type.
-
-2000-12-31  Werner Lemberg  <wl@gnu.org>
-
-	* builds/modules.mk (clean_module_list): Fixed deletion of module
-	file in case `make make_module_list' is called before `make setup'.
-
-2000-12-30  Werner Lemberg  <wl@gnu.org>
-
-	* src/cff/cffload.c (CFF_Load_Charset): Improved error messages.
-	(CFF_Load_Charset, CFF_Load_Encoding): Remove unnecessary variable
-	definition.
-
-2000-12-30  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* include/freetype/internal/t2types.h,
-	include/freetype/internal/cfftypes.h: Changed the structures for
-	CFF_Encoding and CFF_Encoding for the new implementations of the
-	charset and encoding parsers in the CFF driver.
-
-	* src/cff/t2gload.c (t2_lookup_glyph_by_stdcharcode,
-	t2_operator_seac): Added these functions for use in implementing the
-	seac emulation provided by the Type 2 endchar operator.
-	(T2_Parse_CharStrings): Added seac emulation for the endchar
-	operator.
-
-	* src/cff/cffload.c (CFF_Load_Encoding, CFF_Load_Charset,
-	CFF_Done_Encoding, CFF_Done_Charset): Extended to load and parse the
-	charset/encoding tables, and free the memory used by them when the
-	CFF driver is finished with them.  Added tables
-
-	    cff_isoadobe_charset
-	    cff_expert_charset
-	    cff_expertsubset_charset
-	    cff_standard_encoding
-	    cff_expert_encoding
-
-	so that the encoding/charset parser can handle predefined encodings and
-	charsets.
-
-2000-12-24  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/t2gload.c (T2_Load_Glyph): Added code	so that the font
-	transform is applied.
-
-	* src/cff/cffparse.c (cff_parse_font_matrix): Added code so that
-	the font matrix numbers	are scaled by 1/(matrix->yy).  Also, the
-	offset vector now contains integer values instead of 16.16 fixed
-	numbers.
-
-2000-12-22  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load_glyph):
-	Removed unnecessary comments and commented-out code.
-
-2000-12-21  David Turner  <david.turner@freetype.org>
-
-	* src/cid/cidafm.c, src/cid/cidafm.h: removed un-needed files,
-	we'll work on supporting CID AFM files later I guess :-)
-
-2000-12-21  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
-	Changed so that fonts with a non-standard FontMatrix render
-	correctly.  Previously, the first glyph rendered from such a
-	font did not have the tranformation matrix applied.
-
-2000-12-17  Werner Lemberg  <wl@gnu.org>
-
-	* *.mk: Added lots of `.PHONY' targets.
-
-2000-12-17  Karsten Fleischer  <kfleisc1@ford.com>
-
-	* *.mk: Implemented `platform' target to disable auto-detection.
-
-2000-12-14  Werner Lemberg  <wl@gnu.org>
-
-	* docs/design/modules.html: Removed.  Covered by design-*.html.
-
-	* INSTALL: Added info about makepp.
-
-2000-12-14  David Turner  <david.turner@freetype.org>
-
-	Added support for clipped direct rendering in the smooth renderer.
-	This should not break binary compatibility of existing applications.
-
-	* include/freetype/fttypes.h, include/freetype/ftimage.h: Move
-	definition of the FT_BBox structure from the former to the latter.
-	* include/freetype/ftimage.h: Add `ft_raster_flag_clip' value to
-	FT_Raster_Flag enumeration.
-	Add `clip_box' element to FT_Raster_Params structure.
-	* src/smooth/ftgrays.c (grays_convert_glyph): Implement it.
-
-	* INSTALL: Updated installation instructions on Win32, listing the
-	new `make setup list' target used to list supported
-	compilers/targets.
-
-	* src/raster/ftraster.c (ft_black_render): Test for unsupported
-	direct rendering before testing arguments.
-
-2000-12-13  David Turner  <david.turner@freetype.org>
-
-	* include/freetype/config/ft2build.h,
-	include/freetype/internal/internal.h: Fixed header inclusion macros
-	to use direct definitions.  This is the only way to do these things
-	in a portable way :-(  The rest of the code should follow shortly
-	though everything compiles now.
-
-	* builds/compiler/intelc.mk, builds/compiler/watcom.mk: New files.
-
-	* builds/win32/detect.mk: Added support for the Intel C/C++
-	compiler, as well as _preliminary_ (read: doesn't work!) support for
-	Watcom.  Also added a new setup target.  Type `make setup list' for
-	a list of supported command-line compilers on Win32.
-
-	* src/base/ftdebug.c: Added dummy symbol to avoid empty file if
-	conditionals are off.
-
-2000-12-13  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/ftsystem.c: Fixed typos.  Fixed inclusion of wrong
-	ftconfig.h file.
-
-2000-12-12  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ft2build.h (FT2_ROOT, FT2_CONFIG_ROOT):
-	Removed.  ANSI C doesn't (explicitly) allow macro expansion in
-	arguments using `##'.
-	(FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE): Use directory
-	names directly.  Make them configurable.  Use `##' to strip leading
-	and trailing spaces from arguments.
-
-	* builds/unix/ft2unix.h: Adapted.
-
-	* src/base/ftsystem.c (ft_alloc, ft_realloc, ft_free, ft_io_stream,
-	ft_close_stream): Use FT_CALLBACK_DEF.
-
-	* builds/unix/ftsystem.c: Use new header scheme.
-	(FT_Done_Memory): Use free() from FT_Memory structure.
-
-	* src/base/ftinit.c, src/base/ftmac.c: Header scheme fixes.
-
-2000-12-11  Werner Lemberg  <wl@gnu.org>
-
-	* include/freetype/config/ft2build.h (FT2_CONFIG_ROOT,
-	FT2_PUBLIC_FILE, FT2_CONFIG_FILE, FT2_INTERNAL_FILE,
-	FT_SOURCE_FILE): Use `##' operator to be really ANSI C compliant.
-
-2000-12-09  Werner Lemberg  <wl@gnu.org>
-
-	* builds/unix/detect.mk: Remove unused USE_CFLAGS variable.
-
-2000-12-08  Werner Lemberg  <wl@gnu.org>
-
-	* */*.h: Changed body inclusion macro names to start and end with
-	`__' (those which haven't converted yet).  Fixed minor conversion
-	issues.
-
-	* src/winfonts/winfnt.c: Updated to new header inclusion scheme.
-
-	* src/truetype/ttinterp.c: Remove unused CALC_Length() macro.
-
-2000-12-07  David Turner  <david.turner@freetype.org>
-
-	* */*.[ch]: Changed source files to adhere to the new
-	header inclusion scheme.  Not completely tested but works for now
-	here.
-
-	* src/cff/t2driver.c: Renamed and updated to...
-	* src/cff/cffdrivr.c: New file.
-	* src/cff/t2driver.h: Renamed and updated to...
-	* src/cff/cffdrivr.h: New file.
-	* src/cff/t2load.c: Renamed and updated to...
-	* src/cff/cffload.c: New file.
-	* src/cff/t2load.h: Renamed and updated to...
-	* src/cff/cffload.h: New file.
-	* src/cff/t2objs.c: Renamed and updated to...
-	* src/cff/cffobjs.c: New file.
-	* src/cff/t2objs.h: Renamed and updated to...
-	* src/cff/cffobjs.h: New file.
-	* src/cff/t2parse.c: Renamed and updated to...
-	* src/cff/cffparse.c: New file.
-	* src/cff/t2parse.h: Renamed and updated to...
-	* src/cff/cffparse.h: New file.
-	* src/cff/t2tokens.h: Renamed and updated to...
-	* src/cff/cfftoken.h: New file.
-
-	* src/cff/cff.c, src/cff/rules.mk: Updated.
-
-2000-12-06  David Turner  <david.turner@freetype.org>
-
-	* src/cache/ftlru.c (FT_Lru_Done): Fixed memory leak.
-
-2000-12-06  Werner Lemberg  <wl@gnu.org>
-
-	* builds/module.mk: Replaced `xxx #' with `xxx$(space).
-	* builds/os2/detekt.mk, builds/win32/detekt.mk: Moved comment to
-	avoid trailing spaces in variable.
-	* builds/freetype.mk: Use $(D) instead of $D to make statement more
-	readable.
-
-	* docs/docmaker.py: Formatting.
-
-2000-12-05  David Turner  <david.turner@freetype.org>
-
-	* src/psaux/psauxmod.c: Fixed a broken inclusion of component
-	header files (an FT_FLAT_COMPILE test was missing).
-
-	* src/cache/ftcmanag.c (FTC_Manager_Done): Fixed a bug that caused
-	an occasional crash when the function was called (due to a dangling
-	pointer).
-
-	* src/base/ftsystem.c (FT_Done_Memory): Fixed an obvious bug:
-	The ANSI `free()' function was called instead of `memory->free()'.
-
-	* docs/docmaker.py: Added section filtering, multi-page generation
-	(index page generation is still missing though).
-
-2000-12-04  David Turner  <david.turner@freetype.org>
-
-	* builds/unix/install.mk, builds/unix/ft2unix.h: The file `ft2unix.h'
-	is now installed as <ft2build.h> for Unix systems.  Note that we
-	still use the `freetype2/freetype' installation path for now.
-
-	* */*.[ch]: Now using <ft2build.h> as the default build and setup
-	configuration file in all public headers.  Internal source files
-	still need some changes though.
-
-	* builds/devel/ft2build.h, builds/devel/ftoption.h: Created a new
-	directory to hold all development options for both the Unix and
-	Win32 developer builds.
-
-	* builds/win32/detect.mk, builds/win32/w32-bccd.mk,
-	builds/win32/w32-dev.mk: Changed the developer build targets to
-	`devel-gcc' and `devel-bcc' in order to be able to develop with the
-	Borland C++ compiler.
-
-2000-12-01  David Turner  <david.turner@freetype.org>
-
-
-	* Version 2.0.1 released.
-	=========================
-
-
-	* builds/unix/configure.in, builds/unix/configure,
-	builds/cygwin/configure.in, builds/cygwin/configure: Setting
-	`version_info' to 6:1:0 for the 2.0.1 release.
-
-	* CHANGES: Added a summary of changes between 2.0.1 and 2.0.
-
-	* builds/unix/ftconfig.in, builds/cygwin/ftconfig.in: Changes
-	to allow compilation under Unix with the Unix-specific config
-	files.
-
-2000-12-01  Werner Lemberg  <wl@gnu.org>
-
-	* INSTALL: Revised.
-	* builds/compiler/bcc-dev.mk, builds/compiler/visualage.mk,
-	builds/compiler/bcc.mk, builds/win32/w32-bcc.mk,
-	builds/win32/w32-bccd.mk: Revised.
-	* include/freetype/config/ftbuild.h,
-	include/freetype/internal/internal.h: Revised.
-	* include/freetype/ftimage.h: Updated to new header inclusion scheme.
-
-2000-11-30  Werner Lemberg  <wl@gnu.org>
-
-	* builds/toplevel.mk (.PHONY): Adding `distclean'.
-	* builds/unix/detect.mk (.PHONY): Adding `devel', `unix', `lcc',
-	`setup'.
-
-2000-11-30  David Turner  <david.turner@freetype.ogr>
-
-	* INSTALL: Slightly updated the quick starter documentation to
-	include IDE compilation, prevent against BSD Make, and specify `make
-	setup' instead of a single `make' for build configuration.
-
-	* include/config/ftbuild.h, include/internal/internal.h: Added new
-	configuration files used to determine the location of all public,
-	configuration, and internal header files for FreeType 2.  Modified
-	all headers under `include/freetype' to reflect this change.  Note
-	that we still need to change the library source files themselves
-	though.
-
-	* builds/compiler/bcc.mk, builds/compiler/bcc-dev.mk,
-	builds/win32/w32-bcc.mk, builds/win32/w32-bccd.mk,
-	builds/win32/detect.mk: Added new files to support compilation with
-	the free Borland C++ command-line compiler.  Modified the detection
-	rules to recognize the new `bcc32' target in `make setup bcc32'.
-
-	* src/sfnt/ttcmap.c, src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
-	src/truetype/ttobjs.c, src/truetype/ttgload.c,
-	src/truetype/ttinterp.c: Fixed a few comparisons that Borland C++
-	didn't really like.  Basically, this compiler complains when FT_UInt
-	is compared to FT_UShort (apparently, it promotes `UShort' to `Int'
-	in these cases).
-
-2000-11-30  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* t2objs.c (T2_Init_Face): Added calculation of `face->height' for
-	pure CFF fonts.
-
-	* t1objs.c (T1_Init_Face): Fixed computation of `face->height'.
-
-2000-11-29  David Turner  <david.turner@freetype.org>
-
-	* src/base/ftbbox.c (BBox_Conic_Check): Fixed a really stupid
-	bug in the formula used to compute the conic B�zier extrema
-	of non-monotonous arcs.
-
-2000-11-29  Werner Lemberg  <wl@gnu.org>
-
-	* src/base/ftcalc.c (FT_SqrtFixed), src/base/ftobjs.c
-	(FT_Set_Renderer): Use FT_EXPORT_DEF.
-	* src/cache/ftcimage.c (FTC_Image_Cache_Lookup),
-	src/cache/ftcmanag.c (FTC_Manager_Done, FTC_Manager_Reset,
-	FTC_Manager_Lookup_Face, FTC_Manager_Lookup_Size,
-	FTC_Manager_Register_Cache), src/cache/ftcsbits.c
-	(FTC_SBit_Cache_Lookup): Ditto.
-
-	* src/include/freetype/cache/ftcglyph.h (FTC_GlyphNode_Init),
-	src/include/freetype/ftmac.h (FT_New_Face_From_FOND): Use FT_EXPORT.
-
-2000-11-29  Werner Lemberg  <wl@gnu.org>
-
-	* src/sfnt/sfdriver.c: Include ttsbit.h and ttpost.h only
-	conditionally.
-
-	* src/truetype/ttdriver.c (Set_Char_Sizes, Set_Pixel_Sizes): Set
-	`size->strike_index' only conditionally.
-
-	* src/type1/t1driver.c, src/type1/t1objs.c: Include t1afm.h only
-	conditionally.
-
-	* src/winfonts/winfnt.h: Move all type definitions to...
-	* src/include/freetype/internal/fnttypes.h: New file.
-	* src/winfonts/winfnt.c: Use it.
-
-2000-11-29  ??? ???  <darin@eazel.com>
-
-	* include/freetype/internal/ftdebug.h: Replaced FT_CAT and FT_XCAT
-	with a direct solution (which also satifies picky compilers).
-
-2000-11-28  YAMANO-UCHI Hidetoshi  <mer@din.or.jp>
-
-	* src/truetype/ttobjs.c (TT_Init_Size): Fix #ifdef's to work with
-	disabled interpreter also.
-
-	* src/base/ftnames.c (FT_Get_Sfnt_Name_Count): Fix incorrect
-	parentheses.
-
-2000-11-26  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/t2gload.c (T2_Parse_CharStrings): Added logic to glyph
-	width setting code to take into account even/odd argument counts
-	and glyph width operand before endchar/hmoveto/vmoveto.
-
-2000-11-26  Werner Lemberg  <wl@gnu.org>
-
-	* builds/ansi/ansi.mk: Fix inclusion order of files.
-
-2000-11-26  Keith Packard  <keithp@keithp.com>
-
-	* src/type1/t1objs.c (T1_Init_Face): Compute style flags.
-
-2000-11-26  Werner Lemberg  <wl@gnu.org>
-
-	* builds/compiler/ansi-cc.mk (CLEAN_LIBRARY): Fix rule and
-	conditional.
-
-2000-11-23  Werner Lemberg  <wl@gnu.org>
-
-	* src/type1/t1load.c (parse_subrs, parse_charstrings): Use decrypt
-	function from PSAux module.
-
-	* src/type1/t1parse.c (T1_Done_Parse): Renamed to...
-	(T1_Finalize_Parser): New function (to avoid name clash with a
-	function in the PSAux module).
-	(T1_Decrypt): Removed since it is duplicated in the PSAux module.
-	(T1_Get_Private_Dict): Added `psaux' as new parameter; use decrypt
-	function from PSAux module.
-
-	* src/type1/t1parse.h: Adapted.
-
-2000-11-22  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/cff/t2objs.c (T2_Init_Face): For pure CFF fonts, set
-	`root->num_faces' to `cff->num_faces' and set `units_per_EM'
-	to 1000.
-
-	* src/cff/t2parse.c (parse_t2_real): Fixed real number parsing
-	loop.
-
-	* src/cff/t2load.c (T2_Get_String): Called T2_Get_Name with a
-	sid that was off by one.
-
-2000-11-16  David Turner  <david@freetype.org>
-
-	* src/autohint/ahtypes.h (AH_Hinter): Added new fields to control
-	auto-hinting of synthetic Type 1 fonts.
-
-	* src/autohint/ahhint.c (ah_hinter_load, ah_hinter_load_glyph):
-	Added auto-hinting support of synthetic Type 1 fonts.
-
-2000-11-12  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* src/sfnt/ttload.c (TT_LookUp_Table, TT_Load_Generic_Table): Change
-	tracing output.
-
-	* src/sfnt/sfobjs.c (SFNT_Load_Face): Set boolean variable
-	`has-outline' to true only if the font has a `glyf' or `CFF ' table.
-
-2000-11-11  Werner Lemberg  <wl@gnu.org>
-
-	* builds/win32/visualc/freetype.dsp: Fix raster1->raster and
-	type1z->type1.
-
-2000-11-11  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* builds/unix/freetype-config.in, builds/cygwin/freetype-config.in:
-	Added a --libtool option.  When freetype-config --libtool is
-	invoked, the absolute path to the libtool convenience library
-	is returned.
-
-2000-11-11  Werner Lemberg  <wl@gnu.org>
-
-	* builds/cygwin/cygwin-def.in: Same fix as previous.
-
-2000-11-10  Tom Kacvinsky  <tkacvins@freetype.org>
-
-	* builds/unix/unix-def.in: Add
-
-	    INSTALL_PROGRAM := @INSTALL_PROGRAM@
-	    INSTALL_SCRIPT  := @INSTALL_SCRIPT@
-
-	so that installation of freetype-config does not fail.
-
-2000-11-10  Werner Lemberg  <wl@gnu.org>
-
-	* builds/cygwin/freetype-config.in, builds/unix/freetype-config.in:
-	Move test down for empty --exec-prefix.
-	Fix --version.
-
-	* builds/cygwin/install.mk, builds/unix/install.mk: Use
-	$(INSTALL_SCRIPT) for installation of freetype-config.
-
-	* builds/cygwin/install.mk: Fix clean target names.
-
-2000-11-09  David Turner  <david@freetype.org>
-
-
-	* Version 2.0 released.
-	=======================
-
-
-Local Variables:
-version-control: never
-coding: latin-1
-End:
diff --git a/nx-X11/extras/freetype2/Jamfile b/nx-X11/extras/freetype2/Jamfile
deleted file mode 100644
index 54fe154e8..000000000
--- a/nx-X11/extras/freetype2/Jamfile
+++ /dev/null
@@ -1,157 +0,0 @@
-# FreeType 2 top Jamfile (c) 2001, 2002, 2003, 2004 David Turner
-#
-
-# The HDRMACRO is already defined in FTJam and is used to add
-# the content of certain macros to the list of included header
-# files.
-#
-# We can compile FreeType 2 with classic Jam however thanks to
-# the following code
-#
-if ! $(JAM_TOOLSET)
-{
-  rule HDRMACRO
-  {
-    # nothing
-  }
-}
-
-
-# We need to invoke a SubDir rule if the FT2 source directory top is not the
-# current directory.  This allows us to build FreeType 2 as part of a larger
-# project easily.
-#
-if $(FT2_TOP) != $(DOT)
-{
-  SubDir  FT2_TOP ;
-}
-
-
-# The following macros define the include directory, the source directory,
-# and the final library name (without library extensions).  They can be
-# replaced by other definitions when the library is compiled as part of
-# a larger project.
-#
-
-# Name of FreeType include directory during compilation.
-# This is relative to FT2_TOP.
-#
-FT2_INCLUDE_DIR ?= include ;
-
-# Name of FreeType source directory during compilation.
-# This is relative to FT2_TOP.
-#
-FT2_SRC_DIR ?= src ;
-
-# Name of final library, without extension.
-#
-FT2_LIB ?= $(LIBPREFIX)freetype ;
-
-
-# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
-# This is prepended to FT2_INCLUDE_DIR.  It can be used to specify
-# the location of a custom <ft2build.h> which will point to custom
-# versions of "ftmodule.h" and "ftoption.h", for example.
-#
-FT2_BUILD_INCLUDE ?= ;
-
-# The list of modules to compile on any given build of the library.
-# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
-#
-# IMPORTANT: You'll need to change the content of "ftmodule.h" as well
-#            if you modify this list or provide your own.
-#
-FT2_COMPONENTS ?= autofit    # auto-fitter
-                  autohint   # auto-hinter
-                  base       # base component (public APIs)
-                  bdf        # BDF font driver
-                  cache      # cache sub-system
-                  cff        # CFF/CEF font driver
-                  cid        # PostScript CID-keyed font driver
-                  gzip       # support for gzip-compressed files
-                  lzw        # support for LZW-compressed files
-                  pcf        # PCF font driver
-                  pfr        # PFR/TrueDoc font driver
-                  psaux      # common PostScript routines module
-                  pshinter   # PostScript hinter module
-                  psnames    # PostScript names handling
-                  raster     # monochrome rasterizer
-                  smooth     # anti-aliased rasterizer
-                  sfnt       # SFNT-based format support routines
-                  truetype   # TrueType font driver
-                  type1      # PostScript Type 1 font driver
-                  type42     # PostScript Type 42 (embedded TrueType) driver
-                  winfonts   # Windows FON/FNT font driver
-                  ;
-
-
-# Don't touch.
-#
-FT2_INCLUDE  = $(FT2_BUILD_INCLUDE)
-               [ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
-
-FT2_SRC      = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
-
-# Location of API Reference Documentation
-#
-if $(DOC_DIR)
-{
-  DOC_DIR = $(DOCDIR:T) ;
-}
-else
-{
-  DOC_DIR = docs/reference ;
-}
-
-
-# Only used by FreeType developers.
-#
-if $(DEBUG_HINTER)
-{
-  CCFLAGS += -DDEBUG_HINTER ;
-}
-
-
-# We need "freetype2/include" in the current include path in order to
-# compile any part of FreeType 2.
-#
-HDRS += $(FT2_INCLUDE) ;
-
-
-# Uncomment the following line if you want to build individual source files
-# for each FreeType 2 module.  This is only useful during development, and
-# is better defined as an environment variable anyway!
-#
-# FT2_MULTI = true ;
-
-
-# The file <freetype/config/ftheader.h> is used to define macros that are
-# later used in #include statements.  It needs to be parsed in order to
-# record these definitions.
-#
-HDRMACRO  [ FT2_SubDir  include freetype config ftheader.h ] ;
-HDRMACRO  [ FT2_SubDir  include freetype internal internal.h ] ;
-
-
-# Now include the Jamfile in "freetype2/src", used to drive the compilation
-# of each FreeType 2 component and/or module.
-#
-SubInclude  FT2_TOP $(FT2_SRC_DIR) ;
-
-
-# Test files (hinter debugging).  Only used by FreeType developers.
-#
-if $(DEBUG_HINTER)
-{
-  SubInclude FT2_TOP tests ;
-}
-
-actions RefDoc
-{
-  python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.1.9 --output=$(DOC_DIR)  $(FT2_INCLUDE)/freetype/*.h  $(FT2_INCLUDE)/freetype/config/*.h  $(FT2_INCLUDE)/freetype/cache/*.h
-}
-
-RefDoc  refdoc ;
-
-
-# end of top Jamfile
diff --git a/nx-X11/extras/freetype2/Jamrules b/nx-X11/extras/freetype2/Jamrules
deleted file mode 100644
index 0b68597d0..000000000
--- a/nx-X11/extras/freetype2/Jamrules
+++ /dev/null
@@ -1,61 +0,0 @@
-# FreeType 2 JamRules (c) 2001, 2002, 2003 David Turner
-#
-# This file contains the Jam rules needed to build the FreeType 2 library.
-# It is shared by all Jamfiles and is included only once in the build
-# process.
-#
-
-
-# Call SubDirHdrs on a list of directories.
-#
-rule AddSubDirHdrs
-{
-  local x ;
-
-  for x in $(<)
-  {
-    SubDirHdrs $(x) ;
-  }
-}
-
-
-# Determine prefix of library file.  We must use "libxxxxx" on Unix systems,
-# while all other simply use the real name.
-#
-if $(UNIX)
-{
-  LIBPREFIX ?= lib ;
-}
-else
-{
-  LIBPREFIX ?= "" ;
-}
-
-# FT2_TOP contains the location of the FreeType source directory.  You can
-# set it to a specific value if you want to compile the library as part of a
-# larger project.
-#
-FT2_TOP ?= $(DOT) ;
-
-# Define a new rule used to declare a sub directory of the Nirvana source
-# tree.
-#
-rule FT2_SubDir
-{
-  if $(FT2_TOP) = $(DOT)
-  {
-    return [ FDirName  $(<) ] ;
-  }
-  else
-  {
-    return [ FDirName  $(FT2_TOP) $(<) ] ;
-  }
-}
-
-# We also set ALL_LOCATE_TARGET in order to place all object and library
-# files in "objs".
-#
-ALL_LOCATE_TARGET ?= [ FT2_SubDir  objs ] ;
-
-
-# end of Jamrules
diff --git a/nx-X11/extras/freetype2/Makefile b/nx-X11/extras/freetype2/Makefile
deleted file mode 100644
index e1fbdf2ed..000000000
--- a/nx-X11/extras/freetype2/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# FreeType 2 build system -- top-level Makefile
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Project names
-#
-PROJECT := freetype
-PROJECT_TITLE := FreeType
-
-USE_MODULES := 1
-
-# The variable TOP_DIR holds the path to the topmost directory in the project
-# engine source hierarchy.  If it is not defined, default it to `.'.
-#
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-
-include $(TOP_DIR)/builds/toplevel.mk
-
-# EOF
diff --git a/nx-X11/extras/freetype2/README b/nx-X11/extras/freetype2/README
deleted file mode 100644
index 354d67d1c..000000000
--- a/nx-X11/extras/freetype2/README
+++ /dev/null
@@ -1,39 +0,0 @@
-  Special notes to Unix users
-  ===========================
-
-  Please  read  the file  "docs/UPGRADE.UNX".   It contains  important
-  information regarding the installation  of FreeType on Unix systems,
-  especially GNU based operating systems like GNU/Linux.
-
-  FreeType 2's  library is called `libfreetype',  FreeType 1's library
-  is called `libttf'.  They are *not* compatible!
-
-
-  FreeType 2.1.9
-  ==============
-
-  Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION.
-
-  Read the files "docs/INSTALL" for installation instructions.
-
-  Note  that  the FreeType  2  documentation  is  now available  as  a
-  separate package from our sites.  See:
-
-    ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.9.tar.bz2
-    ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.9.tar.gz
-    ftp://ftp.freetype.org/freetype/freetype2/ftdoc219.zip
-
-
-  Bugs
-  ====
-
-  Please report bugs by  e-mail to `devel@freetype.org'.  Don't forget
-  to send  a detailed explanation of  the problem --  there is nothing
-  worse  than receiving  a terse  message that  only says  "it doesn't
-  work".
-
-
-  Enjoy!
-
-
-    The FreeType Team
diff --git a/nx-X11/extras/freetype2/builds/amiga/README b/nx-X11/extras/freetype2/builds/amiga/README
deleted file mode 100644
index 161166676..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/README
+++ /dev/null
@@ -1,90 +0,0 @@
-The makefile is  for ppc-morphos-gcc-2.95.3-bin.tgz (gcc 2.95.3 hosted
-on       68k-Amiga      producing       MorphOS-PPC-binaries      from
-http://www.morphos.de).  To  use it, type "make  assign", then "make";
-it produces a link library libft2_ppc.a.
-
-The smakefile is a makefile for Amiga SAS/C 6.58 (no longer available,
-latest sold version was 6.50, updates  can be found in Aminet).  It is
-based on the version found  in the sourcecode of ttf.library 0.83b for
-FreeType   1.3.1    from   Richard   Griffith   (ragriffi@sprynet.com,
-http://ragriffi.home.sprynet.com).
-
-You will  also need  the latest include  files and amiga.lib  from the
-Amiga  web   site  (http://www.amiga.com/3.9/download/NDK3.9.lha)  for
-AmigaOS 3.9; the generated code should work under AmigaOS 2.04 and up.
-
-To use it, call "smake  assign" and then "smake" from the builds/amiga
-directory.  The results are:
-
-- A link  library "ft2_680x0.lib" (where  x depends on the  setting of
-  the  CPU entry  in  the smakefile)  containing  all FreeType2  parts
-  except of  the init code,  debugging code, and the  system interface
-  code.
-
-- ftsystem.o, an object module  containing the standard version of the
-  system interface  code which  uses fopen() fclose()  fread() fseek()
-  ftell() malloc() realloc() and free() from lib:sc.lib (not pure).
-
-- ftsystempure.o, an object module  containing the pure version of the
-  system  interface  code  which  uses Open()  Close()  Read()  Seek()
-  ExamineFH() AsmAllocPooled() AsmFreePooled()  etc.  This version can
-  be used in both normal  programs and in Amiga run-time shared system
-  librarys (can be  linked with lib:libinit.o, no copying  of DATA and
-  BSS  hunks for  each OpenLibrary()  necessary).  Source  code  is in
-  src/base/ftsystem.c.
-
-- ftdebug.o, an  object module containing the standard  version of the
-  debugging  code   which  uses  vprintf()  and   exit()  (not  pure).
-  Debugging can be  turned on in FT:include/freetype/config/ftoption.h
-  and with FT_SetTraceLevel().
-
-- ftdebugpure.o, an  object module containing the pure  version of the
-  debugging  code  which uses  KVPrintf()  from  lib:debug.lib and  no
-  exit().  For  debugging of  Amiga run-time shared  system libraries.
-  Source code is in src/base/ftdebug.c.
-
-- NO ftinit.o.   Since linking  with a link  library should  result in
-  linking  only  the  needed   object  modules  in  it,  but  standard
-  ftsystem.o would  force ALL FreeType2  modules to be linked  to your
-  program,  I decided  to use  a different  scheme: You  must #include
-  FT:src/base/ftinit.c  in your  sourcecode and  specify  with #define
-  statements       which       modules       you      need.        See
-  include/freetype/config/ftmodule.h.
-
-
-To use in your own programs:
-
-- Insert   the   #define  and   #include   statements   from  top   of
-  include/freetype/config/ftmodule.h in your source code and uncomment
-  the #define statements for the FreeType2 modules you need.
-
-- You  can  use  either  PARAMETERS=REGISTER or  PARAMETERS=STACK  for
-  calling  the FreeType2  functions, since  the link  library  and the
-  object files are compiled with PARAMETERS=BOTH.
-
-- "smake assign" (assign "FT:" to the FreeType2 main directory).
-
-- Compile your program.
-
-- Link with either ftsystem.o  or ftsystempure.o, if debugging enabled
-  with either ftdebug.o or (ftdebugpure.o and lib:debug.lib), and with
-  ft2_680x0.lib as link library.
-
-
-To adapt to other compilers:
-
-- The standard ANSI  C maximum length of 31  significant characters in
-  identifiers is not enough for FreeType2.  Check if your compiler has
-  a minimum length of 40  significant characters or can be switched to
-  it.   "idlen=40"   is  the   option  for  SAS/C.    Setting  #define
-  HAVE_LIMIT_ON_IDENTS in an include file may also work (not tested).
-
-- Make  sure that the  include directory  in builds/amiga  is searched
-  before the  normal FreeType2 include  directory, so you are  able to
-  replace problematic include files with your own version (same may be
-  useful for the src directory).
-
-- An example  of how to replace/workaround a  problematic include file
-  is  include/config/ftconfig.h;  it  changes  a  #define  that  would
-  prevent SAS/C  from generating  XDEF's where it  should do  that and
-  then includes the standard FreeType2 include file.
diff --git a/nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftconfig.h b/nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftconfig.h
deleted file mode 100644
index 9c6ff45f5..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftconfig.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// TetiSoft: We must change FT_BASE_DEF and FT_EXPORT_DEF
-
-//#define FT_BASE_DEF( x )  extern  x   // SAS/C wouldn't generate an XDEF
-//#define FT_EXPORT_DEF( x )  extern  x // SAS/C wouldn't generate an XDEF
-#undef FT_BASE_DEF
-#define FT_BASE_DEF( x )  x
-#undef FT_EXPORT_DEF
-#define FT_EXPORT_DEF( x )  x
-
-// TetiSoft: now include original file
-#ifndef __MORPHOS__
-#include "FT:include/freetype/config/ftconfig.h"
-#else
-// We must define that, it seems that
-// lib/gcc-lib/ppc-morphos/2.95.3/include/syslimits.h is missing in 
-// ppc-morphos-gcc-2.95.3-bin.tgz (gcc for 68k producing MorphOS PPC elf
-// binaries from http://www.morphos.de)
-#define _LIBC_LIMITS_H_
-#include "/FT/include/freetype/config/ftconfig.h"
-#endif
diff --git a/nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftmodule.h b/nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftmodule.h
deleted file mode 100644
index d7bc9cbd4..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/include/freetype/config/ftmodule.h
+++ /dev/null
@@ -1,123 +0,0 @@
-// TetiSoft: To specify which modules you need,
-// insert the following in your source file and uncomment as needed:
-
-/*
-//#define FT_USE_AUTOHINT       // autohinter
-//#define FT_USE_RASTER         // monochrome rasterizer
-//#define FT_USE_SMOOTH         // anti-aliasing rasterizer
-//#define FT_USE_TT             // truetype font driver
-//#define FT_USE_T1             // type1 font driver
-//#define FT_USE_T42            // type42 font driver
-//#define FT_USE_T1CID          // cid-keyed type1 font driver  // no cmap support
-//#define FT_USE_CFF            // opentype font driver
-//#define FT_USE_BDF            // bdf bitmap font driver
-//#define FT_USE_PCF            // pcf bitmap font driver
-//#define FT_USE_PFR            // pfr font driver
-//#define FT_USE_WINFNT         // windows .fnt|.fon bitmap font driver
-#include "FT:src/base/ftinit.c"
-*/
-
-// TetiSoft: make sure that needed support modules are built in.
-// Dependencies can be found by searching for FT_Get_Module.
-
-#ifdef FT_USE_T42
-#define FT_USE_TT
-#endif
-
-#ifdef FT_USE_TT
-#define FT_USE_SFNT
-#endif
-
-#ifdef FT_USE_CFF
-#define FT_USE_SFNT
-#define FT_USE_PSHINT
-#define FT_USE_PSNAMES
-#endif
-
-#ifdef FT_USE_T1
-#define FT_USE_PSAUX
-#define FT_USE_PSHINT
-#define FT_USE_PSNAMES
-#endif
-
-#ifdef FT_USE_T1CID
-#define FT_USE_PSAUX
-#define FT_USE_PSHINT
-#define FT_USE_PSNAMES
-#endif
-
-#ifdef FT_USE_PSAUX
-#define FT_USE_PSNAMES
-#endif
-
-#ifdef FT_USE_SFNT
-#define FT_USE_PSNAMES
-#endif
-
-// TetiSoft: Now include the modules
-
-#ifdef FT_USE_AUTOHINT
-FT_USE_MODULE(autohint_module_class)
-#endif
-
-#ifdef FT_USE_PSHINT
-FT_USE_MODULE(pshinter_module_class)
-#endif
-
-#ifdef FT_USE_CFF
-FT_USE_MODULE(cff_driver_class)
-#endif
-
-#ifdef FT_USE_T1CID
-FT_USE_MODULE(t1cid_driver_class)
-#endif
-
-#ifdef FT_USE_BDF
-FT_USE_MODULE(bdf_driver_class)
-#endif
-
-#ifdef FT_USE_PCF
-FT_USE_MODULE(pcf_driver_class)
-#endif
-
-#ifdef FT_USE_PFR
-FT_USE_MODULE(pfr_driver_class)
-#endif
-
-#ifdef FT_USE_PSAUX
-FT_USE_MODULE(psaux_module_class)
-#endif
-
-#ifdef FT_USE_PSNAMES
-FT_USE_MODULE(psnames_module_class)
-#endif
-
-#ifdef FT_USE_RASTER
-FT_USE_MODULE(ft_raster1_renderer_class)
-#endif
-
-#ifdef FT_USE_SFNT
-FT_USE_MODULE(sfnt_module_class)
-#endif
-
-#ifdef FT_USE_SMOOTH
-FT_USE_MODULE(ft_smooth_renderer_class)
-FT_USE_MODULE(ft_smooth_lcd_renderer_class)
-FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
-#endif
-
-#ifdef FT_USE_TT
-FT_USE_MODULE(tt_driver_class)
-#endif
-
-#ifdef FT_USE_T1
-FT_USE_MODULE(t1_driver_class)
-#endif
-
-#ifdef FT_USE_T42
-FT_USE_MODULE(t42_driver_class)
-#endif
-
-#ifdef FT_USE_WINFNT
-FT_USE_MODULE(winfnt_driver_class)
-#endif
diff --git a/nx-X11/extras/freetype2/builds/amiga/makefile b/nx-X11/extras/freetype2/builds/amiga/makefile
deleted file mode 100644
index db773302c..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/makefile
+++ /dev/null
@@ -1,207 +0,0 @@
-#
-# Makefile for FreeType2 link library using ppc-morphos-gcc-2.95.3-bin.tgz
-# (gcc 2.95.3 hosted on 68k-Amiga producing MorphOS-PPC-binaries from
-# http://www.morphos.de)
-#
-# to build from the builds/amiga directory call
-#
-#  make assign
-#  make
-#
-# Your programs source code should start with this
-# (uncomment the parts you do not need to keep the program small):
-# ---8<---
-#define FT_USE_AUTOHINT // autohinter
-#define FT_USE_RASTER   // monochrome rasterizer
-#define FT_USE_SMOOTH   // anti-aliasing rasterizer
-#define FT_USE_TT       // truetype font driver
-#define FT_USE_T1       // type1 font driver
-#define FT_USE_T42      // type42 font driver
-#define FT_USE_T1CID    // cid-keyed type1 font driver
-#define FT_USE_CFF      // opentype font driver
-#define FT_USE_BDF      // bdf bitmap font driver
-#define FT_USE_PCF      // pcf bitmap font driver
-#define FT_USE_PFR      // pfr font driver
-#define FT_USE_WINFNT   // windows .fnt|.fon bitmap font driver
-#include "FT:src/base/ftinit.c"
-# ---8<---
-#
-# link your programs with libft2_ppc.a and either ftsystem.ppc.o or ftsystempure.ppc.o
-# (and either ftdebug.ppc.o or ftdebugpure.ppc.o if you enabled FT_DEBUG_LEVEL_ERROR or
-# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
-
-all:	libft2_ppc.a ftsystem.ppc.o ftsystempure.ppc.o
-
-assign:
-	assign FT: //
-
-FTSRC = /FT/src
-
-CC =     ppc-morphos-gcc
-AR =     ppc-morphos-ar rc
-RANLIB = ppc-morphos-ranlib
-LD =     ppc-morphos-ld
-CFLAGS = -O2 -I/emu/emulinclude/includegcc -I/emu/include -Iinclude -I$(FTSRC) -I/FT/include
-
-#
-# FreeType2 library base
-#
-ftbase.ppc.o: $(FTSRC)/base/ftbase.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-ftinit.ppc.o: $(FTSRC)/base/ftinit.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-ftsystem.ppc.o: $(FTSRC)/base/ftsystem.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-# pure version for use in run-time library etc
-ftsystempure.ppc.o: src/base/ftsystem.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-ftdebug.ppc.o: $(FTSRC)/base/ftdebug.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-# pure version for use in run-time library etc
-ftdebugpure.ppc.o: src/base/ftdebug.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library base extensions
-#
-ftglyph.ppc.o: $(FTSRC)/base/ftglyph.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-ftbbox.ppc.o: $(FTSRC)/base/ftbbox.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-ftmm.ppc.o: $(FTSRC)/base/ftmm.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-ftsynth.ppc.o: $(FTSRC)/base/ftsynth.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library autohinting module
-#
-autohint.ppc.o: $(FTSRC)/autohint/autohint.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library autohinting module extensions
-#
-ahoptim.ppc.o: $(FTSRC)/autohint/ahoptim.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library postscript hinting module
-#
-pshinter.ppc.o: $(FTSRC)/pshinter/pshinter.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library PS support module
-#
-psaux.ppc.o: $(FTSRC)/psaux/psaux.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library PS glyph names module
-#
-psnames.ppc.o: $(FTSRC)/psnames/psnames.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library monochrome raster module
-#
-raster.ppc.o: $(FTSRC)/raster/raster.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library anti-aliasing raster module
-#
-smooth.ppc.o: $(FTSRC)/smooth/smooth.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library 'sfnt' module
-#
-sfnt.ppc.o: $(FTSRC)/sfnt/sfnt.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library glyph and image caching system (still experimental)
-#
-ftcache.ppc.o: $(FTSRC)/cache/ftcache.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library OpenType font driver
-#
-cff.ppc.o: $(FTSRC)/cff/cff.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library TrueType font driver
-#
-truetype.ppc.o: $(FTSRC)/truetype/truetype.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library Type1 font driver
-#
-type1.ppc.o: $(FTSRC)/type1/type1.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library Type42 font driver
-#
-type42.ppc.o: $(FTSRC)/type42/type42.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library CID-keyed Type1 font driver
-#
-type1cid.ppc.o: $(FTSRC)/cid/type1cid.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library BDF bitmap font driver
-#
-bdf.ppc.o: $(FTSRC)/bdf/bdf.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library PCF bitmap font driver
-#
-pcf.ppc.o: $(FTSRC)/pcf/pcf.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library PFR font driver
-#
-pfr.ppc.o: $(FTSRC)/pfr/pfr.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-#
-# FreeType2 library Windows FNT/FON bitmap font driver
-#
-winfnt.ppc.o: $(FTSRC)/winfonts/winfnt.c
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-BASEPPC = ftbase.ppc.o ftglyph.ppc.o ftbbox.ppc.o ftmm.ppc.o ftsynth.ppc.o
-
-DEBUGPPC = ftdebug.ppc.o ftdebugpure.ppc.o
-
-AHINTPPC = autohint.ppc.o ahoptim.ppc.o
-
-PSPPC = psaux.ppc.o psnames.ppc.o pshinter.ppc.o
-
-RASTERPPC = raster.ppc.o smooth.ppc.o
-
-FONTDPPC = cff.ppc.o type1.ppc.o type42.ppc.o type1cid.ppc.o truetype.ppc.o\
-	   bdf.ppc.o pcf.ppc.o pfr.ppc.o winfnt.ppc.o
-
-libft2_ppc.a:    $(BASEPPC) $(AHINTPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC)
-	$(AR) $@ $(BASEPPC) $(AHINTPPC) $(PSPPC) $(RASTERPPC) sfnt.ppc.o ftcache.ppc.o $(FONTDPPC)
-	-@ ($(RANLIB) $@ || true) >/dev/null 2>&1
diff --git a/nx-X11/extras/freetype2/builds/amiga/smakefile b/nx-X11/extras/freetype2/builds/amiga/smakefile
deleted file mode 100644
index c8b3e6cd5..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/smakefile
+++ /dev/null
@@ -1,236 +0,0 @@
-#
-# Makefile for FreeType2 link library using Amiga SAS/C 6.58
-#
-# to build from the builds/amiga directory call
-#
-#  smake assign
-#  smake
-#
-# Your programs source code should start with this
-# (uncomment the parts you do not need to keep the program small):
-# ---8<---
-#define FT_USE_AUTOHINT // autohinter
-#define FT_USE_RASTER   // monochrome rasterizer
-#define FT_USE_SMOOTH   // anti-aliasing rasterizer
-#define FT_USE_TT       // truetype font driver
-#define FT_USE_T1       // type1 font driver
-#define FT_USE_T42      // type42 font driver
-#define FT_USE_T1CID    // cid-keyed type1 font driver
-#define FT_USE_CFF      // opentype font driver
-#define FT_USE_BDF      // bdf bitmap font driver
-#define FT_USE_PCF      // pcf bitmap font driver
-#define FT_USE_PFR      // pfr font driver
-#define FT_USE_WINFNT   // windows .fnt|.fon bitmap font driver
-#include "FT:src/base/ftinit.c"
-# ---8<---
-#
-# link your programs with ft2_680x0.lib and either ftsystem.o or ftsystempure.o
-# (and either ftdebug.o or ftdebugpure.o if you enabled FT_DEBUG_LEVEL_ERROR or
-# FT_DEBUG_LEVEL_TRACE in include/freetype/config/ftoption.h).
-
-OBJBASE = ftbase.o ftglyph.o ftbbox.o ftmm.o ftsynth.o
-
-OBJSYSTEM = ftsystem.o ftsystempure.o
-
-OBJDEBUG = ftdebug.o ftdebugpure.o
-
-OBJAHINT = autohint.o ahoptim.o
-
-OBJPSHINT = pshinter.o
-
-OBJPSAUX = psaux.o
-
-OBJPSNAM = psnames.o
-
-OBJRAST = raster.o
-
-OBJSMOOTH = smooth.o
-
-OBJSFNT = sfnt.o
-
-OBJCACHE = ftcache.o
-
-OBJPS = $(OBJPSAUX) $(OBJPSNAM) $(OBJPSHINT)
-
-OBJRASTER = $(OBJRAST) $(OBJSMOOTH)
-
-OBJFONTD = cff.o type1.o type42.o type1cid.o\
-	   truetype.o winfnt.o bdf.o pcf.o pfr.o
-
-CORE = FT:src/
-
-CPU       = 68000
-#CPU      = 68020
-#CPU      = 68030
-#CPU      = 68040
-#CPU      = 68060
-
-OPTIMIZER = optinlocal
-
-SCFLAGS = optimize opttime optsched strmerge strsect=near idlen=40 cpu=$(CPU)\
-	  idir=include/ idir=$(CORE) idir=FT:include/ nostackcheck nochkabort\
-	  noicons ignore=79,85,110,306 parameters=both
-
-LIB  = ft2_$(CPU).lib
-
-# sample linker options
-OPTS = link lib=$(LIB),lib:sc.lib,lib:amiga.lib,lib:debug.lib\
-       smallcode smalldata noicons utillib
-
-# sample program entry
-#myprog: myprog.c ftsystem.o $(LIB)
-#	sc $< programname=$@ ftsystem.o $(SCFLAGS) $(OPTS)
-
-all:	$(LIB) $(OBJSYSTEM) $(OBJDEBUG)
-
-assign:
-	assign FT: //
-
-# uses separate object modules in lib to make for easier debugging
-# also, can make smaller programs if entire engine is not used
-ft2_$(CPU).lib:  $(OBJBASE) $(OBJAHINT) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD)
-	oml $@ r $(OBJBASE) $(OBJAHINT) $(OBJPS) $(OBJRASTER) $(OBJSFNT) $(OBJCACHE) $(OBJFONTD)
-
-clean:
-	-delete \#?.o
-
-realclean: clean
-	-delete ft2$(CPU).lib
-
-#
-# freetype library base
-#
-ftbase.o: $(CORE)base/ftbase.c
-	sc $(SCFLAGS) objname=$@ $<
-ftinit.o: $(CORE)base/ftinit.c
-	sc $(SCFLAGS) objname=$@ $<
-ftsystem.o: $(CORE)base/ftsystem.c
-	sc $(SCFLAGS) objname=$@ $<
-ftsystempure.o: src/base/ftsystem.c	## pure version for use in run-time library etc
-	sc $(SCFLAGS) objname=$@ $<
-ftdebug.o: $(CORE)base/ftdebug.c
-	sc $(SCFLAGS) objname=$@ $<
-ftdebugpure.o: src/base/ftdebug.c	## pure version for use in run-time library etc
-	sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library base extensions
-#
-ftglyph.o: $(CORE)base/ftglyph.c
-	sc $(SCFLAGS) objname=$@ $<
-ftbbox.o: $(CORE)base/ftbbox.c
-	sc $(SCFLAGS) objname=$@ $<
-ftmm.o: $(CORE)base/ftmm.c
-	sc $(SCFLAGS) objname=$@ $<
-ftsynth.o: $(CORE)base/ftsynth.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library autohinting module
-#
-autohint.o: $(CORE)autohint/autohint.c
-	sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library autohinting module extensions
-#
-ahoptim.o: $(CORE)autohint/ahoptim.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PS hinting module
-#
-pshinter.o: $(CORE)pshinter/pshinter.c
-	sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library PS support module
-#
-psaux.o: $(CORE)psaux/psaux.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PS glyph names module
-#
-psnames.o: $(CORE)psnames/psnames.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library monochrome raster module
-#
-raster.o: $(CORE)raster/raster.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library anti-aliasing raster module
-#
-smooth.o: $(CORE)smooth/smooth.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library 'sfnt' module
-#
-sfnt.o: $(CORE)sfnt/sfnt.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library glyph and image caching system (still experimental)
-#
-ftcache.o: $(CORE)cache/ftcache.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library OpenType font driver
-#
-cff.o: $(CORE)cff/cff.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library TrueType font driver
-#
-truetype.o: $(CORE)truetype/truetype.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library Type1 font driver
-#
-type1.o: $(CORE)type1/type1.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# FreeType2 library Type42 font driver
-#
-type42.o: $(CORE)type42/type42.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library CID-keyed Type1 font driver
-#
-type1cid.o: $(CORE)cid/type1cid.c
-	sc $(SCFLAGS) objname=$@ $<
-#
-# freetype library CID-keyed Type1 font driver extensions
-#
-#cidafm.o: $(CORE)cid/cidafm.c
-#	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library BDF bitmap font driver
-#
-bdf.o: $(CORE)bdf/bdf.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PCF bitmap font driver
-#
-pcf.o: $(CORE)pcf/pcf.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library PFR font driver
-#
-pfr.o: $(CORE)pfr/pfr.c
-	sc $(SCFLAGS) objname=$@ $<
-
-#
-# freetype library Windows FNT/FON bitmap font driver
-#
-winfnt.o: $(CORE)winfonts/winfnt.c
-	sc $(SCFLAGS) objname=$@ $<
diff --git a/nx-X11/extras/freetype2/builds/amiga/src/base/ftdebug.c b/nx-X11/extras/freetype2/builds/amiga/src/base/ftdebug.c
deleted file mode 100644
index a61868746..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/src/base/ftdebug.c
+++ /dev/null
@@ -1,185 +0,0 @@
-// TetiSoft: replaced vprintf() with KVPrintF() and commented out exit()
-extern void __stdargs KVPrintF( const char *formatString, const void *values );
-
-/***************************************************************************/
-/*                                                                         */
-/*  ftdebug.c                                                              */
-/*                                                                         */
-/*    Debugging and logging component (body).                              */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This component contains various macros and functions used to ease the */
-  /* debugging of the FreeType engine.  Its main purpose is in assertion   */
-  /* checking, tracing, and error detection.                               */
-  /*                                                                       */
-  /* There are now three debugging modes:                                  */
-  /*                                                                       */
-  /* - trace mode                                                          */
-  /*                                                                       */
-  /*   Error and trace messages are sent to the log file (which can be the */
-  /*   standard error output).                                             */
-  /*                                                                       */
-  /* - error mode                                                          */
-  /*                                                                       */
-  /*   Only error messages are generated.                                  */
-  /*                                                                       */
-  /* - release mode:                                                       */
-  /*                                                                       */
-  /*   No error message is sent or generated.  The code is free from any   */
-  /*   debugging parts.                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-
-
-#ifdef FT_DEBUG_LEVEL_TRACE
-  char  ft_trace_levels[trace_max];
-#endif
-
-
-#if defined( FT_DEBUG_LEVEL_ERROR ) || defined( FT_DEBUG_LEVEL_TRACE )
-
-
-#include <stdarg.h>
-#include <stdlib.h>
-
-
-  FT_EXPORT_DEF( void )
-  FT_Message( const char*  fmt, ... )
-  {
-    va_list  ap;
-
-
-    va_start( ap, fmt );
-//  vprintf( fmt, ap );
-    KVPrintF( fmt, ap );
-    va_end( ap );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Panic( const char*  fmt, ... )
-  {
-    va_list  ap;
-
-
-    va_start( ap, fmt );
-//  vprintf( fmt, ap );
-    KVPrintF( fmt, ap );
-    va_end( ap );
-
-//  exit( EXIT_FAILURE );
-  }
-
-
-
-  /* since I don't know wether "getenv" is available on the Amiga */
-  /* I prefer to simply disable this code for now in all builds   */
-  /*                                                              */
-
-/* #ifdef FT_DEBUG_LEVEL_TRACE */
-#if 0
-
-  FT_BASE_DEF( void )
-  ft_debug_init( void )
-  {
-    const char*  ft2_debug = getenv( "FT2_DEBUG" );
-
-
-    if ( ft2_debug )
-    {
-      const char*  p = ft2_debug;
-      const char*  q;
-
-
-      for ( ; *p; p++ )
-      {
-        /* skip leading whitespace and separators */
-        if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
-          continue;
-
-        /* read toggle name, followed by '=' */
-        q = p;
-        while ( *p && *p != ':' )
-          p++;
-
-        if ( *p == ':' && p > q )
-        {
-          int  n, i, len = p - q;
-          int  level = -1, found = -1;
-
-
-          for ( n = 0; n < trace_count; n++ )
-          {
-            const char*  toggle = ft_trace_toggles[n];
-
-
-            for ( i = 0; i < len; i++ )
-            {
-              if ( toggle[i] != q[i] )
-                break;
-            }
-
-            if ( i == len && toggle[i] == 0 )
-            {
-              found = n;
-              break;
-            }
-          }
-
-          /* read level */
-          p++;
-          if ( *p )
-          {
-            level = *p++ - '0';
-            if ( level < 0 || level > 6 )
-              level = -1;
-          }
-
-          if ( found >= 0 && level >= 0 )
-          {
-            if ( found == trace_any )
-            {
-              /* special case for "any" */
-              for ( n = 0; n < trace_count; n++ )
-                ft_trace_levels[n] = level;
-            }
-            else
-              ft_trace_levels[found] = level;
-          }
-        }
-      }
-    }
-  }
-
-
-#else  /* !FT_DEBUG_LEVEL_TRACE */
-
-
-  FT_BASE_DEF( void )
-  ft_debug_init( void )
-  {
-    /* nothing */
-  }
-
-
-#endif /* !FT_DEBUG_LEVEL_TRACE */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/amiga/src/base/ftsystem.c b/nx-X11/extras/freetype2/builds/amiga/src/base/ftsystem.c
deleted file mode 100644
index e76d4161e..000000000
--- a/nx-X11/extras/freetype2/builds/amiga/src/base/ftsystem.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsystem.c                                                             */
-/*                                                                         */
-/*    Amiga-specific FreeType low-level system interface (body).           */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file contains the Amiga interface used by FreeType to access     */
-  /* low-level, i.e. memory management, i/o access as well as thread       */
-  /* synchronisation.                                                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-// Maintained by Detlef W�rkner <TetiSoft@apg.lahn.de>
-
-// TetiSoft: Modified to avoid fopen() fclose() fread() fseek() ftell()
-// malloc() realloc() and free() which can't be used in an amiga
-// shared run-time library linked with libinit.o
-
-#include <exec/memory.h>
-
-#ifdef __GNUC__
-// Avoid warnings "struct X declared inside parameter list"
-#include <exec/devices.h>
-#include <exec/io.h>
-#include <exec/semaphores.h>
-#include <dos/exall.h>
-#endif
-
-// Necessary with OS3.9 includes
-#define __USE_SYSBASE
-
-#include <proto/exec.h>
-#include <proto/dos.h>
-
-#ifndef __GNUC__
-/* TetiSoft: Missing in alib_protos.h, see amiga.lib autodoc
- * (These amiga.lib functions work under AmigaOS V33 and up)
- */
-extern APTR __asm
-AsmCreatePool( register __d0 ULONG             memFlags,
-               register __d1 ULONG             puddleSize,
-               register __d2 ULONG             threshSize,
-               register __a6 struct ExecBase*  SysBase );
-
-extern VOID __asm
-AsmDeletePool( register __a0 APTR              poolHeader,
-               register __a6 struct ExecBase*  SysBase );
-
-extern APTR __asm
-AsmAllocPooled( register __a0 APTR              poolHeader,
-                register __d0 ULONG             memSize,
-                register __a6 struct ExecBase*  SysBase );
-
-extern VOID __asm
-AsmFreePooled( register __a0 APTR              poolHeader,
-               register __a1 APTR              memory,
-               register __d0 ULONG             memSize,
-               register __a6 struct ExecBase*  SysBase);
-#endif
-
-
-// TetiSoft: C implementation of AllocVecPooled (see autodoc exec/AllocPooled)
-APTR
-AllocVecPooled( APTR   poolHeader,
-                ULONG  memSize )
-{
-  ULONG  newSize = memSize + sizeof ( ULONG );
-#ifdef __GNUC__
-  ULONG  *mem = AllocPooled( poolHeader, newSize );
-#else
-  ULONG  *mem = AsmAllocPooled( poolHeader, newSize, SysBase );
-#endif
-
-  if ( !mem )
-    return NULL;
-  *mem = newSize;
-  return mem + 1;
-}
-
-
-// TetiSoft: C implementation of FreeVecPooled (see autodoc exec/AllocPooled)
-void
-FreeVecPooled( APTR  poolHeader,
-               APTR  memory )
-{
-  ULONG  *realmem = (ULONG *)memory - 1;
-
-#ifdef __GNUC__
-  FreePooled( poolHeader, realmem, *realmem );
-#else
- AsmFreePooled( poolHeader, realmem, *realmem, SysBase );
-#endif
-}
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_SYSTEM_H
-#include FT_ERRORS_H
-#include FT_TYPES_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                       MEMORY MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* It is not necessary to do any error checking for the                  */
-  /* allocation-related functions.  This will be done by the higher level  */
-  /* routines like FT_Alloc() or FT_Realloc().                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_alloc                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory allocation function.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    size   :: The requested size in bytes.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of newly allocated block.                              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_alloc( FT_Memory  memory,
-            long       size )
-  {
-//  FT_UNUSED( memory );
-
-//  return malloc( size );
-    return AllocVecPooled( memory->user, size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_realloc                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory reallocation function.                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory   :: A pointer to the memory object.                        */
-  /*                                                                       */
-  /*    cur_size :: The current size of the allocated memory block.        */
-  /*                                                                       */
-  /*    new_size :: The newly requested size in bytes.                     */
-  /*                                                                       */
-  /*    block    :: The current address of the block in memory.            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of the reallocated memory block.                       */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_realloc( FT_Memory  memory,
-              long       cur_size,
-              long       new_size,
-              void*      block )
-  {
-//  FT_UNUSED( memory );
-//  FT_UNUSED( cur_size );
-
-//  return realloc( block, new_size );
-
-    void* new_block;
-
-    new_block = AllocVecPooled ( memory->user, new_size );
-    if ( new_block != NULL )
-    {
-      CopyMem ( block, new_block,
-                ( new_size > cur_size ) ? cur_size : new_size );
-      FreeVecPooled ( memory->user, block );
-    }
-    return new_block;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_free                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory release function.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    block  :: The address of block in memory to be freed.              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_free( FT_Memory  memory,
-           void*      block )
-  {
-//  FT_UNUSED( memory );
-
-//  free( block );
-
-    FreeVecPooled( memory->user, block );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     RESOURCE MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_io
-
-  /* We use the macro STREAM_FILE for convenience to extract the       */
-  /* system-specific stream handle from a given FreeType stream object */
-// #define STREAM_FILE( stream )  ( (FILE*)stream->descriptor.pointer )
-#define STREAM_FILE( stream )  ( (BPTR)stream->descriptor.pointer )     // TetiSoft
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_close_stream                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to close a stream.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_close_stream( FT_Stream  stream )
-  {
-//  fclose( STREAM_FILE( stream ) );
-    Close( STREAM_FILE( stream ) );     // TetiSoft
-
-    stream->descriptor.pointer = NULL;
-    stream->size               = 0;
-    stream->base               = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_io_stream                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to open a stream.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  /*    offset :: The position in the data stream to start reading.        */
-  /*                                                                       */
-  /*    buffer :: The address of buffer to store the read data.            */
-  /*                                                                       */
-  /*    count  :: The number of bytes to read from the stream.             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The number of bytes actually read.                                 */
-  /*                                                                       */
-  FT_CALLBACK_DEF( unsigned long )
-  ft_io_stream( FT_Stream       stream,
-                unsigned long   offset,
-                unsigned char*  buffer,
-                unsigned long   count )
-  {
-//  FILE*  file;
-    BPTR   file;        // TetiSoft
-
-
-    file = STREAM_FILE( stream );
-
-//  fseek( file, offset, SEEK_SET );
-    Seek( file, offset, OFFSET_BEGINNING );     // TetiSoft
-
-//  return (unsigned long)fread( buffer, 1, count, file );
-    return (unsigned long)FRead( file, buffer, 1, count);
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_Open( FT_Stream    stream,
-                  const char*  filepathname )
-  {
-//  FILE*                  file;
-    BPTR                   file; // TetiSoft
-    struct FileInfoBlock*  fib;  // TetiSoft
-
-
-    if ( !stream )
-      return FT_Err_Invalid_Stream_Handle;
-
-//  file = fopen( filepathname, "rb" );
-    file = Open( filepathname, MODE_OLDFILE );  // TetiSoft
-    if ( !file )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not open `%s'\n", filepathname ));
-
-      return FT_Err_Cannot_Open_Resource;
-    }
-
-//  fseek( file, 0, SEEK_END );
-//  astream->size = ftell( file );
-//  fseek( file, 0, SEEK_SET );
-    fib = AllocDosObject( DOS_FIB, NULL );
-    if ( !fib )
-    {
-      Close ( file );
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not open `%s'\n", filepathname ));
-
-      return FT_Err_Cannot_Open_Resource;
-    }
-    if ( !( ExamineFH( file, fib ) ) )
-    {
-      FreeDosObject( DOS_FIB, fib );
-      Close ( file );
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not open `%s'\n", filepathname ));
-
-      return FT_Err_Cannot_Open_Resource;
-    }
-    stream->size = fib->fib_Size;
-    FreeDosObject( DOS_FIB, fib );
-
-//  stream->descriptor.pointer = file;
-    stream->descriptor.pointer = (void *)file;
-
-    stream->pathname.pointer   = (char*)filepathname;
-    stream->pos                = 0;
-
-    stream->read  = ft_io_stream;
-    stream->close = ft_close_stream;
-
-    FT_TRACE1(( "FT_Stream_Open:" ));
-    FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
-                filepathname, stream->size ));
-
-    return FT_Err_Ok;
-  }
-
-
-#ifdef FT_DEBUG_MEMORY
-
-  extern FT_Int
-  ft_mem_debug_init( FT_Memory  memory );
-
-  extern void
-  ft_mem_debug_done( FT_Memory  memory );
-
-#endif
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Memory )
-  FT_New_Memory( void )
-  {
-    FT_Memory  memory;
-
-
-//  memory = (FT_Memory)malloc( sizeof ( *memory ) );
-    memory = (FT_Memory)AllocVec( sizeof ( *memory ), MEMF_PUBLIC );
-    if ( memory )
-    {
-//    memory->user = 0;
-#ifdef __GNUC__
-      memory->user = CreatePool( MEMF_PUBLIC, 2048, 2048 );
-#else
-      memory->user = AsmCreatePool( MEMF_PUBLIC, 2048, 2048, SysBase );
-#endif
-      if ( memory->user == NULL )
-      {
-        FreeVec( memory );
-        memory = NULL;
-      }
-      else
-      {
-        memory->alloc   = ft_alloc;
-        memory->realloc = ft_realloc;
-        memory->free    = ft_free;
-#ifdef FT_DEBUG_MEMORY
-        ft_mem_debug_init( memory );
-#endif
-      }
-    }
-
-    return memory;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Done_Memory( FT_Memory  memory )
-  {
-#ifdef FT_DEBUG_MEMORY
-    ft_mem_debug_done( memory );
-#endif
-
-#ifdef __GNUC__
-    DeletePool( memory->user );
-#else
-    AsmDeletePool( memory->user, SysBase );
-#endif
-    FreeVec( memory );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/ansi/ansi-def.mk b/nx-X11/extras/freetype2/builds/ansi/ansi-def.mk
deleted file mode 100644
index bf2aa36f1..000000000
--- a/nx-X11/extras/freetype2/builds/ansi/ansi-def.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# FreeType 2 configuration rules for a `normal' ANSI system
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-
-DELETE    := rm -f
-SEP       := /
-BUILD_DIR := $(TOP_DIR)/builds/ansi
-PLATFORM  := ansi
-
-
-# The directory where all object files are placed.
-#
-# This lets you build the library in your own directory with something like
-#
-#   set TOP_DIR=.../path/to/freetype2/top/dir...
-#   set OBJ_DIR=.../path/to/obj/dir
-#   make -f $TOP_DIR/Makefile setup [options]
-#   make -f $TOP_DIR/Makefile
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(TOP_DIR)/objs
-endif
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-
-# The name of the final library file.  Note that the DOS-specific Makefile
-# uses a shorter (8.3) name.
-#
-LIBRARY := lib$(PROJECT)
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS :=
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/ansi/ansi.mk b/nx-X11/extras/freetype2/builds/ansi/ansi.mk
deleted file mode 100644
index 32b3bac3e..000000000
--- a/nx-X11/extras/freetype2/builds/ansi/ansi.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# FreeType 2 configuration rules for a `normal' pseudo ANSI compiler/system
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/ansi/ansi-def.mk
-include $(TOP_DIR)/builds/compiler/ansi-cc.mk
-include $(TOP_DIR)/builds/link_std.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/atari/ATARI.H b/nx-X11/extras/freetype2/builds/atari/ATARI.H
deleted file mode 100644
index 28a5575da..000000000
--- a/nx-X11/extras/freetype2/builds/atari/ATARI.H
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef ATARI_H
-#define ATARI_H
-
-#pragma warn -stu
-
-/* PureC doesn't like 32bit enumerations */
-
-#ifndef FT_IMAGE_TAG
-#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value 
-#endif /* FT_IMAGE_TAG */ 
-
-#ifndef FT_ENC_TAG
-#define FT_ENC_TAG( value, a, b, c, d ) value
-#endif /* FT_ENC_TAG */
-
-#endif /* ATARI_H */
diff --git a/nx-X11/extras/freetype2/builds/atari/FNames.SIC b/nx-X11/extras/freetype2/builds/atari/FNames.SIC
deleted file mode 100644
index 497f00218..000000000
--- a/nx-X11/extras/freetype2/builds/atari/FNames.SIC
+++ /dev/null
@@ -1,37 +0,0 @@
-/* the following changes file names for PureC projects */
-
-if (argc > 0)
-{
-	ordner = argv[0];
-	if (basename(ordner) == "") /* ist Ordner */
-	{
-		ChangeFilenames(ordner);
-	}
-}
-
-proc ChangeFilenames(folder)
-local i,entries,directory,file;
-{
-	entries = filelist(directory,folder);
-	for (i = 0; i < entries; ++i)
-	{
-		file = directory[i,0];
-		if ((directory[i,3]&16) > 0) /* subdirectory */
-		{
-			ChangeFilenames(folder+file+"\\");
-		}
-		else
-		{
-			if ((stricmp(suffix(file),".h")==0)|(stricmp(suffix(file),".c")==0))
-			ChangeFilename(folder,file);
-		}
-	}
-}
-
-proc ChangeFilename(path,datei)
-local newfile,err;
-{
-	newfile=datei;
-	newfile[0]=(newfile[0] | 32) ^ 32;
-	err=files.rename("-q",path+datei,newfile);
-}
diff --git a/nx-X11/extras/freetype2/builds/atari/FREETYPE.PRJ b/nx-X11/extras/freetype2/builds/atari/FREETYPE.PRJ
deleted file mode 100644
index a4c0914da..000000000
--- a/nx-X11/extras/freetype2/builds/atari/FREETYPE.PRJ
+++ /dev/null
@@ -1,33 +0,0 @@
-;FreeType project file
-
-FREETYPE.LIB
-
-.C [-K -P -R -A]
-.L [-J -V]
-.S
-
-=
-
-..\..\src\base\ftsystem.c
-..\..\src\base\ftdebug.c
-
-..\..\src\base\ftinit.c
-..\..\src\base\ftglyph.c
-..\..\src\base\ftmm
-..\..\src\base\ftbbox
-
-..\..\src\base\ftbase.c
-..\..\src\autohint\autohint.c
-;..\..\src\cache\ftcache.c
-..\..\src\cff\cff.c
-..\..\src\cid\type1cid.c
-..\..\src\psaux\psaux.c
-..\..\src\pshinter\pshinter.c
-..\..\src\psnames\psnames.c
-..\..\src\raster\raster.c
-..\..\src\sfnt\sfnt.c
-..\..\src\smooth\smooth.c
-..\..\src\truetype\truetype.c
-..\..\src\type1\type1.c
-..\..\src\type42\type42.c
-
diff --git a/nx-X11/extras/freetype2/builds/atari/README.TXT b/nx-X11/extras/freetype2/builds/atari/README.TXT
deleted file mode 100644
index a905c27bc..000000000
--- a/nx-X11/extras/freetype2/builds/atari/README.TXT
+++ /dev/null
@@ -1,51 +0,0 @@
-Compiling FreeType 2 with PureC compiler
-========================================
-
-[See below for a German version.]
-
-To compile FreeType 2 as a library the following changes must be applied:
-
-- All *.c files must start with an uppercase letter.
-  (In case GEMSCRIPT is available:
-  Simply drag the whole FreeType 2 directory to the file `FNames.SIC'.)
-
-- You have to change the INCLUDE directory in PureC's compiler options
-  to contain both the `INCLUDE' and `freetype2\include' directory.
-  Example:
-
-    INCLUDE;E:\freetype2\include
-
-- The file `freetype2/include/Ft2build.h' must be patched as follows to
-  include ATARI.H:
-
-    #ifndef __FT2_BUILD_GENERIC_H__
-    #define __FT2_BUILD_GENERIC_H__
-
-    #include "ATARI.H"
-
-
-
-Compilieren von FreeType 2 mit PureC
-====================================
-
-Um FreeType 2 als eine Bibliothek (library) zu compilieren, muss folgendes
-ge�ndert werden:
-
-- Alle *.c-files m�ssen mit einem GROSSBUCHSTABEN beginnen.
-  (Falls GEMSCRIPT zur Verf�gung steht:
-  Den kompletten Ordner freetype2 auf die Datei `FNames.SIC' draggen.)
-
-- In den Compiler-Optionen von PureC muss das INCLUDE directory auf INCLUDE
-  und freetype2\include verweisen. Z.B.:
-
-    INCLUDE;E:\freetype2\include
-
-- In der Datei freetype2/include/Ft2build.h muss zu Beginn
-  ein #include "ATARI.H" wie folgt eingef�gt werden:
-
-    #ifndef __FT2_BUILD_GENERIC_H__
-    #define __FT2_BUILD_GENERIC_H__
-
-    #include "ATARI.H"
-
---- end of README.TXT ---
diff --git a/nx-X11/extras/freetype2/builds/beos/beos-def.mk b/nx-X11/extras/freetype2/builds/beos/beos-def.mk
deleted file mode 100644
index b569fe62c..000000000
--- a/nx-X11/extras/freetype2/builds/beos/beos-def.mk
+++ /dev/null
@@ -1,95 +0,0 @@
-#
-# FreeType 2 configuration rules for a BeOS system
-#
-# this is similar to the "ansi-def.mk" file, except for BUILD and PLATFORM
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-
-DELETE    := rm -f
-SEP       := /
-BUILD_DIR := $(TOP_DIR)/builds/beos
-PLATFORM  := beos
-
-
-# The directory where all object files are placed.
-#
-# This lets you build the library in your own directory with something like
-#
-#   set TOP_DIR=.../path/to/freetype2/top/dir...
-#   set OBJ_DIR=.../path/to/obj/dir
-#   make -f $TOP_DIR/Makefile setup [options]
-#   make -f $TOP_DIR/Makefile
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(TOP_DIR)/objs
-endif
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-
-# The name of the final library file.  Note that the DOS-specific Makefile
-# uses a shorter (8.3) name.
-#
-LIBRARY := lib$(PROJECT)
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS :=
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/beos/beos.mk b/nx-X11/extras/freetype2/builds/beos/beos.mk
deleted file mode 100644
index 1bc8e3ae3..000000000
--- a/nx-X11/extras/freetype2/builds/beos/beos.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# FreeType 2 configuration rules for a BeOS system
-#
-
-# Copyright 1996-2000, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-include $(TOP_DIR)/builds/compiler/ansi-cc.mk
-include $(TOP_DIR)/builds/beos/beos-def.mk
-include $(TOP_DIR)/builds/link_std.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/beos/detect.mk b/nx-X11/extras/freetype2/builds/beos/detect.mk
deleted file mode 100644
index 8333aba4f..000000000
--- a/nx-X11/extras/freetype2/builds/beos/detect.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# FreeType 2 configuration file to detect an BeOS host platform.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-.PHONY: setup
-
-
-ifeq ($(PLATFORM),ansi)
-
-  ifdef BE_HOST_CPU
-
-    PLATFORM := beos
-
-  endif # test MACHTYPE beos
-endif
-
-ifeq ($(PLATFORM),beos)
-
-  DELETE      := rm -f
-  SEP         := /
-  BUILD_DIR   := $(TOP_DIR)/builds/beos
-  CONFIG_FILE := beos.mk
-
-  setup: std_setup
-
-endif   # test PLATFORM beos
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/ansi-cc.mk b/nx-X11/extras/freetype2/builds/compiler/ansi-cc.mk
deleted file mode 100644
index c52c12fcc..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/ansi-cc.mk
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# FreeType 2 generic pseudo ANSI compiler
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := cc
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := o
-SO := o
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := a
-SA := a
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-#  we assume the compiler is already strictly ANSI
-#
-ANSIFLAGS :=
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = $(AR) -r $@ $(subst /,$(COMPILER_SEP),$(OBJECTS_LIST))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/bcc-dev.mk b/nx-X11/extras/freetype2/builds/compiler/bcc-dev.mk
deleted file mode 100644
index 446fd4e62..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/bcc-dev.mk
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-#  FreeType 2 Borland C++-specific with NO OPTIMIZATIONS + DEBUGGING
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := bcc32
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L :=
-
-
-# Target flag -- no trailing space.
-#
-T := -o
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -q -c -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := -A
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = tlib /u $(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST:%=+%))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/bcc.mk b/nx-X11/extras/freetype2/builds/compiler/bcc.mk
deleted file mode 100644
index eedfa10fb..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/bcc.mk
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# FreeType 2 Borland C++-specific rules
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := bcc32
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L :=
-
-
-# Target flag -- no trailing space.
-#
-T := -o
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c -q -y -d -v -Od -w-par -w-ccc -w-rch -w-pro -w-aus
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := -A
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = tlib /u $(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST:%=+%))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/emx.mk b/nx-X11/extras/freetype2/builds/compiler/emx.mk
deleted file mode 100644
index f2be13ca6..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/emx.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# FreeType 2 emx-specific definitions
-#
-
-
-# Copyright 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := set GCCOPT="-ansi -pedantic"; gcc
-COMPILER_SEP := /
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := o
-SO := o
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := a
-SA := a
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c -g -O6 -Wall
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS :=
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = $(foreach m,$(OBJECTS_LIST),$(AR) -r $@ $(m);) echo > nul
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/gcc-dev.mk b/nx-X11/extras/freetype2/builds/compiler/gcc-dev.mk
deleted file mode 100644
index 15879f85b..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/gcc-dev.mk
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# FreeType 2 gcc-specific with NO OPTIMIZATIONS + DEBUGGING
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := gcc
-COMPILER_SEP := /
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := o
-SO := o
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := a
-SA := a
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c -g -O0 \
-            -fno-strict-aliasing \
-            -Wall \
-            -W \
-            -Wundef \
-            -Wshadow \
-            -Wpointer-arith \
-            -Wwrite-strings \
-            -Wstrict-prototypes \
-            -Wredundant-decls \
-            -Wnested-externs \
-            -Wno-long-long
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := -ansi -pedantic
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/gcc.mk b/nx-X11/extras/freetype2/builds/compiler/gcc.mk
deleted file mode 100644
index d51f642d0..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/gcc.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# FreeType 2 gcc-specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := gcc
-COMPILER_SEP := /
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := o
-SO := o
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := a
-SA := a
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c -g -O6 -Wall -fno-strict-aliasing
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := -ansi -pedantic
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/intelc.mk b/nx-X11/extras/freetype2/builds/compiler/intelc.mk
deleted file mode 100644
index 954dcf64c..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/intelc.mk
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# FreeType 2 Intel C/C++ definitions (VC++ compatibility mode)
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# compiler command line name
-#
-CC           := icl
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := /I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := /D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := /Fl
-
-
-# Target flag.
-#
-T := /Fo
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-#   Note that the Intel C/C++ compiler version 4.5 complains about
-#   the use of FT_FIELD_OFFSET with "value must be arithmetic type"!
-#   This really looks like a bug in the compiler because the macro
-#   _does_ compute an arithmetic value, so we disable this warning
-#   with "/Qwd32".
-#
-ifndef CFLAGS
-  CFLAGS := /nologo /c /Ox /G5 /W3 /Qwd32
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := /Qansi /Za
-
-# Library linking
-#
-#CLEAN_LIBRARY =
-LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/unix-lcc.mk b/nx-X11/extras/freetype2/builds/compiler/unix-lcc.mk
deleted file mode 100644
index cf4ef5a00..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/unix-lcc.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# FreeType 2 Unix LCC specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Command line name
-#
-CC           := lcc
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := o
-SO := o
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := a
-SA := a
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c -g
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-#  LCC is pure ANSI anyway!
-#
-#  the "-A" flag simply increments verbosity about non ANSI code
-#
-ANSIFLAGS := -A
-
-
-# library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(PROJECT_LIBRARY)
-endif
-LINK_LIBRARY = $(AR) -r $@ $(OBJECTS_LIST)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/visualage.mk b/nx-X11/extras/freetype2/builds/compiler/visualage.mk
deleted file mode 100644
index 21ef12b27..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/visualage.mk
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-# FreeType 2 Visual Age C++ specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# command line compiler name
-#
-CC           := icc
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := /I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := /D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := /Fl
-
-
-# Target flag.
-#
-T := /Fo
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-ifndef CFLAGS
-  CFLAGS := /Q- /Gd+ /O2 /G5 /W3 /C
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSI_FLAGS := /Sa
-
-
-# Library linking
-#
-#CLEAN_LIBRARY :=
-LINK_LIBRARY = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/visualc.mk b/nx-X11/extras/freetype2/builds/compiler/visualc.mk
deleted file mode 100644
index 92d71a974..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/visualc.mk
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# FreeType 2 Visual C++ definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# compiler command line name
-#
-CC           := cl
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := /I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := /D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := /Fl
-
-
-# Target flag.
-#
-T := /Fo
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := /nologo /c /Ox /G5 /W3 /WX
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := /Za
-
-
-# Library linking
-#
-#CLEAN_LIBRARY =
-LINK_LIBRARY  = lib /nologo /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/watcom.mk b/nx-X11/extras/freetype2/builds/compiler/watcom.mk
deleted file mode 100644
index 12394be4b..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/watcom.mk
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# FreeType 2 Watcom-specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Compiler command line name
-#
-CC           := wcc386
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I=
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -FO=
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -zq
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := -za
-
-
-# Library linking
-#
-ifndef CLEAN_LIBRARY
-  CLEAN_LIBRARY = $(DELETE) $(subst /,$(SEP),$(PROJECT_LIBRARY))
-endif
-LINK_LIBRARY = $(subst /,$(COMPILER_SEP), \
-                 wlib -q -n $@; \
-                 $(foreach m, $(OBJECTS_LIST), wlib -q $@ +$(m);) \
-                 echo > nul)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/compiler/win-lcc.mk b/nx-X11/extras/freetype2/builds/compiler/win-lcc.mk
deleted file mode 100644
index c500d82cf..000000000
--- a/nx-X11/extras/freetype2/builds/compiler/win-lcc.mk
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# FreeType 2 Win32-LCC specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Command line name
-#
-CC           := lcc
-COMPILER_SEP := $(SEP)
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := obj
-SO := obj
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := lib
-SA := lib
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -Fl
-
-
-# Target flag.
-#
-T := -Fo
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-ifndef CFLAGS
-  CFLAGS := -c -g2 -O
-endif
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-#  LCC is pure ANSI anyway!
-#
-ANSIFLAGS :=
-
-
-# library linking
-#
-#CLEAN_LIBRARY :=
-LINK_LIBRARY = lcclib /out:$(subst /,$(COMPILER_SEP),$@ $(OBJECTS_LIST))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/detect.mk b/nx-X11/extras/freetype2/builds/detect.mk
deleted file mode 100644
index eeb1300bc..000000000
--- a/nx-X11/extras/freetype2/builds/detect.mk
+++ /dev/null
@@ -1,159 +0,0 @@
-#
-# FreeType 2 host platform detection rules
-#
-
-
-# Copyright 1996-2000, 2001, 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# This sub-Makefile is in charge of detecting the current platform.  It sets
-# the following variables:
-#
-#   BUILD_DIR    The configuration and system-specific directory.  Usually
-#                `freetype/builds/$(PLATFORM)' but can be different for
-#                custom builds of the library.
-#
-# The following variables must be defined in system specific `detect.mk'
-# files:
-#
-#   PLATFORM     The detected platform.  This will default to `ansi' if
-#                auto-detection fails.
-#   CONFIG_FILE  The configuration sub-makefile to use.  This usually depends
-#                on the compiler defined in the `CC' environment variable.
-#   DELETE       The shell command used to remove a given file.
-#   COPY         The shell command used to copy one file.
-#   SEP          The platform-specific directory separator.
-#   COMPILER_SEP The separator used in arguments of the compilation tools.
-#   CC           The compiler to use.
-#
-# You need to set the following variable(s) before calling it:
-#
-#   TOP_DIR      The top-most directory in the FreeType library source
-#                hierarchy.  If not defined, it will default to `.'.
-
-# If TOP_DIR is not defined, default it to `.'
-#
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-
-# Set auto-detection default to `ansi' resp. UNIX-like operating systems.
-#
-PLATFORM     := ansi
-DELETE       := $(RM)
-COPY         := cp
-SEP          := /
-
-BUILD_CONFIG := $(TOP_DIR)/builds
-
-# These two assignments must be delayed.
-BUILD_DIR    = $(BUILD_CONFIG)/$(PLATFORM)
-CONFIG_RULES = $(BUILD_DIR)/$(CONFIG_FILE)
-
-# We define the BACKSLASH variable to hold a single back-slash character.
-# This is needed because a line like
-#
-#   SEP := \
-#
-# does not work with GNU Make (the backslash is interpreted as a line
-# continuation).  While a line like
-#
-#   SEP := \\
-#
-# really defines $(SEP) as `\' on Unix, and `\\' on Dos and Windows!
-#
-BACKSLASH := $(strip \ )
-
-# Find all auto-detectable platforms.
-#
-PLATFORMS := $(notdir $(subst /detect.mk,,$(wildcard $(BUILD_CONFIG)/*/detect.mk)))
-.PHONY: $(PLATFORMS) ansi
-
-# Filter out platform specified as setup target.
-#
-PLATFORM := $(firstword $(filter $(MAKECMDGOALS),$(PLATFORMS)))
-
-# If no setup target platform was specified, enable auto-detection/
-# default platform.
-#
-ifeq ($(PLATFORM),)
-  PLATFORM := ansi
-endif
-
-# If the user has explicitly asked for `ansi' on the command line,
-# disable auto-detection.
-#
-ifeq ($(findstring ansi,$(MAKECMDGOALS)),)
-  # Now, include all detection rule files found in the `builds/<system>'
-  # directories.  Note that the calling order of the various `detect.mk'
-  # files isn't predictable.
-  #
-  include $(wildcard $(BUILD_CONFIG)/*/detect.mk)
-endif
-
-# In case no detection rule file was successful, use the default.
-#
-ifndef CONFIG_FILE
-  CONFIG_FILE := ansi.mk
-  setup: std_setup
-  .PHONY: setup
-endif
-
-# The following targets are equivalent, with the exception that they use
-# a slightly different syntax for the `echo' command.
-#
-# std_setup: defined for most (i.e. Unix-like) platforms
-# dos_setup: defined for Dos-ish platforms like Dos, Windows & OS/2
-#
-.PHONY: std_setup dos_setup
-
-std_setup:
-	@echo ""
-	@echo "$(PROJECT_TITLE) build system -- automatic system detection"
-	@echo ""
-	@echo "The following settings are used:"
-	@echo ""
-	@echo "  platform                    $(PLATFORM)"
-	@echo "  compiler                    $(CC)"
-	@echo "  configuration directory     $(BUILD_DIR)"
-	@echo "  configuration rules         $(CONFIG_RULES)"
-	@echo ""
-	@echo "If this does not correspond to your system or settings please remove the file"
-	@echo "\`$(CONFIG_MK)' from this directory then read the INSTALL file for help."
-	@echo ""
-	@echo "Otherwise, simply type \`$(MAKE)' again to build the library,"
-	@echo "or \`$(MAKE) refdoc' to build the API reference (the latter needs python)."
-	@echo ""
-	@$(COPY) $(CONFIG_RULES) $(CONFIG_MK)
-
-
-# Special case for Dos, Windows, OS/2, where echo "" doesn't work correctly!
-#
-dos_setup:
-	@type builds\newline
-	@echo $(PROJECT_TITLE) build system -- automatic system detection
-	@type builds\newline
-	@echo The following settings are used:
-	@type builds\newline
-	@echo   platform���������������������$(PLATFORM)
-	@echo   compiler���������������������$(CC)
-	@echo   configuration directory������$(subst /,\,$(BUILD_DIR))
-	@echo   configuration rules����������$(subst /,\,$(CONFIG_RULES))
-	@type builds\newline
-	@echo If this does not correspond to your system or settings please remove the file
-	@echo '$(CONFIG_MK)' from this directory then read the INSTALL file for help.
-	@type builds\newline
-	@echo Otherwise, simply type 'make' again to build the library.
-	@echo or 'make refdoc' to build the API reference (the latter needs python).
-	@type builds\newline
-	@$(COPY) $(subst /,\,$(CONFIG_RULES) $(CONFIG_MK)) > nul
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/dos/detect.mk b/nx-X11/extras/freetype2/builds/dos/detect.mk
deleted file mode 100644
index b80686ce5..000000000
--- a/nx-X11/extras/freetype2/builds/dos/detect.mk
+++ /dev/null
@@ -1,117 +0,0 @@
-#
-# FreeType 2 configuration file to detect a DOS host platform.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-.PHONY: setup
-
-
-ifeq ($(PLATFORM),ansi)
-
-  # Test for DJGPP by checking the DJGPP environment variable, which must be
-  # set in order to use the system (ie. it will always be present when the
-  # `make' utility is run).
-  #
-  # We test for the COMSPEC environment variable, then run the `ver'
-  # command-line program to see if its output contains the word `Dos' or
-  # `DOS'.
-  #
-  # If this is true, we are running a Dos-ish platform (or an emulation).
-  #
-  ifdef DJGPP
-    PLATFORM := dos
-  else
-    ifdef COMSPEC
-      is_dos := $(findstring DOS,$(subst Dos,DOS,$(shell ver)))
-
-      # We try to recognize a Dos session under OS/2.  The `ver' command
-      # returns `Operating System/2 ...' there, so `is_dos' should be empty.
-      #
-      # To recognize a Dos session under OS/2, we check COMSPEC for the
-      # substring `MDOS\COMMAND'
-      #
-      ifeq ($(is_dos),)
-        is_dos := $(findstring MDOS\COMMAND,$(COMSPEC))
-      endif
-    endif # test COMSPEC
-
-    ifneq ($(is_dos),)
-
-      PLATFORM := dos
-
-    endif # test Dos
-  endif # test DJGPP
-endif # test PLATFORM ansi
-
-ifeq ($(PLATFORM),dos)
-
-  # Use DJGPP (i.e. gcc) by default.
-  #
-  CONFIG_FILE := dos-gcc.mk
-  ifndef CC
-    CC        := gcc
-  endif
-
-  # additionally, we provide hooks for various other compilers
-  #
-  ifneq ($(findstring emx,$(MAKECMDGOALS)),)        # EMX gcc
-    CONFIG_FILE := dos-emx.mk
-    CC          := gcc
-    emx: setup
-    .PHONY: emx
-  endif
-
-  ifneq ($(findstring turboc,$(MAKECMDGOALS)),)     # Turbo C
-    CONFIG_FILE := dos-tcc.mk
-    CC          := tcc
-    turboc: setup
-    .PHONY: turboc
-  endif
-
-  ifneq ($(findstring watcom,$(MAKECMDGOALS)),)     # Watcom C/C++
-    CONFIG_FILE := dos-wat.mk
-    CC          := wcc386
-    watcom: setup
-    .PHONY: watcom
-  endif
-
-  ifneq ($(findstring borlandc,$(MAKECMDGOALS)),)   # Borland C/C++ 32-bit
-    CONFIG_FILE := dos-bcc.mk
-    CC          := bcc32
-    borlandc: setup
-    .PHONY: borlandc
-  endif
-
-  ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16-bit
-    CONFIG_FILE := dos-bcc.mk
-    CC          := bcc
-    borlandc16: setup
-    .PHONY: borlandc16
-  endif
-
-  ifneq ($(findstring bash,$(SHELL)),)              # check for bash
-    SEP    := /
-    DELETE := rm
-    COPY   := cp
-    setup: std_setup
-  else
-    SEP    := $(BACKSLASH)
-    DELETE := del
-    COPY   := copy
-    setup: dos_setup
-  endif
-
-endif     # test PLATFORM dos
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/dos/dos-def.mk b/nx-X11/extras/freetype2/builds/dos/dos-def.mk
deleted file mode 100644
index d6bc72e7b..000000000
--- a/nx-X11/extras/freetype2/builds/dos/dos-def.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# FreeType 2 DOS specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-DELETE    := del
-SEP       := $(strip \ )
-BUILD_DIR := $(TOP_DIR)/builds/dos
-PLATFORM  := dos
-
-
-# The directory where all object files are placed.
-#
-# This lets you build the library in your own directory with something like
-#
-#   set TOP_DIR=.../path/to/freetype2/top/dir...
-#   set OBJ_DIR=.../path/to/obj/dir
-#   make -f %TOP_DIR%/Makefile setup [options]
-#   make -f %TOP_DIR%/Makefile
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(TOP_DIR)/objs
-endif
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-# The name of the final library file.  Note that the DOS-specific Makefile
-# uses a shorter (8.3) name.
-#
-LIBRARY := $(PROJECT)
-
-
-# The NO_OUTPUT macro is used to ignore the output of commands.
-#
-NO_OUTPUT = > nul
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/dos/dos-emx.mk b/nx-X11/extras/freetype2/builds/dos/dos-emx.mk
deleted file mode 100644
index 6ea8f6d87..000000000
--- a/nx-X11/extras/freetype2/builds/dos/dos-emx.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# FreeType 2 configuration rules for the EMX gcc compiler
-#
-
-
-# Copyright 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/dos/dos-def.mk
-include $(TOP_DIR)/builds/compiler/emx.mk
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/dos/dos-gcc.mk b/nx-X11/extras/freetype2/builds/dos/dos-gcc.mk
deleted file mode 100644
index e14255c1f..000000000
--- a/nx-X11/extras/freetype2/builds/dos/dos-gcc.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# FreeType 2 configuration rules for the DJGPP compiler
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/dos/dos-def.mk
-include $(TOP_DIR)/builds/compiler/gcc.mk
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/dos/dos-wat.mk b/nx-X11/extras/freetype2/builds/dos/dos-wat.mk
deleted file mode 100644
index 0c39e4979..000000000
--- a/nx-X11/extras/freetype2/builds/dos/dos-wat.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-#
-# FreeType 2 configuration rules for the Watcom C/C++ compiler
-#
-
-
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-include $(TOP_DIR)/builds/dos/dos-def.mk
-include $(TOP_DIR)/builds/compiler/watcom.mk
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/freetype.mk b/nx-X11/extras/freetype2/builds/freetype.mk
deleted file mode 100644
index 00325d6fc..000000000
--- a/nx-X11/extras/freetype2/builds/freetype.mk
+++ /dev/null
@@ -1,312 +0,0 @@
-#
-# FreeType 2 library sub-Makefile
-#
-
-
-# Copyright 1996-2000, 2001, 2002, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# DO NOT INVOKE THIS MAKEFILE DIRECTLY!  IT IS MEANT TO BE INCLUDED BY
-# OTHER MAKEFILES.
-
-
-# The following variables (set by other Makefile components, in the
-# environment, or on the command line) are used:
-#
-#   BUILD_DIR      The architecture dependent directory,
-#                  e.g. `$(TOP_DIR)/builds/unix'.
-#
-#   OBJ_DIR        The directory in which object files are created.
-#
-#   LIB_DIR        The directory in which the library is created.
-#
-#   DOC_DIR        The directory in which the API reference is created.
-#
-#   INCLUDES       A list of directories to be included additionally.
-#                  Usually empty.
-#
-#   CFLAGS         Compilation flags.  This overrides the default settings
-#                  in the platform-specific configuration files.
-#
-#   FTSYS_SRC      If set, its value is used as the name of a replacement
-#                  file for `src/base/ftsystem.c'.
-#
-#   FTDEBUG_SRC    If set, its value is used as the name of a replacement
-#                  file for `src/base/ftdebug.c'.  [For a normal build, this
-#                  file does nothing.]
-#
-#   FT_MODULE_LIST The file which contains the list of modules for the
-#                  current build.  Usually, this is automatically created by
-#                  `modules.mk'.
-#
-#   BASE_OBJ_S
-#   BASE_OBJ_M     A list of base objects (for single object and multiple
-#                  object builds, respectively).  Set up in
-#                  `src/base/rules.mk'.
-#
-#   BASE_EXT_OBJ   A list of base extension objects.  Set up in
-#                  `src/base/rules.mk'.
-#
-#   DRV_OBJ_S
-#   DRV_OBJ_M      A list of driver objects (for single object and multiple
-#                  object builds, respectively).  Set up cumulatively in
-#                  `src/<driver>/rules.mk'.
-#
-#   CLEAN
-#   DISTCLEAN      The sub-makefiles can append additional stuff to these two
-#                  variables which is to be removed for the `clean' resp.
-#                  `distclean' target.
-#
-#   TOP_DIR, SEP,
-#   COMPILER_SEP,
-#   LIBRARY, CC,
-#   A, I, O, T     Check `config.mk' for details.
-
-
-# The targets `objects' and `library' are defined at the end of this
-# Makefile after all other rules have been included.
-#
-.PHONY: single multi objects library refdoc
-
-# default target -- build single objects and library
-#
-single: objects library
-
-# `multi' target -- build multiple objects and library
-#
-multi: objects library
-
-
-# The FreeType source directory, usually `./src'.
-#
-SRC_DIR := $(TOP_DIR)/src
-
-# The directory where the base layer components are placed, usually
-# `./src/base'.
-#
-BASE_DIR := $(SRC_DIR)/base
-
-# Other derived directories.
-#
-PUBLIC_DIR   := $(TOP_DIR)/include/freetype
-INTERNAL_DIR := $(PUBLIC_DIR)/internal
-SERVICES_DIR := $(INTERNAL_DIR)/services
-CONFIG_DIR   := $(PUBLIC_DIR)/config
-CACHE_DIR    := $(PUBLIC_DIR)/cache
-
-# The documentation directory.
-#
-ifndef DOC_DIR
-  DOC_DIR := $(TOP_DIR)/docs/reference
-endif
-
-# The final name of the library file.
-#
-PROJECT_LIBRARY := $(LIB_DIR)/$(LIBRARY).$A
-
-
-# include paths
-#
-# IMPORTANT NOTE: The architecture-dependent directory must ALWAYS be placed
-#                 in front of the include list.  Porters are then able to
-#                 put their own version of some of the FreeType components
-#                 in the `freetype/builds/<system>' directory, as these
-#                 files will override the default sources.
-#
-INCLUDES := $(subst /,$(COMPILER_SEP),$(OBJ_DIR) $(BUILD_DIR) \
-                                      $(TOP_DIR)/include)
-
-INCLUDE_FLAGS = $(INCLUDES:%=$I%)
-
-
-# C flags used for the compilation of an object file.  This must include at
-# least the paths for the `base' and `builds/<system>' directories;
-# debug/optimization/warning flags + ansi compliance if needed.
-#
-# $(INCLUDE_FLAGS) should come before $(CFLAGS) to avoid problems with
-# old FreeType versions.
-#
-FT_CFLAGS  = $(INCLUDE_FLAGS) $(CFLAGS)
-FT_CC      = $(CC) $(FT_CFLAGS)
-FT_COMPILE = $(CC) $(ANSIFLAGS) $(FT_CFLAGS)
-
-
-# Include the `modules' rules file.
-#
-include $(TOP_DIR)/builds/modules.mk
-
-
-# Initialize the list of objects.
-#
-OBJECTS_LIST :=
-
-
-# Define $(PUBLIC_H) as the list of all public header files located in
-# `$(TOP_DIR)/include/freetype'.  $(BASE_H), $(CACHE_H), and $(CONFIG_H) are
-# defined similarly.
-#
-# This is used to simplify the dependency rules -- if one of these files
-# changes, the whole library is recompiled.
-#
-PUBLIC_H   := $(wildcard $(PUBLIC_DIR)/*.h)
-BASE_H     := $(wildcard $(INTERNAL_DIR)/*.h) \
-              $(wildcard $(SERVICES_DIR)/*.h)
-CONFIG_H   := $(wildcard $(CONFIG_DIR)/*.h) \
-              $(wildcard $(BUILD_DIR)/freetype/config/*.h)
-CACHE_H    := $(wildcard $(CACHE_DIR)/*.h)
-DEVEL_H    := $(wildcard $(TOP_DIR)/devel/*.h)
-
-FREETYPE_H := $(PUBLIC_H) $(BASE_H) $(CONFIG_H) $(CACHE_H) $(DEVEL_H)
-
-
-# ftsystem component
-#
-ifndef FTSYS_SRC
-  FTSYS_SRC = $(BASE_DIR)/ftsystem.c
-endif
-
-FTSYS_OBJ = $(OBJ_DIR)/ftsystem.$O
-
-OBJECTS_LIST += $(FTSYS_OBJ)
-
-$(FTSYS_OBJ): $(FTSYS_SRC) $(FREETYPE_H)
-	$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# ftdebug component
-#
-ifndef FTDEBUG_SRC
-  FTDEBUG_SRC = $(BASE_DIR)/ftdebug.c
-endif
-
-FTDEBUG_OBJ = $(OBJ_DIR)/ftdebug.$O
-
-OBJECTS_LIST += $(FTDEBUG_OBJ)
-
-$(FTDEBUG_OBJ): $(FTDEBUG_SRC) $(FREETYPE_H)
-	$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# Include all rule files from FreeType components.
-#
-include $(wildcard $(SRC_DIR)/*/rules.mk)
-
-
-# ftinit component
-#
-#   The C source `ftinit.c' contains the FreeType initialization routines.
-#   It is able to automatically register one or more drivers when the API
-#   function FT_Init_FreeType() is called.
-#
-#   The set of initial drivers is determined by the driver Makefiles
-#   includes above.  Each driver Makefile updates the FTINIT_xxx lists
-#   which contain additional include paths and macros used to compile the
-#   single `ftinit.c' source.
-#
-FTINIT_SRC := $(BASE_DIR)/ftinit.c
-FTINIT_OBJ := $(OBJ_DIR)/ftinit.$O
-
-OBJECTS_LIST += $(FTINIT_OBJ)
-
-$(FTINIT_OBJ): $(FTINIT_SRC) $(FREETYPE_H) $(FT_MODULE_LIST)
-	$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# All FreeType library objects
-#
-#   By default, we include the base layer extensions.  These could be
-#   omitted on builds which do not want them.
-#
-OBJ_M = $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
-OBJ_S = $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
-
-
-# The target `multi' on the Make command line indicates that we want to
-# compile each source file independently.
-#
-# Otherwise, each module/driver is compiled in a single object file through
-# source file inclusion (see `src/base/ftbase.c' or
-# `src/truetype/truetype.c' for examples).
-#
-BASE_OBJECTS := $(OBJECTS_LIST)
-
-ifneq ($(findstring multi,$(MAKECMDGOALS)),)
-  OBJECTS_LIST += $(OBJ_M)
-else
-  OBJECTS_LIST += $(OBJ_S)
-endif
-
-objects: $(OBJECTS_LIST)
-
-library: $(PROJECT_LIBRARY)
-
-.c.$O:
-	$(FT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-refdoc:
-	python $(SRC_DIR)/tools/docmaker/docmaker.py \
-               --prefix=ft2                          \
-               --title=FreeType-2.1.9                \
-               --output=$(DOC_DIR)                   \
-               $(PUBLIC_DIR)/*.h                     \
-               $(PUBLIC_DIR)/config/*.h              \
-               $(PUBLIC_DIR)/cache/*.h
-
-
-.PHONY: clean_project_std distclean_project_std
-
-# Standard cleaning and distclean rules.  These are not accepted
-# on all systems though.
-#
-clean_project_std:
-	-$(DELETE) $(BASE_OBJECTS) $(OBJ_M) $(OBJ_S) $(CLEAN)
-
-distclean_project_std: clean_project_std
-	-$(DELETE) $(PROJECT_LIBRARY)
-	-$(DELETE) *.orig *~ core *.core $(DISTCLEAN)
-
-
-.PHONY: clean_project_dos distclean_project_dos
-
-# The Dos command shell does not support very long list of arguments, so
-# we are stuck with wildcards.
-#
-# Don't break the command lines with \; this prevents the "del" command from
-# working correctly on Win9x.
-#
-clean_project_dos:
-	-$(DELETE) $(subst /,\,$(OBJ)/*.$O $(CLEAN) $(NO_OUTPUT))
-
-distclean_project_dos: clean_project_dos
-	-$(DELETE) $(subst /,\,$(PROJECT_LIBRARY) $(DISTCLEAN) $(NO_OUTPUT))
-
-
-.PHONY: remove_config_mk
-
-# Remove configuration file (used for distclean).
-#
-remove_config_mk:
-	-$(DELETE) $(subst /,$(SEP),$(CONFIG_MK) $(NO_OUTPUT))
-
-
-.PHONY: clean distclean
-
-# The `config.mk' file must define `clean_freetype' and
-# `distclean_freetype'.  Implementations may use to relay these to either
-# the `std' or `dos' versions from above, or simply provide their own
-# implementation.
-#
-clean: clean_project
-distclean: distclean_project remove_config_mk
-	-$(DELETE) $(subst /,$(SEP),$(DOC_DIR)/*.html $(NO_OUTPUT))
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/link_dos.mk b/nx-X11/extras/freetype2/builds/link_dos.mk
deleted file mode 100644
index c37ac7e52..000000000
--- a/nx-X11/extras/freetype2/builds/link_dos.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-#  Link instructions for Dos-like systems (Dos, Win32, OS/2)
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifdef BUILD_PROJECT
-
-  .PHONY: clean_project distclean_project
-
-  # Now include the main sub-makefile.  It contains all the rules used to
-  # build the library with the previous variables defined.
-  #
-  include $(TOP_DIR)/builds/$(PROJECT).mk
-
-  # The cleanup targets.
-  #
-  clean_project: clean_project_dos
-  distclean_project: distclean_project_dos
-
-  # This final rule is used to link all object files into a single library.
-  # this is compiler-specific
-  #
-  $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-    ifdef CLEAN_LIBRARY
-	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
-    endif
-	  $(LINK_LIBRARY)
-
-endif
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/link_std.mk b/nx-X11/extras/freetype2/builds/link_std.mk
deleted file mode 100644
index 0bd2163bb..000000000
--- a/nx-X11/extras/freetype2/builds/link_std.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-#  Link instructions for standard systems
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifdef BUILD_PROJECT
-
-  .PHONY: clean_project distclean_project
-
-  # Now include the main sub-makefile.  It contains all the rules used to
-  # build the library with the previous variables defined.
-  #
-  include $(TOP_DIR)/builds/$(PROJECT).mk
-
-  # The cleanup targets.
-  #
-  clean_project: clean_project_std
-  distclean_project: distclean_project_std
-
-  # This final rule is used to link all object files into a single library.
-  # this is compiler-specific
-  #
-  $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-    ifdef CLEAN_LIBRARY
-	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
-    endif
-	  $(LINK_LIBRARY)
-
-endif
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/mac/README b/nx-X11/extras/freetype2/builds/mac/README
deleted file mode 100644
index f933c56cc..000000000
--- a/nx-X11/extras/freetype2/builds/mac/README
+++ /dev/null
@@ -1,14 +0,0 @@
-This folder contains
-
-  . a Makefile for Apple MPW build environment (currently PPC only)
-
-  . supporting code and CodeWarrior Pro 7 project files to build the
-    FreeType library.
-
-Notes:
-The library will be built as a static lib in the obj/ folder.
-
-Current maintainer: Leonard Rosenthol, <leonardr@lazerware.com>
-Originally prepared by Just van Rossum, <just@letterror.com>
-
-This directory is now actively maintained as part of the FreeType Project.
diff --git a/nx-X11/extras/freetype2/builds/mac/freetype.make b/nx-X11/extras/freetype2/builds/mac/freetype.make
deleted file mode 100644
index 085c2600f..000000000
--- a/nx-X11/extras/freetype2/builds/mac/freetype.make
+++ /dev/null
@@ -1,109 +0,0 @@
-# Makefile for Apple MPW build environment (currently PPC only)
-
-MAKEFILE     = Makefile
-�MondoBuild� = #{MAKEFILE}  # Make blank to avoid rebuilds when makefile is modified
-Sym�PPC      = #-sym on
-ObjDir�PPC   = :obj:
-
-CFLAGS  = -i :include -i :src -includes unix {Sym�PPC}
-
-OBJS  = �
-		"{ObjDir�PPC}ftsystem.c.x" �
-		"{ObjDir�PPC}ftdebug.c.x" �
-		"{ObjDir�PPC}ftinit.c.x" �
-		"{ObjDir�PPC}ftbase.c.x" �
-		"{ObjDir�PPC}ftglyph.c.x" �
-		"{ObjDir�PPC}ftmm.c.x" �
-		"{ObjDir�PPC}ftbbox.c.x" �
-		"{ObjDir�PPC}autohint.c.x" �
-		"{ObjDir�PPC}ftcache.c.x" �
-		"{ObjDir�PPC}cff.c.x" �
-		"{ObjDir�PPC}type1cid.c.x" �
-		"{ObjDir�PPC}pcf.c.x" �
-		"{ObjDir�PPC}psaux.c.x" �
-		"{ObjDir�PPC}psmodule.c.x" �
-		"{ObjDir�PPC}raster.c.x" �
-		"{ObjDir�PPC}sfnt.c.x" �
-		"{ObjDir�PPC}smooth.c.x" �
-		"{ObjDir�PPC}truetype.c.x" �
-		"{ObjDir�PPC}type1.c.x" �
-		"{ObjDir�PPC}winfnt.c.x" �
-		"{ObjDir�PPC}ftmac.c.x" �
-
-# Main target - build a library
-freetype �� {�MondoBuild�} directories freetype.o
-
-# This is used to build the library
-freetype.o �� {�MondoBuild�} {OBJS}
-	PPCLink �
-		-o :lib:{Targ} {Sym�PPC} �
-		{OBJS} -c '????' -xm l
-
-# This is used to create the directories needed for build
-directories �
-	if !`Exists obj` ; NewFolder obj ; end
-	if !`Exists lib` ; NewFolder lib ; end
-
-
-"{ObjDir�PPC}ftsystem.c.x" � {�MondoBuild�} ":src:base:ftsystem.c"
-	{PPCC} ":src:base:ftsystem.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftdebug.c.x" � {�MondoBuild�} ":src:base:ftdebug.c"
-	{PPCC} ":src:base:ftdebug.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftinit.c.x" � {�MondoBuild�} ":src:base:ftinit.c"
-	{PPCC} ":src:base:ftinit.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftbase.c.x" � {�MondoBuild�} ":src:base:ftbase.c"
-	{PPCC} ":src:base:ftbase.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftglyph.c.x" � {�MondoBuild�} ":src:base:ftglyph.c"
-	{PPCC} ":src:base:ftglyph.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftmm.c.x" � {�MondoBuild�} ":src:base:ftmm.c"
-	{PPCC} ":src:base:ftmm.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftbbox.c.x" � {�MondoBuild�} ":src:base:ftbbox.c"
-	{PPCC} ":src:base:ftbbox.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}autohint.c.x" � {�MondoBuild�} ":src:autohint:autohint.c"
-	{PPCC} ":src:autohint:autohint.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftcache.c.x" � {�MondoBuild�} ":src:cache:ftcache.c"
-	{PPCC} ":src:cache:ftcache.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}cff.c.x" � {�MondoBuild�} ":src:cff:cff.c"
-	{PPCC} ":src:cff:cff.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}type1cid.c.x" � {�MondoBuild�} ":src:cid:type1cid.c"
-	{PPCC} ":src:cid:type1cid.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}pcf.c.x" � {�MondoBuild�} ":src:pcf:pcf.c"
-	{PPCC} ":src:pcf:pcf.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}psaux.c.x" � {�MondoBuild�} ":src:psaux:psaux.c"
-	{PPCC} ":src:psaux:psaux.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}psmodule.c.x" � {�MondoBuild�} ":src:psnames:psmodule.c"
-	{PPCC} ":src:psnames:psmodule.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}raster.c.x" � {�MondoBuild�} ":src:raster:raster.c"
-	{PPCC} ":src:raster:raster.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}sfnt.c.x" � {�MondoBuild�} ":src:sfnt:sfnt.c"
-	{PPCC} ":src:sfnt:sfnt.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}smooth.c.x" � {�MondoBuild�} ":src:smooth:smooth.c"
-	{PPCC} ":src:smooth:smooth.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}truetype.c.x" � {�MondoBuild�} ":src:truetype:truetype.c"
-	{PPCC} ":src:truetype:truetype.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}type1.c.x" � {�MondoBuild�} ":src:type1:type1.c"
-	{PPCC} ":src:type1:type1.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}winfnt.c.x" � {�MondoBuild�} ":src:winfonts:winfnt.c"
-	{PPCC} ":src:winfonts:winfnt.c" -o {Targ} {CFLAGS}
-
-"{ObjDir�PPC}ftmac.c.x" � {�MondoBuild�} ":src:base:ftmac.c"
-	{PPCC} ":src:base:ftmac.c" -o {Targ} {CFLAGS}
\ No newline at end of file
diff --git a/nx-X11/extras/freetype2/builds/mac/ftlib.prj b/nx-X11/extras/freetype2/builds/mac/ftlib.prj
deleted file mode 100644
index df8bd2b91..000000000
Binary files a/nx-X11/extras/freetype2/builds/mac/ftlib.prj and /dev/null differ
diff --git a/nx-X11/extras/freetype2/builds/modules.mk b/nx-X11/extras/freetype2/builds/modules.mk
deleted file mode 100644
index 5102dc060..000000000
--- a/nx-X11/extras/freetype2/builds/modules.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# FreeType 2 modules sub-Makefile
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# DO NOT INVOKE THIS MAKEFILE DIRECTLY!  IT IS MEANT TO BE INCLUDED BY
-# OTHER MAKEFILES.
-
-
-# This file is in charge of handling the generation of the modules list
-# file.
-
-.PHONY: make_module_list clean_module_list
-
-# MODULE_LIST, as its name suggests, indicates where the modules list
-# resides.  For now, it is in `include/freetype/config/ftmodule.h'.
-#
-ifndef MODULE_LIST
-  MODULE_LIST := $(TOP_DIR)/include/$(PROJECT)/config/ftmodule.h
-endif
-
-# To build the modules list, we invoke the `make_module_list' target.
-#
-# This rule is commented out by default since FreeType comes already with
-# an ftmodule.h file.
-#
-#$(MODULE_LIST): make_module_list
-
-
-ifneq ($(findstring $(PLATFORM),dos win32 win16 os2),)
-  OPEN_MODULE   := @echo$(space)
-  CLOSE_MODULE  :=  >> $(subst /,\,$(MODULE_LIST))
-  REMOVE_MODULE := @-$(DELETE) $(subst /,\,$(MODULE_LIST))
-else
-  OPEN_MODULE   := @echo "
-  CLOSE_MODULE  := " >> $(MODULE_LIST)
-  REMOVE_MODULE := @-$(DELETE) $(MODULE_LIST)
-endif
-
-
-# Before the modules list file can be generated, we must remove the file in
-# order to `clean' the list.
-#
-clean_module_list:
-	$(REMOVE_MODULE)
-	@-echo Regenerating modules list in $(MODULE_LIST)...
-
-make_module_list: clean_module_list
-	@echo done.
-
-# $(OPEN_DRIVER) & $(CLOSE_DRIVER) are used to specify a given font driver
-# in the `module.mk' rules file.
-#
-OPEN_DRIVER  := $(OPEN_MODULE)FT_USE_MODULE(
-CLOSE_DRIVER := )$(CLOSE_MODULE)
-
-ECHO_DRIVER      := @echo "* module:$(space)
-ECHO_DRIVER_DESC := (
-ECHO_DRIVER_DONE := )"
-
-# Each `module.mk' in the `src' sub-dirs is used to add one rule to the
-# target `make_module_list'.
-#
-include $(wildcard $(TOP_DIR)/src/*/module.mk)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/newline b/nx-X11/extras/freetype2/builds/newline
deleted file mode 100644
index 8b1378917..000000000
--- a/nx-X11/extras/freetype2/builds/newline
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/nx-X11/extras/freetype2/builds/os2/detect.mk b/nx-X11/extras/freetype2/builds/os2/detect.mk
deleted file mode 100644
index 97e4bc972..000000000
--- a/nx-X11/extras/freetype2/builds/os2/detect.mk
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# FreeType 2 configuration file to detect an OS/2 host platform.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-.PHONY: setup
-
-
-ifeq ($(PLATFORM),ansi)
-
-  ifdef OS2_SHELL
-
-    PLATFORM := os2
-
-  endif # test OS2_SHELL
-endif
-
-ifeq ($(PLATFORM),os2)
-
-  COPY   := copy
-  DELETE := del
-  SEP    := $(BACKSLASH)
-
-  # gcc-emx by default
-  CONFIG_FILE := os2-gcc.mk
-
-  # additionally, we provide hooks for various other compilers
-  #
-  ifneq ($(findstring visualage,$(MAKECMDGOALS)),)     # Visual Age C++
-    CONFIG_FILE := os2-icc.mk
-    CC          := icc
-    visualage: setup
-    .PHONY: visualage
-  endif
-
-  ifneq ($(findstring watcom,$(MAKECMDGOALS)),)        # Watcom C/C++
-    CONFIG_FILE := os2-wat.mk
-    CC          := wcc386
-    watcom: setup
-    .PHONY: watcom
-  endif
-
-  ifneq ($(findstring borlandc,$(MAKECMDGOALS)),)      # Borland C++ 32-bit
-    CONFIG_FILE := os2-bcc.mk
-    CC          := bcc32
-    borlandc: setup
-    .PHONY: borlandc
-  endif
-
-  ifneq ($(findstring devel,$(MAKECMDGOALS)),)         # development target
-    CONFIG_FILE := os2-dev.mk
-    CC          := gcc
-    devel: setup
-    .PHONY: devel
-  endif
-
-  setup: dos_setup
-
-endif   # test PLATFORM os2
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/os2/os2-def.mk b/nx-X11/extras/freetype2/builds/os2/os2-def.mk
deleted file mode 100644
index 26bf6a913..000000000
--- a/nx-X11/extras/freetype2/builds/os2/os2-def.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# FreeType 2 OS/2 specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-DELETE    := del
-SEP       := $(strip \ )
-BUILD_DIR := $(TOP_DIR)/builds/os2
-PLATFORM  := os2
-
-
-# The directory where all object files are placed.
-#
-# This lets you build the library in your own directory with something like
-#
-#   set TOP_DIR=.../path/to/freetype2/top/dir...
-#   set OBJ_DIR=.../path/to/obj/dir
-#   make -f %TOP_DIR%/Makefile setup [options]
-#   make -f %TOP_DIR%/Makefile
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(TOP_DIR)/objs
-endif
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-# The name of the final library file.  Note that the DOS-specific Makefile
-# uses a shorter (8.3) name.
-#
-LIBRARY := $(PROJECT)
-
-
-# The NO_OUTPUT macro is used to ignore the output of commands.
-#
-NO_OUTPUT = 2> nul
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/os2/os2-dev.mk b/nx-X11/extras/freetype2/builds/os2/os2-dev.mk
deleted file mode 100644
index 96890fa0b..000000000
--- a/nx-X11/extras/freetype2/builds/os2/os2-dev.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# FreeType 2 configuration rules for OS/2 + GCC
-#
-#   Development version without optimizations.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-
-include $(TOP_DIR)/builds/os2/os2-def.mk
-BUILD_DIR := $(TOP_DIR)/devel
-
-include $(TOP_DIR)/builds/compiler/gcc-dev.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/os2/os2-gcc.mk b/nx-X11/extras/freetype2/builds/os2/os2-gcc.mk
deleted file mode 100644
index 446073e4f..000000000
--- a/nx-X11/extras/freetype2/builds/os2/os2-gcc.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# FreeType 2 configuration rules for the OS/2 + gcc
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# include OS/2-specific definitions
-include $(TOP_DIR)/builds/os2/os2-def.mk
-
-# include gcc-specific definitions
-include $(TOP_DIR)/builds/compiler/gcc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/toplevel.mk b/nx-X11/extras/freetype2/builds/toplevel.mk
deleted file mode 100644
index 6ee3818df..000000000
--- a/nx-X11/extras/freetype2/builds/toplevel.mk
+++ /dev/null
@@ -1,139 +0,0 @@
-#
-# FreeType build system -- top-level sub-Makefile
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# This file is designed for GNU Make, do not use it with another Make tool!
-#
-# It works as follows:
-#
-# - When invoked for the first time, this Makefile will include the rules
-#   found in `PROJECT/builds/detect.mk'.  They are in charge of detecting
-#   the current platform.
-#
-#   A summary of the detection will be displayed, and the file `config.mk'
-#   will be created in the current directory.
-#
-# - When invoked later, this Makefile will include the rules found in
-#   `config.mk'.  This sub-Makefile will define some system-specific
-#   variables (like compiler, compilation flags, object suffix, etc.), then
-#   include the rules found in `PROJECT/builds/PROJECT.mk', used to build
-#   the library.
-#
-# See the comments in `builds/detect.mk' and `builds/PROJECT.mk' for more
-# details on host platform detection and library builds.
-
-
-.PHONY: all setup distclean modules
-
-# The `space' variable is used to avoid trailing spaces in defining the
-# `T' variable later.
-#
-empty :=
-space := $(empty) $(empty)
-
-
-ifndef CONFIG_MK
-  CONFIG_MK := config.mk
-endif
-
-# If no configuration sub-makefile is present, or if `setup' is the target
-# to be built, run the auto-detection rules to figure out which
-# configuration rules file to use.
-#
-# Note that the configuration file is put in the current directory, which is
-# not necessarily $(TOP_DIR).
-
-# If `config.mk' is not present, set `check_platform'.
-#
-ifeq ($(wildcard $(CONFIG_MK)),)
-  check_platform := 1
-endif
-
-# If `setup' is one of the targets requested, set `check_platform'.
-#
-ifneq ($(findstring setup,$(MAKECMDGOALS)),)
-  check_platform := 1
-endif
-
-# Include the automatic host platform detection rules when we need to
-# check the platform.
-#
-ifdef check_platform
-
-  # This is the first rule `make' sees.
-  #
-  all: setup
-
-  ifdef USE_MODULES
-    # If the module list $(MODULE_LIST) file is not present, generate it.
-    #
-    #modules: make_module_list setup
-  endif
-
-  include $(TOP_DIR)/builds/detect.mk
-
-  ifdef USE_MODULES
-    include $(TOP_DIR)/builds/modules.mk
-
-    ifeq ($(wildcard $(MODULE_LIST)),)
-      setup: make_module_list
-    endif
-  endif
-
-  # This rule makes sense for Unix only to remove files created by a run
-  # of the configure script which hasn't been successful (so that no
-  # `config.mk' has been created).  It uses the built-in $(RM) command of
-  # GNU make.  Similarly, `nul' is created if e.g. `make setup win32' has
-  # been erroneously used.
-  #
-  # note: This test is duplicated in "builds/toplevel.mk".
-  #
-  is_unix := $(strip $(wildcard /sbin/init) \
-                     $(wildcard /usr/sbin/init) \
-                     $(wildcard /hurd/auth))
-  ifneq ($(is_unix),)
-
-    distclean:
-	  $(RM) builds/unix/config.cache
-	  $(RM) builds/unix/config.log
-	  $(RM) builds/unix/config.status
-	  $(RM) builds/unix/unix-def.mk
-	  $(RM) builds/unix/unix-cc.mk
-	  $(RM) builds/unix/freetype2.pc
-	  $(RM) nul
-
-  endif # test is_unix
-
-  # IMPORTANT:
-  #
-  # `setup' must be defined by the host platform detection rules to create
-  # the `config.mk' file in the current directory.
-
-else
-
-  # A configuration sub-Makefile is present -- simply run it.
-  #
-  all: single
-
-  ifdef USE_MODULES
-    modules: make_module_list
-  endif
-
-  BUILD_PROJECT := yes
-  include $(CONFIG_MK)
-
-endif # test check_platform
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/.cvsignore b/nx-X11/extras/freetype2/builds/unix/.cvsignore
deleted file mode 100644
index 808b60059..000000000
--- a/nx-X11/extras/freetype2/builds/unix/.cvsignore
+++ /dev/null
@@ -1,9 +0,0 @@
-unix-def.mk
-unix-cc.mk
-config.status
-config.cache
-config.log
-libtool
-ftconfig.h
-freetype-config
-freetype2.pc
diff --git a/nx-X11/extras/freetype2/builds/unix/aclocal.m4 b/nx-X11/extras/freetype2/builds/unix/aclocal.m4
deleted file mode 100644
index ceda545e2..000000000
--- a/nx-X11/extras/freetype2/builds/unix/aclocal.m4
+++ /dev/null
@@ -1,5922 +0,0 @@
-# generated automatically by aclocal 1.8a -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
-# Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-
-# serial 47 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-	         [m4_ifdef([AC_PROVIDE_$1],
-		           [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-	[AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-	     [define([LT_AC_PROG_GCJ],
-		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AC_HELP_STRING([--with-pic],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "[$]0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*|powerpc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_REQUIRE([LT_AC_PROG_SED])
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-     else
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
-	       = "XX$teststring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# --------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# -------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-    	  lt_cv_dlopen_self_static, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
-        [include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && test "X$CXX" != "Xno"; then
-	  AC_LIBTOOL_LANG_CXX_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-	  AC_LIBTOOL_LANG_F77_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-	  AC_LIBTOOL_LANG_GCJ_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-	AC_LIBTOOL_LANG_RC_CONFIG
-	;;
-
-      *)
-	AC_MSG_ERROR([Unsupported tag name: $tagname])
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 dll's
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-#- set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [AC_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx*)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the pathname to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
-	  break
-	  ;;
-	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
-	  ;;
-	esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided and an installed libltdl is not found, it is
-# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
-# quotes!).  If your package is not flat and you're not using automake,
-# define top_builddir and top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# --------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
-    ;;
-  esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ 	]]" >/dev/null; then :
-  else
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-# Report which librarie types wil actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[[012]])
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    output_verbose_link_cmd='echo'
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-  else
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-  fi
-    ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-	grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-	for ld_flag in $LDFLAGS; do
-	  case $ld_flag in
-	  *-brtl*)
-	    aix_use_runtimelinking=yes
-	    break
-	    ;;
-	  esac
-	done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    _LT_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	else
-	  # We have old collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	shared_flag='-G'
-      else
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag='${wl}-G'
-	else
-	  shared_flag='${wl}-bM:SRE'
-	fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-	# Determine the default libpath from the value encoded in an empty executable.
-	_LT_AC_SYS_LIBPATH_AIX
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	# Warning - without using the other run time loading flags,
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	# Exported symbols can be pulled into shared objects from archives
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	# This is similar to how AIX traditionally builds it's shared libraries.
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	cp $export_symbols $output_objdir/$soname.def;
-      else
-	echo EXPORTS > $output_objdir/$soname.def;
-	cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[[012]])
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    lt_int_apple_cc_single_mod=no
-    output_verbose_link_cmd='echo'
-    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-      lt_int_apple_cc_single_mod=yes
-    fi
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    else
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    fi
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-  else
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-  fi
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      ghcx)
-	# Green Hills C++ Compiler
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  freebsd[12]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd* | kfreebsd*-gnu)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				# but as the default
-				# location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-        ;;
-      ia64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        ;;
-      *)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      aCC)
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	esac
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test $with_gnu_ld = no; then
-	    case "$host_cpu" in
-	    ia64*|hppa*64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-	# SGI C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	# Archives containing C++ object files must be created using
-	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test "$with_gnu_ld" = no; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-	  else
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-	  fi
-	fi
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-	;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	;;
-      icpc)
-	# Intel C++
-	with_gnu_ld=yes
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	;;
-      cxx)
-	# Compaq C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	runpath_var=LD_RUN_PATH
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	  echo "-hidden">> $lib.exp~
-	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
-	  $rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sco*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.x
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      lcc)
-	# Lucid
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.2, 5.x and Centerline C++
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	case $host_os in
-	  solaris2.[0-5] | solaris2.[0-5].*) ;;
-	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	;;
-      gcx)
-	# Green Hills C++ Compiler
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	# The C++ compiler must be used to create the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	;;
-      *)
-	# GNU C++ compiler with Solaris linker
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	  if $CC --version | grep -v '^2\.7' > /dev/null; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  fi
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	fi
-	;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-	# NonStop-UX NCC 3.20
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4* | aix5*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris* | sysv5*)
-  symcode='[[BDRT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68)
-	  # Green Hills C++ Compiler
-	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | kfreebsd*-gnu)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    if test "$host_cpu" != ia64; then
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    case "$host_cpu" in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux*)
-	case $cc_basename in
-	  KCC)
-	    # KAI C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  icpc)
-	    # Intel C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  cxx)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC)
-	    # Rational C++ 2.4.1
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx)
-	    # Digital/Compaq C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      sco*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.x
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc)
-	    # Lucid
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC)
-	    # NonStop-UX NCC 3.20
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      unixware*)
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      ccc*)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ [01].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds"
-      fi
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
-      runpath_var=LD_RUN_PATH
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-	  for ld_flag in $LDFLAGS; do
-  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-  	    aix_use_runtimelinking=yes
-  	    break
-  	  fi
-	  done
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  else
-  	  # We have old collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 _LT_AC_SYS_LIBPATH_AIX
-	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi4*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      case "$host_os" in
-      rhapsody* | darwin1.[[012]])
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[[012]])
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-	;;
-      esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	   ;;
-	 *)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv5*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-])
-AC_MSG_RESULT([$SED])
-])
-
-m4_include([./ft-munmap.m4])
diff --git a/nx-X11/extras/freetype2/builds/unix/config.guess b/nx-X11/extras/freetype2/builds/unix/config.guess
deleted file mode 100644
index 51fab4770..000000000
--- a/nx-X11/extras/freetype2/builds/unix/config.guess
+++ /dev/null
@@ -1,1459 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2004-03-12'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amd64:OpenBSD:*:*)
-	echo x86_64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    cats:OpenBSD:*:*)
-	echo arm-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pegasos:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mipseb-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:MirBSD:*:*)
-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
-    alpha:OSF1:*:*)
-	case $UNAME_RELEASE in
-	*4.0)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-		;;
-	*5.*)
-	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-		;;
-	esac
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Pn.n version is a patched version.
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    Alpha*:OpenVMS:*:*)
-	echo alpha-hp-vms
-	exit 0 ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    *:OS400:*:*)
-        echo powerpc-ibm-os400
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
- 	exit 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    ia64:AIX:*:*)
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit 0 ;;
-    *:AIX:*:[45])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-		if [ -x /usr/bin/getconf ]; then
-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
-EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-		    test -z "$HP_ARCH" && HP_ARCH=hppa
-		fi ;;
-	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
-	then
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-	      -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    *:UNICOS/mp:*:*)
-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    5000:UNIX_System_V:4.*:*)
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	# Determine whether the default compiler uses glibc.
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#if __GLIBC__ >= 2
-	LIBC=gnu
-	#else
-	LIBC=
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	# GNU/KFreeBSD systems have a "k" prefix to indicate we are using
-	# FreeBSD's kernel, but not the complete OS.
-	case ${LIBC} in gnu) kernel_only='k' ;; esac
-	echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    *:GNU/*:*:*)
-	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-	exit 0 ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    cris:Linux:*:*)
-	echo cris-axis-linux-gnu
-	exit 0 ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-	# Look for CPU level
-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
-	esac
-	exit 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
-    sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-	;;
-    i*86:DYNIX/ptx:4*:*)
-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-	# earlier versions are messed up and put the nodename in both
-	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit 0 ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
-    i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
-	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit 0 ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-	i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
-	exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit 0 ;;
-    i*86:*:5:[78]*)
-	case `/bin/uname -X | grep "^Machine"` in
-	    *486*)	     UNAME_MACHINE=i486 ;;
-	    *Pentium)	     UNAME_MACHINE=i586 ;;
-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit 0 ;;
-    i*86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit 0 ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes@openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    *:VOS:*:*)
-	# From Paul.Green@stratus.com.
-	echo hppa1.1-stratus-vos
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
-	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Darwin:*:*)
-	case `uname -p` in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    powerpc) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
-	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit 0 ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit 0 ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
-    *:Plan9:*:*)
-	# "uname -m" is not consistent, so use $cputype instead. 386
-	# is converted to i386 for consistency with other x86
-	# operating systems.
-	if test "$cputype" = "386"; then
-	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
-	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
-	exit 0 ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit 0 ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit 0 ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit 0 ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit 0 ;;
-    SEI:*:*:SEIUX)
-        echo mips-sei-seiux${UNAME_RELEASE}
-	exit 0 ;;
-    *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-	  ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/nx-X11/extras/freetype2/builds/unix/config.sub b/nx-X11/extras/freetype2/builds/unix/config.sub
deleted file mode 100644
index ba331039b..000000000
--- a/nx-X11/extras/freetype2/builds/unix/config.sub
+++ /dev/null
@@ -1,1549 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2004-03-12'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit 0;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-	| c4x | clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| msp430 \
-	| ns16k | ns32k \
-	| openrisc | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic4x | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
-	| bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| msp430-* \
-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-    	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	cr16c)
-		basic_machine=cr16c-unknown
-		os=-elf
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	crx)
-		basic_machine=crx-unknown
-		os=-elf
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	mmix*)
-		basic_machine=mmix-knuth
-		os=-mmixware
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nv1)
-		basic_machine=nv1-cray
-		os=-unicosmp
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	or32 | or32-*)
-		basic_machine=or32-unknown
-		os=-coff
-		;;
-	os400)
-		basic_machine=powerpc-ibm
-		os=-os400
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
-		;;
-	pentium4)
-		basic_machine=i786-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	tpf)
-		basic_machine=s390x-ibm
-		os=-tpf
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
-			;;
-		    *)
-			os=-nto$os
-			;;
-		esac
-		;;
-	-nto-qnx*)
-		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-        -os400*)
-		os=-os400
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-syllable*)
-		os=-syllable
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2 )
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-        -tpf*)
-		os=-tpf
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
-		;;
-	-aros*)
-		os=-aros
-		;;
-	-kaos*)
-		os=-kaos
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	or32-*)
-		os=-coff
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-os400*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-tpf*)
-				vendor=ibm
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/nx-X11/extras/freetype2/builds/unix/configure b/nx-X11/extras/freetype2/builds/unix/configure
deleted file mode 100644
index d08ac9d6a..000000000
--- a/nx-X11/extras/freetype2/builds/unix/configure
+++ /dev/null
@@ -1,22250 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59a.
-#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Find who we are.  Look in the path if we contain no path at all
-# relative or not.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-
-  if test $as_have_required = yes && 	 (eval ":
-(func_return () {
-  (exit \$1)
-}
-func_success () {
-  func_return 0
-}
-func_failure () {
-  func_return 1
-}
-func_ret_success () {
-  return 0
-}
-func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if func_success; then
-  :
-else
-  exitcode=1
-  echo func_failure succeeded.
-fi
-
-if func_failure; then
-  exitcode=1
-  echo func_success failed.
-fi
-
-if func_ret_success; then
-  :
-else
-  exitcode=1
-  echo func_ret_success failed.
-fi
-
-if func_ret_failure; then
-  exitcode=1
-  echo func_ret_failure succeeded.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  as_lineno_3=\`(expr \$as_lineno_1 + 1) 2>/dev/null\`
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\$as_lineno_3\"  = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells="$SHELL"
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-	   done
-       esac
-done
-
-
-      for as_shell in $as_candidate_shells; do
-	 if { $as_shell 2> /dev/null <<\_ASEOF
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-	       as_have_required=yes
-	       if { $as_shell 2> /dev/null <<\_ASEOF
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-:
-(func_return () {
-  (exit $1)
-}
-func_success () {
-  func_return 0
-}
-func_failure () {
-  func_return 1
-}
-func_ret_success () {
-  return 0
-}
-func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if func_success; then
-  :
-else
-  exitcode=1
-  echo func_failure succeeded.
-fi
-
-if func_failure; then
-  exitcode=1
-  echo func_success failed.
-fi
-
-if func_ret_success; then
-  :
-else
-  exitcode=1
-  echo func_ret_success failed.
-fi
-
-if func_ret_failure; then
-  exitcode=1
-  echo func_ret_failure succeeded.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-        $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "func_return () {
-  (exit \$1)
-}
-func_success () {
-  func_return 0
-}
-func_failure () {
-  func_return 1
-}
-func_ret_success () {
-  return 0
-}
-func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if func_success; then
-  :
-else
-  exitcode=1
-  echo func_failure succeeded.
-fi
-
-if func_failure; then
-  exitcode=1
-  echo func_success failed.
-fi
-
-if func_ret_success; then
-  :
-else
-  exitcode=1
-  echo func_ret_success failed.
-fi
-
-if func_ret_failure; then
-  exitcode=1
-  echo func_ret_failure succeeded.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s,[$]LINENO.*,&-,
-      t lineno
-      b
-      : lineno
-      N
-      : loop
-      s,[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\),\2\1\2,
-      t loop
-      s,-\n.*,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL $0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL $0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "$0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-tagnames=${tagnames+${tagnames},}CXX
-
-tagnames=${tagnames+${tagnames},}F77
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-
-ac_unique_file="ftconfig.in"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#if HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS version_info ft_version build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP XX_CFLAGS XX_ANSIFLAGS RMF RMDIR INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA GREP EGREP FTSYS_SRC LIBZ SYSTEM_ZLIB LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CXX CXXFLAGS ac_ct_CXX CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL enable_shared hardcode_libdir_flag_spec wl LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-ac_env_CXX_set=${CXX+set}
-ac_env_CXX_value=$CXX
-ac_cv_env_CXX_set=${CXX+set}
-ac_cv_env_CXX_value=$CXX
-ac_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_env_CXXFLAGS_value=$CXXFLAGS
-ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_cv_env_CXXFLAGS_value=$CXXFLAGS
-ac_env_CXXCPP_set=${CXXCPP+set}
-ac_env_CXXCPP_value=$CXXCPP
-ac_cv_env_CXXCPP_set=${CXXCPP+set}
-ac_cv_env_CXXCPP_value=$CXXCPP
-ac_env_F77_set=${F77+set}
-ac_env_F77_value=$F77
-ac_cv_env_F77_set=${F77+set}
-ac_cv_env_F77_value=$F77
-ac_env_FFLAGS_set=${FFLAGS+set}
-ac_env_FFLAGS_value=$FFLAGS
-ac_cv_env_FFLAGS_set=${FFLAGS+set}
-ac_cv_env_FFLAGS_value=$FFLAGS
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-  --target=TARGET   configure for building compilers for TARGET [HOST]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-shared[=PKGS]
-                          build shared libraries [default=yes]
-  --enable-static[=PKGS]
-                          build static libraries [default=yes]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation [default=yes]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-    --without-zlib          use internal zlib instead of system-wide
-    --with-old-mac-fonts    allow Mac resource-based fonts to be used
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-tags[=TAGS]
-                          include additional configurations [automatic]
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CXXCPP      C++ preprocessor
-  F77         Fortran 77 compiler command
-  FFLAGS      Fortran 77 compiler flags
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002,
-2003, 2004 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.59a.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-# NextStep 3.3 (patch 3) loses unless the first echo outputs at least 14 bytes.
-ac_space=' '
-echo "$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space$ac_space" >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Don't forget to update docs/VERSION.DLL!
-
-version_info='9:7:3'
-
-ft_version=`echo $version_info | tr : .`
-
-
-
-# checks for system type
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
-   { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking target system type" >&5
-echo $ECHO_N "checking target system type... $ECHO_C" >&6
-if test "${ac_cv_target+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_target_alias=$target_alias
-test "x$ac_cv_target_alias" = "x" &&
-  ac_cv_target_alias=$ac_cv_host_alias
-ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-echo "${ECHO_T}$ac_cv_target" >&6
-target=$ac_cv_target
-target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-
-
-# checks for programs
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-	;;
-    conftest.$ac_ext )
-	# This is the source file.
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	# FIXME: I believe we export ac_cv_exeext for Libtool,
-	# but it would be cool to find out if it's true.  Does anybody
-	# maintain Libtool? --akim.
-	export ac_cv_exeext
-	break;;
-    * )
-	break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-  fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  export ac_cv_exeext
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix, OSF/1, Tru64	-std
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
-  *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# get compiler flags right
-
-if test "x$CC" = xgcc; then
-  XX_CFLAGS="-Wall"
-  XX_ANSIFLAGS="-pedantic -ansi"
-else
-  case "$host" in
-  *-dec-osf*)
-    CFLAGS=
-    XX_CFLAGS="-std1 -g3"
-    XX_ANSIFLAGS=
-    ;;
-  *)
-    XX_CFLAGS=
-    XX_ANSIFLAGS=
-    ;;
-  esac
-fi
-
-
-
-
-# auxiliary programs
-
-# Extract the first word of "rm", so it can be a program name with args.
-set dummy rm; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RMF+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RMF"; then
-  ac_cv_prog_RMF="$RMF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RMF="rm -f"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RMF=$ac_cv_prog_RMF
-if test -n "$RMF"; then
-  echo "$as_me:$LINENO: result: $RMF" >&5
-echo "${ECHO_T}$RMF" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-# Extract the first word of "rmdir", so it can be a program name with args.
-set dummy rmdir; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RMDIR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RMDIR"; then
-  ac_cv_prog_RMDIR="$RMDIR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RMDIR="rmdir"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RMDIR=$ac_cv_prog_RMDIR
-if test -n "$RMDIR"; then
-  echo "$as_me:$LINENO: result: $RMDIR" >&5
-echo "${ECHO_T}$RMDIR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-
-# Since this file will be finally moved to another directory we make
-# the path of the install script absolute.  This small code snippet has
-# been taken from automake's `ylwrap' script.
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	    break 3
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-done
-
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  We don't cache a
-    # path for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the path is relative.
-    INSTALL=$ac_install_sh
-  fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-case "$INSTALL" in
-/*)
-  ;;
-*/*)
-  INSTALL="`pwd`/$INSTALL" ;;
-esac
-
-
-# checks for header files
-
-
-
-echo "$as_me:$LINENO: checking for grep that handles long lines" >&5
-echo $ECHO_N "checking for grep that handles long lines... $ECHO_C" >&6
-if test "${oc_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -f -r $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
-{
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/GREPXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=$TMPDIR/GREP$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
-   { (exit 1); exit 1; }
-}
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-    test -f "$ac_path_GREP" || continue
-    if $as_executable_p "$ac_path_GREP"; then
-  # Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-if "$ac_path_GREP" --version 2>&1 < /dev/null | grep 'GNU' >/dev/null; then
-  ac_cv_path_GREP="$ac_path_GREP"
-    break 2
-
-fi
-
-
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"$tmp/conftest.in"
-  while :
-  do
-    cat "$tmp/conftest.in" "$tmp/conftest.in" >"$tmp/conftest.tmp"
-    mv "$tmp/conftest.tmp" "$tmp/conftest.in"
-    cp "$tmp/conftest.in" "$tmp/conftest.nl"
-    echo 'GREP' >> "$tmp/conftest.nl"
-    "$ac_path_GREP" 'GREP$' < "$tmp/conftest.nl" >"$tmp/conftest.out" || break
-   diff "$tmp/conftest.out" "$tmp/conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-fi
-
-  done
-done
-done
-
-rm -rf "$tmp"
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-
-fi
-echo "$as_me:$LINENO: result: $oc_cv_path_GREP" >&5
-echo "${ECHO_T}$oc_cv_path_GREP" >&6
- GREP="$ac_cv_path_GREP"
-
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -f -r $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
-{
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/EGREPXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=$TMPDIR/EGREP$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
-   { (exit 1); exit 1; }
-}
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-    test -f "$ac_path_EGREP" || continue
-    if $as_executable_p "$ac_path_EGREP"; then
-  # Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-if "$ac_path_EGREP" --version 2>&1 < /dev/null | grep 'GNU' >/dev/null; then
-  ac_cv_path_EGREP="$ac_path_EGREP"
-    break 2
-
-fi
-
-
-  ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"$tmp/conftest.in"
-  while :
-  do
-    cat "$tmp/conftest.in" "$tmp/conftest.in" >"$tmp/conftest.tmp"
-    mv "$tmp/conftest.tmp" "$tmp/conftest.in"
-    cp "$tmp/conftest.in" "$tmp/conftest.nl"
-    echo 'EGREP' >> "$tmp/conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "$tmp/conftest.nl" >"$tmp/conftest.out" || break
-   diff "$tmp/conftest.out" "$tmp/conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-fi
-
-  done
-done
-done
-
-rm -rf "$tmp"
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in \$PATH" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-
-
-   fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6
- EGREP="$ac_cv_path_EGREP"
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_header_stdc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_Header=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-for ac_header in fcntl.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-# checks for typedefs, structures, and compiler characteristics
-
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
-if test "${ac_cv_c_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this.  */
-  typedef int charset[2];
-  const charset x;
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *ccp;
-  char **p;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  ccp = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++ccp;
-  p = (char**) ccp;
-  ccp = (char const *const *) p;
-  { /* SCO 3.2v4 cc rejects this.  */
-    char *t;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; };
-    struct s *b; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-  }
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_const=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_const=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for int" >&5
-echo $ECHO_N "checking for int... $ECHO_C" >&6
-if test "${ac_cv_type_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if ((int *) 0)
-  return 0;
-if (sizeof (int))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_type_int=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_int=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
-echo "${ECHO_T}$ac_cv_type_int" >&6
-
-echo "$as_me:$LINENO: checking size of int" >&5
-echo $ECHO_N "checking size of int... $ECHO_C" >&6
-if test "${ac_cv_sizeof_int+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$ac_cv_type_int" = yes; then
-  # The cast to long int works around a bug in the HP C Compiler
-  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-  # This bug is HP SR number 8606223364.
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr $ac_mid + 1`
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_lo=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_hi=`expr '(' $ac_mid ')' - 1`
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo= ac_hi=
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (int))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=$ac_mid
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_int=$ac_lo;;
-'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-long longval () { return (long int) (sizeof (int)); }
-unsigned long ulongval () { return (long int) (sizeof (int)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    exit (1);
-  if (((long int) (sizeof (int))) < 0)
-    {
-      long i = longval ();
-      if (i != ((long int) (sizeof (int))))
-	exit (1);
-      fprintf (f, "%ld\n", i);
-    }
-  else
-    {
-      unsigned long i = ulongval ();
-      if (i != ((long int) (sizeof (int))))
-	exit (1);
-      fprintf (f, "%lu\n", i);
-    }
-  exit (ferror (f) || fclose (f) != 0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_int=`cat conftest.val`
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (int), 77
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-else
-  ac_cv_sizeof_int=0
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
-echo "${ECHO_T}$ac_cv_sizeof_int" >&6
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_INT $ac_cv_sizeof_int
-_ACEOF
-
-
-echo "$as_me:$LINENO: checking for long" >&5
-echo $ECHO_N "checking for long... $ECHO_C" >&6
-if test "${ac_cv_type_long+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if ((long *) 0)
-  return 0;
-if (sizeof (long))
-  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_type_long=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_long=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
-echo "${ECHO_T}$ac_cv_type_long" >&6
-
-echo "$as_me:$LINENO: checking size of long" >&5
-echo $ECHO_N "checking size of long... $ECHO_C" >&6
-if test "${ac_cv_sizeof_long+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$ac_cv_type_long" = yes; then
-  # The cast to long int works around a bug in the HP C Compiler
-  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-  # This bug is HP SR number 8606223364.
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr $ac_mid + 1`
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_lo=$ac_mid; break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_hi=`expr '(' $ac_mid ')' - 1`
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo= ac_hi=
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (long))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_hi=$ac_mid
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_long=$ac_lo;;
-'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; } ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-long longval () { return (long int) (sizeof (long)); }
-unsigned long ulongval () { return (long int) (sizeof (long)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    exit (1);
-  if (((long int) (sizeof (long))) < 0)
-    {
-      long i = longval ();
-      if (i != ((long int) (sizeof (long))))
-	exit (1);
-      fprintf (f, "%ld\n", i);
-    }
-  else
-    {
-      unsigned long i = ulongval ();
-      if (i != ((long int) (sizeof (long))))
-	exit (1);
-      fprintf (f, "%lu\n", i);
-    }
-  exit (ferror (f) || fclose (f) != 0);
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_long=`cat conftest.val`
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute sizeof (long), 77
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-else
-  ac_cv_sizeof_long=0
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
-echo "${ECHO_T}$ac_cv_sizeof_long" >&6
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_LONG $ac_cv_sizeof_long
-_ACEOF
-
-
-
-
-# checks for library functions
-
-# Here we check whether we can use our mmap file component.
-
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_fixed_mapped=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-	mmap private not fixed
-	mmap private fixed at somewhere currently unmapped
-	mmap private fixed at somewhere already mapped
-	mmap shared not fixed
-	mmap shared fixed at somewhere currently unmapped
-	mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the file system buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !STDC_HEADERS && !HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#if !HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h.  */
-# if !HAVE_SYS_PARAM_H
-#  define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  if HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192	/* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
-  char *data, *data2, *data3;
-  int i, pagesize;
-  int fd;
-
-  pagesize = getpagesize ();
-
-  /* First, make a file with some known garbage in it. */
-  data = (char *) malloc (pagesize);
-  if (!data)
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    *(data + i) = rand ();
-  umask (0);
-  fd = creat ("conftest.mmap", 0600);
-  if (fd < 0)
-    exit (1);
-  if (write (fd, data, pagesize) != pagesize)
-    exit (1);
-  close (fd);
-
-  /* Next, try to mmap the file at a fixed address which already has
-     something else allocated at it.  If we can, also make sure that
-     we see the same garbage.  */
-  fd = open ("conftest.mmap", O_RDWR);
-  if (fd < 0)
-    exit (1);
-  data2 = (char *) malloc (2 * pagesize);
-  if (!data2)
-    exit (1);
-  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
-  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data2 + i))
-      exit (1);
-
-  /* Finally, make sure that changes to the mapped area do not
-     percolate back to the file as seen by read().  (This is a bug on
-     some variants of i386 svr4.0.)  */
-  for (i = 0; i < pagesize; ++i)
-    *(data2 + i) = *(data2 + i) + 1;
-  data3 = (char *) malloc (pagesize);
-  if (!data3)
-    exit (1);
-  if (read (fd, data3, pagesize) != pagesize)
-    exit (1);
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data3 + i))
-      exit (1);
-  close (fd);
-  exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_fixed_mapped=yes
-else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-if test "$ac_cv_func_mmap_fixed_mapped" != yes; then
-  FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
-else
-  FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
-
-  echo "$as_me:$LINENO: checking whether munmap is declared" >&5
-echo $ECHO_N "checking whether munmap is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl_munmap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/mman.h>
-
-
-
-int
-main ()
-{
-#ifndef munmap
-  char *p = (char *) munmap;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_decl_munmap=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_have_decl_munmap=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl_munmap" >&5
-echo "${ECHO_T}$ac_cv_have_decl_munmap" >&6
-if test $ac_cv_have_decl_munmap = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MUNMAP 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MUNMAP 0
-_ACEOF
-
-
-fi
-
-
-
-  echo "$as_me:$LINENO: checking for munmap's first parameter type" >&5
-echo $ECHO_N "checking for munmap's first parameter type... $ECHO_C" >&6
-   cat >conftest.$ac_ext <<_ACEOF
-
-       /* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-#include <unistd.h>
-#include <sys/mman.h>
-int munmap(void *, size_t);
-
-
-
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  echo "$as_me:$LINENO: result: void *" >&5
-echo "${ECHO_T}void *" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define MUNMAP_USES_VOIDP
-_ACEOF
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: char *" >&5
-echo "${ECHO_T}char *" >&6
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-
-
-
-for ac_func in memcpy memmove
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  eval "$as_ac_var=yes"
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-# Check for system zlib
-
-
-# Check whether --with-zlib or --without-zlib was given.
-if test "${with_zlib+set}" = set; then
-  withval="$with_zlib"
-
-fi;
-if test x$with_zlib != xno && test -z "$LIBZ"; then
-  echo "$as_me:$LINENO: checking for gzsetparams in -lz" >&5
-echo $ECHO_N "checking for gzsetparams in -lz... $ECHO_C" >&6
-if test "${ac_cv_lib_z_gzsetparams+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lz  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char gzsetparams ();
-int
-main ()
-{
-gzsetparams ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_z_gzsetparams=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_z_gzsetparams=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_z_gzsetparams" >&5
-echo "${ECHO_T}$ac_cv_lib_z_gzsetparams" >&6
-if test $ac_cv_lib_z_gzsetparams = yes; then
-  if test "${ac_cv_header_zlib_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for zlib.h" >&5
-echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
-if test "${ac_cv_header_zlib_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking zlib.h usability" >&5
-echo $ECHO_N "checking zlib.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <zlib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking zlib.h presence" >&5
-echo $ECHO_N "checking zlib.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <zlib.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: zlib.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: zlib.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for zlib.h" >&5
-echo $ECHO_N "checking for zlib.h... $ECHO_C" >&6
-if test "${ac_cv_header_zlib_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_zlib_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-echo "${ECHO_T}$ac_cv_header_zlib_h" >&6
-
-fi
-if test $ac_cv_header_zlib_h = yes; then
-  LIBZ='-lz'
-fi
-
-
-fi
-
-fi
-if test x$with_zlib != xno && test -n "$LIBZ"; then
-  CFLAGS="$CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB"
-  LDFLAGS="$LDFLAGS $LIBZ"
-  SYSTEM_ZLIB=yes
-fi
-
-
-# Whether to use Mac OS resource-based fonts or not
-
-
-# Check whether --with-old-mac-fonts or --without-old-mac-fonts was given.
-if test "${with_old_mac_fonts+set}" = set; then
-  withval="$with_old_mac_fonts"
-
-fi;
-if test x$with_old_mac_fonts = xyes; then
-  LDFLAGS="$LDFLAGS -Xlinker -framework -Xlinker CoreServices \
-                    -Xlinker -framework -Xlinker ApplicationServices"
-else
-  CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
-fi
-
-
-
-
-
-
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi;
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
-  enableval="$enable_static"
-  p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=yes
-fi;
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
-  enableval="$enable_fast_install"
-  p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi;
-
-echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
-if test "${lt_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-
-fi
-
-echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6
-
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval="$with_gnu_ld"
-  test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi;
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
-else
-  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
-if test "${lt_cv_ld_reload_flag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-
-echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
-if test "${lt_cv_path_NM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
-	  break
-	  ;;
-	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
-	  ;;
-	esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6
-NM="$lt_cv_path_NM"
-
-echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6
-fi
-
-echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
-if test "${lt_cv_deplibs_check_method+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump'.
-  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | kfreebsd*-gnu)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha*|hppa*|i*86|ia64*|m68*|mips*|powerpc*|sparc*|s390*|sh*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx*)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval="$enable_libtool_lock"
-
-fi;
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line 6215 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*|powerpc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
-if test "${lt_cv_cc_needs_belf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  lt_cv_cc_needs_belf=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-lt_cv_cc_needs_belf=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-
-echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_cxx_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cxx_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$F77"; then
-  ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
-  echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    test -n "$F77" && break
-  done
-fi
-if test -z "$F77"; then
-  ac_ct_F77=$F77
-  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_F77"; then
-  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_F77="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
-  echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  test -n "$ac_ct_F77" && break
-done
-
-  if test "x$ac_ct_F77" = x; then
-    F77=""
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    F77=$ac_ct_F77
-  fi
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:7228:" \
-     "checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file.  (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-      program main
-#ifndef __GNUC__
-       choke me
-#endif
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_compiler_gnu=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_f77_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  FFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_prog_f77_g=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_f77_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
-if test "$ac_test_FFLAGS" = set; then
-  FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-g -O2"
-  else
-    FFLAGS="-g"
-  fi
-else
-  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
-    FFLAGS="-O2"
-  else
-    FFLAGS=
-  fi
-fi
-
-G77=`test $ac_compiler_gnu = yes && echo yes`
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# find the maximum length of command line arguments
-echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
-	       = "XX$teststring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      teststring=$teststring$teststring
-    done
-    teststring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
-else
-  echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6
-fi
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris* | sysv5*)
-  symcode='[BDRT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
-  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6
-else
-  echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6
-fi
-
-echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6
-if test "${lt_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6
-objdir=$lt_cv_objdir
-
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    if test "$build" != "$host"; then
-      { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-    fi
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-enable_dlopen=no
-enable_win32_dll=no
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
-  enableval="$enable_libtool_lock"
-
-fi;
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
-  withval="$with_pic"
-  pic_mode="$withval"
-else
-  pic_mode=default
-fi;
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-#
-# Check for any special shared library compilation flags.
-#
-lt_prog_cc_shlib=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    lt_prog_cc_shlib='-belf'
-    ;;
-  esac
-fi
-if test -n "$lt_prog_cc_shlib"; then
-  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
-echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
-  if echo "$old_CC $old_CFLAGS " | grep "[ 	]$lt_prog_cc_shlib[ 	]" >/dev/null; then :
-  else
-    { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
-echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
-    lt_cv_prog_cc_can_build_shared=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-     else
-       lt_prog_compiler_static_works=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
-
-if test x"$lt_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8295: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:8299: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic='-Kpic'
-      lt_prog_compiler_static='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8528: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:8532: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
-
-if test x"$lt_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8588: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:8592: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
-  runpath_var=
-  allow_undefined_flag=
-  enable_shared_with_static_runtimes=no
-  archive_cmds=
-  archive_expsym_cmds=
-  old_archive_From_new_cmds=
-  old_archive_from_expsyms_cmds=
-  export_dynamic_flag_spec=
-  whole_archive_flag_spec=
-  thread_safe_flag_spec=
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_flag_spec_ld=
-  hardcode_libdir_separator=
-  hardcode_direct=no
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  link_all_deplibs=unknown
-  hardcode_automatic=no
-  module_cmds=
-  module_expsym_cmds=
-  always_export_symbols=no
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_cmds="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	whole_archive_flag_spec=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-	  for ld_flag in $LDFLAGS; do
-  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-  	    aix_use_runtimelinking=yes
-  	    break
-  	  fi
-	  done
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.012|aix4.012.*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  hardcode_direct=yes
-	  else
-  	  # We have old collect2
-  	  hardcode_direct=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  hardcode_minus_L=yes
-  	  hardcode_libdir_flag_spec='-L$libdir'
-  	  hardcode_libdir_separator=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  always_export_symbols=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec=' '
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs=no
-      ;;
-
-    bsdi4*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      allow_undefined_flag=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      archive_cmds_need_lc=no
-      case "$host_os" in
-      rhapsody* | darwin1.[012])
-	allow_undefined_flag='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	allow_undefined_flag='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-	;;
-      esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      hardcode_direct=no
-      hardcode_automatic=yes
-      hardcode_shlibpath_var=unsupported
-      whole_archive_flag_spec='-all_load $convenience'
-      link_all_deplibs=yes
-    else
-      ld_shlibs=no
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_flag_spec_ld='+b $libdir'
-	  hardcode_libdir_separator=:
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	ia64*)
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	*)
-	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator=:
-	  hardcode_direct=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_ld='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      link_all_deplibs=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    openbsd*)
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      hardcode_libdir_separator=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z text'
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=no
-      hardcode_shlibpath_var=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec=
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6
-test "$ld_shlibs" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag
-        allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc=no
-        else
-	  archive_cmds_need_lc=yes
-        fi
-        allow_undefined_flag=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
-   test -n "$runpath_var " || \
-   test "X$hardcode_automatic"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6
-
-if test "$hardcode_action" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != shl_load;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != dlopen;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_svld_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dld_link ();
-int
-main ()
-{
-dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_dld_link=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 10772 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 10870 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# Report which librarie types wil actually be built
-echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4* | aix5*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if test "$GCC" = yes; then
-    archive_cmds_need_lc=no
-    case "$host_os" in
-    rhapsody* | darwin1.[012])
-      allow_undefined_flag='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	allow_undefined_flag='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    output_verbose_link_cmd='echo'
-    archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    hardcode_direct=no
-    hardcode_automatic=yes
-    hardcode_shlibpath_var=unsupported
-    whole_archive_flag_spec='-all_load $convenience'
-    link_all_deplibs=yes
-  else
-    ld_shlibs=no
-  fi
-    ;;
-esac
-echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler \
-    CC \
-    LD \
-    lt_prog_compiler_wl \
-    lt_prog_compiler_pic \
-    lt_prog_compiler_static \
-    lt_prog_compiler_no_builtin_flag \
-    export_dynamic_flag_spec \
-    thread_safe_flag_spec \
-    whole_archive_flag_spec \
-    enable_shared_with_static_runtimes \
-    old_archive_cmds \
-    old_archive_from_new_cmds \
-    predep_objects \
-    postdep_objects \
-    predeps \
-    postdeps \
-    compiler_lib_search_path \
-    archive_cmds \
-    archive_expsym_cmds \
-    postinstall_cmds \
-    postuninstall_cmds \
-    old_archive_from_expsyms_cmds \
-    allow_undefined_flag \
-    no_undefined_flag \
-    export_symbols_cmds \
-    hardcode_libdir_flag_spec \
-    hardcode_libdir_flag_spec_ld \
-    hardcode_libdir_separator \
-    hardcode_automatic \
-    module_cmds \
-    module_expsym_cmds \
-    lt_cv_prog_compiler_c_o \
-    exclude_expsyms \
-    include_expsyms; do
-
-    case $var in
-    old_archive_cmds | \
-    old_archive_from_new_cmds | \
-    archive_cmds | \
-    archive_expsym_cmds | \
-    module_cmds | \
-    module_expsym_cmds | \
-    old_archive_from_expsyms_cmds | \
-    export_symbols_cmds | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
-
-  cat <<__EOF__ >> "$cfgfile"
-#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-# Check whether --with-tags or --without-tags was given.
-if test "${with_tags+set}" = set; then
-  withval="$with_tags"
-  tagnames="$withval"
-fi;
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
-    else
-      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
-    "") ;;
-    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
-   { (exit 1); exit 1; }; }
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && test "X$CXX" != "Xno"; then
-	  ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_automatic_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-compiler_CXX=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-else
-  lt_prog_compiler_no_builtin_flag_CXX=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval="$with_gnu_ld"
-  test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi;
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
-else
-  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
-fi
-if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-	grep 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec_CXX=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-ld_shlibs_CXX=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-	for ld_flag in $LDFLAGS; do
-	  case $ld_flag in
-	  *-brtl*)
-	    aix_use_runtimelinking=yes
-	    break
-	    ;;
-	  esac
-	done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    archive_cmds_CXX=''
-    hardcode_direct_CXX=yes
-    hardcode_libdir_separator_CXX=':'
-    link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.012|aix4.012.*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  hardcode_direct_CXX=yes
-	else
-	  # We have old collect2
-	  hardcode_direct_CXX=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L_CXX=yes
-	  hardcode_libdir_flag_spec_CXX='-L$libdir'
-	  hardcode_libdir_separator_CXX=
-	fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	shared_flag='-G'
-      else
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag='${wl}-G'
-	else
-	  shared_flag='${wl}-bM:SRE'
-	fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    always_export_symbols_CXX=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      allow_undefined_flag_CXX='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-	allow_undefined_flag_CXX="-z nodefs"
-	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-	# Determine the default libpath from the value encoded in an empty executable.
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-	# Warning - without using the other run time loading flags,
-	# -berok will link without error, but may produce a broken library.
-	no_undefined_flag_CXX=' ${wl}-bernotok'
-	allow_undefined_flag_CXX=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	always_export_symbols_CXX=yes
-	# Exported symbols can be pulled into shared objects from archives
-	whole_archive_flag_spec_CXX=' '
-	archive_cmds_need_lc_CXX=yes
-	# This is similar to how AIX traditionally builds it's shared libraries.
-	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-    # as there is no search path for DLLs.
-    hardcode_libdir_flag_spec_CXX='-L$libdir'
-    allow_undefined_flag_CXX=unsupported
-    always_export_symbols_CXX=no
-    enable_shared_with_static_runtimes_CXX=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	cp $export_symbols $output_objdir/$soname.def;
-      else
-	echo EXPORTS > $output_objdir/$soname.def;
-	cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      ld_shlibs_CXX=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-  if test "$GXX" = yes; then
-    archive_cmds_need_lc_CXX=no
-    case "$host_os" in
-    rhapsody* | darwin1.[012])
-      allow_undefined_flag_CXX='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	allow_undefined_flag_CXX='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag_CXX='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag_CXX='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-      ;;
-    esac
-    lt_int_apple_cc_single_mod=no
-    output_verbose_link_cmd='echo'
-    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-      lt_int_apple_cc_single_mod=yes
-    fi
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    else
-      archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    fi
-    module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-      archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    else
-      archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    hardcode_direct_CXX=no
-    hardcode_automatic_CXX=yes
-    hardcode_shlibpath_var_CXX=unsupported
-    whole_archive_flag_spec_CXX='-all_load $convenience'
-    link_all_deplibs_CXX=yes
-  else
-    ld_shlibs_CXX=no
-  fi
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      ghcx)
-	# Green Hills C++ Compiler
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
-  freebsd12*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    ld_shlibs_CXX=no
-    ;;
-  freebsd-elf*)
-    archive_cmds_need_lc_CXX=no
-    ;;
-  freebsd* | kfreebsd*-gnu)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    ld_shlibs_CXX=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-    hardcode_libdir_separator_CXX=:
-    export_dynamic_flag_spec_CXX='${wl}-E'
-    hardcode_direct_CXX=yes
-    hardcode_minus_L_CXX=yes # Not in the search PATH,
-				# but as the default
-				# location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      ld_shlibs_CXX=no
-      ;;
-    aCC)
-      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
-	hardcode_libdir_separator_CXX=:
-        ;;
-      ia64*)
-	hardcode_libdir_flag_spec_CXX='-L$libdir'
-        ;;
-      *)
-	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator_CXX=:
-	export_dynamic_flag_spec_CXX='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      ;;
-    ia64*)
-      hardcode_direct_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    *)
-      hardcode_direct_CXX=yes
-      hardcode_minus_L_CXX=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      aCC)
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	esac
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test $with_gnu_ld = no; then
-	    case "$host_cpu" in
-	    ia64*|hppa*64*)
-	      archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	      ;;
-	    *)
-	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	fi
-	;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-	# SGI C++
-	archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	# Archives containing C++ object files must be created using
-	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test "$with_gnu_ld" = no; then
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-	  else
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-	  fi
-	fi
-	link_all_deplibs_CXX=yes
-	;;
-    esac
-    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-    hardcode_libdir_separator_CXX=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	;;
-      icpc)
-	# Intel C++
-	with_gnu_ld=yes
-	archive_cmds_need_lc_CXX=no
-	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	;;
-      cxx)
-	# Compaq C++
-	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	runpath_var=LD_RUN_PATH
-	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	hardcode_libdir_separator_CXX=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      hardcode_libdir_flag_spec_CXX='-R$libdir'
-      hardcode_direct_CXX=yes
-      hardcode_shlibpath_var_CXX=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	hardcode_libdir_separator_CXX=:
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      cxx)
-	allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	hardcode_libdir_separator_CXX=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	hardcode_libdir_separator_CXX=:
-
-	# Archives containing C++ object files must be created using
-	# the KAI C++ compiler.
-	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      cxx)
-	allow_undefined_flag_CXX=' -expect_unresolved \*'
-	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-	archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	  echo "-hidden">> $lib.exp~
-	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
-	  $rm $lib.exp'
-
-	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	hardcode_libdir_separator_CXX=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	fi
-	;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  sco*)
-    archive_cmds_need_lc_CXX=no
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.x
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      lcc)
-	# Lucid
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.2, 5.x and Centerline C++
-	no_undefined_flag_CXX=' -zdefs'
-	archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	hardcode_libdir_flag_spec_CXX='-R$libdir'
-	hardcode_shlibpath_var_CXX=no
-	case $host_os in
-	  solaris2.0-5 | solaris2.0-5.*) ;;
-	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	link_all_deplibs_CXX=yes
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	;;
-      gcx)
-	# Green Hills C++ Compiler
-	archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	# The C++ compiler must be used to create the archive.
-	old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	;;
-      *)
-	# GNU C++ compiler with Solaris linker
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-	  if $CC --version | grep -v '^2\.7' > /dev/null; then
-	    archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  fi
-
-	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	fi
-	;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
-    archive_cmds_need_lc_CXX=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-	# NonStop-UX NCC 3.20
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    ld_shlibs_CXX=no
-    ;;
-esac
-echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-GCC_CXX="$GXX"
-LD_CXX="$LD"
-
-
-cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
-	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$rm -f confest.$objext
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
-
-lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68)
-	  # Green Hills C++ Compiler
-	  # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | kfreebsd*-gnu)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    if test "$host_cpu" != ia64; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    case "$host_cpu" in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux*)
-	case $cc_basename in
-	  KCC)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  icpc)
-	    # Intel C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  cxx)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      sco*)
-	case $cc_basename in
-	  CC)
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      unixware*)
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_CXX=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13049: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:13053: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
-
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
-    case $lt_prog_compiler_pic_CXX in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13109: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:13113: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-
-echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_CXX
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-        allow_undefined_flag_CXX=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc_CXX=no
-        else
-	  archive_cmds_need_lc_CXX=yes
-        fi
-        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" || \
-   test -n "$runpath_var CXX" || \
-   test "X$hardcode_automatic_CXX"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6
-
-if test "$hardcode_action_CXX" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != shl_load;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != dlopen;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_svld_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dld_link ();
-int
-main ()
-{
-dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_cxx_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_dld_link=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 14470 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 14568 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_CXX \
-    CC_CXX \
-    LD_CXX \
-    lt_prog_compiler_wl_CXX \
-    lt_prog_compiler_pic_CXX \
-    lt_prog_compiler_static_CXX \
-    lt_prog_compiler_no_builtin_flag_CXX \
-    export_dynamic_flag_spec_CXX \
-    thread_safe_flag_spec_CXX \
-    whole_archive_flag_spec_CXX \
-    enable_shared_with_static_runtimes_CXX \
-    old_archive_cmds_CXX \
-    old_archive_from_new_cmds_CXX \
-    predep_objects_CXX \
-    postdep_objects_CXX \
-    predeps_CXX \
-    postdeps_CXX \
-    compiler_lib_search_path_CXX \
-    archive_cmds_CXX \
-    archive_expsym_cmds_CXX \
-    postinstall_cmds_CXX \
-    postuninstall_cmds_CXX \
-    old_archive_from_expsyms_cmds_CXX \
-    allow_undefined_flag_CXX \
-    no_undefined_flag_CXX \
-    export_symbols_cmds_CXX \
-    hardcode_libdir_flag_spec_CXX \
-    hardcode_libdir_flag_spec_ld_CXX \
-    hardcode_libdir_separator_CXX \
-    hardcode_automatic_CXX \
-    module_cmds_CXX \
-    module_expsym_cmds_CXX \
-    lt_cv_prog_compiler_c_o_CXX \
-    exclude_expsyms_CXX \
-    include_expsyms_CXX; do
-
-    case $var in
-    old_archive_cmds_CXX | \
-    old_archive_from_new_cmds_CXX | \
-    archive_cmds_CXX | \
-    archive_expsym_cmds_CXX | \
-    module_cmds_CXX | \
-    module_expsym_cmds_CXX | \
-    old_archive_from_expsyms_cmds_CXX | \
-    export_symbols_cmds_CXX | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_CXX
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_CXX
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_CXX
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_CXX"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-
-archive_cmds_need_lc_F77=no
-allow_undefined_flag_F77=
-always_export_symbols_F77=no
-archive_expsym_cmds_F77=
-export_dynamic_flag_spec_F77=
-hardcode_direct_F77=no
-hardcode_libdir_flag_spec_F77=
-hardcode_libdir_flag_spec_ld_F77=
-hardcode_libdir_separator_F77=
-hardcode_minus_L_F77=no
-hardcode_automatic_F77=no
-module_cmds_F77=
-module_expsym_cmds_F77=
-link_all_deplibs_F77=unknown
-old_archive_cmds_F77=$old_archive_cmds
-no_undefined_flag_F77=
-whole_archive_flag_spec_F77=
-enable_shared_with_static_runtimes_F77=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-objext_F77=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-compiler_F77=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4* | aix5*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6
-
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-GCC_F77="$G77"
-LD_F77="$LD"
-
-lt_prog_compiler_wl_F77=
-lt_prog_compiler_pic_F77=
-lt_prog_compiler_static_F77=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_F77='-Wl,'
-    lt_prog_compiler_static_F77='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_F77='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared_F77=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_F77=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic_F77='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_F77='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_F77='-Bstatic'
-      else
-	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic_F77='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-	lt_prog_compiler_wl_F77='-Wl,'
-	lt_prog_compiler_pic_F77='-KPIC'
-	lt_prog_compiler_static_F77='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_F77='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_F77='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_F77='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic_F77='-Kpic'
-      lt_prog_compiler_static_F77='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_F77='-Qoption ld '
-      lt_prog_compiler_pic_F77='-PIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl_F77='-Wl,'
-      lt_prog_compiler_pic_F77='-KPIC'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic_F77='-Kconform_pic'
-	lt_prog_compiler_static_F77='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_F77='-pic'
-      lt_prog_compiler_static_F77='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_F77=no
-      ;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_F77"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_F77=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_F77"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15395: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:15399: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_F77=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
-
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
-    case $lt_prog_compiler_pic_F77 in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
-     esac
-else
-    lt_prog_compiler_pic_F77=
-     lt_prog_compiler_can_build_shared_F77=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_F77=
-    ;;
-  *)
-    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
-    ;;
-esac
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_F77=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15455: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:15459: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_F77=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
-  runpath_var=
-  allow_undefined_flag_F77=
-  enable_shared_with_static_runtimes_F77=no
-  archive_cmds_F77=
-  archive_expsym_cmds_F77=
-  old_archive_From_new_cmds_F77=
-  old_archive_from_expsyms_cmds_F77=
-  export_dynamic_flag_spec_F77=
-  whole_archive_flag_spec_F77=
-  thread_safe_flag_spec_F77=
-  hardcode_libdir_flag_spec_F77=
-  hardcode_libdir_flag_spec_ld_F77=
-  hardcode_libdir_separator_F77=
-  hardcode_direct_F77=no
-  hardcode_minus_L_F77=no
-  hardcode_shlibpath_var_F77=unsupported
-  link_all_deplibs_F77=unknown
-  hardcode_automatic_F77=no
-  module_cmds_F77=
-  module_expsym_cmds_F77=
-  always_export_symbols_F77=no
-  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_F77=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_F77=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs_F77=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_F77=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag_F77=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=no
-      enable_shared_with_static_runtimes_F77=yes
-      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	ld_shlibs_F77=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_cmds_F77="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds_F77="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs_F77=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_F77=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_F77" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec_F77='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	whole_archive_flag_spec_F77=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_F77=unsupported
-      always_export_symbols_F77=yes
-      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L_F77=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct_F77=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-	  for ld_flag in $LDFLAGS; do
-  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-  	    aix_use_runtimelinking=yes
-  	    break
-  	  fi
-	  done
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds_F77=''
-      hardcode_direct_F77=yes
-      hardcode_libdir_separator_F77=':'
-      link_all_deplibs_F77=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.012|aix4.012.*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  hardcode_direct_F77=yes
-	  else
-  	  # We have old collect2
-  	  hardcode_direct_F77=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  hardcode_minus_L_F77=yes
-  	  hardcode_libdir_flag_spec_F77='-L$libdir'
-  	  hardcode_libdir_separator_F77=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols_F77=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag_F77='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag_F77="-z nodefs"
-	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-      program main
-
-      end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_f77_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag_F77=' ${wl}-bernotok'
-	  allow_undefined_flag_F77=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  always_export_symbols_F77=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_F77=' '
-	  archive_cmds_need_lc_F77=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_F77=no
-      ;;
-
-    bsdi4*)
-      export_dynamic_flag_spec_F77=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_F77=' '
-      allow_undefined_flag_F77=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_F77='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_F77=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      archive_cmds_need_lc_F77=no
-      case "$host_os" in
-      rhapsody* | darwin1.[012])
-	allow_undefined_flag_F77='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	allow_undefined_flag_F77='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag_F77='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag_F77='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-	;;
-      esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      hardcode_direct_F77=no
-      hardcode_automatic_F77=yes
-      hardcode_shlibpath_var_F77=unsupported
-      whole_archive_flag_spec_F77='-all_load $convenience'
-      link_all_deplibs_F77=yes
-    else
-      ld_shlibs_F77=no
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_F77=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_direct_F77=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_F77=yes
-      export_dynamic_flag_spec_F77='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
-	  hardcode_libdir_separator_F77=:
-	  hardcode_direct_F77=no
-	  hardcode_shlibpath_var_F77=no
-	  ;;
-	ia64*)
-	  hardcode_libdir_flag_spec_F77='-L$libdir'
-	  hardcode_direct_F77=no
-	  hardcode_shlibpath_var_F77=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_F77=yes
-	  ;;
-	*)
-	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_F77=:
-	  hardcode_direct_F77=yes
-	  export_dynamic_flag_spec_F77='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_F77=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      link_all_deplibs_F77=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    newsos6)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_F77=yes
-      hardcode_shlibpath_var_F77=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_F77='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec_F77='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_minus_L_F77=yes
-      allow_undefined_flag_F77=unsupported
-      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag_F77=' -expect_unresolved \*'
-	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag_F77=' -expect_unresolved \*'
-	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec_F77='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_F77=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag_F77=' -z text'
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_F77='-R$libdir'
-      hardcode_shlibpath_var_F77=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs_F77=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=yes
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_F77=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds_F77='$CC -r -o $output$reload_objs'
-	  hardcode_direct_F77=no
-        ;;
-	motorola)
-	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_F77=no
-      export_dynamic_flag_spec_F77='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var_F77=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs_F77=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_F77=yes
-      hardcode_minus_L_F77=no
-      hardcode_shlibpath_var_F77=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_F77='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag_F77=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_F77=
-      hardcode_shlibpath_var_F77=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_F77='-L$libdir'
-      hardcode_shlibpath_var_F77=no
-      ;;
-
-    *)
-      ld_shlibs_F77=no
-      ;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_F77" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_F77=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_F77 in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_F77
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
-        allow_undefined_flag_F77=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc_F77=no
-        else
-	  archive_cmds_need_lc_F77=yes
-        fi
-        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_F77=
-if test -n "$hardcode_libdir_flag_spec_F77" || \
-   test -n "$runpath_var F77" || \
-   test "X$hardcode_automatic_F77"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_F77" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
-     test "$hardcode_minus_L_F77" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_F77=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_F77=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_F77=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6
-
-if test "$hardcode_action_F77" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
-
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_F77 \
-    CC_F77 \
-    LD_F77 \
-    lt_prog_compiler_wl_F77 \
-    lt_prog_compiler_pic_F77 \
-    lt_prog_compiler_static_F77 \
-    lt_prog_compiler_no_builtin_flag_F77 \
-    export_dynamic_flag_spec_F77 \
-    thread_safe_flag_spec_F77 \
-    whole_archive_flag_spec_F77 \
-    enable_shared_with_static_runtimes_F77 \
-    old_archive_cmds_F77 \
-    old_archive_from_new_cmds_F77 \
-    predep_objects_F77 \
-    postdep_objects_F77 \
-    predeps_F77 \
-    postdeps_F77 \
-    compiler_lib_search_path_F77 \
-    archive_cmds_F77 \
-    archive_expsym_cmds_F77 \
-    postinstall_cmds_F77 \
-    postuninstall_cmds_F77 \
-    old_archive_from_expsyms_cmds_F77 \
-    allow_undefined_flag_F77 \
-    no_undefined_flag_F77 \
-    export_symbols_cmds_F77 \
-    hardcode_libdir_flag_spec_F77 \
-    hardcode_libdir_flag_spec_ld_F77 \
-    hardcode_libdir_separator_F77 \
-    hardcode_automatic_F77 \
-    module_cmds_F77 \
-    module_expsym_cmds_F77 \
-    lt_cv_prog_compiler_c_o_F77 \
-    exclude_expsyms_F77 \
-    include_expsyms_F77; do
-
-    case $var in
-    old_archive_cmds_F77 | \
-    old_archive_from_new_cmds_F77 | \
-    archive_cmds_F77 | \
-    archive_expsym_cmds_F77 | \
-    module_cmds_F77 | \
-    module_expsym_cmds_F77 | \
-    old_archive_from_expsyms_cmds_F77 | \
-    export_symbols_cmds_F77 | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_F77
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_F77
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_F77
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_F77
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_F77
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_F77
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_F77
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_F77
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_F77
-archive_expsym_cmds=$lt_archive_expsym_cmds_F77
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_F77
-module_expsym_cmds=$lt_module_expsym_cmds_F77
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_F77
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_F77
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_F77
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_F77
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_F77
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_F77
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_F77
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_F77
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_F77
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_F77
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_F77
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_F77
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_F77
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_F77
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-objext_GCJ=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-compiler_GCJ=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-archive_cmds_need_lc_GCJ=no
-
-
-lt_prog_compiler_no_builtin_flag_GCJ=
-
-if test "$GCC" = yes; then
-  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17488: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:17492: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-lt_prog_compiler_wl_GCJ=
-lt_prog_compiler_pic_GCJ=
-lt_prog_compiler_static_GCJ=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl_GCJ='-Wl,'
-    lt_prog_compiler_static_GCJ='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_GCJ='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared_GCJ=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_GCJ=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic_GCJ='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      lt_prog_compiler_pic_GCJ='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_GCJ='-Bstatic'
-      else
-	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic_GCJ='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc* | ecc*)
-	lt_prog_compiler_wl_GCJ='-Wl,'
-	lt_prog_compiler_pic_GCJ='-KPIC'
-	lt_prog_compiler_static_GCJ='-static'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl_GCJ='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static_GCJ='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static_GCJ='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      lt_prog_compiler_pic_GCJ='-Kpic'
-      lt_prog_compiler_static_GCJ='-dn'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl_GCJ='-Qoption ld '
-      lt_prog_compiler_pic_GCJ='-PIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      lt_prog_compiler_wl_GCJ='-Wl,'
-      lt_prog_compiler_pic_GCJ='-KPIC'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic_GCJ='-Kconform_pic'
-	lt_prog_compiler_static_GCJ='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic_GCJ='-pic'
-      lt_prog_compiler_static_GCJ='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared_GCJ=no
-      ;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_GCJ"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_prog_compiler_pic_works_GCJ=no
-  ac_outfile=conftest.$ac_objext
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17721: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:17725: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       lt_prog_compiler_pic_works_GCJ=yes
-     fi
-   fi
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
-
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
-    case $lt_prog_compiler_pic_GCJ in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
-     esac
-else
-    lt_prog_compiler_pic_GCJ=
-     lt_prog_compiler_can_build_shared_GCJ=no
-fi
-
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_GCJ=
-    ;;
-  *)
-    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
-    ;;
-esac
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  lt_cv_prog_compiler_c_o_GCJ=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17781: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:17785: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       lt_cv_prog_compiler_c_o_GCJ=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
-   $rm out/* && rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
-  if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
-  runpath_var=
-  allow_undefined_flag_GCJ=
-  enable_shared_with_static_runtimes_GCJ=no
-  archive_cmds_GCJ=
-  archive_expsym_cmds_GCJ=
-  old_archive_From_new_cmds_GCJ=
-  old_archive_from_expsyms_cmds_GCJ=
-  export_dynamic_flag_spec_GCJ=
-  whole_archive_flag_spec_GCJ=
-  thread_safe_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_GCJ=
-  hardcode_libdir_flag_spec_ld_GCJ=
-  hardcode_libdir_separator_GCJ=
-  hardcode_direct_GCJ=no
-  hardcode_minus_L_GCJ=no
-  hardcode_shlibpath_var_GCJ=unsupported
-  link_all_deplibs_GCJ=unknown
-  hardcode_automatic_GCJ=no
-  module_cmds_GCJ=
-  module_expsym_cmds_GCJ=
-  always_export_symbols_GCJ=no
-  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms_GCJ=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  ld_shlibs_GCJ=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs_GCJ=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      ld_shlibs_GCJ=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag_GCJ=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=no
-      enable_shared_with_static_runtimes_GCJ=yes
-      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	ld_shlibs_GCJ=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-
-    sunos4*)
-      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-  linux*)
-    if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_cmds_GCJ="$tmp_archive_cmds"
-      supports_anon_versioning=no
-      case `$LD -v 2>/dev/null` in
-        *\ 01.* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-        *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-        *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-        *\ 2.11.*) ;; # other 2.11 versions
-        *) supports_anon_versioning=yes ;;
-      esac
-      if test $supports_anon_versioning = yes; then
-        archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
-cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-$echo "local: *; };" >> $output_objdir/$libname.ver~
-        $CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-      else
-        archive_expsym_cmds_GCJ="$tmp_archive_cmds"
-      fi
-    else
-      ld_shlibs_GCJ=no
-    fi
-    ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs_GCJ=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs_GCJ" = yes; then
-      runpath_var=LD_RUN_PATH
-      hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
-      export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	whole_archive_flag_spec_GCJ=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag_GCJ=unsupported
-      always_export_symbols_GCJ=yes
-      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L_GCJ=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct_GCJ=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
-	  for ld_flag in $LDFLAGS; do
-  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-  	    aix_use_runtimelinking=yes
-  	    break
-  	  fi
-	  done
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds_GCJ=''
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_separator_GCJ=':'
-      link_all_deplibs_GCJ=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.012|aix4.012.*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  hardcode_direct_GCJ=yes
-	  else
-  	  # We have old collect2
-  	  hardcode_direct_GCJ=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  hardcode_minus_L_GCJ=yes
-  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
-  	  hardcode_libdir_separator_GCJ=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols_GCJ=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag_GCJ='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-       hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag_GCJ="-z nodefs"
-	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
-	 hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag_GCJ=' ${wl}-bernotok'
-	  allow_undefined_flag_GCJ=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  always_export_symbols_GCJ=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  whole_archive_flag_spec_GCJ=' '
-	  archive_cmds_need_lc_GCJ=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      # see comment about different semantics on the GNU ld section
-      ld_shlibs_GCJ=no
-      ;;
-
-    bsdi4*)
-      export_dynamic_flag_spec_GCJ=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec_GCJ=' '
-      allow_undefined_flag_GCJ=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext_cmds=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      old_archive_From_new_cmds_GCJ='true'
-      # FIXME: Should let the user specify the lib program.
-      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes_GCJ=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if test "$GXX" = yes ; then
-      archive_cmds_need_lc_GCJ=no
-      case "$host_os" in
-      rhapsody* | darwin1.[012])
-	allow_undefined_flag_GCJ='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-      	allow_undefined_flag_GCJ='-flat_namespace -undefined suppress'
-      else
-        case ${MACOSX_DEPLOYMENT_TARGET} in
-          10.[012])
-            allow_undefined_flag_GCJ='-flat_namespace -undefined suppress'
-            ;;
-          10.*)
-            allow_undefined_flag_GCJ='-undefined dynamic_lookup'
-            ;;
-        esac
-      fi
-	;;
-      esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      hardcode_direct_GCJ=no
-      hardcode_automatic_GCJ=yes
-      hardcode_shlibpath_var_GCJ=unsupported
-      whole_archive_flag_spec_GCJ='-all_load $convenience'
-      link_all_deplibs_GCJ=yes
-    else
-      ld_shlibs_GCJ=no
-    fi
-      ;;
-
-    dgux*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    freebsd1*)
-      ld_shlibs_GCJ=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | kfreebsd*-gnu)
-      archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_direct_GCJ=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L_GCJ=yes
-      export_dynamic_flag_spec_GCJ='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
-	  hardcode_libdir_separator_GCJ=:
-	  hardcode_direct_GCJ=no
-	  hardcode_shlibpath_var_GCJ=no
-	  ;;
-	ia64*)
-	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
-	  hardcode_direct_GCJ=no
-	  hardcode_shlibpath_var_GCJ=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_GCJ=yes
-	  ;;
-	*)
-	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_GCJ=:
-	  hardcode_direct_GCJ=yes
-	  export_dynamic_flag_spec_GCJ='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L_GCJ=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    newsos6)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    openbsd*)
-      hardcode_direct_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_GCJ='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
-	   ;;
-	 *)
-	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_minus_L_GCJ=yes
-      allow_undefined_flag_GCJ=unsupported
-      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag_GCJ=' -expect_unresolved \*'
-	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag_GCJ=' -expect_unresolved \*'
-	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
-      fi
-      hardcode_libdir_separator_GCJ=:
-      ;;
-
-    sco3.2v5*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      no_undefined_flag_GCJ=' -z text'
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-R$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
-      esac
-      link_all_deplibs_GCJ=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=yes
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_GCJ=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
-	  hardcode_direct_GCJ=no
-        ;;
-	motorola)
-	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var_GCJ=no
-      export_dynamic_flag_spec_GCJ='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var_GCJ=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs_GCJ=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct_GCJ=yes
-      hardcode_minus_L_GCJ=no
-      hardcode_shlibpath_var_GCJ=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
-      no_undefined_flag_GCJ='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    sysv5*)
-      no_undefined_flag_GCJ=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      hardcode_libdir_flag_spec_GCJ=
-      hardcode_shlibpath_var_GCJ=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec_GCJ='-L$libdir'
-      hardcode_shlibpath_var_GCJ=no
-      ;;
-
-    *)
-      ld_shlibs_GCJ=no
-      ;;
-    esac
-  fi
-
-echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6
-test "$ld_shlibs_GCJ" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_GCJ" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_GCJ=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_GCJ in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$lt_prog_compiler_wl_GCJ
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
-        allow_undefined_flag_GCJ=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
-  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-        then
-	  archive_cmds_need_lc_GCJ=no
-        else
-	  archive_cmds_need_lc_GCJ=yes
-        fi
-        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if test "$GCC" = yes; then
-    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  else
-    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-kfreebsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.01* | freebsdelf3.01*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext_cmds='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`$SED -e 's/:,\t/ /g;s/=^=*$//;s/=^= * / /g' /etc/ld.so.conf | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-knetbsd*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='GNU ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=yes
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_GCJ=
-if test -n "$hardcode_libdir_flag_spec_GCJ" || \
-   test -n "$runpath_var GCJ" || \
-   test "X$hardcode_automatic_GCJ"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$hardcode_direct_GCJ" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
-     test "$hardcode_minus_L_GCJ" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_GCJ=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_GCJ=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_GCJ=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6
-
-if test "$hardcode_action_GCJ" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-       else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-       ;;
-   *)
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-    ;;
-  esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-   ;;
-
-  *)
-    echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != shl_load;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
-  lt_cv_dlopen="shl_load"
-else
-  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_shl_load=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
-  echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != dlopen;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
-  lt_cv_dlopen="dlopen"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dl_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_svld_dlopen=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_svld_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
-if test $ac_cv_lib_svld_dlopen = yes; then
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char dld_link ();
-int
-main ()
-{
-dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_dld_dld_link=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_dld_link=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 19965 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-#line 20063 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}
-EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_GCJ \
-    CC_GCJ \
-    LD_GCJ \
-    lt_prog_compiler_wl_GCJ \
-    lt_prog_compiler_pic_GCJ \
-    lt_prog_compiler_static_GCJ \
-    lt_prog_compiler_no_builtin_flag_GCJ \
-    export_dynamic_flag_spec_GCJ \
-    thread_safe_flag_spec_GCJ \
-    whole_archive_flag_spec_GCJ \
-    enable_shared_with_static_runtimes_GCJ \
-    old_archive_cmds_GCJ \
-    old_archive_from_new_cmds_GCJ \
-    predep_objects_GCJ \
-    postdep_objects_GCJ \
-    predeps_GCJ \
-    postdeps_GCJ \
-    compiler_lib_search_path_GCJ \
-    archive_cmds_GCJ \
-    archive_expsym_cmds_GCJ \
-    postinstall_cmds_GCJ \
-    postuninstall_cmds_GCJ \
-    old_archive_from_expsyms_cmds_GCJ \
-    allow_undefined_flag_GCJ \
-    no_undefined_flag_GCJ \
-    export_symbols_cmds_GCJ \
-    hardcode_libdir_flag_spec_GCJ \
-    hardcode_libdir_flag_spec_ld_GCJ \
-    hardcode_libdir_separator_GCJ \
-    hardcode_automatic_GCJ \
-    module_cmds_GCJ \
-    module_expsym_cmds_GCJ \
-    lt_cv_prog_compiler_c_o_GCJ \
-    exclude_expsyms_GCJ \
-    include_expsyms_GCJ; do
-
-    case $var in
-    old_archive_cmds_GCJ | \
-    old_archive_from_new_cmds_GCJ | \
-    archive_cmds_GCJ | \
-    archive_expsym_cmds_GCJ | \
-    module_cmds_GCJ | \
-    module_expsym_cmds_GCJ | \
-    old_archive_from_expsyms_cmds_GCJ | \
-    export_symbols_cmds_GCJ | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_GCJ
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_GCJ
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_GCJ
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_GCJ
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_GCJ
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_GCJ
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_GCJ
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_GCJ
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_GCJ
-archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_GCJ
-module_expsym_cmds=$lt_module_expsym_cmds_GCJ
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_GCJ
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_GCJ
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_GCJ
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_GCJ
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_GCJ
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_GCJ
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_GCJ
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_GCJ
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_GCJ
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_GCJ
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_GCJ
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_GCJ
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_GCJ
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-objext_RC=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-compiler_RC=$CC
-lt_cv_prog_compiler_c_o_RC=yes
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM \
-    SED SHELL STRIP \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    compiler_RC \
-    CC_RC \
-    LD_RC \
-    lt_prog_compiler_wl_RC \
-    lt_prog_compiler_pic_RC \
-    lt_prog_compiler_static_RC \
-    lt_prog_compiler_no_builtin_flag_RC \
-    export_dynamic_flag_spec_RC \
-    thread_safe_flag_spec_RC \
-    whole_archive_flag_spec_RC \
-    enable_shared_with_static_runtimes_RC \
-    old_archive_cmds_RC \
-    old_archive_from_new_cmds_RC \
-    predep_objects_RC \
-    postdep_objects_RC \
-    predeps_RC \
-    postdeps_RC \
-    compiler_lib_search_path_RC \
-    archive_cmds_RC \
-    archive_expsym_cmds_RC \
-    postinstall_cmds_RC \
-    postuninstall_cmds_RC \
-    old_archive_from_expsyms_cmds_RC \
-    allow_undefined_flag_RC \
-    no_undefined_flag_RC \
-    export_symbols_cmds_RC \
-    hardcode_libdir_flag_spec_RC \
-    hardcode_libdir_flag_spec_ld_RC \
-    hardcode_libdir_separator_RC \
-    hardcode_automatic_RC \
-    module_cmds_RC \
-    module_expsym_cmds_RC \
-    lt_cv_prog_compiler_c_o_RC \
-    exclude_expsyms_RC \
-    include_expsyms_RC; do
-
-    case $var in
-    old_archive_cmds_RC | \
-    old_archive_from_new_cmds_RC | \
-    archive_cmds_RC | \
-    archive_expsym_cmds_RC | \
-    module_cmds_RC | \
-    module_expsym_cmds_RC | \
-    old_archive_from_expsyms_cmds_RC | \
-    export_symbols_cmds_RC | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\$0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
-    ;;
-  esac
-
-cfgfile="$ofile"
-
-  cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_RC
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_compiler_RC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_RC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_RC
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_RC
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_RC
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_RC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_RC
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_RC
-archive_expsym_cmds=$lt_archive_expsym_cmds_RC
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_RC
-module_expsym_cmds=$lt_module_expsym_cmds_RC
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_RC
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_RC
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_RC
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_RC
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_RC
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_RC
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_RC
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_RC
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_RC
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_RC
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_RC
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_RC
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_RC
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_RC
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
-  if test -f "$ltmain_in"; then
-    test -f Makefile && make "$ltmain"
-  fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-	;;
-
-      *)
-	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
-   { (exit 1); exit 1; }; }
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-fi
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# urgh -- these are internal libtool variables...
-
-
-
-
-
-# configuration file -- stay in 8.3 limit
-#
-# since #undef doesn't survive in configuration header files we replace
-# `/undef' with `#undef' after creating the output file
-
-          ac_config_headers="$ac_config_headers ftconfig.h:ftconfig.in"
-
-
-# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
-# and 'builds/unix/unix-cc.mk' that will be used by the build system
-#
-                                        ac_config_files="$ac_config_files unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in freetype-config freetype2.pc:freetype2.in"
-
-
-# re-generate the Jamfile to use libtool now
-#
-# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Find who we are.  Look in the path if we contain no path at all
-# relative or not.
-case $0 in
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s,[$]LINENO.*,&-,
-      t lineno
-      b
-      : lineno
-      N
-      : loop
-      s,[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\),\2\1\2,
-      t loop
-      s,-\n.*,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59a.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-		   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.59a,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2004 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "unix-cc.mk" ) CONFIG_FILES="$CONFIG_FILES unix-cc.mk:unix-cc.in" ;;
-  "unix-def.mk" ) CONFIG_FILES="$CONFIG_FILES unix-def.mk:unix-def.in" ;;
-  "freetype-config" ) CONFIG_FILES="$CONFIG_FILES freetype-config" ;;
-  "freetype2.pc" ) CONFIG_FILES="$CONFIG_FILES freetype2.pc:freetype2.in" ;;
-  "ftconfig.h" ) CONFIG_HEADERS="$CONFIG_HEADERS ftconfig.h:ftconfig.in" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -f -r $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@version_info@,$version_info,;t t
-s,@ft_version@,$ft_version,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@target@,$target,;t t
-s,@target_cpu@,$target_cpu,;t t
-s,@target_vendor@,$target_vendor,;t t
-s,@target_os@,$target_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@CPP@,$CPP,;t t
-s,@XX_CFLAGS@,$XX_CFLAGS,;t t
-s,@XX_ANSIFLAGS@,$XX_ANSIFLAGS,;t t
-s,@RMF@,$RMF,;t t
-s,@RMDIR@,$RMDIR,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@GREP@,$GREP,;t t
-s,@EGREP@,$EGREP,;t t
-s,@FTSYS_SRC@,$FTSYS_SRC,;t t
-s,@LIBZ@,$LIBZ,;t t
-s,@SYSTEM_ZLIB@,$SYSTEM_ZLIB,;t t
-s,@LN_S@,$LN_S,;t t
-s,@ECHO@,$ECHO,;t t
-s,@AR@,$AR,;t t
-s,@ac_ct_AR@,$ac_ct_AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@CXX@,$CXX,;t t
-s,@CXXFLAGS@,$CXXFLAGS,;t t
-s,@ac_ct_CXX@,$ac_ct_CXX,;t t
-s,@CXXCPP@,$CXXCPP,;t t
-s,@F77@,$F77,;t t
-s,@FFLAGS@,$FFLAGS,;t t
-s,@ac_ct_F77@,$ac_ct_F77,;t t
-s,@LIBTOOL@,$LIBTOOL,;t t
-s,@enable_shared@,$enable_shared,;t t
-s,@hardcode_libdir_flag_spec@,$hardcode_libdir_flag_spec,;t t
-s,@wl@,$wl,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    test -d "$ac_dir" || mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-  esac
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
-ac_dB='[	 ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 # Do quote $f, to prevent DOS paths from being IFS'd.
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
-  if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { if $as_mkdir_p; then
-    test -d "$ac_dir" || mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-      rm -f $ac_file
-      mv $tmp/config.h $ac_file
-    fi
-  else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
-  fi
-  # Run the commands associated with the file.
-  case $ac_file in
-    ftconfig.h ) mv ftconfig.h ftconfig.tmp
-   sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
-   rm ftconfig.tmp ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
-# end of configure.ac
diff --git a/nx-X11/extras/freetype2/builds/unix/configure.ac b/nx-X11/extras/freetype2/builds/unix/configure.ac
deleted file mode 100644
index 71a04ce90..000000000
--- a/nx-X11/extras/freetype2/builds/unix/configure.ac
+++ /dev/null
@@ -1,178 +0,0 @@
-# This file is part of the FreeType project.
-#
-# Process this file with autoconf to produce a configure script.
-
-AC_INIT
-AC_CONFIG_SRCDIR([ftconfig.in])
-
-
-# Don't forget to update docs/VERSION.DLL!
-
-version_info='9:7:3'
-AC_SUBST([version_info])
-ft_version=`echo $version_info | tr : .`
-AC_SUBST([ft_version])
-
-
-# checks for system type
-
-AC_CANONICAL_TARGET
-
-
-# checks for programs
-
-AC_PROG_CC
-AC_PROG_CPP
-
-
-# get compiler flags right
-
-if test "x$CC" = xgcc; then
-  XX_CFLAGS="-Wall"
-  XX_ANSIFLAGS="-pedantic -ansi"
-else
-  case "$host" in
-  *-dec-osf*)
-    CFLAGS=
-    XX_CFLAGS="-std1 -g3"
-    XX_ANSIFLAGS=
-    ;;
-  *)
-    XX_CFLAGS=
-    XX_ANSIFLAGS=
-    ;;
-  esac
-fi
-AC_SUBST([XX_CFLAGS])
-AC_SUBST([XX_ANSIFLAGS])
-
-
-# auxiliary programs
-
-AC_CHECK_PROG([RMF], [rm], [rm -f])
-AC_CHECK_PROG([RMDIR], [rmdir], [rmdir])
-
-
-# Since this file will be finally moved to another directory we make
-# the path of the install script absolute.  This small code snippet has
-# been taken from automake's `ylwrap' script.
-
-AC_PROG_INSTALL
-case "$INSTALL" in
-/*)
-  ;;
-*/*)
-  INSTALL="`pwd`/$INSTALL" ;;
-esac
-
-
-# checks for header files
-
-AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h unistd.h])
-
-
-# checks for typedefs, structures, and compiler characteristics
-
-AC_C_CONST
-AC_CHECK_SIZEOF([int])
-AC_CHECK_SIZEOF([long])
-
-
-# checks for library functions
-
-# Here we check whether we can use our mmap file component.
-
-AC_FUNC_MMAP
-if test "$ac_cv_func_mmap_fixed_mapped" != yes; then
-  FTSYS_SRC='$(BASE_DIR)/ftsystem.c'
-else
-  FTSYS_SRC='$(BUILD_DIR)/ftsystem.c'
-
-  AC_CHECK_DECLS([munmap],
-    [],
-    [],
-    [
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/mman.h>
-
-    ])
-
-  FT_MUNMAP_PARAM
-fi
-AC_SUBST([FTSYS_SRC])
-
-AC_CHECK_FUNCS([memcpy memmove])
-
-
-# Check for system zlib
-
-AC_ARG_WITH([zlib],
-  dnl don't quote AS_HELP_STRING!
-  AS_HELP_STRING([--without-zlib],
-                 [use internal zlib instead of system-wide]))
-if test x$with_zlib != xno && test -z "$LIBZ"; then
-  AC_CHECK_LIB([z], [gzsetparams], [AC_CHECK_HEADER([zlib.h], [LIBZ='-lz'])])
-fi
-if test x$with_zlib != xno && test -n "$LIBZ"; then
-  CFLAGS="$CFLAGS -DFT_CONFIG_OPTION_SYSTEM_ZLIB"
-  LDFLAGS="$LDFLAGS $LIBZ"
-  SYSTEM_ZLIB=yes
-fi
-
-
-# Whether to use Mac OS resource-based fonts or not
-
-AC_ARG_WITH([old-mac-fonts],
-  dnl don't quote AS_HELP_STRING!
-  AS_HELP_STRING([--with-old-mac-fonts],
-                 [allow Mac resource-based fonts to be used]))
-if test x$with_old_mac_fonts = xyes; then
-  LDFLAGS="$LDFLAGS -Xlinker -framework -Xlinker CoreServices \
-                    -Xlinker -framework -Xlinker ApplicationServices"
-else
-  CFLAGS="$CFLAGS -DDARWIN_NO_CARBON"
-fi
-
-
-AC_SUBST([LIBZ])
-AC_SUBST([CFLAGS])
-AC_SUBST([LDFLAGS])
-AC_SUBST([SYSTEM_ZLIB])
-
-
-AC_PROG_LIBTOOL
-# urgh -- these are internal libtool variables...
-AC_SUBST([enable_shared])
-AC_SUBST([hardcode_libdir_flag_spec])
-AC_SUBST([wl])
-
-
-# configuration file -- stay in 8.3 limit
-#
-# since #undef doesn't survive in configuration header files we replace
-# `/undef' with `#undef' after creating the output file
-
-AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
-  [mv ftconfig.h ftconfig.tmp
-   sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
-   rm ftconfig.tmp])
-
-# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
-# and 'builds/unix/unix-cc.mk' that will be used by the build system
-#
-AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
-                 unix-def.mk:unix-def.in
-                 freetype-config
-                 freetype2.pc:freetype2.in])
-
-# re-generate the Jamfile to use libtool now
-#
-# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
-
-AC_OUTPUT
-
-# end of configure.ac
diff --git a/nx-X11/extras/freetype2/builds/unix/detect.mk b/nx-X11/extras/freetype2/builds/unix/detect.mk
deleted file mode 100644
index a0419dce7..000000000
--- a/nx-X11/extras/freetype2/builds/unix/detect.mk
+++ /dev/null
@@ -1,90 +0,0 @@
-#
-# FreeType 2 configuration file to detect a UNIX host platform.
-#
-
-
-# Copyright 1996-2000, 2002, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-.PHONY: setup
-
-ifeq ($(PLATFORM),ansi)
-
-  # Note: this test is duplicated in "builds/toplevel.mk".
-  #
-  is_unix := $(strip $(wildcard /sbin/init) \
-                     $(wildcard /usr/sbin/init) \
-                     $(wildcard /hurd/auth))
-  ifneq ($(is_unix),)
-
-    PLATFORM := unix
-
-  endif # test is_unix
-endif # test PLATFORM ansi
-
-ifeq ($(PLATFORM),unix)
-  COPY   := cp
-  DELETE := rm -f
-
-  # If `devel' is the requested target, we use a special configuration
-  # file named `unix-dev.mk'.  It disables optimization and libtool.
-  #
-  ifneq ($(findstring devel,$(MAKECMDGOALS)),)
-    CONFIG_FILE := unix-dev.mk
-    CC          := gcc
-    devel: setup
-    .PHONY: devel
-  else
-
-    # If `lcc' is the requested target, we use a special configuration
-    # file named `unix-lcc.mk'.  It disables libtool for LCC.
-    #
-    ifneq ($(findstring lcc,$(MAKECMDGOALS)),)
-      CONFIG_FILE := unix-lcc.mk
-      CC          := lcc
-      lcc: setup
-      .PHONY: lcc
-    else
-
-      # If a Unix platform is detected, the configure script is called and
-      # `unix-def.mk' together with `unix-cc.mk' is created.
-      #
-      # Arguments to `configure' should be in the CFG variable.  Example:
-      #
-      #   make CFG="--prefix=/usr --disable-static"
-      #
-      # If you need to set CFLAGS or LDFLAGS, do it here also.
-      #
-      # Feel free to add support for other platform specific compilers in
-      # this directory (e.g. solaris.mk + changes here to detect the
-      # platform).
-      #
-      CONFIG_FILE := unix.mk
-      setup: $(BUILD_DIR)/unix-def.mk
-      unix: setup
-      .PHONY: unix
-    endif
-  endif
-
-  setup: std_setup
-
-  have_mk := $(strip $(wildcard $(OBJ_DIR)/Makefile))
-  ifneq ($(have_mk),)
-    # we are building FT2 not in the src tree
-    $(BUILD_DIR)/unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in
-	    $(TOP_DIR)/builds/unix/configure $(CFG)
-  else
-    $(BUILD_DIR)/unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in
-	    cd builds/unix; ./configure $(CFG)
-  endif
-
-endif   # test PLATFORM unix
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/freetype-config.in b/nx-X11/extras/freetype2/builds/unix/freetype-config.in
deleted file mode 100644
index 9a6ae100d..000000000
--- a/nx-X11/extras/freetype2/builds/unix/freetype-config.in
+++ /dev/null
@@ -1,134 +0,0 @@
-#! /bin/sh
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-exec_prefix_set=no
-includedir=@includedir@
-libdir=@libdir@
-enable_shared=@enable_shared@
-wl=@wl@
-hardcode_libdir_flag_spec='@hardcode_libdir_flag_spec@'
-
-usage()
-{
-  cat <<EOF
-Usage: freetype-config [OPTION]...
-Get FreeType compilation and linking information.
-
-Options:
-  --prefix               display \`--prefix' value used for building the
-                         FreeType library
-  --prefix=PREFIX        override \`--prefix' value with PREFIX
-  --exec-prefix          display \`--exec-prefix' value used for building
-                         the FreeType library
-  --exec-prefix=EPREFIX  override \`--exec-prefix' value with EPREFIX
-  --version              display libtool version of the FreeType library
-  --libs                 display flags for linking with the FreeType library
-  --libtool              display library name for linking with libtool
-  --cflags               display flags for compiling with the FreeType
-                         library
-EOF
-  exit $1
-}
-
-if test $# -eq 0 ; then
-  usage 1 1>&2
-fi
-
-while test $# -gt 0 ; do
-  case "$1" in
-  -*=*)
-    optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
-    ;;
-  *)
-    optarg=
-    ;;
-  esac
-
-  case $1 in
-  --prefix=*)
-    prefix=$optarg
-    local_prefix=yes
-    ;;
-  --prefix)
-    echo_prefix=yes
-    ;;
-  --exec-prefix=*)
-    exec_prefix=$optarg
-    exec_prefix_set=yes
-    local_prefix=yes
-    ;;
-  --exec-prefix)
-    echo_exec_prefix=yes
-    ;;
-  --version)
-    echo @ft_version@
-    exit 0
-    ;;
-  --cflags)
-    echo_cflags=yes
-    ;;
-  --libs)
-    echo_libs=yes
-    ;;
-  --libtool)
-    echo_libtool=yes
-    ;;
-  *)
-    usage 1 1>&2
-    ;;
-  esac
-  shift
-done
-
-if test "$local_prefix" = "yes" ; then
-  if test "$exec_prefix_set" != "yes" ; then
-    exec_prefix=$prefix
-  fi
-fi
-
-if test "$echo_prefix" = "yes" ; then
-  echo $prefix
-fi
-
-if test "$echo_exec_prefix" = "yes" ; then
-  echo $exec_prefix
-fi
-
-if test "$exec_prefix_set" = "yes" ; then
-  libdir=$exec_prefix/lib
-else
-  if test "$local_prefix" = "yes" ; then
-    includedir=$prefix/include
-    libdir=$prefix/lib
-  fi
-fi
-
-if test "$echo_cflags" = "yes" ; then
-  cflags="-I$includedir/freetype2"
-  if test "$includedir" != "/usr/include" ; then
-    echo $cflags -I$includedir
-  else
-    echo $cflags
-  fi
-fi
-
-if test "$echo_libs" = "yes" ; then
-  rpath=
-  if test "$enable_shared" = "yes" ; then
-    eval "rpath=\"$hardcode_libdir_flag_spec\""
-  fi
-  libs="-lfreetype @LIBZ@"
-  if test "$libdir" != "/usr/lib" ; then
-    echo -L$libdir $rpath $libs
-  else
-    echo $libs
-  fi
-fi
-
-if test "$echo_libtool" = "yes" ; then
-  convlib="libfreetype.la"
-  echo $libdir/$convlib
-fi
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/freetype2.in b/nx-X11/extras/freetype2/builds/unix/freetype2.in
deleted file mode 100644
index 0bc22d1ba..000000000
--- a/nx-X11/extras/freetype2/builds/unix/freetype2.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: FreeType 2
-Description: A free, high-quality, and portable font engine.
-Version: @ft_version@
-Requires:
-Libs: -L${libdir} -lfreetype @LIBZ@
-Cflags: -I${includedir}/freetype2
diff --git a/nx-X11/extras/freetype2/builds/unix/freetype2.m4 b/nx-X11/extras/freetype2/builds/unix/freetype2.m4
deleted file mode 100644
index 7424a32ab..000000000
--- a/nx-X11/extras/freetype2/builds/unix/freetype2.m4
+++ /dev/null
@@ -1,178 +0,0 @@
-# Configure paths for FreeType2
-# Marcelo Magallon 2001-10-26, based on gtk.m4 by Owen Taylor
-#
-# serial 2
-
-# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
-# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
-# MINIMUM-VERSION is what libtool reports; the default is `7.0.1' (this is
-# FreeType 2.0.4).
-#
-AC_DEFUN([AC_CHECK_FT2],
-  [# Get the cflags and libraries from the freetype-config script
-   #
-   AC_ARG_WITH([ft-prefix],
-     dnl don't quote AS_HELP_STRING!
-     AS_HELP_STRING([--with-ft-prefix=PREFIX],
-                    [Prefix where FreeType is installed (optional)]),
-     [ft_config_prefix="$withval"],
-     [ft_config_prefix=""])
-
-   AC_ARG_WITH([ft-exec-prefix],
-     dnl don't quote AS_HELP_STRING!
-     AS_HELP_STRING([--with-ft-exec-prefix=PREFIX],
-                    [Exec prefix where FreeType is installed (optional)]),
-     [ft_config_exec_prefix="$withval"],
-     [ft_config_exec_prefix=""])
-
-   AC_ARG_ENABLE([freetypetest],
-     dnl don't quote AS_HELP_STRING!
-     AS_HELP_STRING([--disable-freetypetest],
-                    [Do not try to compile and run a test FreeType program]),
-     [],
-     [enable_fttest=yes])
-
-   if test x$ft_config_exec_prefix != x ; then
-     ft_config_args="$ft_config_args --exec-prefix=$ft_config_exec_prefix"
-     if test x${FT2_CONFIG+set} != xset ; then
-       FT2_CONFIG=$ft_config_exec_prefix/bin/freetype-config
-     fi
-   fi
-
-   if test x$ft_config_prefix != x ; then
-     ft_config_args="$ft_config_args --prefix=$ft_config_prefix"
-     if test x${FT2_CONFIG+set} != xset ; then
-       FT2_CONFIG=$ft_config_prefix/bin/freetype-config
-     fi
-   fi
-
-   AC_PATH_PROG([FT2_CONFIG], [freetype-config], [no])
-
-   min_ft_version=m4_if([$1], [], [7.0.1], [$1])
-   AC_MSG_CHECKING([for FreeType -- version >= $min_ft_version])
-   no_ft=""
-   if test "$FT2_CONFIG" = "no" ; then
-     no_ft=yes
-   else
-     FT2_CFLAGS=`$FT2_CONFIG $ft_config_args --cflags`
-     FT2_LIBS=`$FT2_CONFIG $ft_config_args --libs`
-     ft_config_major_version=`$FT2_CONFIG $ft_config_args --version | \
-       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-     ft_config_minor_version=`$FT2_CONFIG $ft_config_args --version | \
-       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-     ft_config_micro_version=`$FT2_CONFIG $ft_config_args --version | \
-       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-     ft_min_major_version=`echo $min_ft_version | \
-       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
-     ft_min_minor_version=`echo $min_ft_version | \
-       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
-     ft_min_micro_version=`echo $min_ft_version | \
-       sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
-     if test x$enable_fttest = xyes ; then
-       ft_config_is_lt=""
-       if test $ft_config_major_version -lt $ft_min_major_version ; then
-         ft_config_is_lt=yes
-       else
-         if test $ft_config_major_version -eq $ft_min_major_version ; then
-           if test $ft_config_minor_version -lt $ft_min_minor_version ; then
-             ft_config_is_lt=yes
-           else
-             if test $ft_config_minor_version -eq $ft_min_minor_version ; then
-               if test $ft_config_micro_version -lt $ft_min_micro_version ; then
-                 ft_config_is_lt=yes
-               fi
-             fi
-           fi
-         fi
-       fi
-       if test x$ft_config_is_lt = xyes ; then
-         no_ft=yes
-       else
-         ac_save_CFLAGS="$CFLAGS"
-         ac_save_LIBS="$LIBS"
-         CFLAGS="$CFLAGS $FT2_CFLAGS"
-         LIBS="$FT2_LIBS $LIBS"
-
-         #
-         # Sanity checks for the results of freetype-config to some extent.
-         #
-         AC_RUN_IFELSE([
-             AC_LANG_SOURCE([[
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main()
-{
-  FT_Library library;
-  FT_Error  error;
-
-  error = FT_Init_FreeType(&library);
-
-  if (error)
-    return 1;
-  else
-  {
-    FT_Done_FreeType(library);
-    return 0;
-  }
-}
-
-             ]])
-           ],
-           [],
-           [no_ft=yes],
-           [echo $ECHO_N "cross compiling; assuming OK... $ECHO_C"])
-
-         CFLAGS="$ac_save_CFLAGS"
-         LIBS="$ac_save_LIBS"
-       fi             # test $ft_config_version -lt $ft_min_version
-     fi               # test x$enable_fttest = xyes
-   fi                 # test "$FT2_CONFIG" = "no"
-
-   if test x$no_ft = x ; then
-     AC_MSG_RESULT([yes])
-     m4_if([$2], [], [:], [$2])
-   else
-     AC_MSG_RESULT([no])
-     if test "$FT2_CONFIG" = "no" ; then
-       AC_MSG_WARN([
-
-  The freetype-config script installed by FreeType 2 could not be found.
-  If FreeType 2 was installed in PREFIX, make sure PREFIX/bin is in
-  your path, or set the FT2_CONFIG environment variable to the
-  full path to freetype-config.
-       ])
-     else
-       if test x$ft_config_is_lt = xyes ; then
-         AC_MSG_WARN([
-
-  Your installed version of the FreeType 2 library is too old.
-  If you have different versions of FreeType 2, make sure that
-  correct values for --with-ft-prefix or --with-ft-exec-prefix
-  are used, or set the FT2_CONFIG environment variable to the
-  full path to freetype-config.
-         ])
-       else
-         AC_MSG_WARN([
-
-  The FreeType test program failed to run.  If your system uses
-  shared libraries and they are installed outside the normal
-  system library path, make sure the variable LD_LIBRARY_PATH
-  (or whatever is appropiate for your system) is correctly set.
-         ])
-       fi
-     fi
-
-     FT2_CFLAGS=""
-     FT2_LIBS=""
-     m4_if([$3], [], [:], [$3])
-   fi
-
-   AC_SUBST([FT2_CFLAGS])
-   AC_SUBST([FT2_LIBS])])
-
-# end of freetype2.m4
diff --git a/nx-X11/extras/freetype2/builds/unix/ft-munmap.m4 b/nx-X11/extras/freetype2/builds/unix/ft-munmap.m4
deleted file mode 100644
index 0036ffb61..000000000
--- a/nx-X11/extras/freetype2/builds/unix/ft-munmap.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-## FreeType specific autoconf tests
-
-# serial 2
-
-AC_DEFUN([FT_MUNMAP_PARAM],
-  [AC_MSG_CHECKING([for munmap's first parameter type])
-   AC_COMPILE_IFELSE([
-       AC_LANG_SOURCE([[
-
-#include <unistd.h>
-#include <sys/mman.h>
-int munmap(void *, size_t);
-
-       ]])
-     ],
-     [AC_MSG_RESULT([void *])
-      AC_DEFINE([MUNMAP_USES_VOIDP],
-        [],
-        [Define to 1 if the first argument of munmap is of type void *])],
-     [AC_MSG_RESULT([char *])])
-  ])
-
-# end of ft-munmap.m4
diff --git a/nx-X11/extras/freetype2/builds/unix/ft2unix.h b/nx-X11/extras/freetype2/builds/unix/ft2unix.h
deleted file mode 100644
index 7390dc494..000000000
--- a/nx-X11/extras/freetype2/builds/unix/ft2unix.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ft2build.h                                                             */
-/*                                                                         */
-/*    Build macros of the FreeType 2 library.                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This is a Unix-specific version of <ft2build.h> that should be used   */
-  /* exclusively *after* installation of the library.                      */
-  /*                                                                       */
-  /* It assumes that "/usr/local/include/freetype2" (or whatever is        */
-  /* returned by the "freetype-config --cflags" or "pkg-config --cflags"   */
-  /* command) is in your compilation include path.                         */
-  /*                                                                       */
-  /* We don't need to do anything special in this release.  However, for   */
-  /* a future FreeType 2 release, the following installation changes will  */
-  /* be performed:                                                         */
-  /*                                                                       */
-  /*   - The contents of "freetype-2.x/include/freetype" will be installed */
-  /*     to "/usr/local/include/freetype2" instead of                      */
-  /*     "/usr/local/include/freetype2/freetype".                          */
-  /*                                                                       */
-  /*   - This file will #include <freetype2/config/ftheader.h>, instead    */
-  /*     of <freetype/config/ftheader.h>.                                  */
-  /*                                                                       */
-  /*   - The contents of "ftheader.h" will be processed with `sed' to      */
-  /*     replace all "<freetype/xxx>" with "<freetype2/xxx>".              */
-  /*                                                                       */
-  /*   - Adding "/usr/local/include/freetype2" to your compilation include */
-  /*     path will not be necessary anymore.                               */
-  /*                                                                       */
-  /* These changes will be transparent to client applications which use    */
-  /* freetype-config (or pkg-config).  No modifications will be necessary  */
-  /* to compile with the new scheme.                                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FT2_BUILD_UNIX_H__
-#define __FT2_BUILD_UNIX_H__
-
-  /* "<prefix>/include/freetype2" must be in your current inclusion path */
-#include <freetype/config/ftheader.h>
-
-#endif /* __FT2_BUILD_UNIX_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/unix/ftconfig.in b/nx-X11/extras/freetype2/builds/unix/ftconfig.in
deleted file mode 100644
index 6d8f1e856..000000000
--- a/nx-X11/extras/freetype2/builds/unix/ftconfig.in
+++ /dev/null
@@ -1,334 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftconfig.in                                                            */
-/*                                                                         */
-/*    UNIX-specific configuration file (specification only).               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This header file contains a number of macro definitions that are used */
-  /* by the rest of the engine.  Most of the macros here are automatically */
-  /* determined at compile time, and you should not need to change it to   */
-  /* port FreeType, except to compile the library with a non-ANSI          */
-  /* compiler.                                                             */
-  /*                                                                       */
-  /* Note however that if some specific modifications are needed, we       */
-  /* advise you to place a modified copy in your build directory.          */
-  /*                                                                       */
-  /* The build directory is usually `freetype/builds/<system>', and        */
-  /* contains system-specific files that are always included first when    */
-  /* building the library.                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTCONFIG_H__
-#define __FTCONFIG_H__
-
-#include <ft2build.h>
-#include FT_CONFIG_OPTIONS_H
-#include FT_CONFIG_STANDARD_LIBRARY_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*               PLATFORM-SPECIFIC CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* These macros can be toggled to suit a specific system.  The current   */
-  /* ones are defaults used to compile FreeType in an ANSI C environment   */
-  /* (16bit compilers are also supported).  Copy this file to your own     */
-  /* `freetype/builds/<system>' directory, and edit it to port the engine. */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#undef HAVE_UNISTD_H
-#undef HAVE_FCNTL_H
-
-#undef SIZEOF_INT
-#undef SIZEOF_LONG
-
-
-#define FT_SIZEOF_INT   SIZEOF_INT
-#define FT_SIZEOF_LONG  SIZEOF_LONG
-
-#define FT_CHAR_BIT  CHAR_BIT
-
-  /* Preferred alignment of data */
-#define FT_ALIGNMENT  8
-
-
-  /* FT_UNUSED is a macro used to indicate that a given parameter is not  */
-  /* used -- this is only used to get rid of unpleasant compiler warnings */
-#ifndef FT_UNUSED
-#define FT_UNUSED( arg )  ( (arg) = (arg) )
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     AUTOMATIC CONFIGURATION MACROS                    */
-  /*                                                                       */
-  /* These macros are computed from the ones defined above.  Don't touch   */
-  /* their definition, unless you know precisely what you are doing.  No   */
-  /* porter should need to mess with them.                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Mac support                                                           */
-  /*                                                                       */
-  /*   This is the only necessary change, so it is defined here instead    */
-  /*   providing a new configuration file.                                 */
-  /*                                                                       */
-#if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \
-    ( defined( __MWERKS__ ) && defined( macintosh )        )
-#define FT_MACINTOSH 1
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IntN types                                                            */
-  /*                                                                       */
-  /*   Used to guarantee the size of some specific integers.               */
-  /*                                                                       */
-  typedef signed short    FT_Int16;
-  typedef unsigned short  FT_UInt16;
-
-#if FT_SIZEOF_INT == 4
-
-  typedef signed int      FT_Int32;
-  typedef unsigned int    FT_UInt32;
-
-#elif FT_SIZEOF_LONG == 4
-
-  typedef signed long     FT_Int32;
-  typedef unsigned long   FT_UInt32;
-
-#else
-#error "no 32bit type found -- please check your configuration files"
-#endif
-
-
-  /* look up an integer type that is at least 32 bits */
-#if FT_SIZEOF_INT >= 4
-
-  typedef int            FT_Fast;
-  typedef unsigned int   FT_UFast;
-
-#elif FT_SIZEOF_LONG >= 4
-
-  typedef long           FT_Fast;
-  typedef unsigned long  FT_UFast;
-
-#endif
-
-
-  /* determine whether we have a 64-bit int type for platforms without */
-  /* Autoconf                                                          */
-#if FT_SIZEOF_LONG == 8
-
-  /* FT_LONG64 must be defined if a 64-bit type is available */
-#define FT_LONG64
-#define FT_INT64  long
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 900  /* Visual C++ (and Intel C++) */
-
-  /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64  __int64
-
-#elif defined( __BORLANDC__ )  /* Borland C++ */
-
-  /* XXXX: We should probably check the value of __BORLANDC__ in order */
-  /*       to test the compiler version.                               */
-
-  /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64  __int64
-
-#elif defined( __WATCOMC__ )   /* Watcom C++ */
-
-  /* Watcom doesn't provide 64-bit data types */
-
-#elif defined( __MWERKS__ )    /* Metrowerks CodeWarrior */
-
-#define FT_LONG64
-#define FT_INT64  long long int
-
-#elif defined( __GNUC__ )
-
-  /* GCC provides the "long long" type */
-#define FT_LONG64
-#define FT_INT64  long long int
-
-#endif /* FT_SIZEOF_LONG == 8 */
-
-
-#define FT_BEGIN_STMNT  do {
-#define FT_END_STMNT    } while ( 0 )
-#define FT_DUMMY_STMNT  FT_BEGIN_STMNT FT_END_STMNT
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A 64-bit data type will create compilation problems if you compile    */
-  /* in strict ANSI mode.  To avoid them, we disable their use if          */
-  /* __STDC__ is defined.  You can however ignore this rule by             */
-  /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro.        */
-  /*                                                                       */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
-  /* Undefine the 64-bit macros in strict ANSI compilation mode.  */
-  /* Since `#undef' doesn't survive in configuration header files */
-  /* we use the postprocessing facility of AC_CONFIG_HEADERS to   */
-  /* replace the leading `/' with `#'.                            */
-/undef FT_LONG64
-/undef FT_INT64
-
-#endif /* __STDC__ */
-
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
-
-
-#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
-
-#define FT_LOCAL( x )      static  x
-#define FT_LOCAL_DEF( x )  static  x
-
-#else
-
-#ifdef __cplusplus
-#define FT_LOCAL( x )      extern "C"  x
-#define FT_LOCAL_DEF( x )  extern "C"  x
-#else
-#define FT_LOCAL( x )      extern  x
-#define FT_LOCAL_DEF( x )  x
-#endif
-
-#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
-
-
-#ifndef FT_BASE
-
-#ifdef __cplusplus
-#define FT_BASE( x )  extern "C"  x
-#else
-#define FT_BASE( x )  extern  x
-#endif
-
-#endif /* !FT_BASE */
-
-
-#ifndef FT_BASE_DEF
-
-#ifdef __cplusplus
-#define FT_BASE_DEF( x )  extern "C"  x
-#else
-#define FT_BASE_DEF( x )  extern  x
-#endif
-
-#endif /* !FT_BASE_DEF */
-
-
-#ifndef FT_EXPORT
-
-#ifdef __cplusplus
-#define FT_EXPORT( x )  extern "C"  x
-#else
-#define FT_EXPORT( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT */
-
-
-#ifndef FT_EXPORT_DEF
-
-#ifdef __cplusplus
-#define FT_EXPORT_DEF( x )  extern "C"  x
-#else
-#define FT_EXPORT_DEF( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT_DEF */
-
-
-#ifndef FT_EXPORT_VAR
-
-#ifdef __cplusplus
-#define FT_EXPORT_VAR( x )  extern "C"  x
-#else
-#define FT_EXPORT_VAR( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT_VAR */
-
-  /* The following macros are needed to compile the library with a   */
-  /* C++ compiler and with 16bit compilers.                          */
-  /*                                                                 */
-
-  /* This is special.  Within C++, you must specify `extern "C"' for */
-  /* functions which are used via function pointers, and you also    */
-  /* must do that for structures which contain function pointers to  */
-  /* assure C linkage -- it's not possible to have (local) anonymous */
-  /* functions which are accessed by (global) function pointers.     */
-  /*                                                                 */
-  /*                                                                 */
-  /* FT_CALLBACK_DEF is used to _define_ a callback function.        */
-  /*                                                                 */
-  /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
-  /* contains pointers to callback functions.                        */
-  /*                                                                 */
-  /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable   */
-  /* that contains pointers to callback functions.                   */
-  /*                                                                 */
-  /*                                                                 */
-  /* Some 16bit compilers have to redefine these macros to insert    */
-  /* the infamous `_cdecl' or `__fastcall' declarations.             */
-  /*                                                                 */
-#ifndef FT_CALLBACK_DEF
-#ifdef __cplusplus
-#define FT_CALLBACK_DEF( x )  extern "C"  x
-#else
-#define FT_CALLBACK_DEF( x )  static  x
-#endif
-#endif /* FT_CALLBACK_DEF */
-
-#ifndef FT_CALLBACK_TABLE
-#ifdef __cplusplus
-#define FT_CALLBACK_TABLE      extern "C"
-#define FT_CALLBACK_TABLE_DEF  extern "C"
-#else
-#define FT_CALLBACK_TABLE      extern
-#define FT_CALLBACK_TABLE_DEF  /* nothing */
-#endif
-#endif /* FT_CALLBACK_TABLE */
-
-
-FT_END_HEADER
-
-
-#endif /* __FTCONFIG_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/unix/ftsystem.c b/nx-X11/extras/freetype2/builds/unix/ftsystem.c
deleted file mode 100644
index c7a34ad58..000000000
--- a/nx-X11/extras/freetype2/builds/unix/ftsystem.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsystem.c                                                             */
-/*                                                                         */
-/*    Unix-specific FreeType low-level system interface (body).            */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-  /* we use our special ftconfig.h file, not the standard one */
-#include <ftconfig.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_SYSTEM_H
-#include FT_ERRORS_H
-#include FT_TYPES_H
-#include FT_INTERNAL_OBJECTS_H
-
-  /* memory-mapping includes and definitions */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <sys/mman.h>
-#ifndef MAP_FILE
-#define MAP_FILE  0x00
-#endif
-
-#ifdef MUNMAP_USES_VOIDP
-#define MUNMAP_ARG_CAST  void *
-#else
-#define MUNMAP_ARG_CAST  char *
-#endif
-
-#ifdef NEED_MUNMAP_DECL
-
-#ifdef __cplusplus
-  extern "C"
-#else
-  extern
-#endif
-  int
-  munmap( char*  addr,
-          int    len );
-
-#define MUNMAP_ARG_CAST  char *
-
-#endif /* NEED_DECLARATION_MUNMAP */
-
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                       MEMORY MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_alloc                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory allocation function.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    size   :: The requested size in bytes.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of newly allocated block.                              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_alloc( FT_Memory  memory,
-            long       size )
-  {
-    FT_UNUSED( memory );
-
-    return malloc( size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_realloc                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory reallocation function.                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory   :: A pointer to the memory object.                        */
-  /*                                                                       */
-  /*    cur_size :: The current size of the allocated memory block.        */
-  /*                                                                       */
-  /*    new_size :: The newly requested size in bytes.                     */
-  /*                                                                       */
-  /*    block    :: The current address of the block in memory.            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of the reallocated memory block.                       */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_realloc( FT_Memory  memory,
-              long       cur_size,
-              long       new_size,
-              void*      block )
-  {
-    FT_UNUSED( memory );
-    FT_UNUSED( cur_size );
-
-    return realloc( block, new_size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_free                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory release function.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    block  :: The address of block in memory to be freed.              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_free( FT_Memory  memory,
-           void*      block )
-  {
-    FT_UNUSED( memory );
-
-    free( block );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     RESOURCE MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_io
-
-  /* We use the macro STREAM_FILE for convenience to extract the       */
-  /* system-specific stream handle from a given FreeType stream object */
-#define STREAM_FILE( stream )  ( (FILE*)stream->descriptor.pointer )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_close_stream_by_munmap                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to close a stream which is opened by mmap.            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_close_stream_by_munmap( FT_Stream  stream )
-  {
-    munmap( (MUNMAP_ARG_CAST)stream->descriptor.pointer, stream->size );
-
-    stream->descriptor.pointer = NULL;
-    stream->size               = 0;
-    stream->base               = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_close_stream_by_free                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to close a stream which is created by ft_alloc.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_close_stream_by_free( FT_Stream  stream )
-  {
-    ft_free( NULL, stream->descriptor.pointer );
-
-    stream->descriptor.pointer = NULL;
-    stream->size               = 0;
-    stream->base               = 0;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_Open( FT_Stream    stream,
-                  const char*  filepathname )
-  {
-    int          file;
-    struct stat  stat_buf;
-
-
-    if ( !stream )
-      return FT_Err_Invalid_Stream_Handle;
-
-    /* open the file */
-    file = open( filepathname, O_RDONLY );
-    if ( file < 0 )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not open `%s'\n", filepathname ));
-      return FT_Err_Cannot_Open_Resource;
-    }
-
-    /* Here we ensure that a "fork" will _not_ duplicate   */
-    /* our opened input streams on Unix.  This is critical */
-    /* since it avoids some (possible) access control      */
-    /* issues and cleans up the kernel file table a bit.   */
-    /*                                                     */
-#ifdef F_SETFD
-#ifdef FD_CLOEXEC
-    (void)fcntl( file, F_SETFD, FD_CLOEXEC );
-#else
-    (void)fcntl( file, F_SETFD, 1 );
-#endif /* FD_CLOEXEC */
-#endif /* F_SETFD */
-
-    if ( fstat( file, &stat_buf ) < 0 )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not `fstat' file `%s'\n", filepathname ));
-      goto Fail_Map;
-    }
-
-    stream->size = stat_buf.st_size;
-    stream->pos  = 0;
-    stream->base = (unsigned char *)mmap( NULL,
-                                          stream->size,
-                                          PROT_READ,
-                                          MAP_FILE | MAP_PRIVATE,
-                                          file,
-                                          0 );
-
-    if ( (long)stream->base != -1 )
-      stream->close = ft_close_stream_by_munmap;
-    else
-    {
-      ssize_t  total_read_count;
-    
-
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
-      
-      stream->base = ft_alloc( NULL, stream->size );
-      
-      if ( !stream->base )
-      {
-        FT_ERROR(( "FT_Stream_Open:" ));
-        FT_ERROR(( " could not `alloc' memory\n" ));
-        goto Fail_Map;
-      }
-      
-      total_read_count = 0;
-      do {
-        ssize_t  read_count;
-
-
-        read_count = read( file, 
-                           stream->base + total_read_count, 
-                           stream->size - total_read_count );
-
-        if ( ( read_count == -1 ) )
-        {
-          if ( errno == EINTR )
-            continue;
-
-          FT_ERROR(( "FT_Stream_Open:" ));
-          FT_ERROR(( " error while `read'ing file `%s'\n", filepathname ));
-          goto Fail_Read;
-        }
-
-        total_read_count += read_count;
-
-      } while ( total_read_count != stream->size );
-
-      stream->close = ft_close_stream_by_free;
-    }
-
-    close( file );
-
-    stream->descriptor.pointer = stream->base;
-    stream->pathname.pointer   = (char*)filepathname;
-
-    stream->read = 0;
-
-    FT_TRACE1(( "FT_Stream_Open:" ));
-    FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
-                filepathname, stream->size ));
-
-    return FT_Err_Ok;
-
-  Fail_Read:
-    ft_free( NULL, stream->base );
-
-  Fail_Map:
-    close( file );
-
-    stream->base = NULL;
-    stream->size = 0;
-    stream->pos  = 0;
-
-    return FT_Err_Cannot_Open_Stream;
-  }
-
-
-#ifdef FT_DEBUG_MEMORY
-
-  extern FT_Int
-  ft_mem_debug_init( FT_Memory  memory );
-
-  extern void
-  ft_mem_debug_done( FT_Memory  memory );
-
-#endif
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Memory )
-  FT_New_Memory( void )
-  {
-    FT_Memory  memory;
-
-
-    memory = (FT_Memory)malloc( sizeof ( *memory ) );
-    if ( memory )
-    {
-      memory->user    = 0;
-      memory->alloc   = ft_alloc;
-      memory->realloc = ft_realloc;
-      memory->free    = ft_free;
-#ifdef FT_DEBUG_MEMORY
-      ft_mem_debug_init( memory );
-#endif
-    }
-
-    return memory;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Done_Memory( FT_Memory  memory )
-  {
-#ifdef FT_DEBUG_MEMORY
-    ft_mem_debug_done( memory );
-#endif
-    memory->free( memory, memory );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/unix/install-sh b/nx-X11/extras/freetype2/builds/unix/install-sh
deleted file mode 100644
index 77bc38144..000000000
--- a/nx-X11/extras/freetype2/builds/unix/install-sh
+++ /dev/null
@@ -1,316 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2004-02-15.20
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=
-transform_arg=
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=
-chgrpcmd=
-stripcmd=
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=
-dst=
-dir_arg=
-
-usage="Usage: $0 [OPTION]... SRCFILE DSTFILE
-   or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 -d DIRECTORIES...
-
-In the first form, install SRCFILE to DSTFILE, removing SRCFILE by default.
-In the second, create the directory path DIR.
-
-Options:
--b=TRANSFORMBASENAME
--c         copy source (using $cpprog) instead of moving (using $mvprog).
--d         create directories instead of installing files.
--g GROUP   $chgrp installed files to GROUP.
--m MODE    $chmod installed files to MODE.
--o USER    $chown installed files to USER.
--s         strip installed files (using $stripprog).
--t=TRANSFORM
---help     display this help and exit.
---version  display version info and exit.
-
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
-"
-
-while test -n "$1"; do
-  case $1 in
-    -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-        shift
-        continue;;
-
-    -c) instcmd=$cpprog
-        shift
-        continue;;
-
-    -d) dir_arg=true
-        shift
-        continue;;
-
-    -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
-
-    --help) echo "$usage"; exit 0;;
-
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
-
-    -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
-
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
-
-    -t=*) transformarg=`echo $1 | sed 's/-t=//'`
-        shift
-        continue;;
-
-    --version) echo "$0 $scriptversion"; exit 0;;
-
-    *)  # When -d is used, all remaining arguments are directories to create.
-	test -n "$dir_arg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
-	break;;
-  esac
-done
-
-if test -z "$1"; then
-  if test -z "$dir_arg"; then
-    echo "$0: no input file specified." >&2
-    exit 1
-  fi
-  # It's OK to call `install-sh -d' without argument.
-  # This can happen when creating conditional directories.
-  exit 0
-fi
-
-for src
-do
-  # Protect names starting with `-'.
-  case $src in
-    -*) src=./$src ;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    src=
-
-    if test -d "$dst"; then
-      instcmd=:
-      chmodcmd=
-    else
-      instcmd=$mkdirprog
-    fi
-  else
-    # Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-    # might cause directories to be created, which would be especially bad
-    # if $src (and thus $dsttmp) contains '*'.
-    if test ! -f "$src" && test ! -d "$src"; then
-      echo "$0: $src does not exist." >&2
-      exit 1
-    fi
-
-    if test -z "$dstarg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-
-    dst=$dstarg
-    # Protect names starting with `-'.
-    case $dst in
-      -*) dst=./$dst ;;
-    esac
-
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      dst=$dst/`basename "$src"`
-    fi
-  fi
-
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-  # Make sure that the destination directory exists.
-
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
-
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    IFS=$oIFS
-
-    pathcomp=
-
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
-      shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp" || lasterr=$?
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test ! -d "$pathcomp" && { (exit ${lasterr-1}); exit; }
-      fi
-      pathcomp=$pathcomp/
-    done
-  fi
-
-  if test -n "$dir_arg"; then
-    $doit $instcmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
-  else
-    # If we're going to rename the final executable, determine the name now.
-    if test -z "$transformarg"; then
-      dstfile=`basename "$dst"`
-    else
-      dstfile=`basename "$dst" $transformbasename \
-               | sed $transformarg`$transformbasename
-    fi
-
-    # don't allow the sed command to completely eliminate the filename.
-    test -z "$dstfile" && dstfile=`basename "$dst"`
-
-    # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
-
-    # Trap to clean up those temp files at exit.
-    trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
-    trap '(exit $?); exit' 1 2 13 15
-
-    # Move or copy the file name to the temp name
-    $doit $instcmd "$src" "$dsttmp" &&
-
-    # and set any options; do chmod last to preserve setuid bits.
-    #
-    # If any of these fail, we abort the whole thing.  If we want to
-    # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $instcmd $src $dsttmp" command.
-    #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now remove or move aside any old file at destination location.  We
-    # try this two ways since rm can't unlink itself on some systems and
-    # the destination file might be busy for other reasons.  In this case,
-    # the final cleanup might fail but the new file should still install
-    # successfully.
-    {
-      if test -f "$dstdir/$dstfile"; then
-        $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-        || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-        || {
-	  echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-	  (exit 1); exit
-        }
-      else
-        :
-      fi
-    } &&
-
-    # Now rename the file to the real destination.
-    $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-  fi || { (exit 1); exit; }
-done
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit
-}
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/nx-X11/extras/freetype2/builds/unix/install.mk b/nx-X11/extras/freetype2/builds/unix/install.mk
deleted file mode 100644
index 1930d3716..000000000
--- a/nx-X11/extras/freetype2/builds/unix/install.mk
+++ /dev/null
@@ -1,100 +0,0 @@
-#
-# FreeType 2 installation instructions for Unix systems
-#
-
-
-# Copyright 1996-2000, 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-# If you say
-#
-#   make install DESTDIR=/tmp/somewhere/
-#
-# don't forget the final backslash (this command is mainly for package
-# maintainers).
-
-
-.PHONY: install uninstall check
-
-# Unix installation and deinstallation targets.
-install: $(PROJECT_LIBRARY)
-	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)                                 \
-                         $(DESTDIR)$(libdir)/pkgconfig                       \
-                         $(DESTDIR)$(includedir)/freetype2/freetype/config   \
-                         $(DESTDIR)$(includedir)/freetype2/freetype/internal \
-                         $(DESTDIR)$(includedir)/freetype2/freetype/cache    \
-                         $(DESTDIR)$(bindir)                                 \
-                         $(DESTDIR)$(datadir)/aclocal
-	$(LIBTOOL) --mode=install $(INSTALL) \
-                                  $(PROJECT_LIBRARY) $(DESTDIR)$(libdir)
-	-for P in $(PUBLIC_H) ; do                           \
-          $(INSTALL_DATA)                                    \
-            $$P $(DESTDIR)$(includedir)/freetype2/freetype ; \
-        done
-	-for P in $(BASE_H) ; do                                      \
-          $(INSTALL_DATA)                                             \
-            $$P $(DESTDIR)$(includedir)/freetype2/freetype/internal ; \
-        done
-	-for P in $(CONFIG_H) ; do                                  \
-          $(INSTALL_DATA)                                           \
-            $$P $(DESTDIR)$(includedir)/freetype2/freetype/config ; \
-        done
-	-for P in $(CACHE_H) ; do                                  \
-          $(INSTALL_DATA)                                          \
-            $$P $(DESTDIR)$(includedir)/freetype2/freetype/cache ; \
-        done
-	$(INSTALL_DATA) $(BUILD_DIR)/ft2unix.h \
-          $(DESTDIR)$(includedir)/ft2build.h
-	$(INSTALL_DATA) $(BUILD_DIR)/ftconfig.h \
-          $(DESTDIR)$(includedir)/freetype2/freetype/config/ftconfig.h
-	$(INSTALL_SCRIPT) -m 755 $(OBJ_BUILD)/freetype-config \
-          $(DESTDIR)$(bindir)/freetype-config
-	$(INSTALL_SCRIPT) -m 644 $(BUILD_DIR)/freetype2.m4 \
-          $(DESTDIR)$(datadir)/aclocal/freetype2.m4
-	$(INSTALL_SCRIPT) -m 644 $(OBJ_BUILD)/freetype2.pc \
-          $(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
-
-
-uninstall:
-	-$(LIBTOOL) --mode=uninstall $(RM) $(DESTDIR)$(libdir)/$(LIBRARY).$A
-	-$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/cache/*
-	-$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/cache
-	-$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/config/*
-	-$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/config
-	-$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/internal/*
-	-$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype/internal
-	-$(DELETE) $(DESTDIR)$(includedir)/freetype2/freetype/*
-	-$(DELDIR) $(DESTDIR)$(includedir)/freetype2/freetype
-	-$(DELDIR) $(DESTDIR)$(includedir)/freetype2
-	-$(DELETE) $(DESTDIR)$(includedir)/ft2build.h
-	-$(DELETE) $(DESTDIR)$(bindir)/freetype-config
-	-$(DELETE) $(DESTDIR)$(datadir)/aclocal/freetype2.m4
-	-$(DELETE) $(DESTDIR)$(libdir)/pkgconfig/freetype2.pc
-
-
-check:
-	@echo There is no validation suite for this package.
-
-
-.PHONY: clean_project_unix distclean_project_unix
-
-# Unix cleaning and distclean rules.
-#
-clean_project_unix:
-	-$(DELETE) $(BASE_OBJECTS) $(OBJ_M) $(OBJ_S)
-	-$(DELETE) $(patsubst %.$O,%.$(SO),$(BASE_OBJECTS) $(OBJ_M) $(OBJ_S)) \
-                   $(CLEAN)
-
-distclean_project_unix: clean_project_unix
-	-$(DELETE) $(PROJECT_LIBRARY)
-	-$(DELETE) $(OBJ_DIR)/.libs/*
-	-$(DELDIR) $(OBJ_DIR)/.libs
-	-$(DELETE) *.orig *~ core *.core $(DISTCLEAN)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/ltmain.sh b/nx-X11/extras/freetype2/builds/unix/ltmain.sh
deleted file mode 100644
index 70f0b2d03..000000000
--- a/nx-X11/extras/freetype2/builds/unix/ltmain.sh
+++ /dev/null
@@ -1,6422 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-basename="s,^.*/,,g"
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-# The name of this program:
-progname=`echo "$progpath" | $SED $basename`
-modename="$progname"
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5.6
-TIMESTAMP=" (1.1220.2.94 2004/04/10 16:27:27)"
-
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-# test EBCDIC or ASCII
-case `echo A|tr A '\301'` in
- A) # EBCDIC based system
-  SP2NL="tr '\100' '\n'"
-  NL2SP="tr '\r\n' '\100\100'"
-  ;;
- *) # Assume ASCII based system
-  SP2NL="tr '\040' '\012'"
-  NL2SP="tr '\015\012' '\040\040'"
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-: ${IFS=" 	
-"}
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit $EXIT_FAILURE
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-func_win32_libid () {
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
-      if test "X$win32_nmres" = "Ximport" ; then
-        win32_libid_type="x86 archive import"
-      else
-        win32_libid_type="x86 archive static"
-      fi
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $echo $win32_libid_type
-}
-
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag () {
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-	case $arg in
-	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	CC_quoted="$CC_quoted $arg"
-      done
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-	    CC_quoted=
-	    for arg in $CC; do
-	    # Double-quote args containing other shell metacharacters.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    CC_quoted="$CC_quoted $arg"
-	  done
-	    case "$@ " in
-	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit $EXIT_FAILURE
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-}
-# End of Shell function definitions
-#####################################
-
-# Darwin sucks
-eval std_shrext=\"$shrext_cmds\"
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-      preserve_args="${preserve_args}=$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-	$echo "$progname: invalid tag name: $tagname" 1>&2
-	exit $EXIT_FAILURE
-	;;
-      esac
-
-      case $tagname in
-      CC)
-	# Don't test for the "default" C tag, as we know, it's there, but
-	# not specially marked.
-	;;
-      *)
-	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
-	  taglist="$taglist $tagname"
-	  # Evaluate the configuration.
-	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
-	else
-	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
-	fi
-	;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit $EXIT_SUCCESS
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
-    done
-    exit $EXIT_SUCCESS
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --features)
-    $echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      $echo "enable shared libraries"
-    else
-      $echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      $echo "enable static libraries"
-    else
-      $echo "disable static libraries"
-    fi
-    exit $EXIT_SUCCESS
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --tag) prevopt="--tag" prev=tag ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-fi
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-	case $arg in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-
-    for arg
-    do
-      case "$arg_mode" in
-      arg  )
-	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
-	arg_mode=normal
-	;;
-
-      target )
-	libobj="$arg"
-	arg_mode=normal
-	continue
-	;;
-
-      normal )
-	# Accept any command-line options.
-	case $arg in
-	-o)
-	  if test -n "$libobj" ; then
-	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-static | -prefer-pic | -prefer-non-pic)
-	  later="$later $arg"
-	  continue
-	  ;;
-
-	-no-suppress)
-	  suppress_opt=no
-	  continue
-	  ;;
-
-	-Xcompiler)
-	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-	  continue      #  The current "srcfile" will either be retained or
-	  ;;            #  replaced later.  I would guess that would be a bug.
-
-	-Wc,*)
-	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
- 	  for arg in $args; do
-	    IFS="$save_ifs"
-
-	    # Double-quote args containing other shell metacharacters.
-	    # Many Bourne shells cannot handle close brackets correctly
-	    # in scan sets, so we specify it separately.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    lastarg="$lastarg $arg"
-	  done
-	  IFS="$save_ifs"
-	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-	  # Add the arguments to base_compile.
-	  base_compile="$base_compile $lastarg"
-	  continue
-	  ;;
-
-	* )
-	  # Accept the current argument as the source file.
-	  # The previous "srcfile" becomes the current argument.
-	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
-	  ;;
-	esac  #  case $arg
-	;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit $EXIT_FAILURE
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    esac
-
-    func_infer_tag $base_compile
-
-    for arg in $later; do
-      case $arg in
-      -static)
-	build_old_libs=yes
-	continue
-	;;
-
-      -prefer-pic)
-	pic_mode=yes
-	continue
-	;;
-
-      -prefer-non-pic)
-	pic_mode=no
-	continue
-	;;
-      esac
-    done
-
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
-	$show "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	$echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-      $echo $srcfile > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-	command="$base_compile $srcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $srcfile"
-      fi
-
-      if test ! -d "${xdir}$objdir"; then
-	$show "$mkdir ${xdir}$objdir"
-	$run $mkdir ${xdir}$objdir
-	status=$?
-	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $status
-	fi
-      fi
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-	$show "$mv $output_obj $lobj"
-	if $run $mv $output_obj $lobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-        suppress_output=' >/dev/null 2>&1'
-      fi
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-	# Don't build PIC code
-	command="$base_compile $srcfile"
-      else
-	command="$base_compile $srcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args="$nonopt"
-    base_compile="$nonopt $@"
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-
-    func_infer_tag $base_compile
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	fi
-	build_libtool_libs=no
-	build_old_libs=yes
-	prefer_static_libs=yes
-	break
-	;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-	;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit $EXIT_FAILURE
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	precious_regex)
-	  precious_files_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat $save_arg`
-	    do
-#	      moreargs="$moreargs $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		# If there is no directory component, then add one.
-		case $arg in
-		*/* | *\\*) . $arg ;;
-		*) . ./$arg ;;
-		esac
-
-		if test -z "$pic_object" || \
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none && \
-		   test "$non_pic_object" = none; then
-		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-		  exit $EXIT_FAILURE
-		fi
-
-		# Extract subdirectory from the argument.
-		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		if test "X$xdir" = "X$arg"; then
-		  xdir=
-		else
-		  xdir="$xdir/"
-		fi
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  libobjs="$libobjs $pic_object"
-		  arg="$pic_object"
-		fi
-
-		# Non-PIC object.
-		if test "$non_pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
-
-		  # A standard non-PIC object
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if test -z "$run"; then
-		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-		  exit $EXIT_FAILURE
-		else
-		  # Dry-run case.
-
-		  # Extract subdirectory from the argument.
-		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		  if test "X$xdir" = "X$arg"; then
-		    xdir=
-		  else
-		    xdir="$xdir/"
-		  fi
-
-		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-		  libobjs="$libobjs $pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      fi
-	    done
-	  else
-	    $echo "$modename: link input file \`$save_arg' does not exist"
-	    exit $EXIT_FAILURE
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit $EXIT_FAILURE
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
-	  prev=
-	  compile_command="$compile_command $wl$qarg"
-	  finalize_command="$finalize_command $wl$qarg"
-	  continue
-	  ;;
-	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	shrext)
-  	  shrext_cmds="$arg"
-	  prev=
-	  continue
-	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
-	  ;;
-	esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: more than one -exported-symbols argument is not allowed"
-	  exit $EXIT_FAILURE
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -inst-prefix-dir)
-	prev=inst_prefix
-	continue
-	;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-	case $with_gcc/$host in
-	no/*-*-irix* | /*-*-irix*)
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "*) ;;
-	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-mingw* | *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs -framework System"
-	    continue
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # gcc -m* arguments should be passed to the linker via $compiler_flags
-      # in order to pass architecture information to the linker
-      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
-      # but this is not reliable with gcc because gcc may use -mfoo to
-      # select a different linker, different libraries, etc, while
-      # -Wl,-mfoo simply passes -mfoo to the linker.
-      -m*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        if test "$with_gcc" = "yes" ; then
-          compiler_flags="$compiler_flags $arg"
-        fi
-        continue
-        ;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
-	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -precious-files-regex)
-	prev=precious_regex
-	continue
-	;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# The effects of -static are defined in a previous loop.
-	# We used to do the same as -all-static on platforms that
-	# didn't have a PIC flag, but the assumption that the effects
-	# would be equivalent was wrong.  It would break on at least
-	# Digital Unix and AIX.
-	continue
-	;;
-
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
-
-      -version-info)
-	prev=vinfo
-	continue
-	;;
-      -version-number)
-	prev=vinfo
-	vinfo_number=yes
-	continue
-	;;
-
-      -Wc,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Wl,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $wl$flag"
-	  linker_flags="$linker_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.$objext)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  # If there is no directory component, then add one.
-	  case $arg in
-	  */* | *\\*) . $arg ;;
-	  *) . ./$arg ;;
-	  esac
-
-	  if test -z "$pic_object" || \
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none && \
-	     test "$non_pic_object" = none; then
-	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$arg"; then
-	    xdir=
- 	  else
-	    xdir="$xdir/"
-	  fi
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    libobjs="$libobjs $pic_object"
-	    arg="$pic_object"
-	  fi
-
-	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
-
-	    # A standard non-PIC object
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if test -z "$run"; then
-	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-	    exit $EXIT_FAILURE
-	  else
-	    # Dry-run case.
-
-	    # Extract subdirectory from the argument.
-	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$arg"; then
-	      xdir=
-	    else
-	      xdir="$xdir/"
-	    fi
-
-	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-	    libobjs="$libobjs $pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
-	  prev=
-	else
-	  deplibs="$deplibs $arg"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplications in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    esac
-    specialdeplibs=
-
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if test "X$duplicate_deps" = "Xyes" ; then
-	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-    case $linkmode in
-    lib)
-	passes="conv link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-	    exit $EXIT_FAILURE
-	    ;;
-	  esac
-	done
-	;;
-    prog)
-	compile_deplibs=
-	finalize_deplibs=
-	alldeplibs=no
-	newdlfiles=
-	newdlprefiles=
-	passes="conv scan dlopen dlpreopen link"
-	;;
-    *)  passes="conv"
-	;;
-    esac
-    for pass in $passes; do
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
-	deplibs=
-      fi
-      if test "$linkmode" = prog; then
-	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-	esac
-      fi
-      if test "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    deplibs="$deplib $deplibs"
-	  fi
-	  continue
-	  ;;
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-	    continue
-	  fi
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-	    for search_ext in .la $std_shrext .so .a; do
-	      # Search the libtool library
-	      lib="$searchdir/lib${name}${search_ext}"
-	      if test -f "$lib"; then
-		if test "$search_ext" = ".la"; then
-		  found=yes
-		else
-		  found=no
-		fi
-		break 2
-	      fi
-	    done
-	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
-	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	      case " $predeps $postdeps " in
-	      *" $deplib "*)
-		if (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		  library_names=
-		  old_library=
-		  case $lib in
-		  */* | *\\*) . $lib ;;
-		  *) . ./$lib ;;
-		  esac
-		  for l in $old_library $library_names; do
-		    ll="$l"
-		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
-		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-		    test "X$ladir" = "X$lib" && ladir="."
-		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
-		      compile_deplibs="$deplib $compile_deplibs"
-		      finalize_deplibs="$deplib $finalize_deplibs"
-		    else
-		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-		    fi
-		    continue
-		  fi
-		fi
-	        ;;
-	      *) ;;
-	      esac
-	    fi
-	  fi
-	  ;; # -l
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  *)
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la) lib="$deplib" ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    if test "$deplibs_check_method" != pass_all; then
-	      $echo
-	      $echo "*** Warning: Trying to link with static lib archive $deplib."
-	      $echo "*** I have the capability to make that library automatically link in when"
-	      $echo "*** you link to this library.  But I can only do this if you have a"
-	      $echo "*** shared version of the library, which you do not appear to have"
-	      $echo "*** because the file extensions .$libext of this argument makes me believe"
-	      $echo "*** that it is just a static archive that I should not used here."
-	    else
-	      $echo
-	      $echo "*** Warning: Linking the shared library $output against the"
-	      $echo "*** static library $deplib is not portable!"
-	      deplibs="$deplib $deplibs"
-	    fi
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      newdlfiles="$newdlfiles $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  $echo "$modename: cannot find the library \`$lib'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$ladir" = "X$lib" && ladir="."
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-
-	# Read the .la file
-	case $lib in
-	*/* | *\\*) . $lib ;;
-	*) . ./$lib ;;
-	esac
-
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	      exit $EXIT_FAILURE
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-	        case "$tmp_libs " in
-	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	        esac
-              fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  continue
-	fi # $pass = conv
-
-
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
-	  else
-	    newdlfiles="$newdlfiles $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$libdir"
-	    absdir="$libdir"
-	  fi
-	else
-	  dir="$ladir/$objdir"
-	  absdir="$abs_ladir/$objdir"
-	  # Remove this search path later
-	  notinst_path="$notinst_path $abs_ladir"
-	fi # $installed = yes
-	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-	    esac
-	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      # Need to hardcode shared library paths
-	      # or/and link against static libraries
-	      newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var"; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath " in
-	      *" $dir "*) ;;
-	      *" $absdir "*) ;;
-	      *) temp_rpath="$temp_rpath $dir" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	if test -n "$library_names" &&
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	  if test "$installed" = no; then
-	    notinst_deplibs="$notinst_deplibs $lib"
-	    need_relink=yes
-	  fi
-	  # This is a shared library
-
-	  # Warn about portability, can't link against -module's on
-	  # some systems (darwin)
-	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
-	    $echo
-	    if test "$linkmode" = prog; then
-	      $echo "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $echo "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $echo "*** $linklib is not portable!"
-	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    realname="$2"
-	    shift; shift
-	    libname=`eval \\$echo \"$libname_spec\"`
-	    # use dlname if we got it. it's perfectly good, no?
-	    if test -n "$dlname"; then
-	      soname="$dlname"
-	    elif test -n "$soname_spec"; then
-	      # bleh windows
-	      case $host in
-	      *cygwin* | mingw*)
-		major=`expr $current - $age`
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      $show "extracting exported symbol list from \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      cmds=$extract_expsyms_cmds
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      $show "generating import library for \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      cmds=$old_archive_from_expsyms_cmds
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a module then we can not link against
-		    # it, someone is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
-		      $echo "** Warning, lib $linklib is a module, not a shared library"
-		      if test -z "$old_library" ; then
-		        $echo
-		        $echo "** And there doesn't seem to be a static archive available"
-		        $echo "** The link will probably fail, sorry"
-		      else
-		        add="$dir/$old_library"
-		      fi
-		    fi
-		esac
-	      elif test "$hardcode_minus_L" = no; then
-		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
-		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    relink)
-	      if test "$hardcode_direct" = yes; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case "$libdir" in
-		    [\\/]*)
-		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
-
-	    if test "$lib_linked" != yes; then
-	      $echo "$modename: configuration error: unsupported hardcode properties"
-	      exit $EXIT_FAILURE
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes && \
-		 test "$hardcode_minus_L" != yes && \
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-	        add="$inst_prefix_dir$libdir/$linklib"
-	      else
-	        add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case "$libdir" in
-		  [\\/]*)
-		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    $echo
-	    $echo "*** Warning: This system can not link to static lib archive $lib."
-	    $echo "*** I have the capability to make that library automatically link in when"
-	    $echo "*** you link to this library.  But I can only do this if you have a"
-	    $echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      $echo "*** But as you try to build a module library, libtool will still create "
-	      $echo "*** a static module, that should work as long as the dlopening application"
-	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		$echo
-		$echo "*** However, this would only work if libtool was able to extract symbol"
-		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		$echo "*** not find such a program.  So, this module is probably useless."
-		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    convenience="$convenience $dir/$old_library"
-	    old_convenience="$old_convenience $dir/$old_library"
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
-		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  newlib_search_path="$newlib_search_path $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-		test "X$dir" = "X$deplib" && dir="."
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if grep "^installed=no" $deplib > /dev/null; then
-		  path="$absdir/$objdir"
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  if test -z "$libdir"; then
-		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		    exit $EXIT_FAILURE
-		  fi
-		  if test "$absdir" != "$libdir"; then
-		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-		  fi
-		  path="$absdir"
-		fi
-		depdepl=
-		case $host in
-		*-*-darwin*)
-		  # we do not want to link against static libs,
-		  # but need to link against shared
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$path/$depdepl" ; then
-		      depdepl="$path/$depdepl"
-		    fi
-		    # do not add paths which are already there
-		    case " $newlib_search_path " in
-		    *" $path "*) ;;
-		    *) newlib_search_path="$newlib_search_path $path";;
-		    esac
-		  fi
-		  path=""
-		  ;;
-		*)
-		  path="-L$path"
-		  ;;
-		esac
-		;;
-	      -l*)
-		case $host in
-		*-*-darwin*)
-		  # Again, we only want to link against shared libraries
-		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-		  for tmp in $newlib_search_path ; do
-		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
-		      eval depdepl="$tmp/lib$tmp_libs.dylib"
-		      break
-		    fi
-		  done
-		  path=""
-		  ;;
-		*) continue ;;
-		esac
-		;;
-	      *) continue ;;
-	      esac
-	      case " $deplibs " in
-	      *" $depdepl "*) ;;
-	      *) deplibs="$depdepl $deplibs" ;;
-	      esac
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$deplibs $path" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
-	      esac
-	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval shared_ext=\"$shrext_cmds\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval shared_ext=\"$shrext_cmds\"
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-	  exit $EXIT_FAILURE
-	else
-	  $echo
-	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
-	  $echo "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
-	fi
-      fi
-
-      if test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
-	  # convenience libraries should have the same extension an
-	  # archive normally would.
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# convert absolute version numbers to libtool ages
-	# this retains compatibility with .la files and attempts
-	# to make the code below a bit more comprehensible
-
-	case $vinfo_number in
-	yes)
-	  number_major="$2"
-	  number_minor="$3"
-	  number_revision="$4"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows)
-	    current=`expr $number_major + $number_minor`
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
-	    age="$number_minor"
-	    revision="$number_minor"
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$2"
-	  revision="$3"
-	  age="$4"
-	  ;;
-	esac
-
-	# Check that each of the things are valid numbers.
-	case $current in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	case $revision in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	case $age in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case $version_type in
-	none) ;;
-
-	darwin)
-	  # Like Linux, but with the current version available in
-	  # verstring for coding it into the library header
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  minor_current=`expr $current + 1`
-	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current";
-	  ;;
-
-	irix | nonstopux)
-	  major=`expr $current - $age + 1`
-
-	  case $version_type in
-	    nonstopux) verstring_prefix=nonstopux ;;
-	    *)         verstring_prefix=sgi ;;
-	  esac
-	  verstring="$verstring_prefix$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test "$loop" -ne 0; do
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=.`expr $current - $age`
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test "$loop" -ne 0; do
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  major=`expr $current - $age`
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-      fi
-
-      if test "$mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$echo "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
-	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-	         then
-		   continue
-		 fi
-	       fi
-	       removelist="$removelist $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	if test -n "$removelist"; then
-	  $show "${rm}r $removelist"
-	  $run ${rm}r $removelist
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
-	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
-      done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs -framework System"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
- 	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $LTCC -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    newdeplibs="$newdeplibs $i"
-		    i=""
-		    ;;
-		  esac
-	        fi
-		if test -n "$i" ; then
-		  libname=`eval \\$echo \"$libname_spec\"`
-		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		  set dummy $deplib_matches
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$newdeplibs $i"
-		  else
-		    droppeddeps=yes
-		    $echo
-		    $echo "*** Warning: dynamic linker does not accept needed library $i."
-		    $echo "*** I have the capability to make that library automatically link in when"
-		    $echo "*** you link to this library.  But I can only do this if you have a"
-		    $echo "*** shared version of the library, which I believe you do not have"
-		    $echo "*** because a test_compile did reveal that the linker did not use it for"
-		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
-		  fi
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  else
-	    # Error occurred in the first compile.  Let's try to salvage
-	    # the situation: Compile a separate program for each library.
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-		$rm conftest
-		$LTCC -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      newdeplibs="$newdeplibs $i"
-		      i=""
-		      ;;
-		    esac
-		  fi
-		  if test -n "$i" ; then
-		    libname=`eval \\$echo \"$libname_spec\"`
-		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		    set dummy $deplib_matches
-		    deplib_match=$2
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$newdeplibs $i"
-		    else
-		      droppeddeps=yes
-		      $echo
-		      $echo "*** Warning: dynamic linker does not accept needed library $i."
-		      $echo "*** I have the capability to make that library automatically link in when"
-		      $echo "*** you link to this library.  But I can only do this if you have a"
-		      $echo "*** shared version of the library, which you do not appear to have"
-		      $echo "*** because a test_compile did reveal that the linker did not use this one"
-		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-		    fi
-		  fi
-		else
-		  droppeddeps=yes
-		  $echo
-		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
-		  $echo "***  make it link in!  You will probably need to install it or some"
-		  $echo "*** library that it depends on before this library will be fully"
-		  $echo "*** functional.  Installing it before continuing would be even better."
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | ${SED} 10q \
-			 | $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-	    if test -n "$name" && test "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval $echo \"$potent_lib\" 2>/dev/null \
-		        | ${SED} 10q \
-		        | $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	    -e 's/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-	    done
-	  fi
-	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
-	    | grep . >/dev/null; then
-	    $echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      $echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    $echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library is the System framework
-	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	  ;;
-	esac
-
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    $echo
-	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
-	    $echo "*** a static module, that should work as long as the dlopening"
-	    $echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      $echo
-	      $echo "*** However, this would only work if libtool was able to extract symbol"
-	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      $echo "*** not find such a program.  So, this module is probably useless."
-	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    $echo "*** The inter-library dependencies that have been dropped here will be"
-	    $echo "*** automatically added whenever a program is linked with this library"
-	    $echo "*** or is declared to -dlopen it."
-
-	    if test "$allow_undefined" = no; then
-	      $echo
-	      $echo "*** Since this library must not contain undefined symbols,"
-	      $echo "*** because either the platform does not support them or"
-	      $echo "*** it was explicitly requested with -no-undefined,"
-	      $echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext_cmds\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
-
-	lib="$output_objdir/$realname"
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      eval cmd=\"$cmd\"
-	      if len=`expr "X$cmd" : ".*"` &&
-	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	        $show "$cmd"
-	        $run eval "$cmd" || exit $?
-	        skipped_export=false
-	      else
-	        # The command line is too long to execute in one step.
-	        $show "using reloadable object file for export list..."
-	        skipped_export=:
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex"; then
-	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-		case " $convenience " in
-		*" $test_deplib "*) ;;
-		*)
-			tmp_deplibs="$tmp_deplibs $test_deplib"
-			;;
-		esac
-	done
-	deplibs="$tmp_deplibs"
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "$mkdir $gentop"
-	    $run $mkdir "$gentop"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$gentop"; then
-	      exit $status
-	    fi
-	    generated="$generated $gentop"
-
-	    for xlib in $convenience; do
-	      # Extract the objects.
-	      case $xlib in
-	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	      *) xabs=`pwd`"/$xlib" ;;
-	      esac
-	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	      xdir="$gentop/$xlib"
-
-	      $show "${rm}r $xdir"
-	      $run ${rm}r "$xdir"
-	      $show "$mkdir $xdir"
-	      $run $mkdir "$xdir"
-	      status=$?
-	      if test "$status" -ne 0 && test ! -d "$xdir"; then
-		exit $status
-	      fi
-	      # We will extract separately just the conflicting names and we will no
-	      # longer touch any unique names. It is faster to leave these extract
-	      # automatically by $AR in one run.
-	      $show "(cd $xdir && $AR x $xabs)"
-	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	      if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-		:
-	      else
-		$echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-		$echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-		$AR t "$xabs" | sort | uniq -cd | while read -r count name
-		do
-		  i=1
-		  while test "$i" -le "$count"
-		  do
-		   # Put our $i before any first dot (extension)
-		   # Never overwrite any file
-		   name_to="$name"
-		   while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		   do
-		     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		   done
-		   $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		   $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		   i=`expr $i + 1`
-		  done
-		done
-	      fi
-
-	      libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	    done
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
-	fi
-
-	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
-	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	    eval test_cmds=\"$module_expsym_cmds\"
-	    cmds=$module_expsym_cmds
-	  else
-	    eval test_cmds=\"$module_cmds\"
-	    cmds=$module_cmds
-	  fi
-	else
-	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	  eval test_cmds=\"$archive_expsym_cmds\"
-	  cmds=$archive_expsym_cmds
-	else
-	  eval test_cmds=\"$archive_cmds\"
-	  cmds=$archive_cmds
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
-	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise.
-	  $echo "creating reloadable object files..."
-
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  delfiles=
-	  last_robj=
-	  k=1
-	  output=$output_objdir/$save_output-${k}.$objext
-	  # Loop over the list of objects to be linked.
-	  for obj in $save_libobjs
-	  do
-	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-	    if test "X$objlist" = X ||
-	       { len=`expr "X$test_cmds" : ".*"` &&
-		 test "$len" -le "$max_cmd_len"; }; then
-	      objlist="$objlist $obj"
-	    else
-	      # The command $test_cmds is almost too long, add a
-	      # command to the queue.
-	      if test "$k" -eq 1 ; then
-		# The first file doesn't have a previous command to add.
-		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-	      else
-		# All subsequent reloadable object files will link in
-		# the last one created.
-		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-	      fi
-	      last_robj=$output_objdir/$save_output-${k}.$objext
-	      k=`expr $k + 1`
-	      output=$output_objdir/$save_output-${k}.$objext
-	      objlist=$obj
-	      len=1
-	    fi
-	  done
-	  # Handle the remaining objects by creating one last
-	  # reloadable object file.  All subsequent reloadable object
-	  # files will link in the last one created.
-	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-	  if ${skipped_export-false}; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    libobjs=$output
-	    # Append the command to create the export file.
-	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-	  # Set up a command to remove the reloadale object files
-	  # after they are used.
-	  i=0
-	  while test "$i" -lt "$k"
-	  do
-	    i=`expr $i + 1`
-	    delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-	  done
-
-	  $echo "creating a temporary reloadable object file: $output"
-
-	  # Loop through the commands generated above and execute them.
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $concat_cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-
-	  libobjs=$output
-	  # Restore the value of output.
-	  output=$save_output
-
-	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test "$module" = yes && test -n "$module_cmds" ; then
-	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	      cmds=$module_expsym_cmds
-	    else
-	      cmds=$module_cmds
-	    fi
-	  else
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    cmds=$archive_expsym_cmds
-	  else
-	    cmds=$archive_cmds
-	    fi
-	  fi
-
-	  # Append the command to remove the reloadable object files
-	  # to the just-reset $cmds.
-	  eval cmds=\"\$cmds~\$rm $delfiles\"
-	fi
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-	  exit $EXIT_SUCCESS
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-	  fi
-	done
-
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-	if test -n "$objs$old_deplibs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $run $rm $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  $show "${rm}r $gentop"
-	  $run ${rm}r "$gentop"
-	  $show "$mkdir $gentop"
-	  $run $mkdir "$gentop"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$gentop"; then
-	    exit $status
-	  fi
-	  generated="$generated $gentop"
-
-	  for xlib in $convenience; do
-	    # Extract the objects.
-	    case $xlib in
-	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	    *) xabs=`pwd`"/$xlib" ;;
-	    esac
-	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	    xdir="$gentop/$xlib"
-
-	    $show "${rm}r $xdir"
-	    $run ${rm}r "$xdir"
-	    $show "$mkdir $xdir"
-	    $run $mkdir "$xdir"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$xdir"; then
-	      exit $status
-	    fi
-	    # We will extract separately just the conflicting names and we will no
-	    # longer touch any unique names. It is faster to leave these extract
-	    # automatically by $AR in one run.
-	    $show "(cd $xdir && $AR x $xabs)"
-	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	    if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	      :
-	    else
-	      $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	      $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	      $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	      do
-		i=1
-		while test "$i" -le "$count"
-		do
-		 # Put our $i before any first dot (extension)
-		 # Never overwrite any file
-		 name_to="$name"
-		 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		 do
-		   name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		 done
-		 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		 i=`expr $i + 1`
-		done
-	      done
-	    fi
-
-	    reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	  done
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      cmds=$reload_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	eval cmd=\"$cmd\"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	# $show "echo timestamp > $libobj"
-	# $run eval "echo timestamp > $libobj" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	cmds=$reload_cmds
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case $dlsyms in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    if test -n "$export_symbols_regex"; then
-	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$output.exp"
-	      $run $rm $export_symbols
-	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	    else
-	      $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-	    $run eval '$echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # Make sure we have at least an empty file.
-	    test -f "$nlist" || : > "$nlist"
-
-	    if test -n "$exclude_expsyms"; then
-	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	      $mv "$nlist"T "$nlist"
-	    fi
-
-	    # Try sorting and uniquifying the output.
-	    if grep -v "^: " < "$nlist" |
-		if sort -k 3 </dev/null >/dev/null 2>&1; then
-		  sort -k 3
-		else
-		  sort +2
-		fi |
-		uniq > "$nlist"S; then
-	      :
-	    else
-	      grep -v "^: " < "$nlist" > "$nlist"S
-	    fi
-
-	    if test -f "$nlist"S; then
-	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
-	    else
-	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  case $host in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	status=$?
-
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case $dir in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$run $rm $output
-	# Link the executable and exit
-	$show "$link_command"
-	$run eval "$link_command" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	# Preserve any variables that may affect compiler behavior
-	for var in $variables_saved_for_relink; do
-	  if eval test -z \"\${$var+set}\"; then
-	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-	  elif eval var_value=\$$var; test -z "$var_value"; then
-	    relink_command="$var=; export $var; $relink_command"
-	  else
-	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
-	case $progpath in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    cwrappersource=`$echo ${objdir}/lt-${output}.c`
-	    cwrapper=`$echo ${output}.exe`
-	    $rm $cwrappersource $cwrapper
-	    trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
-	    cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-	    cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2
-#define DIR_SEPARATOR_2 '\\'
-#endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-
-  program_name = (char *) xstrdup ((char *) basename (argv[0]));
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  newargz[0] = "$SHELL";
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-  newargz[1] = fnqualify(argv[0]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe");
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-char *
-basename (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':')
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return (char *) base;
-}
-
-char *
-fnqualify(const char *path)
-{
-  size_t size;
-  char *p;
-  char tmp[LT_PATHMAX + 1];
-
-  assert(path != NULL);
-
-  /* Is it qualified already? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha (path[0]) && path[1] == ':')
-    return xstrdup (path);
-#endif
-  if (IS_DIR_SEPARATOR (path[0]))
-    return xstrdup (path);
-
-  /* prepend the current directory */
-  /* doesn't handle '~' */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
-  p = XMALLOC(char, size);
-  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
-  return p;
-}
-
-char *
-strendzap(char *str, const char *pat)
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode,
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-	  # we should really use a build-platform specific compiler
-	  # here, but OTOH, the wrappers (shell script and this C one)
-	  # are only useful if you want to execute the "real" binary.
-	  # Since the "real" binary is built for $host, then this
-	  # wrapper might as well be built for $host, too.
-	  $run $LTCC -s -o $cwrapper $cwrappersource
-	  ;;
-	esac
-	$rm $output
-	trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $echo >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
-
-	  $echo >> $output "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-	$echo \"\$relink_command_output\" >&2
-	$rm \"\$progdir/\$file\"
-	exit $EXIT_FAILURE
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-	else
-	  $echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2*)
-	  $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $echo >> $output "\
-      exec \$progdir/\$program \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit $EXIT_FAILURE
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      exit $EXIT_SUCCESS
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$old_deplibs $non_pic_objects"
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	$show "${rm}r $gentop"
-	$run ${rm}r "$gentop"
-	$show "$mkdir $gentop"
-	$run $mkdir "$gentop"
-	status=$?
-	if test "$status" -ne 0 && test ! -d "$gentop"; then
-	  exit $status
-	fi
-	generated="$generated $gentop"
-
-	# Add in members from convenience archives.
-	for xlib in $addlibs; do
-	  # Extract the objects.
-	  case $xlib in
-	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	  *) xabs=`pwd`"/$xlib" ;;
-	  esac
-	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	  xdir="$gentop/$xlib"
-
-	  $show "${rm}r $xdir"
-	  $run ${rm}r "$xdir"
-	  $show "$mkdir $xdir"
-	  $run $mkdir "$xdir"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$xdir"; then
-	    exit $status
-	  fi
-	  # We will extract separately just the conflicting names and we will no
-	  # longer touch any unique names. It is faster to leave these extract
-	  # automatically by $AR in one run.
-	  $show "(cd $xdir && $AR x $xabs)"
-	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	  if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	    $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	    $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	    do
-	      i=1
-	      while test "$i" -le "$count"
-	      do
-	       # Put our $i before any first dot (extension)
-	       # Never overwrite any file
-	       name_to="$name"
-	       while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-	       do
-		 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-	       done
-	       $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-	       $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-	       i=`expr $i + 1`
-	      done
-	    done
-	  fi
-
-	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-	done
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-       cmds=$old_archive_from_new_cmds
-      else
-	eval cmds=\"$old_archive_cmds\"
-
-	if len=`expr "X$cmds" : ".*"` &&
-	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  cmds=$old_archive_cmds
-	else
-	  # the command line is too long to link in one step, link in parts
-	  $echo "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  # GNU ar 2.10+ was changed to match POSIX; thus no paths are
-	  # encoded into archives.  This makes 'ar r' malfunction in
-	  # this piecewise linking case whenever conflicting object
-	  # names appear in distinct ar calls; check, warn and compensate.
-	    if (for obj in $save_oldobjs
-	    do
-	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
-	    $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
-	    AR_FLAGS=cq
-	  fi
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done
-	  for obj in $save_oldobjs
-	  do
-	    oldobjs="$objlist $obj"
-	    objlist="$objlist $obj"
-	    eval test_cmds=\"$old_archive_cmds\"
-	    if len=`expr "X$test_cmds" : ".*"` &&
-	       test "$len" -le "$max_cmd_len"; then
-	      :
-	    else
-	      # the above command should be used before it gets too long
-	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
-	        RANLIB=$save_RANLIB
-	      fi
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
-	    fi
-	  done
-	  RANLIB=$save_RANLIB
-	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
-	    eval cmds=\"\$concat_cmds\"
-	  else
-	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-	  fi
-	fi
-      fi
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-        eval cmd=\"$cmd\"
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-	if eval test -z \"\${$var+set}\"; then
-	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-	elif eval var_value=\$$var; test -z "$var_value"; then
-	  relink_command="$var=; export $var; $relink_command"
-	else
-	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
-	relink_command=
-      fi
-
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	    # Replace all uninstalled libtool libraries with the installed ones
-	    newdependency_libs=
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      *.la)
-		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		if test -z "$libdir"; then
-		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		  exit $EXIT_FAILURE
-		fi
-		newdependency_libs="$newdependency_libs $libdir/$name"
-		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit $EXIT_FAILURE
-	      fi
-	      newdlfiles="$newdlfiles $libdir/$name"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit $EXIT_FAILURE
-	      fi
-	      newdlprefiles="$newdlprefiles $libdir/$name"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  else
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      newdlfiles="$newdlfiles $abs"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      newdlprefiles="$newdlprefiles $abs"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $rm $output
-	  # place dlname in correct position for cygwin
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-	  esac
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
-	    $echo >> $output "\
-relink_command=\"$relink_command\""
-	  fi
-	done
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest="$arg"
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*) ;;
-
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest="$arg"
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit $EXIT_FAILURE
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	library_names=
-	old_library=
-	relink_command=
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-	test "X$dir" = "X$file/" && dir=
-	dir="$dir$objdir"
-
-	if test -n "$relink_command"; then
-	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
-
-	  # Don't allow the user to place us outside of our expected
-	  # location b/c this prevents finding dependent libraries that
-	  # are installed to the same prefix.
-	  # At present, this check doesn't affect windows .dll's that
-	  # are installed into $libdir/../bin (currently, that works fine)
-	  # but it's something to keep an eye on.
-	  if test "$inst_prefix_dir" = "$destdir"; then
-	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  if test -n "$inst_prefix_dir"; then
-	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-	  else
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-	  fi
-
-	  $echo "$modename: warning: relinking \`$file'" 1>&2
-	  $show "$relink_command"
-	  if $run eval "$relink_command"; then :
-	  else
-	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$srcname $destdir/$realname"
-	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-	  if test -n "$stripme" && test -n "$striplib"; then
-	    $show "$striplib $destdir/$realname"
-	    $run eval "$striplib $destdir/$realname" || exit $?
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    for linkname
-	    do
-	      if test "$linkname" != "$realname"; then
-		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  cmds=$postinstall_cmds
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    eval cmd=\"$cmd\"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-	fi
-	exit $EXIT_SUCCESS
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# If the file is missing, and there is a .exe on the end, strip it
-	# because it is most likely a libtool script we actually want to
-	# install
-	stripped_ext=""
-	case $file in
-	  *.exe)
-	    if test ! -f "$file"; then
-	      file=`$echo $file|${SED} 's,.exe$,,'`
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin*|*mingw*)
-	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$notinst_deplibs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case $lib in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir="/tmp"
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
-	      tmpdir="$tmpdir/libtool-$$"
-	      save_umask=`umask`
-	      umask 0077
-	      if $mkdir "$tmpdir"; then
-	        umask $save_umask
-	      else
-	        umask $save_umask
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-		continue
-	      fi
-	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyways
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-	    ;;
-	  esac
-	  ;;
-	esac
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$old_striplib"; then
-	$show "$old_striplib $oldlib"
-	$run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      cmds=$old_postinstall_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	eval cmd=\"$cmd\"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  cmds=$finish_cmds
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    eval cmd=\"$cmd\"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit $EXIT_SUCCESS
-
-    $echo "----------------------------------------------------------------------"
-    $echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $echo "   $libdir"
-    done
-    $echo
-    $echo "If you ever happen to want to link against installed libraries"
-    $echo "in a given directory, LIBDIR, you must either use libtool, and"
-    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      $echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $echo
-    $echo "See any operating system documentation about shared libraries for"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "----------------------------------------------------------------------"
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit $EXIT_FAILURE
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit $EXIT_FAILURE
-      fi
-
-      dir=
-      case $file in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-	$echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-	dir=.
-	objdir="$origobjdir"
-      else
-	objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-	|| (test -h "$file") >/dev/null 2>&1 \
-	|| test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
-	  if test "$mode" = uninstall; then
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      cmds=$postuninstall_cmds
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      cmds=$old_postuninstall_cmds
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-	  # Read the .lo file
-	  . $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" \
-	     && test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" \
-	     && test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe)
-	    file=`$echo $file|${SED} 's,.exe$,,'`
-	    noexename=`$echo $name|${SED} 's,.exe$,,'`
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	    relink_command=
-	    . $dir/$noexename
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	$show "rmdir $dir"
-	$run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit $EXIT_FAILURE
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit $EXIT_SUCCESS
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit $EXIT_SUCCESS
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them.  This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration.  But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/nx-X11/extras/freetype2/builds/unix/mkinstalldirs b/nx-X11/extras/freetype2/builds/unix/mkinstalldirs
deleted file mode 100644
index 6fbe5e117..000000000
--- a/nx-X11/extras/freetype2/builds/unix/mkinstalldirs
+++ /dev/null
@@ -1,150 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2004-02-15.20
-
-# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake@gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage"
-      exit 0
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --version)
-      echo "$0 $scriptversion"
-      exit 0
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error.  This is a problem when calling mkinstalldirs
-# from a parallel make.  We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
-  '')
-    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    else
-      # On NextStep and OpenStep, the `mkdir' command does not
-      # recognize any option.  It will interpret all options as
-      # directories to create, and then abort because `.' already
-      # exists.
-      test -d ./-p && rmdir ./-p
-      test -d ./--version && rmdir ./--version
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-       test ! -d ./--version; then
-      echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    else
-      # Clean up after NextStep and OpenStep mkdir.
-      for d in ./-m ./-p ./--version "./$dirmode";
-      do
-        test -d $d && rmdir $d
-      done
-    fi
-    ;;
-esac
-
-for file
-do
-  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-  shift
-
-  pathcomp=
-  for d
-  do
-    pathcomp="$pathcomp$d"
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
-
-    if test ! -d "$pathcomp"; then
-      echo "mkdir $pathcomp"
-
-      mkdir "$pathcomp" || lasterr=$?
-
-      if test ! -d "$pathcomp"; then
-	errstatus=$lasterr
-      else
-	if test ! -z "$dirmode"; then
-	  echo "chmod $dirmode $pathcomp"
-	  lasterr=""
-	  chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	  if test ! -z "$lasterr"; then
-	    errstatus=$lasterr
-	  fi
-	fi
-      fi
-    fi
-
-    pathcomp="$pathcomp/"
-  done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
diff --git a/nx-X11/extras/freetype2/builds/unix/unix-cc.in b/nx-X11/extras/freetype2/builds/unix/unix-cc.in
deleted file mode 100644
index 2d1f17e5f..000000000
--- a/nx-X11/extras/freetype2/builds/unix/unix-cc.in
+++ /dev/null
@@ -1,100 +0,0 @@
-#
-# FreeType 2 template for Unix-specific compiler definitions
-#
-
-# Copyright 1996-2000, 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CC           := @CC@
-COMPILER_SEP := $(SEP)
-
-ifndef LIBTOOL
-  LIBTOOL := $(BUILD_DIR)/libtool
-endif
-
-
-# The object file extension (for standard and static libraries).  This can be
-# .o, .tco, .obj, etc., depending on the platform.
-#
-O  := lo
-SO := o
-
-
-# The library file extension (for standard and static libraries).  This can
-# be .a, .lib, etc., depending on the platform.
-#
-A  := la
-SA := a
-
-
-# The name of the final library file.  Note that the DOS-specific Makefile
-# uses a shorter (8.3) name.
-#
-LIBRARY := lib$(PROJECT)
-
-
-# Path inclusion flag.  Some compilers use a different flag than `-I' to
-# specify an additional include path.  Examples are `/i=' or `-J'.
-#
-I := -I
-
-
-# C flag used to define a macro before the compilation of a given source
-# object.  Usually it is `-D' like in `-DDEBUG'.
-#
-D := -D
-
-
-# The link flag used to specify a given library file on link.  Note that
-# this is only used to compile the demo programs, not the library itself.
-#
-L := -l
-
-
-# Target flag.
-#
-T := -o$(space)
-
-
-# C flags
-#
-#   These should concern: debug output, optimization & warnings.
-#
-#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
-#   ANSI compliance.
-#
-#   We use our own FreeType configuration file.
-#
-CFLAGS := -c @XX_CFLAGS@ @CPPFLAGS@ @CFLAGS@ \
-          -DFT_CONFIG_CONFIG_H="<ftconfig.h>"
-
-# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
-#
-ANSIFLAGS := @XX_ANSIFLAGS@
-
-# C compiler to use -- we use libtool!
-#
-#
-CCraw := $(CC)
-CC    := $(LIBTOOL) --mode=compile $(CCraw)
-
-# Linker flags.
-#
-LDFLAGS := @LDFLAGS@
-
-
-# Library linking
-#
-LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
-                          -rpath $(libdir) -version-info $(version_info) \
-                          $(LDFLAGS)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/unix-def.in b/nx-X11/extras/freetype2/builds/unix/unix-def.in
deleted file mode 100644
index c263e0e26..000000000
--- a/nx-X11/extras/freetype2/builds/unix/unix-def.in
+++ /dev/null
@@ -1,98 +0,0 @@
-#
-# FreeType 2 configuration rules templates for Unix + configure
-#
-
-
-# Copyright 1996-2000, 2002, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-TOP_DIR := $(shell cd $(TOP_DIR); pwd)
-
-DELETE    := @RMF@
-DELDIR    := @RMDIR@
-SEP       := /
-
-# this is used for `make distclean' and `make install'
-ifndef OBJ_BUILD
-  OBJ_BUILD := $(BUILD_DIR)
-endif
-
-# don't use `:=' here since the path stuff will be included after this file
-#
-FTSYS_SRC = @FTSYS_SRC@
-
-INSTALL         := @INSTALL@
-INSTALL_DATA    := @INSTALL_DATA@
-INSTALL_PROGRAM := @INSTALL_PROGRAM@
-INSTALL_SCRIPT  := @INSTALL_SCRIPT@
-MKINSTALLDIRS   := $(BUILD_DIR)/mkinstalldirs
-
-DISTCLEAN += $(OBJ_BUILD)/config.cache    \
-             $(OBJ_BUILD)/config.log      \
-             $(OBJ_BUILD)/config.status   \
-             $(OBJ_BUILD)/unix-def.mk     \
-             $(OBJ_BUILD)/unix-cc.mk      \
-             $(OBJ_BUILD)/ftconfig.h      \
-             $(OBJ_BUILD)/freetype-config \
-             $(OBJ_BUILD)/freetype2.pc    \
-             $(LIBTOOL)                   \
-             $(OBJ_BUILD)/Makefile
-
-
-# Standard installation variables.
-#
-prefix       := @prefix@
-exec_prefix  := @exec_prefix@
-libdir       := @libdir@
-bindir       := @bindir@
-includedir   := @includedir@
-datadir      := @datadir@
-
-version_info := @version_info@
-
-
-# The directory where all object files are placed.
-#
-# This lets you build the library in your own directory with something like
-#
-#   set TOP_DIR=.../path/to/freetype2/top/dir...
-#   set OBJ_DIR=.../path/to/obj/dir
-#   make -f $TOP_DIR/Makefile setup [options]
-#   make -f $TOP_DIR/Makefile
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(shell cd $(TOP_DIR)/objs; pwd)
-endif
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-
-# The SYSTEM_ZLIB macro is defined if the user wishes to link dynamically
-# with its system wide zlib. If SYSTEM_ZLIB is 'yes', the zlib part of the
-# ftgzip module is not compiled in.
-SYSTEM_ZLIB := @SYSTEM_ZLIB@
-
-
-# The NO_OUTPUT macro is appended to command lines in order to ignore
-# the output of some programs.
-#
-NO_OUTPUT := 2> /dev/null
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/unix-dev.mk b/nx-X11/extras/freetype2/builds/unix/unix-dev.mk
deleted file mode 100644
index 12c641af2..000000000
--- a/nx-X11/extras/freetype2/builds/unix/unix-dev.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# FreeType 2 Configuration rules for Unix + GCC
-#
-#   Development version without optimizations & libtool
-#   and no installation.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/unix/unixddef.mk
-BUILD_DIR := $(TOP_DIR)/devel
-
-include $(TOP_DIR)/builds/compiler/gcc-dev.mk
-include $(TOP_DIR)/builds/link_std.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/unix-lcc.mk b/nx-X11/extras/freetype2/builds/unix/unix-lcc.mk
deleted file mode 100644
index 6038e5239..000000000
--- a/nx-X11/extras/freetype2/builds/unix/unix-lcc.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# FreeType 2 Configuration rules for Unix + LCC
-#
-#   Development version without optimizations & libtool
-#   and no installation.
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/unix/unixddef.mk
-include $(TOP_DIR)/builds/compiler/unix-lcc.mk
-include $(TOP_DIR)/builds/link_std.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/unix.mk b/nx-X11/extras/freetype2/builds/unix/unix.mk
deleted file mode 100644
index c1555acf6..000000000
--- a/nx-X11/extras/freetype2/builds/unix/unix.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#
-# FreeType 2 configuration rules for UNIX platforms
-#
-
-
-# Copyright 1996-2000, 2002, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-# We need these declarations here since unix-def.mk is a generated file.
-BUILD_DIR := $(TOP_DIR)/builds/unix
-PLATFORM  := unix
-
-have_mk := $(strip $(wildcard $(BUILD_DIR)/unix-def.mk))
-ifneq ($(have_mk),)
-  include $(BUILD_DIR)/unix-def.mk
-  include $(BUILD_DIR)/unix-cc.mk
-else
-  # we are building FT2 not in the src tree
-  include $(OBJ_DIR)/unix-def.mk
-  include $(OBJ_DIR)/unix-cc.mk
-endif
-
-ifdef BUILD_PROJECT
-
-  .PHONY: clean_project distclean_project
-
-  # Now include the main sub-makefile.  It contains all the rules used to
-  # build the library with the previous variables defined.
-  #
-  include $(TOP_DIR)/builds/$(PROJECT).mk
-
-
-  # The cleanup targets.
-  #
-  clean_project: clean_project_unix
-  distclean_project: distclean_project_unix
-
-
-  # This final rule is used to link all object files into a single library.
-  # It is part of the system-specific sub-Makefile because not all
-  # librarians accept a simple syntax like
-  #
-  #   librarian library_file {list of object files}
-  #
-  $(PROJECT_LIBRARY): $(OBJECTS_LIST)
-ifdef CLEAN_LIBRARY
-	  -$(CLEAN_LIBRARY) $(NO_OUTPUT)
-endif
-	  $(LINK_LIBRARY)
-
-endif
-
-include $(TOP_DIR)/builds/unix/install.mk
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/unix/unixddef.mk b/nx-X11/extras/freetype2/builds/unix/unixddef.mk
deleted file mode 100644
index 803ce755a..000000000
--- a/nx-X11/extras/freetype2/builds/unix/unixddef.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# FreeType 2 configuration rules templates for
-# development under Unix with no configure script (gcc only)
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-TOP_DIR := $(shell cd $(TOP_DIR); pwd)
-
-DELETE := rm -f
-SEP    := /
-
-# we use a special devel ftoption.h
-BUILD_DIR := $(TOP_DIR)/devel
-
-# do not set the platform to `unix', or libtool will trick you
-PLATFORM := unixdev
-
-
-# The directory where all object files are placed.
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(shell cd $(TOP_DIR)/objs; pwd)
-endif
-
-
-# library file name
-#
-LIBRARY := lib$(PROJECT)
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-
-NO_OUTPUT := 2> /dev/null
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/vms/ftconfig.h b/nx-X11/extras/freetype2/builds/vms/ftconfig.h
deleted file mode 100644
index dcce1e090..000000000
--- a/nx-X11/extras/freetype2/builds/vms/ftconfig.h
+++ /dev/null
@@ -1,331 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftconfig.h                                                             */
-/*                                                                         */
-/*    VMS-specific configuration file (specification only).                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This header file contains a number of macro definitions that are used */
-  /* by the rest of the engine.  Most of the macros here are automatically */
-  /* determined at compile time, and you should not need to change it to   */
-  /* port FreeType, except to compile the library with a non-ANSI          */
-  /* compiler.                                                             */
-  /*                                                                       */
-  /* Note however that if some specific modifications are needed, we       */
-  /* advise you to place a modified copy in your build directory.          */
-  /*                                                                       */
-  /* The build directory is usually `freetype/builds/<system>', and        */
-  /* contains system-specific files that are always included first when    */
-  /* building the library.                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTCONFIG_H__
-#define __FTCONFIG_H__
-
-
-  /* Include the header file containing all developer build options */
-#include <ft2build.h>
-#include FT_CONFIG_OPTIONS_H
-#include FT_CONFIG_STANDARD_LIBRARY_H
-
-
-FT_BEGIN_HEADER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*               PLATFORM-SPECIFIC CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* These macros can be toggled to suit a specific system.  The current   */
-  /* ones are defaults used to compile FreeType in an ANSI C environment   */
-  /* (16bit compilers are also supported).  Copy this file to your own     */
-  /* `freetype/builds/<system>' directory, and edit it to port the engine. */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define HAVE_UNISTD_H  1
-#define HAVE_FCNTL_H   1
-
-#define SIZEOF_INT   4
-#define SIZEOF_LONG  4
-
-#define FT_SIZEOF_INT   4
-#define FT_SIZEOF_LONG  4
-
-#define FT_CHAR_BIT  8
-
-
-  /* Preferred alignment of data */
-#define FT_ALIGNMENT  8
-
-
-  /* FT_UNUSED is a macro used to indicate that a given parameter is not  */
-  /* used -- this is only used to get rid of unpleasant compiler warnings */
-#ifndef FT_UNUSED
-#define FT_UNUSED( arg )  ( (arg) = (arg) )
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     AUTOMATIC CONFIGURATION MACROS                    */
-  /*                                                                       */
-  /* These macros are computed from the ones defined above.  Don't touch   */
-  /* their definition, unless you know precisely what you are doing.  No   */
-  /* porter should need to mess with them.                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Mac support                                                           */
-  /*                                                                       */
-  /*   This is the only necessary change, so it is defined here instead    */
-  /*   providing a new configuration file.                                 */
-  /*                                                                       */
-#if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \
-    ( defined( __MWERKS__ ) && defined( macintosh )        )
-#define FT_MACINTOSH 1
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IntN types                                                            */
-  /*                                                                       */
-  /*   Used to guarantee the size of some specific integers.               */
-  /*                                                                       */
-  typedef signed short    FT_Int16;
-  typedef unsigned short  FT_UInt16;
-
-#if FT_SIZEOF_INT == 4
-
-  typedef signed int      FT_Int32;
-  typedef unsigned int    FT_UInt32;
-
-#elif FT_SIZEOF_LONG == 4
-
-  typedef signed long     FT_Int32;
-  typedef unsigned long   FT_UInt32;
-
-#else
-#error "no 32bit type found -- please check your configuration files"
-#endif
-
-  /* look up an integer type that is at least 32 bits */
-#if FT_SIZEOF_INT >= 4
-
-  typedef int            FT_Fast;
-  typedef unsigned int   FT_UFast;
-
-#elif FT_SIZEOF_LONG >= 4
-
-  typedef long           FT_Fast;
-  typedef unsigned long  FT_UFast;
-
-#endif
-
-
-  /* determine whether we have a 64-bit int type for platforms without */
-  /* Autoconf                                                          */
-#if FT_SIZEOF_LONG == 8
-
-  /* FT_LONG64 must be defined if a 64-bit type is available */
-#define FT_LONG64
-#define FT_INT64  long
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 900  /* Visual C++ (and Intel C++) */
-
-  /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64  __int64
-
-#elif defined( __BORLANDC__ )  /* Borland C++ */
-
-  /* XXXX: We should probably check the value of __BORLANDC__ in order */
-  /*       to test the compiler version.                               */
-
-  /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64  __int64
-
-#elif defined( __WATCOMC__ )   /* Watcom C++ */
-
-  /* Watcom doesn't provide 64-bit data types */
-
-#elif defined( __MWERKS__ )    /* Metrowerks CodeWarrior */
-
-#define FT_LONG64
-#define FT_INT64  long long int
-
-#elif defined( __GNUC__ )
-
-  /* GCC provides the "long long" type */
-#define FT_LONG64
-#define FT_INT64  long long int
-
-#endif /* FT_SIZEOF_LONG == 8 */
-
-
-#define FT_BEGIN_STMNT  do {
-#define FT_END_STMNT    } while ( 0 )
-#define FT_DUMMY_STMNT  FT_BEGIN_STMNT FT_END_STMNT
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A 64-bit data type will create compilation problems if you compile    */
-  /* in strict ANSI mode.  To avoid them, we disable their use if          */
-  /* __STDC__ is defined.  You can however ignore this rule by             */
-  /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro.        */
-  /*                                                                       */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
-  /* undefine the 64-bit macros in strict ANSI compilation mode */
-#undef FT_LONG64
-#undef FT_INT64
-
-#endif /* __STDC__ */
-
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
-
-
-#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
-
-#define FT_LOCAL( x )      static  x
-#define FT_LOCAL_DEF( x )  static  x
-
-#else
-
-#ifdef __cplusplus
-#define FT_LOCAL( x )      extern "C"  x
-#define FT_LOCAL_DEF( x )  extern "C"  x
-#else
-#define FT_LOCAL( x )      extern  x
-#define FT_LOCAL_DEF( x )  x
-#endif
-
-#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
-
-
-#ifndef FT_BASE
-
-#ifdef __cplusplus
-#define FT_BASE( x )  extern "C"  x
-#else
-#define FT_BASE( x )  extern  x
-#endif
-
-#endif /* !FT_BASE */
-
-
-#ifndef FT_BASE_DEF
-
-#ifdef __cplusplus
-#define FT_BASE_DEF( x )  extern "C"  x
-#else
-#define FT_BASE_DEF( x )  extern  x
-#endif
-
-#endif /* !FT_BASE_DEF */
-
-
-#ifndef FT_EXPORT
-
-#ifdef __cplusplus
-#define FT_EXPORT( x )  extern "C"  x
-#else
-#define FT_EXPORT( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT */
-
-
-#ifndef FT_EXPORT_DEF
-
-#ifdef __cplusplus
-#define FT_EXPORT_DEF( x )  extern "C"  x
-#else
-#define FT_EXPORT_DEF( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT_DEF */
-
-
-#ifndef FT_EXPORT_VAR
-
-#ifdef __cplusplus
-#define FT_EXPORT_VAR( x )  extern "C"  x
-#else
-#define FT_EXPORT_VAR( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT_VAR */
-
-  /* The following macros are needed to compile the library with a   */
-  /* C++ compiler and with 16bit compilers.                          */
-  /*                                                                 */
-
-  /* This is special.  Within C++, you must specify `extern "C"' for */
-  /* functions which are used via function pointers, and you also    */
-  /* must do that for structures which contain function pointers to  */
-  /* assure C linkage -- it's not possible to have (local) anonymous */
-  /* functions which are accessed by (global) function pointers.     */
-  /*                                                                 */
-  /*                                                                 */
-  /* FT_CALLBACK_DEF is used to _define_ a callback function.        */
-  /*                                                                 */
-  /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
-  /* contains pointers to callback functions.                        */
-  /*                                                                 */
-  /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable   */
-  /* that contains pointers to callback functions.                   */
-  /*                                                                 */
-  /*                                                                 */
-  /* Some 16bit compilers have to redefine these macros to insert    */
-  /* the infamous `_cdecl' or `__fastcall' declarations.             */
-  /*                                                                 */
-#ifndef FT_CALLBACK_DEF
-#ifdef __cplusplus
-#define FT_CALLBACK_DEF( x )  extern "C"  x
-#else
-#define FT_CALLBACK_DEF( x )  static  x
-#endif
-#endif /* FT_CALLBACK_DEF */
-
-#ifndef FT_CALLBACK_TABLE
-#ifdef __cplusplus
-#define FT_CALLBACK_TABLE      extern "C"
-#define FT_CALLBACK_TABLE_DEF  extern "C"
-#else
-#define FT_CALLBACK_TABLE      extern
-#define FT_CALLBACK_TABLE_DEF  /* nothing */
-#endif
-#endif /* FT_CALLBACK_TABLE */
-
-
-FT_END_HEADER
-
-
-#endif /* __FTCONFIG_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/vms/ftsystem.c b/nx-X11/extras/freetype2/builds/vms/ftsystem.c
deleted file mode 100644
index 8a198e63a..000000000
--- a/nx-X11/extras/freetype2/builds/vms/ftsystem.c
+++ /dev/null
@@ -1,321 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsystem.c                                                             */
-/*                                                                         */
-/*    VMS-specific FreeType low-level system interface (body).             */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-  /* we use our special ftconfig.h file, not the standard one */
-#include <ftconfig.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_SYSTEM_H
-#include FT_ERRORS_H
-#include FT_TYPES_H
-#include FT_INTERNAL_OBJECTS_H
-
-  /* memory-mapping includes and definitions */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <sys/mman.h>
-#ifndef MAP_FILE
-#define MAP_FILE  0x00
-#endif
-
-#ifdef MUNMAP_USES_VOIDP
-#define MUNMAP_ARG_CAST  void *
-#else
-#define MUNMAP_ARG_CAST  char *
-#endif
-
-#ifdef NEED_MUNMAP_DECL
-
-#ifdef __cplusplus
-  extern "C"
-#else
-  extern
-#endif
-  int
-  munmap( char*  addr,
-          int    len );
-
-#define MUNMAP_ARG_CAST  char *
-
-#endif /* NEED_DECLARATION_MUNMAP */
-
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                       MEMORY MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_alloc                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory allocation function.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    size   :: The requested size in bytes.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of newly allocated block.                              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_alloc( FT_Memory  memory,
-            long       size )
-  {
-    FT_UNUSED( memory );
-
-    return malloc( size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_realloc                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory reallocation function.                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory   :: A pointer to the memory object.                        */
-  /*                                                                       */
-  /*    cur_size :: The current size of the allocated memory block.        */
-  /*                                                                       */
-  /*    new_size :: The newly requested size in bytes.                     */
-  /*                                                                       */
-  /*    block    :: The current address of the block in memory.            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of the reallocated memory block.                       */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_realloc( FT_Memory  memory,
-              long       cur_size,
-              long       new_size,
-              void*      block )
-  {
-    FT_UNUSED( memory );
-    FT_UNUSED( cur_size );
-
-    return realloc( block, new_size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_free                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory release function.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    block  :: The address of block in memory to be freed.              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_free( FT_Memory  memory,
-           void*      block )
-  {
-    FT_UNUSED( memory );
-
-    free( block );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     RESOURCE MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_io
-
-  /* We use the macro STREAM_FILE for convenience to extract the       */
-  /* system-specific stream handle from a given FreeType stream object */
-#define STREAM_FILE( stream )  ( (FILE*)stream->descriptor.pointer )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_close_stream                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to close a stream.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_close_stream( FT_Stream  stream )
-  {
-    munmap( (MUNMAP_ARG_CAST)stream->descriptor.pointer, stream->size );
-
-    stream->descriptor.pointer = NULL;
-    stream->size               = 0;
-    stream->base               = 0;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_Open( FT_Stream    stream,
-                  const char*  filepathname )
-  {
-    int          file;
-    struct stat  stat_buf;
-
-
-    if ( !stream )
-      return FT_Err_Invalid_Stream_Handle;
-
-    /* open the file */
-    file = open( filepathname, O_RDONLY );
-    if ( file < 0 )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not open `%s'\n", filepathname ));
-      return FT_Err_Cannot_Open_Resource;
-    }
-
-    if ( fstat( file, &stat_buf ) < 0 )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not `fstat' file `%s'\n", filepathname ));
-      goto Fail_Map;
-    }
-
-    stream->size = stat_buf.st_size;
-    stream->pos  = 0;
-    stream->base = (unsigned char *)mmap( NULL,
-                                          stream->size,
-                                          PROT_READ,
-                                          MAP_FILE | MAP_PRIVATE,
-                                          file,
-                                          0 );
-
-    if ( (long)stream->base == -1 )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not `mmap' file `%s'\n", filepathname ));
-      goto Fail_Map;
-    }
-
-    close( file );
-
-    stream->descriptor.pointer = stream->base;
-    stream->pathname.pointer   = (char*)filepathname;
-
-    stream->close = ft_close_stream;
-    stream->read  = 0;
-
-    FT_TRACE1(( "FT_Stream_Open:" ));
-    FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
-                filepathname, stream->size ));
-
-    return FT_Err_Ok;
-
-  Fail_Map:
-    close( file );
-
-    stream->base = NULL;
-    stream->size = 0;
-    stream->pos  = 0;
-
-    return FT_Err_Cannot_Open_Stream;
-  }
-
-
-#ifdef FT_DEBUG_MEMORY
-
-  extern FT_Int
-  ft_mem_debug_init( FT_Memory  memory );
-
-  extern void
-  ft_mem_debug_done( FT_Memory  memory );
-
-#endif
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Memory )
-  FT_New_Memory( void )
-  {
-    FT_Memory  memory;
-
-
-    memory = (FT_Memory)malloc( sizeof ( *memory ) );
-    if ( memory )
-    {
-      memory->user    = 0;
-      memory->alloc   = ft_alloc;
-      memory->realloc = ft_realloc;
-      memory->free    = ft_free;
-#ifdef FT_DEBUG_MEMORY
-      ft_mem_debug_init( memory );
-#endif
-    }
-
-    return memory;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Done_Memory( FT_Memory  memory )
-  {
-#ifdef FT_DEBUG_MEMORY
-    ft_mem_debug_done( memory );
-#endif
-    memory->free( memory, memory );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/win32/detect.mk b/nx-X11/extras/freetype2/builds/win32/detect.mk
deleted file mode 100644
index f24538fdb..000000000
--- a/nx-X11/extras/freetype2/builds/win32/detect.mk
+++ /dev/null
@@ -1,147 +0,0 @@
-#
-# FreeType 2 configuration file to detect a Win32 host platform.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-.PHONY: setup
-
-
-ifeq ($(PLATFORM),ansi)
-
-  # Detecting Windows NT is easy, as the OS variable must be defined and
-  # contains `Windows_NT'.  Untested with Windows 2K, but I guess it should
-  # work...
-  #
-  ifeq ($(OS),Windows_NT)
-
-    is_windows := 1
-
-    # We test for the COMSPEC environment variable, then run the `ver'
-    # command-line program to see if its output contains the word `Windows'.
-    #
-    # If this is true, we are running a win32 platform (or an emulation).
-    #
-  else
-    ifdef COMSPEC
-      is_windows := $(findstring Windows,$(strip $(shell ver)))
-    endif
-  endif  # test NT
-
-  ifdef is_windows
-
-    PLATFORM := win32
-
-  endif
-endif # test PLATFORM ansi
-
-ifeq ($(PLATFORM),win32)
-
-  DELETE := del
-  COPY   := copy
-  SEP    := $(BACKSLASH)
-
-  # gcc Makefile by default
-  CONFIG_FILE := w32-gcc.mk
-  ifeq ($(firstword $(CC)),cc)
-    CC        := gcc
-  endif
-
-  ifneq ($(findstring list,$(MAKECMDGOALS)),)  # test for the "list" target
-    dump_target_list:
-	    @echo �
-	    @echo $(PROJECT_TITLE) build system -- supported compilers
-	    @echo �
-	    @echo Several command-line compilers are supported on Win32:
-	    @echo �
-	    @echo ��make setup���������������������gcc (with Mingw)
-	    @echo ��make setup visualc�������������Microsoft Visual C++
-	    @echo ��make setup bcc32���������������Borland C/C++
-	    @echo ��make setup lcc�����������������Win32-LCC
-	    @echo ��make setup intelc��������������Intel C/C++
-	    @echo �
-
-    setup: dump_target_list
-    .PHONY: dump_target_list list
-  else
-    setup: dos_setup
-  endif
-
-  # additionally, we provide hooks for various other compilers
-  #
-  ifneq ($(findstring visualc,$(MAKECMDGOALS)),)     # Visual C/C++
-    CONFIG_FILE := w32-vcc.mk
-    CC          := cl
-    visualc: setup
-    .PHONY: visualc
-  endif
-
-  ifneq ($(findstring intelc,$(MAKECMDGOALS)),)      # Intel C/C++
-    CONFIG_FILE := w32-intl.mk
-    CC          := cl
-    visualc: setup
-    .PHONY: intelc
-  endif
-
-  ifneq ($(findstring watcom,$(MAKECMDGOALS)),)      # Watcom C/C++
-    CONFIG_FILE := w32-wat.mk
-    CC          := wcc386
-    watcom: setup
-    .PHONY: watcom
-  endif
-
-  ifneq ($(findstring visualage,$(MAKECMDGOALS)),)   # Visual Age C++
-    CONFIG_FILE := w32-icc.mk
-    CC          := icc
-    visualage: setup
-    .PHONY: visualage
-  endif
-
-  ifneq ($(findstring lcc,$(MAKECMDGOALS)),)         # LCC-Win32
-    CONFIG_FILE := w32-lcc.mk
-    CC          := lcc
-    lcc: setup
-    .PHONY: lcc
-  endif
-
-  ifneq ($(findstring mingw32,$(MAKECMDGOALS)),)     # mingw32
-    CONFIG_FILE := w32-mingw32.mk
-    CC          := gcc
-    mingw32: setup
-    .PHONY: mingw32
-  endif
-
-  ifneq ($(findstring bcc32,$(MAKECMDGOALS)),)       # Borland C++
-    CONFIG_FILE := w32-bcc.mk
-    CC          := bcc32
-    bcc32: setup
-    .PHONY: bcc32
-  endif
-
-  ifneq ($(findstring devel-bcc,$(MAKECMDGOALS)),)   # development target
-    CONFIG_FILE := w32-bccd.mk
-    CC          := bcc32
-    devel-bcc: setup
-    .PHONY: devel-bcc
-  endif
-
-  ifneq ($(findstring devel-gcc,$(MAKECMDGOALS)),)   # development target
-    CONFIG_FILE := w32-dev.mk
-    CC          := gcc
-    devel-gcc: setup
-    .PHONY: devel-gcc
-  endif
-
-endif   # test PLATFORM win32
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/ftdebug.c b/nx-X11/extras/freetype2/builds/win32/ftdebug.c
deleted file mode 100644
index 5816a4f9a..000000000
--- a/nx-X11/extras/freetype2/builds/win32/ftdebug.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftdebug.c                                                              */
-/*                                                                         */
-/*    Debugging and logging component for Win32 (body).                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This component contains various macros and functions used to ease the */
-  /* debugging of the FreeType engine.  Its main purpose is in assertion   */
-  /* checking, tracing, and error detection.                               */
-  /*                                                                       */
-  /* There are now three debugging modes:                                  */
-  /*                                                                       */
-  /* - trace mode                                                          */
-  /*                                                                       */
-  /*   Error and trace messages are sent to the log file (which can be the */
-  /*   standard error output).                                             */
-  /*                                                                       */
-  /* - error mode                                                          */
-  /*                                                                       */
-  /*   Only error messages are generated.                                  */
-  /*                                                                       */
-  /* - release mode:                                                       */
-  /*                                                                       */
-  /*   No error message is sent or generated.  The code is free from any   */
-  /*   debugging parts.                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-
-
-#ifdef FT_DEBUG_LEVEL_ERROR
-
-
-#  include <stdarg.h>
-#  include <stdlib.h>
-#  include <string.h>
-
-#  include <windows.h>
-
-
-  FT_EXPORT_DEF( void )
-  FT_Message( const char*  fmt, ... )
-  {
-    static char buf[8192];
-    va_list     ap;
-
-
-    va_start( ap, fmt );
-    vsprintf( buf, fmt, ap );
-    OutputDebugStringA( buf );
-    va_end( ap );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Panic( const char*  fmt, ... )
-  {
-    static char buf[8192];
-    va_list     ap;
-
-
-    va_start( ap, fmt );
-    vsprintf( buf, fmt, ap );
-    OutputDebugStringA( buf );
-    va_end( ap );
-
-    exit( EXIT_FAILURE );
-  }
-
-
-#  ifdef FT_DEBUG_LEVEL_TRACE
-
-
-  /* array of trace levels, initialized to 0 */
-  int  ft_trace_levels[trace_count];
-
-  /* define array of trace toggle names */
-#    define FT_TRACE_DEF( x )  #x ,
-
-  static const char*  ft_trace_toggles[trace_count + 1] =
-  {
-#    include FT_INTERNAL_TRACE_H
-    NULL
-  };
-
-#    undef FT_TRACE_DEF
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Initialize the tracing sub-system.  This is done by retrieving the    */
-  /* value of the "FT2_DEBUG" environment variable.  It must be a list of  */
-  /* toggles, separated by spaces, `;' or `,'.  Example:                   */
-  /*                                                                       */
-  /*    "any:3 memory:6 stream:5"                                          */
-  /*                                                                       */
-  /* This will request that all levels be set to 3, except the trace level */
-  /* for the memory and stream components which are set to 6 and 5,        */
-  /* respectively.                                                         */
-  /*                                                                       */
-  /* See the file <freetype/internal/fttrace.h> for details of the         */
-  /* available toggle names.                                               */
-  /*                                                                       */
-  /* The level must be between 0 and 6; 0 means quiet (except for serious  */
-  /* runtime errors), and 6 means _very_ verbose.                          */
-  /*                                                                       */
-  FT_BASE_DEF( void )
-  ft_debug_init( void )
-  {
-    const char*  ft2_debug = getenv( "FT2_DEBUG" );
-
-
-    if ( ft2_debug )
-    {
-      const char*  p = ft2_debug;
-      const char*  q;
-
-
-      for ( ; *p; p++ )
-      {
-        /* skip leading whitespace and separators */
-        if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
-          continue;
-
-        /* read toggle name, followed by ':' */
-        q = p;
-        while ( *p && *p != ':' )
-          p++;
-
-        if ( *p == ':' && p > q )
-        {
-          int  n, i, len = p - q;
-          int  level = -1, found = -1;
-
-
-          for ( n = 0; n < trace_count; n++ )
-          {
-            const char*  toggle = ft_trace_toggles[n];
-
-
-            for ( i = 0; i < len; i++ )
-            {
-              if ( toggle[i] != q[i] )
-                break;
-            }
-
-            if ( i == len && toggle[i] == 0 )
-            {
-              found = n;
-              break;
-            }
-          }
-
-          /* read level */
-          p++;
-          if ( *p )
-          {
-            level = *p++ - '0';
-            if ( level < 0 || level > 6 )
-              level = -1;
-          }
-
-          if ( found >= 0 && level >= 0 )
-          {
-            if ( found == trace_any )
-            {
-              /* special case for "any" */
-              for ( n = 0; n < trace_count; n++ )
-                ft_trace_levels[n] = level;
-            }
-            else
-              ft_trace_levels[found] = level;
-          }
-        }
-      }
-    }
-  }
-
-
-#  else  /* !FT_DEBUG_LEVEL_TRACE */
-
-
-  FT_BASE_DEF( void )
-  ft_debug_init( void )
-  {
-    /* nothing */
-  }
-
-
-#  endif /* !FT_DEBUG_LEVEL_TRACE */
-
-#endif /* FT_DEBUG_LEVEL_ERROR */
-
-/* END */
diff --git a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsp b/nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsp
deleted file mode 100644
index 5e88deb38..000000000
--- a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsp
+++ /dev/null
@@ -1,349 +0,0 @@
-# Microsoft Developer Studio Project File - Name="freetype" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=freetype - Win32 Debug Singlethreaded
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "freetype.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "freetype.mak" CFG="freetype - Win32 Debug Singlethreaded"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "freetype - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "freetype - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE "freetype - Win32 Debug Multithreaded" (based on "Win32 (x86) Static Library")
-!MESSAGE "freetype - Win32 Release Multithreaded" (based on "Win32 (x86) Static Library")
-!MESSAGE "freetype - Win32 Release Singlethreaded" (based on "Win32 (x86) Static Library")
-!MESSAGE "freetype - Win32 Debug Singlethreaded" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "freetype - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\..\objs\release"
-# PROP Intermediate_Dir "..\..\..\objs\release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /MD /Za /W4 /GX /Zi /O2 /I "..\..\..\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FD /c
-# SUBTRACT CPP /nologo /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219.lib"
-
-!ELSEIF  "$(CFG)" == "freetype - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\..\objs\debug"
-# PROP Intermediate_Dir "..\..\..\objs\debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
-# ADD CPP /MDd /Za /W4 /GX /Zi /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FT_DEBUG_LEVEL_ERROR" /D "FT_DEBUG_LEVEL_TRACE" /FD /GZ /c
-# SUBTRACT CPP /nologo /X /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219_D.lib"
-
-!ELSEIF  "$(CFG)" == "freetype - Win32 Debug Multithreaded"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "freetype___Win32_Debug_Multithreaded"
-# PROP BASE Intermediate_Dir "freetype___Win32_Debug_Multithreaded"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\..\objs\debug_mt"
-# PROP Intermediate_Dir "..\..\..\objs\debug_mt"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /Za /W3 /Gm /GX /ZI /Od /I "..\freetype\include\\" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FT_FLAT_COMPILE" /YX /FD /GZ /c
-# SUBTRACT BASE CPP /X
-# ADD CPP /MTd /Za /W4 /GX /Zi /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FT_DEBUG_LEVEL_ERROR" /D "FT_DEBUG_LEVEL_TRACE" /FD /GZ /c
-# SUBTRACT CPP /nologo /X /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype200b8_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219MT_D.lib"
-
-!ELSEIF  "$(CFG)" == "freetype - Win32 Release Multithreaded"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "freetype___Win32_Release_Multithreaded"
-# PROP BASE Intermediate_Dir "freetype___Win32_Release_Multithreaded"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\..\objs\release_mt"
-# PROP Intermediate_Dir "..\..\..\objs\release_mt"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /Za /W3 /GX /O2 /I "..\freetype\include\\" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FT_FLAT_COMPILE" /YX /FD /c
-# ADD CPP /MT /Za /W4 /GX /Zi /O2 /I "..\..\..\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FD /c
-# SUBTRACT CPP /nologo /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"lib\freetype200b8.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219MT.lib"
-
-!ELSEIF  "$(CFG)" == "freetype - Win32 Release Singlethreaded"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "freetype___Win32_Release_Singlethreaded"
-# PROP BASE Intermediate_Dir "freetype___Win32_Release_Singlethreaded"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\..\objs\release_st"
-# PROP Intermediate_Dir "..\..\..\objs\release_st"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /Za /W4 /GX /Zi /O2 /I "..\..\..\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /Za /W4 /GX /Zi /O2 /I "..\..\..\include" /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /FD /c
-# SUBTRACT CPP /nologo /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype206.lib"
-# ADD LIB32 /out:"..\..\..\objs\freetype219ST.lib"
-# SUBTRACT LIB32 /nologo
-
-!ELSEIF  "$(CFG)" == "freetype - Win32 Debug Singlethreaded"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "freetype___Win32_Debug_Singlethreaded"
-# PROP BASE Intermediate_Dir "freetype___Win32_Debug_Singlethreaded"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\..\objs\debug_st"
-# PROP Intermediate_Dir "..\..\..\objs\debug_st"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /Za /W4 /Gm /GX /Zi /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FT_DEBUG_LEVEL_ERROR" /D "FT_DEBUG_LEVEL_TRACE" /FD /GZ /c
-# SUBTRACT BASE CPP /X /YX
-# ADD CPP /Za /W4 /GX /Zi /Od /I "..\..\..\include" /D "_DEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "FT_DEBUG_LEVEL_ERROR" /D "FT_DEBUG_LEVEL_TRACE" /FD /GZ /c
-# SUBTRACT CPP /nologo /X /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype206_D.lib"
-# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219ST_D.lib"
-
-!ENDIF 
-
-# Begin Target
-
-# Name "freetype - Win32 Release"
-# Name "freetype - Win32 Debug"
-# Name "freetype - Win32 Debug Multithreaded"
-# Name "freetype - Win32 Release Multithreaded"
-# Name "freetype - Win32 Release Singlethreaded"
-# Name "freetype - Win32 Debug Singlethreaded"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\..\src\autohint\autohint.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\bdf\bdf.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\cff\cff.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\base\ftbase.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\cache\ftcache.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\ftdebug.c
-# ADD CPP /Ze
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\base\ftglyph.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\gzip\ftgzip.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\lzw\ftlzw.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\base\ftinit.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\base\ftmm.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\base\ftsystem.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\pcf\pcf.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\pfr\pfr.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\psaux\psaux.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\pshinter\pshinter.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\psnames\psmodule.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\raster\raster.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\sfnt\sfnt.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\smooth\smooth.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\truetype\truetype.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\type1\type1.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\cid\type1cid.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\type42\type42.c
-# SUBTRACT CPP /Fr
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\src\winfonts\winfnt.c
-# SUBTRACT CPP /Fr
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\..\include\ft2build.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\include\freetype\config\ftconfig.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\include\freetype\config\ftheader.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\include\freetype\config\ftmodule.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\include\freetype\config\ftoption.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\include\freetype\config\ftstdlib.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsw b/nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsw
deleted file mode 100644
index b1b375dbb..000000000
--- a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "freetype"=.\freetype.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.sln b/nx-X11/extras/freetype2/builds/win32/visualc/freetype.sln
deleted file mode 100644
index 0afd3a3b6..000000000
--- a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.sln
+++ /dev/null
@@ -1,33 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "freetype", "freetype.vcproj", "{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}"
-	ProjectSection(ProjectDependencies) = postProject
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfiguration) = preSolution
-		Debug = Debug
-		Debug Multithreaded = Debug Multithreaded
-		Debug Singlethreaded = Debug Singlethreaded
-		Release = Release
-		Release Multithreaded = Release Multithreaded
-		Release Singlethreaded = Release Singlethreaded
-	EndGlobalSection
-	GlobalSection(ProjectConfiguration) = postSolution
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug.ActiveCfg = Debug|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug.Build.0 = Debug|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded.ActiveCfg = Debug Multithreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded.Build.0 = Debug Multithreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded.ActiveCfg = Debug Singlethreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded.Build.0 = Debug Singlethreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release.ActiveCfg = Release|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release.Build.0 = Release|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded.ActiveCfg = Release Multithreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded.Build.0 = Release Multithreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded.ActiveCfg = Release Singlethreaded|Win32
-		{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded.Build.0 = Release Singlethreaded|Win32
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-	EndGlobalSection
-	GlobalSection(ExtensibilityAddIns) = postSolution
-	EndGlobalSection
-EndGlobal
diff --git a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.vcproj b/nx-X11/extras/freetype2/builds/win32/visualc/freetype.vcproj
deleted file mode 100644
index 4967e582a..000000000
--- a/nx-X11/extras/freetype2/builds/win32/visualc/freetype.vcproj
+++ /dev/null
@@ -1,1717 +0,0 @@
-<?xml version="1.0" encoding="windows-1251"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="7.10"
-	Name="freetype"
-	ProjectGUID="{D0087BEB-3E7B-4004-BD4A-E4D071CF8D92}"
-	SccProjectName=""
-	SccLocalPath="">
-	<Platforms>
-		<Platform
-			Name="Win32"/>
-	</Platforms>
-	<Configurations>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory=".\..\..\..\objs\release"
-			IntermediateDirectory=".\..\..\..\objs\release"
-			ConfigurationType="4"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				ImproveFloatingPointConsistency="TRUE"
-				AdditionalIncludeDirectories="..\..\..\include"
-				PreprocessorDefinitions="NDEBUG;WIN32;_LIB"
-				StringPooling="TRUE"
-				RuntimeLibrary="2"
-				EnableFunctionLevelLinking="TRUE"
-				DisableLanguageExtensions="TRUE"
-				PrecompiledHeaderFile=".\..\..\..\objs\release/freetype.pch"
-				AssemblerListingLocation=".\..\..\..\objs\release/"
-				ObjectFile=".\..\..\..\objs\release/"
-				ProgramDataBaseFileName=".\..\..\..\objs\release/"
-				WarningLevel="4"
-				DebugInformationFormat="3"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype219.lib"
-				SuppressStartupBanner="TRUE"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"/>
-			<Tool
-				Name="VCManagedWrapperGeneratorTool"/>
-			<Tool
-				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-		</Configuration>
-		<Configuration
-			Name="Release Multithreaded|Win32"
-			OutputDirectory=".\..\..\..\objs\release_mt"
-			IntermediateDirectory=".\..\..\..\objs\release_mt"
-			ConfigurationType="4"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				ImproveFloatingPointConsistency="TRUE"
-				AdditionalIncludeDirectories="..\..\..\include"
-				PreprocessorDefinitions="NDEBUG;WIN32;_LIB"
-				StringPooling="TRUE"
-				RuntimeLibrary="0"
-				EnableFunctionLevelLinking="TRUE"
-				DisableLanguageExtensions="TRUE"
-				PrecompiledHeaderFile=".\..\..\..\objs\release_mt/freetype.pch"
-				AssemblerListingLocation=".\..\..\..\objs\release_mt/"
-				ObjectFile=".\..\..\..\objs\release_mt/"
-				ProgramDataBaseFileName=".\..\..\..\objs\release_mt/"
-				WarningLevel="4"
-				DebugInformationFormat="3"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype219MT.lib"
-				SuppressStartupBanner="TRUE"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"/>
-			<Tool
-				Name="VCManagedWrapperGeneratorTool"/>
-			<Tool
-				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-		</Configuration>
-		<Configuration
-			Name="Release Singlethreaded|Win32"
-			OutputDirectory=".\..\..\..\objs\release_st"
-			IntermediateDirectory=".\..\..\..\objs\release_st"
-			ConfigurationType="4"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="2"
-				InlineFunctionExpansion="1"
-				ImproveFloatingPointConsistency="TRUE"
-				AdditionalIncludeDirectories="..\..\..\include"
-				PreprocessorDefinitions="NDEBUG;WIN32;_LIB"
-				StringPooling="TRUE"
-				RuntimeLibrary="4"
-				EnableFunctionLevelLinking="TRUE"
-				DisableLanguageExtensions="TRUE"
-				PrecompiledHeaderFile=".\..\..\..\objs\release_st/freetype.pch"
-				AssemblerListingLocation=".\..\..\..\objs\release_st/"
-				ObjectFile=".\..\..\..\objs\release_st/"
-				ProgramDataBaseFileName=".\..\..\..\objs\release_st/"
-				WarningLevel="4"
-				DebugInformationFormat="3"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype219ST.lib"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="NDEBUG"
-				Culture="1033"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"/>
-			<Tool
-				Name="VCManagedWrapperGeneratorTool"/>
-			<Tool
-				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-		</Configuration>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory=".\..\..\..\objs\debug"
-			IntermediateDirectory=".\..\..\..\objs\debug"
-			ConfigurationType="4"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				ImproveFloatingPointConsistency="TRUE"
-				AdditionalIncludeDirectories="..\..\..\include"
-				PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				DisableLanguageExtensions="TRUE"
-				PrecompiledHeaderFile=".\..\..\..\objs\debug/freetype.pch"
-				AssemblerListingLocation=".\..\..\..\objs\debug/"
-				ObjectFile=".\..\..\..\objs\debug/"
-				ProgramDataBaseFileName=".\..\..\..\objs\debug/"
-				WarningLevel="4"
-				DebugInformationFormat="3"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype219_D.lib"
-				SuppressStartupBanner="TRUE"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1033"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"/>
-			<Tool
-				Name="VCManagedWrapperGeneratorTool"/>
-			<Tool
-				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-		</Configuration>
-		<Configuration
-			Name="Debug Singlethreaded|Win32"
-			OutputDirectory=".\..\..\..\objs\debug_st"
-			IntermediateDirectory=".\..\..\..\objs\debug_st"
-			ConfigurationType="4"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				ImproveFloatingPointConsistency="TRUE"
-				AdditionalIncludeDirectories="..\..\..\include"
-				PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="5"
-				DisableLanguageExtensions="TRUE"
-				PrecompiledHeaderFile=".\..\..\..\objs\debug_st/freetype.pch"
-				AssemblerListingLocation=".\..\..\..\objs\debug_st/"
-				ObjectFile=".\..\..\..\objs\debug_st/"
-				ProgramDataBaseFileName=".\..\..\..\objs\debug_st/"
-				WarningLevel="4"
-				DebugInformationFormat="3"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype219ST_D.lib"
-				SuppressStartupBanner="TRUE"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1033"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"/>
-			<Tool
-				Name="VCManagedWrapperGeneratorTool"/>
-			<Tool
-				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-		</Configuration>
-		<Configuration
-			Name="Debug Multithreaded|Win32"
-			OutputDirectory=".\..\..\..\objs\debug_mt"
-			IntermediateDirectory=".\..\..\..\objs\debug_mt"
-			ConfigurationType="4"
-			UseOfMFC="0"
-			ATLMinimizesCRunTimeLibraryUsage="FALSE"
-			CharacterSet="2">
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				ImproveFloatingPointConsistency="TRUE"
-				AdditionalIncludeDirectories="..\..\..\include"
-				PreprocessorDefinitions="_DEBUG;WIN32;_LIB;FT_DEBUG_LEVEL_ERROR;FT_DEBUG_LEVEL_TRACE"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="1"
-				DisableLanguageExtensions="TRUE"
-				PrecompiledHeaderFile=".\..\..\..\objs\debug_mt/freetype.pch"
-				AssemblerListingLocation=".\..\..\..\objs\debug_mt/"
-				ObjectFile=".\..\..\..\objs\debug_mt/"
-				ProgramDataBaseFileName=".\..\..\..\objs\debug_mt/"
-				WarningLevel="4"
-				DebugInformationFormat="3"
-				CompileAs="0"/>
-			<Tool
-				Name="VCCustomBuildTool"/>
-			<Tool
-				Name="VCLibrarianTool"
-				OutputFile="..\..\..\objs\freetype219MT_D.lib"
-				SuppressStartupBanner="TRUE"/>
-			<Tool
-				Name="VCMIDLTool"/>
-			<Tool
-				Name="VCPostBuildEventTool"/>
-			<Tool
-				Name="VCPreBuildEventTool"/>
-			<Tool
-				Name="VCPreLinkEventTool"/>
-			<Tool
-				Name="VCResourceCompilerTool"
-				PreprocessorDefinitions="_DEBUG"
-				Culture="1033"/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"/>
-			<Tool
-				Name="VCManagedWrapperGeneratorTool"/>
-			<Tool
-				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
-			<File
-				RelativePath="..\..\..\src\autofit\autofit.c">
-			</File>
-			<File
-				RelativePath="..\..\..\src\autohint\autohint.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\bdf\bdf.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\cff\cff.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\base\ftbase.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\cache\ftcache.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\ftdebug.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						DisableLanguageExtensions="FALSE"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						DisableLanguageExtensions="FALSE"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						DisableLanguageExtensions="FALSE"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						DisableLanguageExtensions="FALSE"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						DisableLanguageExtensions="FALSE"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"
-						DisableLanguageExtensions="FALSE"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\base\ftglyph.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\gzip\ftgzip.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\lzw\ftlzw.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\base\ftinit.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\base\ftmm.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\base\ftsystem.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\pcf\pcf.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\pfr\pfr.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\psaux\psaux.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\pshinter\pshinter.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\psnames\psmodule.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\raster\raster.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\sfnt\sfnt.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\smooth\smooth.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\truetype\truetype.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\type1\type1.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\cid\type1cid.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\type42\type42.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-			<File
-				RelativePath="..\..\..\src\winfonts\winfnt.c">
-				<FileConfiguration
-					Name="Release|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="2"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Singlethreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug Multithreaded|Win32">
-					<Tool
-						Name="VCCLCompilerTool"
-						Optimization="0"
-						AdditionalIncludeDirectories=""
-						PreprocessorDefinitions=""
-						BasicRuntimeChecks="3"/>
-				</FileConfiguration>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl">
-			<File
-				RelativePath="..\..\..\include\ft2build.h">
-			</File>
-			<File
-				RelativePath="..\..\..\include\freetype\config\ftconfig.h">
-			</File>
-			<File
-				RelativePath="..\..\..\include\freetype\config\ftheader.h">
-			</File>
-			<File
-				RelativePath="..\..\..\include\freetype\config\ftmodule.h">
-			</File>
-			<File
-				RelativePath="..\..\..\include\freetype\config\ftoption.h">
-			</File>
-			<File
-				RelativePath="..\..\..\include\freetype\config\ftstdlib.h">
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/nx-X11/extras/freetype2/builds/win32/visualc/index.html b/nx-X11/extras/freetype2/builds/win32/visualc/index.html
deleted file mode 100644
index 9454d4c24..000000000
--- a/nx-X11/extras/freetype2/builds/win32/visualc/index.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<html>
-<header>
-<title>
-  FreeType&nbsp;2 Project Files for Visual&nbsp;C++ and VS.NET&nbsp;2003
-</title>
-</header>
-<body>
-
-<h1>
-  FreeType&nbsp;2 Project Files for Visual&nbsp;C++ and VS.NET&nbsp;2003
-</h1>
-
-<p>This directory contains a project files for Visual C++, named
-<tt>freetype.dsp</tt>, and Visual Studio, called <tt>freetype.sln</tt>.  It
-will compile the following libraries from the FreeType 2.1.9 sources:</p>
-
-<ul>
-  <pre>
-    freetype219.lib     - release build; single threaded
-    freetype219_D.lib   - debug build;   single threaded
-    freetype219MT.lib   - release build; multi-threaded
-    freetype219MT_D.lib - debug build;   multi-threaded</pre>
-</ul>
-
-<p>Be sure to extract the files with the Windows (CR+LF) line endings. ZIP
-archives are already stored this way, so no further step is required.  If
-you use some <tt>.tar.*z</tt> archives, be sure to configure your extracting
-tool to convert the line endings.  For example, with <a
-href="http://www.winzip.com">WinZip</a>, you should activate the <it>TAR
-file smart CR/LF Conversion</it> option.  Alternatively, you may consider
-using the <tt>unix2dos</tt> or <tt>u2d</tt> utilities that are floating
-around, which specifically deal with this particular problem.
-
-<p>Build directories are placed in the top-level <tt>objs</tt>
-directory.</p>
-
-</body>
-</html>
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-bcc.mk b/nx-X11/extras/freetype2/builds/win32/w32-bcc.mk
deleted file mode 100644
index 522d6b378..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-bcc.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 Borland C++ on Win32
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-include $(TOP_DIR)/builds/compiler/bcc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-bccd.mk b/nx-X11/extras/freetype2/builds/win32/w32-bccd.mk
deleted file mode 100644
index 29519995a..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-bccd.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# FreeType 2 Borland C++ on Win32 + debugging
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-BUILD_DIR := $(TOP_DIR)/devel
-
-include $(TOP_DIR)/builds/compiler/bcc-dev.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-dev.mk b/nx-X11/extras/freetype2/builds/win32/w32-dev.mk
deleted file mode 100644
index 0b665dee5..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-dev.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# FreeType 2 configuration rules for Win32 + GCC
-#
-#   Development version without optimizations.
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# NOTE: This version requires that GNU Make is invoked from the Windows
-#       Shell (_not_ Cygwin BASH)!
-#
-
-ifndef TOP_DIR
-  TOP_DIR := .
-endif
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-BUILD_DIR := $(TOP_DIR)/devel
-
-include $(TOP_DIR)/builds/compiler/gcc-dev.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-gcc.mk b/nx-X11/extras/freetype2/builds/win32/w32-gcc.mk
deleted file mode 100644
index 91d11338d..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-gcc.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# FreeType 2 configuration rules for Win32 + GCC
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# include Win32-specific definitions
-include $(TOP_DIR)/builds/win32/win32-def.mk
-
-# include gcc-specific definitions
-include $(TOP_DIR)/builds/compiler/gcc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-icc.mk b/nx-X11/extras/freetype2/builds/win32/w32-icc.mk
deleted file mode 100644
index 1e18202ce..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-icc.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 configuration rules for Win32 + IBM Visual Age C++
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-include $(TOP_DIR)/builds/compiler/visualage.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-intl.mk b/nx-X11/extras/freetype2/builds/win32/w32-intl.mk
deleted file mode 100644
index 5c42ad3c4..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-intl.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 configuration rules for Intel C/C++ on Win32
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-include $(TOP_DIR)/builds/compiler/intelc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-lcc.mk b/nx-X11/extras/freetype2/builds/win32/w32-lcc.mk
deleted file mode 100644
index a147c4cb6..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-lcc.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# FreeType 2 configuration rules for Win32 + LCC
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-SEP := /
-include $(TOP_DIR)/builds/win32/win32-def.mk
-include $(TOP_DIR)/builds/compiler/win-lcc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-# EOF
-
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-mingw32.mk b/nx-X11/extras/freetype2/builds/win32/w32-mingw32.mk
deleted file mode 100644
index 01f71b343..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-mingw32.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# FreeType 2 configuration rules for mingw32
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# include Win32-specific definitions
-include $(TOP_DIR)/builds/win32/win32-def.mk
-
-LIBRARY := lib$(PROJECT)
-
-# include gcc-specific definitions
-include $(TOP_DIR)/builds/compiler/gcc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-vcc.mk b/nx-X11/extras/freetype2/builds/win32/w32-vcc.mk
deleted file mode 100644
index 37bfec30b..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-vcc.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 Visual C++ on Win32
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-include $(TOP_DIR)/builds/compiler/visualc.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/w32-wat.mk b/nx-X11/extras/freetype2/builds/win32/w32-wat.mk
deleted file mode 100644
index accafc52f..000000000
--- a/nx-X11/extras/freetype2/builds/win32/w32-wat.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 configuration rules for Watcom C/C++
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-include $(TOP_DIR)/builds/win32/win32-def.mk
-include $(TOP_DIR)/builds/compiler/watcom.mk
-
-# include linking instructions
-include $(TOP_DIR)/builds/link_dos.mk
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/builds/win32/win32-def.mk b/nx-X11/extras/freetype2/builds/win32/win32-def.mk
deleted file mode 100644
index a9db459e8..000000000
--- a/nx-X11/extras/freetype2/builds/win32/win32-def.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# FreeType 2 Win32 specific definitions
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-DELETE    := del
-SEP       := $(strip \ )
-BUILD_DIR := $(TOP_DIR)/builds/win32
-PLATFORM  := win32
-
-
-# The directory where all object files are placed.
-#
-# This lets you build the library in your own directory with something like
-#
-#   set TOP_DIR=.../path/to/freetype2/top/dir...
-#   set OBJ_DIR=.../path/to/obj/dir
-#   make -f %TOP_DIR%/Makefile setup [options]
-#   make -f %TOP_DIR%/Makefile
-#
-ifndef OBJ_DIR
-  OBJ_DIR := $(TOP_DIR)/objs
-endif
-
-
-# The directory where all library files are placed.
-#
-# By default, this is the same as $(OBJ_DIR); however, this can be changed
-# to suit particular needs.
-#
-LIB_DIR := $(OBJ_DIR)
-
-
-# The name of the final library file.  Note that the DOS-specific Makefile
-# uses a shorter (8.3) name.
-#
-LIBRARY := $(PROJECT)
-
-
-# The NO_OUTPUT macro is used to ignore the output of commands.
-#
-NO_OUTPUT = 2> nul
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/configure b/nx-X11/extras/freetype2/configure
deleted file mode 100644
index 8621c0e5a..000000000
--- a/nx-X11/extras/freetype2/configure
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/sh
-#
-# Call the 'configure' script located in 'builds/unix'.
-#
-# This should re-generate the following files:
-#
-#   config.mk
-#   install
-#
-
-if test "x$GNUMAKE" = x; then
-  GNUMAKE=make
-fi
-
-if test -z "`$GNUMAKE -v 2>/dev/null | grep GNU`"; then
-  if test -z "`$GNUMAKE -v 2>/dev/null | grep makepp`"; then
-    echo "GNU make (>= 3.79.1) or makepp (>= 1.19) is required to build FreeType2." >&2
-    echo "Please try" >&2
-    echo "  \`GNUMAKE=<GNU make command name> $0'." >&2
-    echo "or >&2"
-    echo "  \`GNUMAKE=\"makepp --norc-substitution\" $0'." >&2
-    exit 1
-  fi
-fi
-
-# Uh, oh.  This is taken from autoconf.  They know what they are doing...
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  ft_expr=expr
-else
-  ft_expr=false
-fi
-
-ft2_dir=`(dirname "$0") 2>/dev/null ||
-$ft_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-         /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-         /^X\(\/\/\)$/{ s//\1/; q; }
-         /^X\(\/\).*/{ s//\1/; q; }
-         s/.*/./; q'`
-
-abs_curr_dir=`pwd`
-abs_ft2_dir=`cd "$ft2_dir" && pwd`
-
-# build a dummy Makefile if we are not building in the source tree
-
-if test "$abs_curr_dir" != "$abs_ft2_dir"; then
-  mkdir reference
-  echo "TOP_DIR=$abs_ft2_dir"             > Makefile
-  echo "OBJ_DIR=$abs_curr_dir"           >> Makefile
-  echo "OBJ_BUILD=$abs_curr_dir"         >> Makefile
-  echo "DOC_DIR=$abs_curr_dir/reference" >> Makefile
-  echo "LIBTOOL=$abs_curr_dir/libtool"   >> Makefile
-  echo "include $abs_ft2_dir/Makefile"   >> Makefile
-fi
-
-# call make
-
-CFG="$@" $GNUMAKE setup unix
-
-# eof
diff --git a/nx-X11/extras/freetype2/devel/ft2build.h b/nx-X11/extras/freetype2/devel/ft2build.h
deleted file mode 100644
index 242ac1e85..000000000
--- a/nx-X11/extras/freetype2/devel/ft2build.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ft2build.h                                                             */
-/*                                                                         */
-/*    FreeType 2 build and setup macros.                                   */
-/*    (Generic version)                                                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
- /*
-  *  This is a development version of <ft2build.h> that is used
-  *  to build the library in debug mode.  Its only difference with
-  *  the reference is that it forces the use of the local "ftoption.h"
-  *  which contains different settings for all configuration macros.
-  *
-  *  To use it, you must define the environment variable FT2_BUILD_INCLUDE
-  *  to point to the directory containing these two files ("ft2build.h" and
-  *  "ftoption.h"), then invoke Jam as usual.
-  */
-
-#ifndef __FT2_BUILD_DEVEL_H__
-#define __FT2_BUILD_DEVEL_H__
-
-#define  FT_CONFIG_OPTIONS_H   <ftoption.h>
-
-#include <freetype/config/ftheader.h>
-
-#endif /* __FT2_BUILD_DEVEL_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/devel/ftoption.h b/nx-X11/extras/freetype2/devel/ftoption.h
deleted file mode 100644
index eaad2b6dc..000000000
--- a/nx-X11/extras/freetype2/devel/ftoption.h
+++ /dev/null
@@ -1,577 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftoption.h                                                             */
-/*                                                                         */
-/*    User-selectable configuration macros (specification only).           */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTOPTION_H__
-#define __FTOPTION_H__
-
-
-#include <ft2build.h>
-
-
-FT_BEGIN_HEADER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                 USER-SELECTABLE CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* This file contains the default configuration macro definitions for    */
-  /* a standard build of the FreeType library.  There are three ways to    */
-  /* use this file to build project-specific versions of the library:      */
-  /*                                                                       */
-  /*  - You can modify this file by hand, but this is not recommended in   */
-  /*    cases where you would like to build several versions of the        */
-  /*    library from a single source directory.                            */
-  /*                                                                       */
-  /*  - You can put a copy of this file in your build directory, more      */
-  /*    precisely in "$BUILD/freetype/config/ftoption.h", where "$BUILD"   */
-  /*    is the name of a directory that is included _before_ the FreeType  */
-  /*    include path during compilation.                                   */
-  /*                                                                       */
-  /*    The default FreeType Makefiles and Jamfiles use the build          */
-  /*    directory "builds/<system>" by default, but you can easily change  */
-  /*    that for your own projects.                                        */
-  /*                                                                       */
-  /*  - Copy the file <ft2build.h> to "$BUILD/ft2build.h" and modify it    */
-  /*    slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to       */
-  /*    locate this file during the build.  For example,                   */
-  /*                                                                       */
-  /*      #define FT_CONFIG_OPTIONS_H  <myftoptions.h>                     */
-  /*      #include <freetype/config/ftheader.h>                            */
-  /*                                                                       */
-  /*    will use "$BUILD/myftoptions.h" instead of this file for macro     */
-  /*    definitions.                                                       */
-  /*                                                                       */
-  /*    Note also that you can similarly pre-define the macro              */
-  /*    FT_CONFIG_MODULES_H used to locate the file listing of the modules */
-  /*    that are statically linked to the library at compile time.  By     */
-  /*    default, this file is <freetype/config/ftmodule.h>.                */
-  /*                                                                       */
-  /*  We highly recommend using the third method whenever possible.        */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /**** G E N E R A L   F R E E T Y P E   2   C O N F I G U R A T I O N ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Many compilers provide a non-ANSI 64-bit data type that can be used   */
-  /* by FreeType to speed up some computations.  However, this will create */
-  /* some problems when compiling the library in strict ANSI mode.         */
-  /*                                                                       */
-  /* For this reason, the use of 64-bit integers is normally disabled when */
-  /* the __STDC__ macro is defined.  You can however disable this by       */
-  /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here.                 */
-  /*                                                                       */
-  /* For most compilers, this will only create compilation warnings when   */
-  /* building the library.                                                 */
-  /*                                                                       */
-  /* ObNote: The compiler-specific 64-bit integers are detected in the     */
-  /*         file "ftconfig.h" either statically or through the            */
-  /*         `configure' script on supported platforms.                    */
-  /*                                                                       */
-#undef  FT_CONFIG_OPTION_FORCE_INT64
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* LZW-compressed file support.                                          */
-  /*                                                                       */
-  /*   FreeType now handles font files that have been compressed with the  */
-  /*   'compress' program.  This is mostly used to parse many of the PCF   */
-  /*   files that come with various X11 distributions.  The implementation */
-  /*   uses NetBSD's `zopen' to partially uncompress the file on the fly   */
-  /*   (see src/lzw/ftgzip.c).                                             */
-  /*                                                                       */
-  /*   Define this macro if you want to enable this `feature'.             */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_USE_LZW
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Gzip-compressed file support.                                         */
-  /*                                                                       */
-  /*   FreeType now handles font files that have been compressed with the  */
-  /*   'gzip' program.  This is mostly used to parse many of the PCF files */
-  /*   that come with XFree86.  The implementation uses `zlib' to          */
-  /*   partially uncompress the file on the fly (see src/gzip/ftgzip.c).   */
-  /*                                                                       */
-  /*   Define this macro if you want to enable this `feature'.  See also   */
-  /*   the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below.                       */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_USE_ZLIB
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ZLib library selection                                                */
-  /*                                                                       */
-  /*   This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined.  */
-  /*   It allows FreeType's `ftgzip' component to link to the system's     */
-  /*   installation of the ZLib library.  This is useful on systems like   */
-  /*   Unix or VMS where it generally is already available.                */
-  /*                                                                       */
-  /*   If you let it undefined, the component will use its own copy        */
-  /*   of the zlib sources instead.  These have been modified to be        */
-  /*   included directly within the component and *not* export external    */
-  /*   function names.  This allows you to link any program with FreeType  */
-  /*   _and_ ZLib without linking conflicts.                               */
-  /*                                                                       */
-  /*   Do not #undef this macro here since the build system might define   */
-  /*   it for certain configurations only.                                 */
-  /*                                                                       */
-/* #define  FT_CONFIG_OPTION_SYSTEM_ZLIB */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DLL export compilation                                                */
-  /*                                                                       */
-  /*   When compiling FreeType as a DLL, some systems/compilers need a     */
-  /*   special keyword in front OR after the return type of function       */
-  /*   declarations.                                                       */
-  /*                                                                       */
-  /*   Two macros are used within the FreeType source code to define       */
-  /*   exported library functions: FT_EXPORT and FT_EXPORT_DEF.            */
-  /*                                                                       */
-  /*     FT_EXPORT( return_type )                                          */
-  /*                                                                       */
-  /*       is used in a function declaration, as in                        */
-  /*                                                                       */
-  /*         FT_EXPORT( FT_Error )                                         */
-  /*         FT_Init_FreeType( FT_Library*  alibrary );                    */
-  /*                                                                       */
-  /*                                                                       */
-  /*     FT_EXPORT_DEF( return_type )                                      */
-  /*                                                                       */
-  /*       is used in a function definition, as in                         */
-  /*                                                                       */
-  /*         FT_EXPORT_DEF( FT_Error )                                     */
-  /*         FT_Init_FreeType( FT_Library*  alibrary )                     */
-  /*         {                                                             */
-  /*           ... some code ...                                           */
-  /*           return FT_Err_Ok;                                           */
-  /*         }                                                             */
-  /*                                                                       */
-  /*   You can provide your own implementation of FT_EXPORT and            */
-  /*   FT_EXPORT_DEF here if you want.  If you leave them undefined, they  */
-  /*   will be later automatically defined as `extern return_type' to      */
-  /*   allow normal compilation.                                           */
-  /*                                                                       */
-  /*   Do not #undef these macros here since the build system might define */
-  /*   them for certain configurations only.                               */
-  /*                                                                       */
-/* #define  FT_EXPORT(x)       extern x */
-/* #define  FT_EXPORT_DEF(x)   x */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Glyph Postscript Names handling                                       */
-  /*                                                                       */
-  /*   By default, FreeType 2 is compiled with the `PSNames' module.  This */
-  /*   module is in charge of converting a glyph name string into a        */
-  /*   Unicode value, or return a Macintosh standard glyph name for the    */
-  /*   use with the TrueType `post' table.                                 */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want `PSNames' compiled in your   */
-  /*   build of FreeType.  This has the following effects:                 */
-  /*                                                                       */
-  /*   - The TrueType driver will provide its own set of glyph names,      */
-  /*     if you build it to support postscript names in the TrueType       */
-  /*     `post' table.                                                     */
-  /*                                                                       */
-  /*   - The Type 1 driver will not be able to synthetize a Unicode        */
-  /*     charmap out of the glyphs found in the fonts.                     */
-  /*                                                                       */
-  /*   You would normally undefine this configuration macro when building  */
-  /*   a version of FreeType that doesn't contain a Type 1 or CFF driver.  */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Postscript Names to Unicode Values support                            */
-  /*                                                                       */
-  /*   By default, FreeType 2 is built with the `PSNames' module compiled  */
-  /*   in.  Among other things, the module is used to convert a glyph name */
-  /*   into a Unicode value.  This is especially useful in order to        */
-  /*   synthetize on the fly a Unicode charmap from the CFF/Type 1 driver  */
-  /*   through a big table named the `Adobe Glyph List' (AGL).             */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want the Adobe Glyph List         */
-  /*   compiled in your `PSNames' module.  The Type 1 driver will not be   */
-  /*   able to synthetize a Unicode charmap out of the glyphs found in the */
-  /*   fonts.                                                              */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Support for Mac fonts                                                 */
-  /*                                                                       */
-  /*   Define this macro if you want support for outline fonts in Mac      */
-  /*   format (mac dfont, mac resource, macbinary containing a mac         */
-  /*   resource) on non-Mac platforms.                                     */
-  /*                                                                       */
-  /*   Note that the `FOND' resource isn't checked.                        */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_MAC_FONTS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Guessing methods to access embedded resource forks                    */
-  /*                                                                       */
-  /*   Enable extra Mac fonts support on non-Mac platforms (e.g.           */
-  /*   GNU/Linux).                                                         */
-  /*                                                                       */
-  /*   Resource forks which include fonts data are stored sometimes in     */
-  /*   locations which users or developers don't expected.  In some cases, */
-  /*   resource forks start with some offset from the head of a file.  In  */
-  /*   other cases, the actual resource fork is stored in file different   */
-  /*   from what the user specifies.  If this option is activated,         */
-  /*   FreeType tries to guess whether such offsets or different file      */
-  /*   names must be used.                                                 */
-  /*                                                                       */
-  /*   Note that normal, direct access of resource forks is controlled via */
-  /*   the FT_CONFIG_OPTION_MAC_FONTS option.                              */
-  /*                                                                       */
-#ifdef FT_CONFIG_OPTION_MAC_FONTS
-#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Allow the use of FT_Incremental_Interface to load typefaces that      */
-  /* contain no glyph data, but supply it via a callback function.         */
-  /* This allows FreeType to be used with the PostScript language, using   */
-  /* the GhostScript interpreter.                                          */
-  /*                                                                       */
-/* #define FT_CONFIG_OPTION_INCREMENTAL */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The size in bytes of the render pool used by the scan-line converter  */
-  /* to do all of its work.                                                */
-  /*                                                                       */
-  /* This must be greater than 4KByte.                                     */
-  /*                                                                       */
-#define FT_RENDER_POOL_SIZE  16384L
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MAX_MODULES                                                        */
-  /*                                                                       */
-  /*   The maximum number of modules that can be registered in a single    */
-  /*   FreeType library object.  32 is the default.                        */
-  /*                                                                       */
-#define FT_MAX_MODULES  32
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Debug level                                                           */
-  /*                                                                       */
-  /*   FreeType can be compiled in debug or trace mode.  In debug mode,    */
-  /*   errors are reported through the `ftdebug' component.  In trace      */
-  /*   mode, additional messages are sent to the standard output during    */
-  /*   execution.                                                          */
-  /*                                                                       */
-  /*   Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode.     */
-  /*   Define FT_DEBUG_LEVEL_TRACE to build it in trace mode.              */
-  /*                                                                       */
-  /*   Don't define any of these macros to compile in `release' mode!      */
-  /*                                                                       */
-  /*   Do not #undef these macros here since the build system might define */
-  /*   them for certain configurations only.                               */
-  /*                                                                       */
-#define FT_DEBUG_LEVEL_ERROR
-#define FT_DEBUG_LEVEL_TRACE
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Memory Debugging                                                      */
-  /*                                                                       */
-  /*   FreeType now comes with an integrated memory debugger that is       */
-  /*   capable of detecting simple errors like memory leaks or double      */
-  /*   deletes.  To compile it within your build of the library, you       */
-  /*   should define FT_DEBUG_MEMORY here.                                 */
-  /*                                                                       */
-  /*   Note that the memory debugger is only activated at runtime when     */
-  /*   when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */
-  /*                                                                       */
-  /*   Do not #undef this macro here since the build system might define   */
-  /*   it for certain configurations only.                                 */
-  /*                                                                       */
-#define FT_DEBUG_MEMORY
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Module errors                                                         */
-  /*                                                                       */
-  /*   If this macro is set (which is _not_ the default), the higher byte  */
-  /*   of an error code gives the module in which the error has occurred,  */
-  /*   while the lower byte is the real error code.                        */
-  /*                                                                       */
-  /*   Setting this macro makes sense for debugging purposes only, since   */
-  /*   it would break source compatibility of certain programs that use    */
-  /*   FreeType 2.                                                         */
-  /*                                                                       */
-  /*   More details can be found in the files ftmoderr.h and fterrors.h.   */
-  /*                                                                       */
-#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
-
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****        S F N T   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support       */
-  /* embedded bitmaps in all formats using the SFNT module (namely         */
-  /* TrueType & OpenType).                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to    */
-  /* load and enumerate the glyph Postscript names in a TrueType or        */
-  /* OpenType file.                                                        */
-  /*                                                                       */
-  /* Note that when you do not compile the `PSNames' module by undefining  */
-  /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will   */
-  /* contain additional code used to read the PS Names table from a font.  */
-  /*                                                                       */
-  /* (By default, the module uses `PSNames' to extract glyph names.)       */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to       */
-  /* access the internal name table in a SFNT-based format like TrueType   */
-  /* or OpenType.  The name table contains various strings used to         */
-  /* describe the font, like family name, copyright, version, etc.  It     */
-  /* does not contain any glyph name though.                               */
-  /*                                                                       */
-  /* Accessing SFNT names is done through the functions declared in        */
-  /* `freetype/ftnames.h'.                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_SFNT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TrueType CMap support                                                 */
-  /*                                                                       */
-  /*   Here you can fine-tune which TrueType CMap table format shall be    */
-  /*   supported.                                                          */
-#define TT_CONFIG_CMAP_FORMAT_0
-#define TT_CONFIG_CMAP_FORMAT_2
-#define TT_CONFIG_CMAP_FORMAT_4
-#define TT_CONFIG_CMAP_FORMAT_6
-#define TT_CONFIG_CMAP_FORMAT_8
-#define TT_CONFIG_CMAP_FORMAT_10
-#define TT_CONFIG_CMAP_FORMAT_12
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****    T R U E T Y P E   D R I V E R    C O N F I G U R A T I O N   ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile   */
-  /* a bytecode interpreter in the TrueType driver.  Note that there are   */
-  /* important patent issues related to the use of the interpreter.        */
-  /*                                                                       */
-  /* By undefining this, you will only compile the code necessary to load  */
-  /* TrueType glyphs without hinting.                                      */
-  /*                                                                       */
-  /*   Do not #undef this macro here, since the build system might         */
-  /*   define it for certain configurations only.                          */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to            */
-  /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented      */
-  /* work-around hinting system.  Note that for the moment, the algorithm  */
-  /* is only used when selected at runtime through the parameter tag       */
-  /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook               */
-  /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived                  */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_UNPATENTED_HINTING
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType    */
-  /* bytecode interpreter with a huge switch statement, rather than a call */
-  /* table.  This results in smaller and faster code for a number of       */
-  /* architectures.                                                        */
-  /*                                                                       */
-  /* Note however that on some compiler/processor combinations, undefining */
-  /* this macro will generate faster, though larger, code.                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the        */
-  /* TrueType glyph loader to use Apple's definition of how to handle      */
-  /* component offsets in composite glyphs.                                */
-  /*                                                                       */
-  /* Apple and MS disagree on the default behavior of component offsets    */
-  /* in composites.  Apple says that they should be scaled by the scale    */
-  /* factors in the transformation matrix (roughly, it's more complex)     */
-  /* while MS says they should not.  OpenType defines two bits in the      */
-  /* composite flags array which can be used to disambiguate, but old      */
-  /* fonts will not have them.                                             */
-  /*                                                                       */
-  /*   http://partners.adobe.com/asn/developer/opentype/glyf.html          */
-  /*   http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html                 */
-  /*                                                                       */
-#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include         */
-  /* support for Apple's distortable font technology (fvar, gvar, cvar,    */
-  /* and avar tables).  This has many similarities to Type 1 Multiple      */
-  /* Masters support.                                                      */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_GX_VAR_SUPPORT
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****      T Y P E 1   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and       */
-  /* arrays in the Type 1 stream (see t1load.c).  A minimum of 4 is        */
-  /* required.                                                             */
-  /*                                                                       */
-#define T1_MAX_DICT_DEPTH  5
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine   */
-  /* calls during glyph loading.                                           */
-  /*                                                                       */
-#define T1_MAX_SUBRS_CALLS  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity.  A     */
-  /* minimum of 16 is required.                                            */
-  /*                                                                       */
-  /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */
-  /*                                                                       */
-#define T1_MAX_CHARSTRINGS_OPERANDS  256
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of `t1afm', which is in charge of reading Type 1 AFM      */
-  /* files into an existing face.  Note that if set, the T1 driver will be */
-  /* unable to produce kerning distances.                                  */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_AFM
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of the Multiple Masters font support in the Type 1        */
-  /* driver.                                                               */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
- /* */
-
-/*
- * The FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent
- * improvements to the auto-hinter contributed by David Chester.  They will
- * most likely disappear completely in the next release.  For now, you
- * should always keep them defined.
- *
- */
-#define  FT_CONFIG_OPTION_CHESTER_HINTS
-
-#ifdef   FT_CONFIG_OPTION_CHESTER_HINTS
-
-#define  FT_CONFIG_CHESTER_SMALL_F
-#define  FT_CONFIG_CHESTER_ASCENDER
-#define  FT_CONFIG_CHESTER_SERIF
-#define  FT_CONFIG_CHESTER_STEM
-#define  FT_CONFIG_CHESTER_BLUE_SCALE
-
-#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */
-
-FT_END_HEADER
-
-
-#endif /* __FTOPTION_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/docs/CHANGES b/nx-X11/extras/freetype2/docs/CHANGES
deleted file mode 100644
index fdb9ce33d..000000000
--- a/nx-X11/extras/freetype2/docs/CHANGES
+++ /dev/null
@@ -1,2477 +0,0 @@
-
-LATEST CHANGES BETWEEN 2.1.9 and 2.1.8
-
-  I. IMPORTANT BUG FIXES
-
-    - The function  `FT_Get_CharMap_Index' was only declared,  without
-      any  real  code.   For  consistency,  it  has  been  renamed  to
-      `FT_Get_Charmap_Index'.   (This function is needed  to implement
-      cmap caches.)
-
-    - `FT_Outline_Get_BBox'  sometimes returned  incorrect values  for
-      conic outlines (e.g., for TrueType fonts).
-
-    - Handling of `bhed' table has been fixed.
-
-    - The TrueType driver with enabled byte code interpreter sometimes
-      returned artifacts due to incorrect rounding.  This bug has been
-      introduced after version 2.1.4.
-
-    - The BDF driver dropped the last glyph in the font.
-
-    - The BDF driver now uses the DEFAULT_CHAR property (if available)
-      to select a glyph shape for the undefined glyph.
-
-
-  II. IMPORTANT CHANGES
-
-    - George  Williams   contributed  code  to   handle  Apple's  font
-      distortion technology found in GX fonts (`avar', `cvar', `fvar',
-      and `gvar' tables;  the Multiple Masters  API has been  slightly
-      extended to cope with the new functionality).
-
-    - The `FT_GlyphSlotRec' structure has been extended:  The elements
-      `lsb_delta' and  `rsb_delta' give the difference  between hinted
-      and  unhinted  left and right  side bearings  if autohinting  is
-      active.  Using those values can improve the inter-letter spacing
-      considerably.   See the documentation of  `FT_GlyphSlotRec'  and
-      the `ftstring' demo program how to use it.
-
-
-  III. MISCELLANEOUS
-
-    - A new  documentation file  `formats.txt' describes various  font
-      formats supported (and not supported) by FreeType.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.8 and 2.1.7
-
-  I. IMPORTANT BUG FIXES
-
-    - The native  TrueType hinter contained some  bugs which prevented
-      some fonts to be rendered correctly, most notably Legendum.otf.
-
-    - The PostScript hinter now produces improved results.
-
-    - The  linear advance  width  and height  values were  incorrectly
-      rounded,  making  them virtually  unusable  if  not loaded  with
-      FT_LOAD_LINEAR_DESIGN.
-
-    - Indexing CID-keyed CFF fonts is  now working: The glyph index is
-      correctly  treated as a  CID, similar  to FreeType's  CID driver
-      module.  Note that CID CMap support is still missing.
-
-    - The FT_FACE_FLAGS_GLYPH_NAMES flag is now  set correctly for all
-      font formats.
-
-    - Some subsetted Type 1  fonts weren't parsed correctly.  This bug
-      has been introduced in 2.1.7.  In summary, the Type 1 parser has
-      become more robust.
-
-    - Non-decimal numbers weren't parsed correctly in PS fonts.
-
-    - The WinFNT driver now correctly reports FT_ENCODING_NONE for all
-      but one encoding.  Use  the new FT_WinFNT_ID_XXX values together
-      with FT_Get_WinFNT_Header() to get the WinFNT charset ID.
-
-    - The descender metrics (face->size->metrics.descender) for WinFNT
-      bitmap fonts had the wrong sign.
-
-    - The (emulated) `seac' support for CFF fonts was broken.
-
-    - The `flex' operator didn't work for CFF fonts.
-
-    - PS glyphs  which  use  the   `hintmask'  operator  haven't  been
-      rendered correctly in some cases.
-
-    - Metrics for BDF and PCF bitmap font formats have been fixed.
-
-    - Autohinting  is now  disabled for  glyphs  which  are vertically
-      distorted  or mirrored  (using a  transformation matrix).   This
-      fixes a bug which produced zero-height glyphs.
-
-    - The   `freetype-config'   script   now  handles   --prefix   and
-      --exec-prefix correctly; it also  returns the proper --rpath (or
-      -R) value if FreeType has been built as a shared library.
-
-
-  II. IMPORTANT CHANGES
-
-    - Both  PCF  and BDF  drivers  now  handle  the SETWIDTH_NAME  and
-      ADD_STYLE_NAME    properties.     Values    are   appended    to
-      face->style_name; example: `Bold SemiCondensed'.
-
-    - The PCF driver now handles bitmap  fonts compressed with the LZW
-      algorithm (extension .pcf.Z, compressed with `compress').
-
-    - A  new  API   function  `FT_Get_CMap_Language_ID'  (declared  in
-      `tttables.h')  is  available  to   get  the  language  ID  of  a
-      TrueType/SFNT cmap.
-
-    - The hexadecimal format of  data after the `StartData' command in
-      CID-keyed Type 1 fonts is now supported.  While this can't occur
-      in  file-based   fonts,  it  can   happen  in  document-embedded
-      resources of PostScript documents.
-
-    - Embedded bitmaps in SFNT-based CFF fonts are now supported.
-
-    - A simple  API is  now available  to control  FreeType's  tracing
-      mechanism if compiled  with FT_DEBUG_LEVEL_TRACE.   See the file
-      `ftdebug.h' for more details.
-
-    - YAMATO Masatake contributed improved  handling of MacOS resource
-      forks on non-MacOS platforms (for example, Linux can mount MacOS
-      file systems).
-
-    - Support for MacOS has been improved; there is now a new function
-      `FT_New_Face_From_FSSpec'  similar to `FT_New_Face'  except that
-      it accepts an FSSpec instead of a path.
-
-    - The cache sub-system has been rewritten.
-
-      - There is now support for deinstallation of faces.
-
-      - A new  API function `FTC_Manager_RemoveFaceID'  has been added
-        to  delete  all  `idle'  nodes  that  correspond  to  a  given
-        FTC_FaceID.  All `locked' nodes  (i.e., those with a reference
-        count > 0), will be modified to prevent them from appearing in
-        further  lookups (they  will  be cleaned  normally when  their
-        reference count reaches 0).
-
-      - There  is  now  support  for point  scaling  (i.e.,  providing
-        character sizes in points + dpis, instead of pixels).
-
-      - Three abstract cache classes are now available:
-
-          FTC_GCache:  Used to store  one glyph  item per  cache node,
-                      with the ability to group common attributes into
-                      `families'.      This    replaces     the    old
-                      FTC_GlyphCache class.
-
-          FTC_ICache: Used to store one FT_Glyph per cache node.  This
-                      extends  FTC_GCache.  Family  definition, family
-                      comparison, and  glyph loading are  however left
-                      to sub-classes.
-
-          FTC_SCache: Used to  store up to 16 small  bitmaps per cache
-                      node.    This    extends   FTC_GCache.    Family
-                      definition, family  comparison and glyph loading
-                      are however left to sub-classes.
-
-      - The file `src/cache/ftcbasic.c' implements:
-
-          FTC_ImageCache: Extends    FTC_ICache;   implements   family
-                          definitions and glyph loading similar to the
-                          old API.
-
-          FTC_SBitCache: Extends    FTC_SCache,    implements   family
-                         definitions and glyph  loading similar to the
-                         old API
-
-        Client  applications  should  be  able to  extend  FTC_GCache,
-        FTC_ICache, or FTC_SCache much more easily (i.e., less code to
-        write, and  less callbacks).  For example,  one could envision
-        caches  that are  capable of  storing  transformed (obliqued),
-        stroked,   emboldened,   or   colored   glyph   images.    Use
-        `ftcbasic.c' as an example.
-
-      - All public  APIs are now  in `include/freetype/ftcache.h', (to
-        be    accessed   as    `FT_CACHE_H').     The   contents    of
-        `include/freetype/cache/' is only  needed by applications that
-        wish to implement their own caches.
-
-      - There were some major performance improvements through the use
-        of  various programming  tricks.   Cache hits  are  up to  70%
-        faster than in the old code.
-
-      - The  FTC_CMapCache has  been simplied.   Charmaps can  only be
-        accessed by  index right now.  There  is also a  new API named
-        `FT_Charmap_GetIndex' for this purpose.
-
-      - The  demo programs  have been  updated to  the new  code.  The
-        previous versions will not work with the current one.
-
-      - Using  an invalid face  index in FT_Open_Face and friends  now
-        causes an error even if the font contains a single face only.
-
-
-  III. MISCELLANEOUS
-
-    - Wolfgang Domr�se contributed support files for building FreeType
-      on the Atari using the PureC compiler.  Note that the Atari is a
-      16bit platform.
-
-    - Vitaliy Pasternak contributed project files for VS.NET 2003.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.7 and 2.1.6
-
-  I. IMPORTANT BUG FIXES
-
-    - Updated  to newest  libtool  version, fixing  build problems  on
-      various platforms.
-
-    - On  Unix  platforms,  `make  install' didn't  copy  the  correct
-      `ftconfig.h' file.
-
-  Note that version 2.1.7  contains the same library  C source code as
-  version 2.1.6.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.6 and 2.1.5
-
-  I. IMPORTANT BUG FIXES
-
-    - The PFR  font driver didn't  load kerning tables  correctly, and
-      the functions in FT_PFR_H didn't work at all.
-
-    - Type 1 font  files in  binary format  (PFB) with  an end-of-file
-      indicator weren't accepted by the FreeType engine.
-
-    - Fonts which contain /PaintType  and /StrokeWidth no longer cause
-      a segfault.  This bug has been introduced in version 2.1.5.
-
-    - Fonts  loaded  with   FT_LOAD_RENDER  no  longer  cause  strange
-      results.  This bug has been introduced in version 2.1.5.
-
-    - Some  Windows   (bitmap)  FNT/FON  files   couldn't  be  handled
-      correctly.
-
-
-  II. IMPORTANT CHANGES
-
-    - The internal  module API  has been heavily  changed in  favor of
-      massive simplifications within the font engine.  This also means
-      that authors of third-party modules must adapt their code to the
-      new scheme.
-
-      NOTE:  THE NEW SCHEME IS NOT COMPLETED YET.  PLEASE WAIT UNTIL A
-      FINAL ANNOUNCEMENT!
-
-    - The PostScript  parser has been enhanced to  handle comments and
-      strings   correctly.   Additionally,   more  syntax   forms  are
-      recognized.
-
-    - Added the  optional unpatented hinting system  for TrueType.  It
-      allows  typefaces which  need hinting  to produce  correct glyph
-      forms (e.g., Chinese typefaces  from Dynalab) to work acceptably
-      without infringing Apple patents.   This system is compiled only
-      if  TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING  is  defined  in
-      ftoption.h (activated by default).
-
-
-  III. MISCELLANEOUS
-
-    - There  is now  a guard  in the  public header  files  to protect
-      against inclusion of freetype.h from FreeType 1.
-
-    - Direct inclusion of freetype.h  and other public header files no
-      longer works.  You have to use the documented scheme
-
-        #include <ft2build.h>
-        #include FT_FREETYPE_H
-
-      to load freetype.h with  a symbolic name.  This protects against
-      renaming  of public  header  files (which  shouldn't happen  but
-      actually  has, avoiding two  public header  files with  the same
-      name).
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.5 and 2.1.4
-
-  I. IMPORTANT BUG FIXES
-
-    - Parsing the /CIDFontName field  now removes the leading slash to
-      be in sync with other font drivers.
-
-    - gzip support was buggy.  Some fonts could not be read.
-
-    - Fonts which  have nested subglyphs  more than one level  deep no
-      longer cause a segfault.
-
-    - Creation of synthetic  cmaps for fonts in CFF  format was broken
-      partially.
-
-    - Numeric  font  dictionary entries  for  synthetic  fonts are  no
-      longer overwritten.
-
-    - The font matrix  wasn't applied to the advance  width for Type1,
-      CID, and  CFF fonts.  This caused problems  when loading certain
-      synthetic Type 1 fonts like `Helvetica Narrow'.
-
-    - The test  for the charset registry  in BDF and PCF  fonts is now
-      case-insensitive.
-
-    - FT_Vector_Rotate  sometimes  returned   strange  values  due  to
-      rounding errors.
-
-    - The  PCF  driver  now  returns  the  correct  number  of  glyphs
-      (including an artificial `notdef' glyph at index 0).
-
-    - FreeType now  supports buggy CMaps  which are contained  in many
-      CJK fonts from Dynalab.
-
-    - Opening  an invalid  font  on a  Mac  caused a  segfault due  to
-      double-freeing memory.
-
-    - BDF  fonts  with  more   than  32768  glyphs  weren't  supported
-      properly.
-
-
-  II. IMPORTANT CHANGES
-
-    - Accessing bitmap font formats has been synchronized.  To do that
-      the FT_Bitmap_Size  structure has  been extended to  contain new
-      fields `size', `x_ppem', and `y_ppem'.
-
-    - The FNT driver now returns multiple faces, not multiple strikes.
-
-    - The `psnames'  module has been  updated to the Adobe  Glyph List
-      version 2.0.
-
-    - The `psnames' module now understands `uXXXX[X[X]]' glyph names.
-
-    - The algorithm for guessing the font style has been improved.
-
-    - For fonts in SFNT format, root->height is no longer increased if
-      the line gap  is zero.  There exist fonts  (containing e.g. form
-      drawing  characters) which  intentionally have  a zero  line gap
-      value.
-
-    - ft_glyph_bbox_xxx  flags   are  now  deprecated   in  favour  of
-      FT_GLYPH_BBOX_XXX.
-
-    - ft_module_xxx   flags   are   now   deprecated  in   favour   of
-      FT_MODULE_XXX.
-
-    - FT_ENCODING_MS_{SJIS,GB2312,BIG5,WANSUNG,JOHAB}      are     now
-      deprecated               in               favour              of
-      FT_ENCODING_{SJIS,GB2312,GIB5,WANSONG,JOHAB}  -- those encodings
-      are not specific to Microsoft.
-
-
-  III. MISCELLANEOUS
-
-    - The  autohinter  has been  further  improved;  for example,  `m'
-      glyphs now retain its vertical symmetry.
-
-    - Partial support of Mac fonts on non-Mac platforms.
-
-    - `make   refdoc'   (after   first   `make')   builds   the   HTML
-      documentation.  You need Python for this.
-
-    - The make build system should  now work more reliably on DOS-like
-      platforms.
-
-    - Support for  EMX gcc  and Watson C/C++  compilers on  MS-DOS has
-      been added.
-
-    - Better VMS build support.
-
-    - Support for the pkg-config  package by providing a `freetype.pc'
-      file.
-
-    - New configure option --with-old-mac-fonts for Darwin.
-
-    - Some source files have been  renamed (mainly to fit into the 8.3
-      naming scheme).
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.4 and 2.1.3
-
-  I. IMPORTANT BUG FIXES
-
-    - Updated  to newest  libtool  version, fixing  build problems  on
-      various platforms.
-
-    - A fix  in the Gzip stream  reader: It couldn't  read certain .gz
-      files properly due to a  small typo.  In certain cases, FreeType
-      could  also loop  endlessly  when trying  to  load tiny  gzipped
-      files.
-
-    - The configure script now tries  to use the system-wide zlib when
-      it  finds one  (instead of  the  copy found  in src/gzip).   And
-      "freetype-config" has  been updated to return  relevant flags in
-      this case when invoked with "--libs" (e.g. "-lzlib").
-
-    - Certain fonts couldn't be loaded  by 2.1.3 because they lacked a
-      Unicode   charmap  (e.g.   SYMBOL.TTF).    FreeType  erroneously
-      rejected them.
-
-    - The CFF loader was modified to accept fonts which only contain a
-      subset of  their reference charset.  This  prevented the correct
-      use of PDF-embedded fonts.
-
-    - The logic to detect Unicode charmaps has been modified.  This is
-      required to  support fonts which include both  16-bit and 32-bit
-      charmaps (like very  recent asian ones) using the  new 10 and 12
-      SFNT formats.
-
-    - The TrueType  loader now limits  the depth of  composite glyphs.
-      This is necessary to prevent broken fonts to break the engine by
-      blowing the stack with recursive glyph definitions.
-
-    - The CMap cache is now  capable of managing UCS-4 character codes
-      that   are   mapped   through   extended  charmaps   in   recent
-      TrueType/OpenType fonts.
-
-    - The   cache  sub-system   now  properly   manages  out-of-memory
-      conditions  instead of  blindly  reporting them  to the  caller.
-      This means that it will try to empty the cache before restarting
-      its allocations to see if that can help.
-
-    - The  PFR driver  didn't return  the list  of  available embedded
-      bitmaps properly.
-
-    - There was  a nasty  memory leak when  using embedded  bitmaps in
-      certain font formats.
-
-
-  II. IMPORTANT CHANGES
-
-    - David Chester  contributed some enhancements  to the auto-hinter
-      that  significantly increase  the  quality of  its output.   The
-      Postscript hinter was also improved in several ways.
-
-    - The FT_RENDER_MODE_LIGHT render mode was implemented.
-
-    - A new  API function called `FT_Get_BDF_Property'  has been added
-      to FT_BDF_H to  retrieve BDF properties from BDF  _and_ PCF font
-      files.   THIS  IS  STILL  EXPERIMENTAL,  since  it  hasn't  been
-      properly tested yet.
-
-    - A Windows FNT specific API has been added, mostly to access font
-      headers.  This is used by Wine.
-
-    - TrueType tables  without an "hmtx" table are  now tolerated when
-      an  incremental interface  is  used.  This  happens for  certain
-      Type42 fonts passed from Ghostscript to FreeType.
-
-    - The PFR font driver is  now capable of returning the font family
-      and style  names when  they are available  (instead of  the sole
-      "FontID").   This  is  performed  by parsing  an  *undocumented*
-      portion of the font file!
-
-
-  III. MISCELLANEOUS
-
-    - The path stroker in FT_STROKER_H has entered beta stage.  It now
-      works very  well, but  its interface might  change a bit  in the
-      future.  More on this in later releases.
-
-    - The documentation for  FT_Size_Metrics didn't appear properly in
-      the API reference.
-
-    - The file docs/VERSION.DLL has been updated to explain versioning
-      with FreeType  (i.e., comparing release/libtool/so  numbers, and
-      how to use them in autoconf scripts).
-
-    - The  installation  documentation  has been  seriously  revamped.
-      Everything is now in the "docs" directory.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.3 and 2.1.2
-
-  I. IMPORTANT BUG FIXES
-
-    - FT_Vector_Transform  had  been  incorrectly modified  in  2.1.2,
-      resulting  in  incorrect   transformations  being  applied  (for
-      example, rotations were processed in opposite angles).
-
-    - The format  8 and 12 TrueType charmap  enumeration routines have
-      been fixed (FT_Get_Next_Char returned invalid values).
-
-    - The  PFR font driver  returned incorrect  advance widths  if the
-      outline  and metrics resolution  defined in  the font  file were
-      different.
-
-    - FT_Glyph_To_Bitmap now returns  successfully when called with an
-      FT_BitmapGlyph argument (it previously returned an error).
-
-    - A bug  in the Type 1  loader that prevented  valid font bounding
-      boxes to be loaded from multiple master fonts.
-
-    - The SFNT  validation code has been rewritten.   FreeType can now
-      load "broken"  fonts that were  usable on Windows, but  not with
-      previous versions of the library.
-
-    - The computation of bearings in the BDF driver has been fixed.
-
-    - The Postscript hinter crashed when trying to hint certain glyphs
-      (more precisely,  when trying to  apply hints to an  empty glyph
-      outline).
-
-    - The  TrueType glyph  loader  now supports  composites in  "Apple
-      format"  (they differ slightly  from Microsoft/OpenType  ones in
-      the way transformation offsets are computed).
-
-    - FreeType was  very slow at opening certain  asian CID/CFF fonts,
-      due to  fixed increment  in dynamic array  re-allocations.  This
-      has  been changed  to  exponential behaviour  to get  acceptable
-      performance.
-
-
-
-  II. IMPORTANT CHANGES
-
-    - The PCF driver now supports gzip-compressed font files natively.
-      This means that  you will be able to use  all these bitmap fonts
-      that  come with  XFree86 with  FreeType (and  libXft/libXft2, by
-      extension).
-
-    - The  automatic and  postscript hinters  have both  been updated.
-      This  results in  a relatively  important increase  of rendering
-      quality since  many nasty defaults have  been supressed.  Please
-      visit the web page:
-
-        http://www.freetype.org/hinting/smooth-hinting.html
-
-      for additional details on this topic.
-
-    - The "load_flags"  parameter of FT_Load_Glyph is  now an FT_Int32
-      (instead  of just  being  an FT_Int).   This  breaks source  and
-      binary  compatibility for  16bit systems  only,  while retaining
-      both of them for 32 and 64 bit ones.
-
-      Some new flags have been added consequently:
-
-        FT_LOAD_NO_AUTOHINT   :: Disable the use of the auto-hinter
-                                 (but not native format hinters).
-
-        FT_LOAD_TARGET_NORMAL :: Hint and render for normal
-                                 anti-aliased displays.
-
-        FT_LOAD_TARGET_MONO   :: Hint and render for 1-bit displays.
-
-        FT_LOAD_TARGET_LCD    :: Hint and render for horizontal RGB or
-                                 BGR sub-pixel displays (like LCD
-                                 screens).  THIS IS STILL
-                                 EXPERIMENTAL!
-
-        FT_LOAD_TARGET_LCD_V  :: Same as FT_LOAD_TARGET_LCD, for
-                                 vertical sub-pixel displays (like
-                                 rotated LCD screens).  THIS IS STILL
-                                 EXPERIMENTAL!
-
-      FT_LOAD_MONOCHROME   is  still   supported,  but   only  affects
-      rendering, not the hinting.
-
-      Note that the `ftview'  demo program available in the `ft2demos'
-      package  has been  updated to  support LCD-optimized  display on
-      non-paletted displays (under Win32 and X11).
-
-    - The  PFR  driver  now  supports embedded  bitmaps  (all  formats
-      supported), and returns correct kerning metrics for all glyphs.
-
-    - The TrueType charmap loader  now supports certain `broken' fonts
-      that load under Windows without problems.
-
-    - The cache API has been slightly modified (it's still a beta!):
-
-       - The type  FTC_ImageDesc has been removed; it  is now replaced
-         by  FTC_ImageTypeRec.   Note that  one  of  its  fields is  a
-         `load_flag' parameter for FT_Load_Glyph.
-
-       - The  field  "num_grays" of  FT_SBitRec  has  been changed  to
-         "max_grays"  in  order to  fit  within  a  single byte.   Its
-         maximum value is thus 255 (instead of 256 as previously).
-
-
-  III. MISCELLANEOUS
-
-    - Added support  for the  DESTDIR variable during  "make install".
-      This simplifies packaging of FreeType.
-
-    - Included modified  copies of the  ZLib sources in  `src/gzip' in
-      order to support  gzip-compressed PCF fonts.  We do  not use the
-      system-provided  zlib  for  now,   though  this  is  a  probable
-      enhancement for future releases.
-
-    - The DocMaker tool used to generate the on-line API reference has
-      been   completely    rewritten.    It   is    now   located   in
-      "src/tools/docmaker/docmaker.py".  Features:
-
-        - better cross-referenced output
-        - more polished output
-        - uses Python regular expressions  (though it didn't speed the
-          program)
-        - much  more  modular structure,  which  allows for  different
-          "backends"  in  order to  generate  HTML,  XML, or  whatever
-          format.
-
-      One can regenerate the API reference by calling:
-
-         python src/tools/docmaker/docmaker.py \
-                --prefix=ft2 \
-                --title=FreeType-2.1.3 \
-                --output=<outputdirectory>
-                include/freetype/*.h \
-                include/freetype/config/*.h \
-                include/freetype/cache/*.h
-
-    - A new, experimental, support for incremental font loading (i.e.,
-      loading  of fonts  where the  glyphs are  not in  the  font file
-      itself, but provided by an external component, like a Postscript
-      interpreter) has been added by Graham Asher.  This is still work
-      in progress, however.
-
-    - A new,  EXPERIMENTAL, path stroker  has been added.   It doesn't
-      suffer  from  severe  rounding  errors  and  treat  bezier  arcs
-      directly.  Still work in progress (i.e. not part of the official
-      API).   See  the file  <freetype/ftstroker.h>  for  some of  the
-      details.
-
-    - The massive  re-formatting of sources and  internal re-design is
-      still under-way.  Many  internal functions, constants, and types
-      have been renamed.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.2 and 2.1.1
-
-  I. IMPORTANT BUG FIXES
-
-    - Many  font drivers didn't  select a  Unicode charmap  by default
-      when a new face  was opened (with the FT_CONFIG_OPTION_USE_CMAPS
-      options enabled),  causing many applications  to not be  able to
-      display text correctly with the 2.1.x releases.
-
-    - The  PFR driver had  a bug  in its  composite loading  code that
-      produces incorrectly placed accents with many fonts.
-
-    - The Type42 driver crashed sometimes due to a nasty bug.
-
-    - The Type 1 custom encoding  charmap didn't handle the case where
-      the first glyph index wasn't 0.
-
-    - A  serious  typo  in  the  TrueType  composite  loader  produced
-      incorrectly placed  glyphs in fonts  like "Wingdings" and  a few
-      others.
-
-
-  II. MISCELLANEOUS
-
-    - The Win32  Visual C++ project  file has been updated  to include
-      the PFR driver as well.
-
-    - "freetype.m4" is  now installed by default by  "make install" on
-      Unix systems.
-
-    - The function  FT_Get_PS_Font_Info now works with  CID and Type42
-      fonts as well.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.1 and 2.1.0
-
-  I. IMPORTANT BUG FIXES
-
-    - The  `version_info'  returned   by  `freetype-config'  in  2.1.0
-      returned an invalid value.  It now returns 9:1:3 (2.0.9 returned
-      9:0:3).
-
-    - Version 2.1.0  couldn't be linked against  applications on Win32
-      and  Amiga systems  due  to  a new  debug  function that  wasn't
-      properly   propagated  to   the  system-specific   directory  in
-      `builds'.
-
-    - Various MacOS and Mac OS X specific fixes.
-
-    - Fixed  a bug in  the TrueType  charmap validation  routines that
-      made version  2.1.0 too restrictive  -- many popular  fonts have
-      been rejected.
-
-    - There was  still a very small difference  between the monochrome
-      glyph bitmaps produced by FreeType 1.x and FreeType 2.x with the
-      bytecode  interpreter enabled.   This was  caused by  an invalid
-      flag setting in the TrueType glyph loader, making the rasterizer
-      change  its  drop-out   control  mode.   Now  theresults  should
-      _really_ be completely identical.
-
-    - The TrueType name table loader has been improved to support many
-      popular  though buggy Asian  fonts.  It  now ignores  empty name
-      entries,  invalid  pointer offsets  and  a  few other  incorrect
-      subtleties.  Moreover,  name strings  are now loaded  on demand,
-      which reduces the memory load  of many faces (e.g. the ARIAL.TTF
-      font file contains a 10kByte name table with 70 names).
-
-    - Fixed a bug in the Postscript hinter that prevented family blues
-      substitution to happen correctly.
-
-
-  II. NEW FEATURES
-
-    - Three new font drivers in this release:
-
-      * A  BDF  font driver,  contributed  by  Franco Zappa  Nardelli,
-        heavily  modified   by  Werner  Lemberg.    It  also  supports
-        anti-aliased bitmaps (using a slightly extended BDF format).
-
-      * A Type42  font driver, contributed by Roberto  Alameda.  It is
-        still experimental but seems to work relatively well.
-
-      * A PFR  font driver, contributed  by David Turner  himself.  It
-        doesn't  support PFR  hinting --  note that  BitStream  has at
-        least two patents on this format!
-
-
-  III. MISCELLANEOUS
-
-    - The  cache  sub-system has  been  optimized  in important  ways.
-      Cache hits are now significantly faster.  For example, using the
-      CMap cache is about  twice faster than calling FT_Get_Char_Index
-      on most platforms.  Similarly, using an SBit cache is about five
-      times faster  than loading the  bitmaps from a bitmap  file, and
-      300 to  500 times  faster than generating  them from  a scalable
-      format.
-
-      Note that  you should recompile  your sources if you  designed a
-      custom  cache  class for  the  FT2  Cache  subsystem, since  the
-      changes performed are source, but not binary, compatible.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.1.0 and 2.0.9
-
-  I. IMPORTANT BUG FIXES
-
-    - The  TrueType bytecode  interpreter  has been  fixed to  produce
-      _exactly_ the same output as FreeType 1.x.  Previous differences
-      were due  to slightly distinct  fixed-point computation routines
-      used to perform dot products and vector length measurements.
-
-      It seems  that native TrueType hinting  is _extremely_ sensitive
-      to  rounding errors.  The  required vector  computation routines
-      have been optimized and placed within the "ttinterp.c" file.
-
-    - Fixed the parsing of accelerator tables in the PCF font driver.
-
-    - Fixed the Type1 glyph loader  routine used to compute the font's
-      maximum advance width.
-
-
-  II. NEW FEATURES
-
-    - The `configure' script used on Unix systems has been modified to
-      check  that  GNU  Make  is  being used  to  build  the  library.
-      Otherwise,  it  will display  a  message  proposing  to use  the
-      GNUMAKE environment variable to name it.
-
-      The Unix-specific file README.UNX has been modified accordingly.
-
-
-  III. MISCELLANEOUS
-
-    - The  FreeType  License in  `docs/FTL.txt'  has  been updated  to
-      include  a  proposed preferred  disclaimer.   If  you are  using
-      FreeType in your products, you are encouraged (but not mandated)
-      to use the following text in your documentation:
-
-      """
-        Portions of this software are copyright � 1996-2002 The
-        FreeType Project (www.freetype.org).  All rights reserved.
-      """
-
-    - The default size of the render pool has been reduced to 16kByte.
-      This  shouldn't result  in any  noticeable  performance penalty,
-      unless you are  using the engine as-is to  render very large and
-      complex glyphs.
-
-    - The  FreeType 2  redesign has  begun.  More  information  can be
-      found at this URL:
-
-        http://www.freetype.org/freetype2/redesign.html
-
-      The following  internal changes  have been performed  within the
-      sources of this release:
-
-        - Many   internal  types   have  been   renamed   to  increase
-          consistency.   The  following  should  be true,  except  for
-          public types:
-
-            * All structure  types have a name ending  in "Rec" (short
-              for `record').
-
-            * A  pointer-to-structure type  has the  same name  as the
-              structure, _without_ the "Rec" suffix.
-
-              Example:
-
-                typedef struct FooRec_
-                {
-                  ...
-
-                } FooRec, *Foo;
-
-        - Many   internal  macros  have   been  renamed   to  increase
-          consistency.  The following should be true:
-
-            * All  macros  have a  name  beginning  with "FT_".   This
-              required a few changes like
-
-                ALLOC   => FT_ALLOC
-                FREE    => FT_FREE
-                REALLOC => FT_REALLOC
-
-            * All  macros are completely  UPPERCASE.  This  required a
-              few changes like:
-
-                READ_Short  => FT_READ_SHORT
-                NEXT_Short  => FT_NEXT_SHORT
-                GET_ULongLE => FT_GET_ULONG_LE
-                MEM_Set     => FT_MEM_SET
-                MEM_Copy    => FT_MEM_COPY
-                etc.
-
-            * Whenever   possible,   all   macro  names   follow   the
-              FT_<OBJECT>_<METHOD> pattern.  For example
-
-                ACCESS_Frame   => FT_FRAME_ENTER
-                FORGET_Frame   => FT_FRAME_EXIT
-                EXTRACT_Frame  => FT_FRAME_EXTRACT
-                RELEASE_Frame  => FT_FRAME_RELEASE
-
-                FILE_Pos       => FT_STREAM_POS
-                FILE_Seek      => FT_STREAM_SEEK
-                FILE_Read      => FT_STREAM_READ
-                FILE_ReadAt    => FT_STREAM_READ_AT
-                READ_Fields    => FT_STREAM_READ_FIELDS
-
-        - Many  internal functions  have  been renamed  to follow  the
-          FT_<Object>_<Method> pattern.  For example:
-
-            FT_Seek_Stream       => FT_Stream_Seek
-            FT_Read_Stream_At    => FT_Stream_ReadAt
-            FT_Done_Stream       => FT_Stream_Close
-            FT_New_Stream        => FT_Stream_Open
-            FT_New_Memory_Stream => FT_Stream_OpenMemory
-            FT_Extract_Frame     => FT_Stream_ExtractFrame
-
-          Note that method names do not contain "_".
-
-        - The FT_ALLOC_ARRAY  and FT_REALLOC_ARRAY have  been replaced
-          with  FT_NEW_ARRAY and  FT_RENEW_ARRAY which  do not  take a
-          type  as the  fourth argument.   Instead, the  array element
-          type  size is computed  automatically from  the type  of the
-          target pointer used.
-
-        - A  new object  class, FT_CMap,  has been  introduced.  These
-          internal  objects are  used to  model character  maps.  This
-          eases  the support  of additional  charmap types  within the
-          engine.
-
-        - A new  configuration file named "ftstdlib.h"  has been added
-          to `include/freetype/config'.  It  is used to define aliases
-          for  _every_ routine  of the  ISO  C library  that the  font
-          engine   uses.    Each    aliases   has   a   "ft_"   prefix
-          (e.g. "ft_strlen" is an alias for "strlen").
-
-          This is  used to  ease the porting  of FreeType 2  to exotic
-          runtime environments where the ISO C Library isn't available
-          (e.g.  XFree86 extension modules).
-
-      More details are available in the "ChangeLog" file.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.9 and 2.0.8
-
-  I. IMPORTANT BUG FIXES
-
-    - Certain fonts like "foxjump.ttf" contain broken name tables with
-      invalid entries and wild offsets.  This caused FreeType to crash
-      when trying to load them.
-
-      The  SFNT `name'  table  loader has  been  fixed to  be able  to
-      support these strange fonts.
-
-      Moreover, the code  in charge of processing this  table has been
-      changed  to always favour  Windows-formatted entries  over other
-      ones.  Hence,  a font that works  on Windows but not  on the Mac
-      will  load cleanly in  FreeType and  report accurate  values for
-      Family & PostScript names.
-
-    - The CID font driver has been fixed.  It unfortunately returned a
-      Postscript   Font   name   with   a   leading   slash,   as   in
-      "/MunhwaGothic-Regular".
-
-    - FreeType  2 should now  compile fine  on AIX  4.3.3 as  a shared
-      library.
-
-    - A  bug  in the  Postscript  hinter  has  been found  and  fixed,
-      removing un-even stem widths at small pixel sizes (like 14-17).
-
-      This  improves the  quality of  a certain  number  of Postscript
-      fonts.
-
-
-  II. NEW FEATURES
-
-    - A  new function  named  `FT_Library_Version' has  been added  to
-      return  the current  library's major,  minor, and  patch version
-      numbers.   This is  important since  the  macros FREETYPE_MAJOR,
-      FREETYPE_MINOR,  and  FREETYPE_PATCH  cannot  be used  when  the
-      library is dynamically linked by a program.
-
-    - Two   new  APIs   have  been   added:   `FT_Get_First_Char'  and
-      `FT_Get_Next_Char'.
-
-      Together,  these can  be used  to iterate  efficiently  over the
-      currently  selected  charmap of  a  given  face.   Read the  API
-      reference for more details.
-
-
-  III. MISCELLANEOUS
-
-    - The FreeType sources are  under heavy internal re-factoring.  As
-      a consequence,  we have created  a branch named "STABLE"  on the
-      CVS to hold all future releases/fixes in the 2.0.x family.
-
-      The  HEAD  branch  now  contains  the  re-factored  sources  and
-      shouldn't  be used for  testing or  packaging new  releases.  In
-      case you  would like  to access the  2.0.9 sources from  our CVS
-      repository, use the tag `VER-2-0-9'.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.8 and 2.0.7
-
-  I. IMPORTANT BUG FIXES
-
-    - There was  a small but  nasty bug in  "freetype-config.in" which
-      caused the "freetype-config" script to fail on Unix.
-
-      This didn't prevent the installation  of the library or even its
-      execution, but caused problems  when trying to compile many Unix
-      packages that depend on it.
-
-    - Some TrueType or OpenType fonts embedded in PDF documents do not
-      have  a  'cmap',  'post'  and  'name'  as  is  required  by  the
-      specification.  FreeType no longer refuses to load such fonts.
-
-    - Various fixes to the PCF font driver.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.7 and 2.0.6
-
-  I. IMPORTANT BUG FIXES
-
-    - Fixed  two  bugs in  the  Type 1  font  driver.   The first  one
-      resulted in a memory leak in subtle cases.  The other one caused
-      FreeType to crash when  trying to load ".gsf" files (Ghostscript
-      so-called Postscript fonts).
-
-      (This  made _many_  KDE applications  crash on  certain systems.
-       FreeType _is_ becoming a critical system component on Linux :-)
-
-    - Fixed a memory leak in the CFF font driver.
-
-    - Fixed a memory leak in the PCF font driver.
-
-    - Fixed       the        Visual       C++       project       file
-      "builds/win32/visualc/freetype.dsp" since  it didn't include the
-      Postscript hinter component, causing errors at build time.
-
-    - Fixed a  small rendering bug  in the anti-aliased  renderer that
-      only  occurred when  trying to  draw  thin (less  than 1  pixel)
-      strokes.
-
-    - Fixed  "builds/unix/freetype2.a4" which  is used  to  generate a
-      valid "freetype2.m4" for use with autoconf.
-
-    - Fixed the OpenVMS Makefiles.
-
-
-  II. MISCELLANEOUS
-
-    - Added  "configure"  and   "install"  scripts  to  the  top-level
-      directory.  A GNU-style installation is thus now easily possible
-      with
-
-        ./configure  <options>
-        make
-        make install
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.6 and 2.0.5
-
-  I. IMPORTANT BUG FIXES
-
-    - It wasn't possible to load embedded bitmaps when the auto-hinter
-      was used.  This is now fixed.
-
-    - The TrueType  font driver  didn't load some  composites properly
-      (the  sub-glyphs  were  slightly  shifted,  and  this  was  only
-      noticeable when using monochrome rendering).
-
-    - Various  fixes  to the  auto-hinter.   They  merely improve  the
-      output of sans-serif fonts.   Note that there are still problems
-      with serifed fonts and composites (accented characters).
-
-    - All scalable  font drivers erroneously  returned un-fitted glyph
-      advances when hinting was  requested.  This created problems for
-      a number  of layout applications.  This  is a very  old bug that
-      got  undetected mainly  because most  test/demo  program perform
-      rounding explicitly or implicitly (through the cache).
-
-    - FT_Glyph_To_Bitmap() did erroneously  modify the source glyph in
-      certain cases.
-
-    - "glnames.py"  still contained  a bug  that made  FreeType return
-      invalid names for certain glyphs.
-
-    - The  library crashed  when  loading certain  Type  1 fonts  like
-      "sadn.pfb"  ("Stalingrad  Normal"),   which  appear  to  contain
-      pathetic font info dictionaries.
-
-    - The TrueType glyph  loader is now much more  paranoid and checks
-      everything when loading a given glyph image.  This was necessary
-      to avoid problems (crashes and/or memory overwrites) with broken
-      fonts that came from a really buggy automatic font converter.
-
-
-  II. IMPORTANT UPDATES AND NEW FEATURES
-
-    - Important updates to the Mac-specific parts of the library.
-
-    - The caching sub-system has  been completely re-designed, and its
-      API has  evolved (the old  one is still supported  for backwards
-      compatibility).
-
-      The documentation for it is  not yet completed, sorry.  For now,
-      you are encouraged to continue  using the old API.  However, the
-      ftview  demo program in  the ft2demos  package has  already been
-      updated to use the new caching functions.
-
-    - A new charmap cache is provided too.  See FTC_CMapCache().  This
-      is useful to perform  character code -> glyph index translations
-      quickly, without the need for an opened FT_Face.
-
-    - A NEW POSTSCRIPT HINTER module  has been added to support native
-      hints in  the following  formats: PostScript Type  1, PostScript
-      CID, and CFF/CEF.
-
-      Please test!  Note that  the auto-hinter produces better results
-      for a number of  badly-hinted fonts (mostly auto-generated ones)
-      though.
-
-    - A memory debugger is now  part of the standard FreeType sources.
-      To      enable      it,      define      FT_DEBUG_MEMORY      in
-      <freetype/config/ftoption.h>, and recompile the library.
-
-      Additionally, define  the _environment_ variable FT_DEBUG_MEMORY
-      and run any program using FreeType.  When the library is exited,
-      a  summary  of memory  footprints  and  possible  leaks will  be
-      displayed.
-
-      This works transparently with  _any_ program that uses FreeType.
-      However, you  will need a lot  of memory to  use this (allocated
-      blocks are never  released to the heap to  detect double deletes
-      easily).
-
-
-  III. MISCELLANEOUS
-
-    - We  are  aware  of  subtle  differences between  the  output  of
-      FreeType  versions   1  and  2  when  it   comes  to  monochrome
-      TrueType-hinted glyphs.   These are  most probably due  to small
-      differences in the monochrome rasterizers and will be worked out
-      in an upcoming release.
-
-    - We have decided to fork the sources in a "stable" branch, and an
-      "unstable" one, since FreeType  is becoming a critical component
-      of many Unix systems.
-
-      The next  bug-fix releases of  the library will be  named 2.0.7,
-      2.0.8, etc.,  while the "2.1"  branch will contain a  version of
-      the sources where we will start major reworking of the library's
-      internals, in order to produce FreeType 2.2.0 (or even 3.0) in a
-      more distant future.
-
-      We  also hope  that this  scheme will  allow much  more frequent
-      releases than in the past.
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.5 and 2.0.4
-
-  NOTE THAT 2.0.5 DOES NOT CONTAIN THE POSTSCRIPT HINTER.  THIS MODULE
-  WILL BE PART OF THE NEXT RELEASE (EITHER 2.0.6 or 2.1)
-
-  - Fixed a bug that made  certain glyphs, like "Cacute", "cacute" and
-    "lslash"  unavailable from Unicode  charmaps of  Postscript fonts.
-    This prevented the correct display of Polish text, for example.
-
-  - The kerning table of Type 1 fonts was loaded by FreeType, when its
-    AFM    file    was    attached    to    its    face,    but    the
-    FT_FACE_FLAG_HAS_KERNING   bit  flags   was  not   set  correctly,
-    preventing FT_Get_Kerning to return meaningful values.
-
-  - Improved  SFNT (TrueType  & OpenType)  charmap  support.  Slightly
-    better performance, as well as support for the new formats defined
-    by the OpenType 1.3 specification (8, 10, and 12)
-
-  - Fixed a  serious typo in "src/base/ftcalc.c"  which caused invalid
-    computations in certain rare cases, producing ugly artefacts.
-
-  - The  size  of the  EM  square is  computed  with  a more  accurate
-    algorithm for Postscript fonts.   The old one caused slight errors
-    with embedded fonts found in PDF documents.
-
-  - Fixed  a  bug in  the  cache  manager  that prevented  normal  LRU
-    behaviour  within the cache  manager, causing  unnecessary reloads
-    (for FT_Face and FT_Size objects only).
-
-  - Added  a new  function named  "FT_Get_Name_Index" to  retrieve the
-    glyph index of a given glyph name, when found in a face.
-
-  - Added  a new function  named "FT_Get_Postscript_Name"  to retrieve
-    the "unique" Postscript font name of a given face.
-
-  - Added   a   new   public   header  size   named   FT_SIZES_H   (or
-    <freetype/ftsizes.h>) providing  new FT_Size-management functions:
-    FT_New_Size, FT_Activate_Size, FT_Done_Size.
-
-  - Fixed a  reallocation bug that  generated a dangling  pointer (and
-    possibly    memory    leaks)    with    Postscript    fonts    (in
-    src/psaux/psobjs.c).
-
-  - Many fixes for 16-bit correctness.
-
-  - Removed many pedantic compiler warnings from the sources.
-
-  - Added an Amiga build directory in "builds/amiga".
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.4 and 2.0.3
-
-  - Fixed a rather annoying bug that was introduced in 2.0.3.  Namely,
-    the font  transformation set through  FT_Set_Transform was applied
-    twice to auto-hinted glyphs, resulting in incorrectly rotated text
-    output.
-
-  - Fixed _many_  compiler warnings.   FT2 should now  compile cleanly
-    with Visual  C++'s most pedantic warning level  (/W4).  It already
-    compiled fine with GCC and a few other compilers.
-
-  - Fixed a bug  that prevented the linear advance  width of composite
-    TrueType glyphs to be correctly returned.
-
-  - Fixed    the    Visual    C++    project    files    located    in
-    "builds/win32/visualc" (previous versions  used older names of the
-    library).
-
-  - Many  32-bit constants  have an  "L" appended  to their  value, in
-    order to improve the 16-bitness  of the code.  Someone is actually
-    trying to use FT2 on an Atari ST machine!
-
-  - Updated  the  "builds/detect.mk" file  in  order to  automatically
-    build FT2  on AIX systems.   AIX uses "/usr/sbin/init"  instead of
-    "/sbin/init" and wasn't previously  detected as a Unix platform by
-    the FreeType build system.
-
-  - Updated  the  Unix-specific  portions  of the  build  system  (new
-    libtool version, etc.).
-
-  - The  SFNT kerning  lodaer now  ensures  that the  table is  sorted
-    (since some problem fonts do not meet this requirement).
-
-
-=======================================================================
-
-LATEST CHANGES BETWEEN 2.0.3 and 2.0.2
-
-  I. CHANGES TO THE MODULES / FONT DRIVERS
-
-    - THE  AUTO-HINTER HAS  BEEN SLIGHTLY  IMPROVED, in  order  to fix
-      several annoying artefacts, mainly:
-
-        - Blue  zone alignement of  horizontal stems  wasn't performed
-          correctly, resulting in artefacts  like the "d" being placed
-          one pixel below the "b" in some fonts like Time New Roman.
-
-        - Overshoot thresholding  wasn't performed correctly, creating
-          unpleasant artefacts at large character pixel sizes.
-
-        - Composite glyph loading has  been simplified.  This gets rid
-          of  various artefacts  where the  components of  a composite
-          glyphs were not correctly spaced.
-
-      These are  the last changes to the  current auto-hinting module.
-      A new  hinting sub-system is currently  in the work  in order to
-      support native hints  in Type 1 / CFF /  OpenType fonts, as well
-      as globally improve rendering.
-
-    - The  PCF  driver has  been  fixed.   It  reported invalid  glyph
-      dimensions for the fonts available on Solaris.
-
-    - The Type  1, CID and CFF  drivers have been modified  to fix the
-      computation of the EM size.
-
-    - The Type 1  driver has been fixed to avoid  a dangerous bug that
-      crashed the library with non-conforming fonts (i.e. ones that do
-      not place the .notdef glyph at position 0).
-
-    - The TrueType  driver had a  rather subtle bug  (dangling pointer
-      when loading  composite glyphs) that could crash  the library in
-      rare occasions!
-
-
-  II. HIGH-LEVEL API CHANGES
-
-    - The error  code enumeration values have been  changed.  An error
-      value  is decomposed  in  a  generic error  code,  and a  module
-      number.  see <freetype/fterrors.h> for details.
-
-    - A   new  public   header   file  has   been  introduced,   named
-      FT_TRIGONOMETRY_H     (include/freetype/fttrig.h),     providing
-      trigonometric functions to  compute sines, cosines, arctangents,
-      etc. with 16.16 fixed precision.  The implementation is based on
-      the CORDIC  algorithm and is very fast  while being sufficiently
-      accurate.
-
-
-  III. INTERNALS
-
-    - Added  BeOS-specific files  in the  old build  sub-system.  Note
-      that no changes were required to compile the library with Jam.
-
-    - The  configuration  is now  capable  of automatically  detecting
-      64-bit integers  on a set  of predefined compilers  (GCC, Visual
-      C++, Borland C++) and will use them by default.  This provides a
-      small performance boost.
-
-    - A  small memory leak  that happened  when opening  0-sized files
-      (duh!)  have been fixed.
-
-    - Fixed bezier  stack depth  bug in the  routines provided  by the
-      FT_BBOX_H  header   file.   Also  fixed  similar   bugs  in  the
-      rasterizers.
-
-    - The outline bounding  box code has been rewritten  to use direct
-      computations,  instead of  bezier sub-division,  to  compute the
-      exact bounding box of glyphs.   This is slightly slower but more
-      accurate.
-
-    - The build system has been  improved and fixed, mainly to support
-      "make"  on Windows  2000  correctly, avoid  problems with  "make
-      distclean" on non Unix systems, etc.
-
-    - Hexadecimal  constants  have been  suffixed  with  "U" to  avoid
-      problems with certain compilers on 64-bit platforms.
-
-    - A new directory named "src/tools" has been created.  It contains
-      Python scripts and simple unit test programs used to develop the
-      library.
-
-    - The DocMaker tool has been  moved from "docs" to "src/tools" and
-      has been updated with the following:
-
-         - Now accepts the "--title=XXXX" or "-t XXXX" option from the
-           command line to set the project's name in the generated API
-           reference.
-
-         - Now accepts the "--output=DIR"  or "-o DIR" option from the
-           command line to set  the output directory for all generated
-           HTML files.
-
-         - Now accepts the "--prefix=XXXX" or "-p XXX" option from the
-           command  line  to  set  the  file prefix  to  use  for  all
-           generated HTML files.
-
-         - Now generates the current  time/data on each generated page
-           in order to distinguish between versions.
-
-      DocMaker  can be  used with  other  projects now,  not only  FT2
-      (e.g. MLib, FTLayout, etc.).
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.2 and 2.0.1
-
-  I. CHANGES TO THE MODULES / FONT DRIVERS
-
-    - THE TRUETYPE BYTECODE INTERPRETER IS NOW TURNED OFF, in order to
-      avoid legal problems  with the Apple patents.  It  seems that we
-      mistakenly  turned this option  on in  previous releases  of the
-      build.
-
-      Note that if  you want to use the  bytecode interpreter in order
-      to get high-quality TrueType  rendering, you will need to toggle
-      by        hand        the        definition        of        the
-      TT_CONFIG_OPTION_BYTECODE_INTERPRETER   macro    in   the   file
-      "include/freetype/config/ftoption.h".
-
-    - The CFF driver has been improved by Tom Kacvinsky and Sander van
-      der Wal:
-
-      * Support for "seac" emulation.
-      * Support for "dotsection".
-      * Support for retrieving glyph names through
-        "FT_Get_Glyph_Name".
-
-      The first two items are necessary to correctly a large number of
-      Type 1 fonts converted to the CFF formats by Adobe Acrobat.
-
-    - The Type 1 driver was also improved by Tom & others:
-
-      * Better EM size computation.
-      * Better support for synthetic (transformed) fonts.
-      * The  Type 1  driver returns  the charstrings  corresponding to
-        each glyph in the  "glyph->control_data" field after a call to
-        "FT_Load_Glyph" (thanks Ha Shao).
-
-    - Various other bugfixes, including the following:
-
-      * Fixed a nasty memory leak in the Type 1 driver.
-      * The autohinter  and the pcf  driver used static  writable data
-        when they shouldn't.
-      * Many casts were added to  make the code more 64-bits safe.  It
-        also now compiles on Windows XP 64-bits without warnings.
-      * Some incorrect writable statics were removed in the "autohint"
-        and "pcf" drivers.  FreeType 2 now compiles on Epoc again.
-
-
-  II. CHANGES TO THE HIGH-LEVEL API
-
-    - The library header files inclusion scheme has been changed.  The
-      old scheme looked like:
-
-        #include <freetype/freetype.h>
-        #include <freetype/ftglyph.h>
-        #include <freetype/ftcache.h>
-        #include <freetype/cache/ftimage.h>
-
-      Now you should use:
-
-        #include <ft2build.h>
-        #include FT_FREETYPE_H
-        #include FT_GLYPH_H
-        #include FT_CACHE_H
-        #include FT_CACHE_IMAGE_H
-
-      NOTE THAT  THE OLD  INCLUSION SCHEME WILL  STILL WORK  WITH THIS
-      RELEASE.  HOWEVER, WE  DO NOT GUARANTEE THAT THIS  WILL STILL BE
-      TRUE IN THE NEXT ONE (A.K.A. FREETYPE 2.1).
-
-      The  file <ft2build.h>  is used  to define  the  header filename
-      macros.  The complete and  commented list of macros is available
-      in the API reference under the section name "Header File Macros"
-      in Chapter I.
-
-      For more information, see section I of the following document:
-
-        http://www.freetype.org/
-          freetype2/docs/tutorial/step1.html
-
-      or
-
-        http://freetype.sourceforge.net/
-          freetype2/docs/tutorial/step1.html
-
-    - Many, many comments have been added to the public source file in
-      order to  automatically generate  the API Reference  through the
-      "docmaker.py" Python script.
-
-      The latter has been updated  to support the grouping of sections
-      in chapters and better index sort.  See:
-
-        http://www.freetype.org/freetype2/docs/reference/ft2-toc.html
-
-
-  III. CHANGES TO THE BUILD PROCESS
-
-    - If you  are not  building FreeType 2  with its own  build system
-      (but with your own Makefiles or project files), you will need to
-      be  aware that  the  build  process has  changed  a little  bit.
-
-      You don't  need to put the  "src" directory in  the include path
-      when  compiling  any FT2  component.   Instead,  simply put  the
-      component's directory in the current include path.
-
-      So, if you were doing something like:
-
-        cc -c -Iinclude -Isrc src/base/ftbase.c
-
-      change the line to:
-
-        cc -c -Iinclude -Isrc/base src/base/ftbase.c
-
-      If you were doing something like:
-
-        cd src/base
-        cc -c -I../../include -I.. ftbase.c
-
-      change it to:
-
-        cd src/base
-        cc -c -I../../include ftbase.c
-
-
-======================================================================
-
-LATEST CHANGES BETWEEN 2.0.1 and 2.0
-
-  2.0.1 introduces a few changes:
-
-    - Fixed many bugs related to  the support of CFF / OpenType fonts.
-      These  formats are  now much  better supported  though  there is
-      still work planned to  deal with charset tables and PDF-embedded
-      CFF files that use the old "seac" command.
-
-    - The  library could not  be compiled  in debug  mode with  a very
-      small  number   of  C  compilers   whose  pre-processors  didn't
-      implement the "##"  directive correctly (i.e. per se  the ANSI C
-      specification!)  An elegant fix was found.
-
-    - Added  support for  the  free Borland  command-line C++  Builder
-      compiler.   Use "make  setup bcc32".   Also fixed  a  few source
-      lines that generated new warnings with BCC32.
-
-    - Fixed a bug in FT_Outline_Get_BBox when computing the extrema of
-      a conic Bezier arc.
-
-    - Updated the INSTALL file to add IDE compilation.
-
-    - Other  minor bug  fixes,  from  invalid Type  1  style flags  to
-      correct   support   of  synthetic   (obliqued)   fonts  in   the
-      auto-hinter, better support for embedded bitmaps in a SFNT font.
-
-    - Fixed some problems with "freetype-config".
-
-  Finally, the "standard" scheme for including FreeType headers is now
-  gradually changing,  but this will  be explained in a  later release
-  (probably 2.0.2).
-
-  And very  special thanks to Tom Kacvinsky  and YAMANO-UCHI Hidetoshi
-  for their contributions!
-
-
-======================================================================
-
-CHANGES BETWEEN beta8 and 2.0
-
-  - Changed  the default  installation  path for  public headers  from
-    "include/freetype" to "include/freetype2".
-
-    Also added a new "freetype-config" that is automatically generated
-    and installed  on Unix and  Cygwin systems.  The script  itself is
-    used to retrieve the current  install path, C compilation flags as
-    well as linker flags.
-
-  - Fixed several small bugs:
-
-    * Incorrect max advance width for fixed-pitch Type 1 fonts.
-    * Incorrect glyph names for certain TrueType fonts.
-    * The  glyph advance  was not  copied when  FT_Glyph_To_Bitmap was
-      called.
-    * The  linearHoriAdvance  and  linerVertAdvance  fields  were  not
-      correctly returned for glyphs processed by the auto-hinter.
-    * "type1z"  renamed back to  "type1"; the  old "type1"  module has
-      been removed.
-
-  - Revamped the  build system  to make it  a lot more  generic.  This
-    will  allow us  to  re-use  nearly un-modified  in  lots of  other
-    projects (including FreeType Layout).
-
-  - Changed "cid" to use "psaux" too.
-
-  - Added the  cache sub-system.  See <freetype/ftcache.h>  as well as
-    the sources  in "src/cache".  Note  that it compiles but  is still
-    untested for now.
-
-  - Updated "docs/docmaker.py", a draft  API reference is available at
-    http://www.freetype.org/ft2api.html.
-
-  - Changed "type1" to use "psaux".
-
-  - Created a  new module named  "psaux" to hold  the Type 1 &  Type 2
-    parsing routines.  It should be  used by "type1", "cid", and "cff"
-    in the future.
-
-  - Fixed an important bug in "FT_Glyph_Get_CBox".
-
-  - Fixed  some compiler  warnings  that happened  since the  TrueType
-    bytecode decoder was deactivated by default.
-
-  - Fixed two memory leaks:
-
-    * The    memory   manager   (16    bytes)   isn't    released   in
-      FT_Done_FreeType!
-    * Using custom input streams, the  copy of the original stream was
-      never released.
-
-  - Fixed the  auto-hinter by performing automatic  computation of the
-    "filling direction" of each glyph.   This is done through a simple
-    and  fast approximation, and  seems to  work (problems  spotted by
-    Werner though).  The Arphic fonts are a lot nicer though there are
-    still a lot of things to do to handle Asian fonts correctly.
-
-
-======================================================================
-
-BETA-8 (RELEASE CANDIDATE) CHANGES
-
-  - Deactivated the TrueType bytecode interpreter by default.
-
-  - Deactivated the "src/type1" font driver.  Now "src/type1z" is used
-    by default.
-
-  - Updates to the build system.  We now compile the library correctly
-    under  Unix  system  through  "configure" which  is  automatically
-    called on the first "make" invocation.
-
-  - Added the auto-hinting module!  Fixing some bugs here and there.
-
-  - Found some bugs in the  composite loader (seac) of the Type1-based
-    font drivers.
-
-  - Renamed the directory "freetype2/config" to "freetype2/builds" and
-    updated all relevant files.
-
-  - Found a memory leak in the "type1" driver.
-
-  - Incorporated Tom's patches to  support flex operators correctly in
-    OpenType/CFF fonts.  Now all I need is to support pure CFF and CEF
-    fonts to be done with this driver :-)
-
-  - Added the  Windows FNT/FON driver in "src/winfonts".   For now, it
-    always  "simulates"   a  Unicode  charmap,  so   it  shouldn't  be
-    considered completed right now.
-
-    It  is there  to be  more a  proof of  concept than  anything else
-    anyway.  The driver is a single  C source file, that compiles to 3
-    Kb of code.
-
-    I'm  still working on  the PCF/BDF  drivers, but  I'm too  lazy to
-    finish them now.
-
-  - CHANGES TO THE HIGH-LEVEL API
-
-    * FT_Get_Kerning has a new parameter that allows you to select the
-      coordinates of the kerning  vector (font units, scaled, scaled +
-      grid-fitted).
-    * The  outline functions are  now in <freetype/ftoutln.h>  and not
-      part of <freetype/freetype.h> anymore.
-    * <freetype/ftmodule.h>    now     contains    declarations    for
-       FT_New_Library, FT_Done_Library, FT_Add_Default_Modules.
-    * The so-called convenience  functions have moved from "ftoutln.c"
-      to  "ftglyph.c",  and  are  thus available  with  this  optional
-      component    of   the   library.     They   are    declared   in
-      <freetype/ftglyph.h> now.
-    * Anti-aliased  rendering is now  the default  for FT_Render_Glyph
-      (i.e. corresponds to render_mode == 0 == ft_render_mode_normal).
-      To generate a monochrome bitmap, use ft_render_mode_mono, or the
-      FT_LOAD_MONOCHROME     flag    in    FT_Load_Glyph/FT_Load_Char.
-      FT_LOAD_ANTI_ALIAS is still defined, but values to 0.
-    * <freetype/freetype.h>  now include <freetype/config/ftconfig.h>,
-      solving a few headaches :-)
-    * The type FT_GlyphSlotRec has now a "library" field.
-
-  - CHANGES TO THE "ftglyph.h" API
-
-    This API has  been severely modified in order  to make it simpler,
-    clearer, and more  efficient.  It certainly now looks  like a real
-    "glyph factory"  object, and allows client  applications to manage
-    (i.e.  transform,  bbox  and  render) glyph  images  without  ever
-    knowing their original format.
-
-  - Added  support  for CID-keyed  fonts  to  the  CFF driver.   Maybe
-    support for pure CFF + CEF fonts should come in?
-
-  - Cleaned up  source code in order  to avoid two  functions with the
-    same name.  Also  changed the names of the  files in "type1z" from
-    "t1XXXX" to "z1XXXX" in order to avoid any conflicts.
-
-    "make multi" now works well :-)
-
-    Also removed the use of "cidafm" for now, even if the source files
-    are  still there.  This  functionality will  certainly  go into  a
-    specific module.
-
-  - ADDED SUPPORT FOR THE AUTO-HINTER
-
-    It  works :-) I  have a  demo program  which simply  is a  copy of
-    "ftview"       that      does       a      `FT_Add_Module(library,
-    &autohinter_module_class)' after  library initialization, and Type
-    1 & OpenType/CFF fonts are now hinted.
-
-    CID  fonts are  not hinted,  as they  include no  charmap  and the
-    auto-hinter doesn't include  "generic" global metrics computations
-    yet.
-
-    Now, I need to release this thing to the FreeType 2 source.
-
-  - CHANGES TO THE RENDERER MODULES
-
-    The  monochrome  and smooth  renderers  are  now  in two  distinct
-    directories, namely "src/raster1" and "src/smooth".  Note that the
-    old "src/renderer" is now gone.
-
-    I ditched  the 5-gray-levels renderers.  Basically,  it involved a
-    simple #define toggle in 'src/raster1/ftraster.c'.
-
-    FT_Render_Glyph,  FT_Outline_Render  &  FT_Outline_Get_Bitmap  now
-    select the best renderer  available, depending on render mode.  If
-    the current renderer for a  given glyph image format isn't capable
-    of supporting  the render mode, another  one will be  found in the
-    library's list.   This means that client applications  do not need
-    to  switch or  set  the  renderers themselves  (as  in the  latest
-    change), they'll get what they want automatically.  At last.
-
-    Changed the demo programs accordingly.
-
-  - MAJOR INTERNAL REDESIGN:
-
-    A lot of internal modifications  have been performed lately on the
-    source in order to provide the following enhancements:
-
-    * More generic module support:
-
-      The FT_Module  type is  now defined to  represent a handle  to a
-      given  module.   The  file  <freetype/ftmodule.h>  contains  the
-      FT_Module_Class definition, as well as the module-loading public
-      API.
-
-      The  FT_Driver type  is still  defined, and  still  represents a
-      pointer to  a font driver.  Note that  FT_Add_Driver is replaced
-      by FT_Add_Module, FT_Get_Driver by FT_Get_Module, etc.
-
-    * Support for generic glyph image types:
-
-      The FT_Renderer  type is a pointer  to a module  used to perform
-      various operations on glyph image.
-
-      Each renderer is  capable of handling images in  a single format
-      (e.g. ft_glyph_format_outline).  Its functions are used to:
-
-      - transform an glyph image
-      - render a glyph image into a bitmap
-      - return the control box (dimensions) of a given glyph image
-
-      The scan converters "ftraster.c" and "ftgrays.c" have been moved
-      to the new directory "src/renderer", and are used to provide two
-      default renderer modules.
-
-      One corresponds  to the "standard" scan-converter,  the other to
-      the "smooth" one.
-
-      he  current  renderer  can  be  set  through  the  new  function
-      FT_Set_Renderer.
-
-      The old raster-related function FT_Set_Raster, FT_Get_Raster and
-      FT_Set_Raster_Mode have now disappeared, in favor of the new:
-
-        FT_Get_Renderer
-        FT_Set_Renderer
-
-      See the file <freetype/ftrender.h> for more details.
-
-      These  changes  were  necessary  to properly  support  different
-      scalable formats in the future, like bi-color glyphs, etc.
-
-    * Glyph loader object:
-
-      A  new  internal  object,  called  a  'glyph  loader'  has  been
-      introduced in the base layer.  It is used by all scalable format
-      font drivers to load glyphs and composites.
-
-      This object  has been  created to reduce  the code size  of each
-      driver,  as  each  one  of  them  basically  re-implemented  its
-      functionality.
-
-      See <freetype/internal/ftobjs.h> and the FT_GlyphLoader type for
-      more information.
-
-    * FT_GlyphSlot has new fields:
-
-      In  order   to  support  extended  features   (see  below),  the
-      FT_GlyphSlot structure has a few new fields:
-
-      linearHoriAdvance:
-
-        This  field  gives  the   linearly  scaled  (i.e.  scaled  but
-        unhinted) advance  width for the  glyph, expressed as  a 16.16
-        fixed pixel value.  This is useful to perform WYSIWYG text.
-
-      linearVertAdvance:
-        This field  gives the linearly  scaled advance height  for the
-        glyph  (relevant in  vertical  glyph layouts  only).  This  is
-        useful to perform WYSIWYG text.
-
-        Note that  the two above field replace  the removed "metrics2"
-        field in the glyph slot.
-
-      advance:
-        This field is a vector  that gives the transformed advance for
-        the glyph.   By default, it corresponds to  the advance width,
-        unless  FT_LOAD_VERTICAL_LAYOUT  was  specified  when  calling
-        FT_Load_Glyph or FT_Load_Char.
-
-      bitmap_left:
-        This  field gives  the  distance in  integer  pixels from  the
-        current pen position  to the left-most pixel of  a glyph image
-        IF IT IS  A BITMAP.  It is only valid  when the "format" field
-        is set to "ft_glyph_format_bitmap", for example, after calling
-        the new function FT_Render_Glyph.
-
-      bitmap_top:
-        This  field gives  the  distance in  integer  pixels from  the
-        current pen position (located on the baseline) to the top-most
-        pixel of the  glyph image IF IT IS  A BITMAP.  Positive values
-        correspond to upwards Y.
-
-      loader:
-        This  is a  new  private  field for  the  glyph slot.   Client
-        applications should not touch it.
-
-
-    * Support for transforms and direct rendering in FT_Load_Glyph:
-
-      Most of the functionality found in <freetype/ftglyph.h> has been
-      moved to the core library.  Hence, the following:
-
-      - A   transform   can   be   specified  for   a   face   through
-        FT_Set_Transform.  this transform  is applied by FT_Load_Glyph
-        to  scalable glyph  images (i.e.  NOT TO  BITMAPS)  before the
-        function returns, unless the bit flag FT_LOAD_IGNORE_TRANSFORM
-        was set in the load flags.
-
-      - Once  a  glyph image  has  been  loaded,  it can  be  directly
-        converted  to  a  bitmap  by  using  the  new  FT_Render_Glyph
-        function.  Note that this  function takes the glyph image from
-        the glyph slot,  and converts it to a  bitmap whose properties
-        are returned  in "face.glyph.bitmap", "face.glyph.bitmap_left"
-        and "face.glyph.bitmap_top".  The  original native image might
-        be lost after the conversion.
-
-      - When using the new  bit flag FT_LOAD_RENDER, the FT_Load_Glyph
-        and   FT_Load_Char   functions   will   call   FT_Render_Glyph
-        automatically when needed.
-
-  - Reformatted all  modules source  code in order  to get rid  of the
-    basic data types redifinitions (i.e. "TT_Int" instead of "FT_Int",
-    "T1_Fixed"  instead  of  "FT_Fixed").  Hence  the  format-specific
-    prefixes like  "TT_", "T1_",  "T2_" and "CID_"  are only  used for
-    relevant structures.
-
-
-======================================================================
-
-OLD CHANGES FOR BETA 7
-
-  - bug-fixed the  OpenType/CFF parser.  It  now loads and displays my
-    two  fonts nicely,  but I'm  pretty certain  that more  testing is
-    needed :-)
-
-  - fixed the crummy Type 1 hinter, it now handles accented characters
-    correctly (well, the accent is  not always well placed, but that's
-    another problem..)
-
-  - added the CID-keyed Type 1 driver in "src/cid".  Works pretty well
-    for only 13 Kb of code  ;-) Doesn't read AFM files though, nor the
-    really useful CMAP files..
-
-  - fixed  two  bugs  in  the  smooth  renderer  (src/base/ftgrays.c).
-    Thanks to Boris Letocha for spotting them and providing a fix.
-
-  - fixed potential "divide by zero" bugs in ftcalc.c.
-
-  - added source  code for  the OpenType/CFF driver  (still incomplete
-    though..)
-
-  - modified the  SFNT driver slightly  to perform more  robust header
-    checks  in TT_Load_SFNT_Header.  This prevents certain  font files
-    (e.g.  some  Type  1  Multiple  Masters)  from  being  incorrectly
-    "recognized" as TrueType font files..
-
-  - moved a lot of stuff from  the TrueType driver to the SFNT module,
-    this   allows   greater   code   re-use   between   font   drivers
-    (e.g. TrueType, OpenType, Compact-TrueType, etc..)
-
-  - added a tiny segment cache to the SFNT Charmap 4 decoder, in order
-    to minimally speed it up..
-
-  - added  support for  Multiple Master  fonts in  "type1z".  There is
-    also a new file named <freetype/ftmm.h> which defines functions to
-    manage them from client applications.
-
-    The new file "src/base/ftmm.c" is also optional to the engine..
-
-  - various  formatting changes (e.g.  EXPORT_DEF ->  FT_EXPORT_DEF) +
-    small bug fixes in FT_Load_Glyph, the "type1" driver, etc..
-
-  - a minor fix to the Type 1 driver to let them apply the font matrix
-    correctly (used for many oblique fonts..)
-
-  - some fixes for 64-bit systems (mainly changing some FT_TRACE calls
-    to use %p instead of %lx).  Thanks to Karl Robillard.
-
-  - fixed  some bugs  in  the sbit  loader (src/base/sfnt/ttsbit.c)  +
-    added  a new flag,  FT_LOAD_CROP_BITMAP to  query that  bitmaps be
-    cropped when  loaded from a file  (maybe I should  move the bitmap
-    cropper to the base layer ??).
-
-  - changed the default  number of gray levels of  the smooth renderer
-    to 256  (instead of  the previous 128).  Of course, the  human eye
-    can't see any difference ;-)
-
-  - removed TT_MAX_SUBGLYPHS,  there is no static limit  on the number
-    of subglyphs in a TrueType font now..
-
-
-======================================================================
-
-OLD CHANGES 16 May 2000
-
-  - tagged "BETA-6"  in the  CVS tree.  This one is a  serious release
-    candidate even though it doesn't incorporate the auto-hinter yet..
-
-  - various obsolete files were removed, and copyright header updated
-
-  - finally  updated  the  standard   raster  to  fix  the  monochrome
-    rendering bug + re-enable  support for 5-gray levels anti-aliasing
-    (suck, suck..)
-
-  - created new header files, and modified sources accordingly:
-
-     <freetype/fttypes.h>
-       - simple FreeType types, without the API
-     <freetype/internal/ftmemory.h>
-       - definition of memory-management macros
-
-  - added   the   "DSIG"   (OpenType   Digital   Signature)   tag   to
-    <freetype/tttags.h>
-
-  - light update/cleaning of the build system + changes to the sources
-    in  order  to  get  rid  of _all_  compiler  warnings  with  three
-    compilers, i.e:
-
-    gcc with "-ansi -pedantic -Wall -W", Visual C++ with "/W3 /WX" and
-    LCC
-
-    IMPORTANT NOTE FOR WIN32-LCC USERS:
-    |
-    |  It seems the C pre-processor  that comes with LCC is broken, it
-    |  doesn't  recognize  the  ANSI  standard  directives  #  and  ##
-    |  correctly   when  one  of   the  argument  is  a  macro.  Also,
-    |  something like:
-    |
-    |     #define F(x)  print##x
-    |
-    |     F(("hello"))
-    |
-    |  will get incorrectly translated to:
-    |
-    |     print "hello")
-    |
-    |  by its pre-processor.  For this reason, you simply cannot build
-    |  FreeType 2 in debug mode with this compiler..
-
-  - yet  another massive grunt work.  I've  changed the  definition of
-    the EXPORT_DEF,  EXPORT_FUNC, BASE_DEF &  BASE_FUNC macros.  These
-    now take an argument, which is the function's return value type.
-
-    This  is necessary to  compile FreeType  as a  DLL on  Windows and
-    OS/2.  Depending on the compiler used, a compiler-specific keyword
-    like  __export or __system  must be  placed before  (VisualC++) or
-    after (BorlandC++) the type..
-
-    Of course, this needed a lot of changes throughout the source code
-    to make it compile again...  All cleaned up now, apparently..
-
-    Note also  that there is a  new EXPORT_VAR macro  defined to allow
-    the   _declaration_    of   an   exportable    public   (constant)
-    variable.  This  is  the   case  of  the  raster  interfaces  (see
-    ftraster.h and ftgrays.h), as well as each module's interface (see
-    sfdriver.h, psdriver.h, etc..)
-
-  - new feature: it  is now possible to pass  extra parameters to font
-                 drivers  when creating  a new  face object.  For now,
-                 this capability is unused.  It could however prove to
-                 be useful in a near future..
-
-      the FT_Open_Args structure was  changes, as well as the internal
-      driver interface  (the specific "init_face"  module function has
-      now a different signature).
-
-  - updated the tutorial (not finished though).
-
-  - updated the top-level BUILD  document
-
-  - fixed  a  potential memory  leak  that  could  occur when  loading
-    embedded bitmaps.
-
-  - added     the     declaration     of     FT_New_Memory_Face     in
-    <freetype/freetype.h>, as  it was  missing from the  public header
-    (the implementation was already in "ftobjs.c").
-
-  - the file <freetype/fterrors.h> has been seriously updated in order
-    to allow  the automatic generation  of error message tables.   See
-    the comments within it for more information.
-
-  - major directory  hierarchy re-organisation.  This was done for two
-    things:
-
-      * first,  to ease  the "manual"  compilation of  the  library by
-        requiring at lot less include paths :-)
-
-      * second,  to  allow  external  programs to  effectively  access
-        internal  data  fields.  For example,  this  can be  extremely
-        useful if  someone wants  to write a  font producer or  a font
-        manager on top of FreeType.
-
-    Basically, you  should now use  the 'freetype/' prefix  for header
-    inclusion, as in:
-
-        #include <freetype/freetype.h>
-        #include <freetype/ftglyph.h>
-
-    Some new include sub-directories are available:
-
-     a. the  "freetype/config" directory,  contains two files  used to
-        configure  the  build  of  the  library.  Client  applications
-        should  not need  to look  at these  normally, but they can if
-        they want.
-
-        #include <freetype/config/ftoption.h>
-        #include <freetype/config/ftconfig.h>
-
-     b. the "freetype/internal"  directory, contains header files that
-        describes library  internals.  These are the header files that
-        were  previously  found  in  the "src/base"  and  "src/shared"
-        directories.
-
-
-    As  usual, the build  system and  the demos  have been  updated to
-    reflect the change..
-
-    Here's a layout of the new directory hierarchy:
-
-    TOP_DIR
-      include/
-         freetype/
-            freetype.h
-            ...
-            config/
-              ftoption.h
-              ftconfig.h
-              ftmodule.h
-
-            internal/
-              ftobjs.h
-              ftstream.h
-              ftcalc.h
-              ...
-
-      src/
-         base/
-            ...
-
-         sfnt/
-         psnames/
-         truetype/
-         type1/
-         type1z/
-
-
-    Compiling a module is now  much easier, for example, the following
-    should work when in the TOP_DIR directory on an ANSI build:
-
-       gcc -c -I./include -I./src/base src/base/ftbase.c
-       gcc -c -I./include -I./src/sfnt src/sfnt/sfnt.c
-       etc..
-
-    (of course, using -Iconfig/<system> if you provide system-specific
-     configuration files).
-
-  - updated the structure of FT_Outline_Funcs in order to allow direct
-    coordinate scaling within  the outline decomposition routine (this
-    is  important for virtual  "on" points  with TrueType  outlines) +
-    updates to the rasters to support this..
-
-  - updated  the OS/2  table  loading code  in "src/sfnt/ttload.c"  in
-    order to support version 2 of the table (see OpenType 1.2 spec)
-
-  - created  "include/tttables.h"  and  "include/t1tables.h" to  allow
-    client applications to access some of  the SFNT and T1 tables of a
-    face  with  a  procedural  interface (see  FT_Get_Sfnt_Table())  +
-    updates to internal source files to reflect the change..
-
-  - some  cleanups in  the source  code to  get rid  of  warnings when
-    compiling with the "-Wall -W -ansi -pedantic" options in gcc.
-
-  - debugged and moved the smooth renderer to "src/base/ftgrays.c" and
-    its header to "include/ftgrays.h"
-
-  - updated TT_MAX_SUBGLYPHS  to 96 as some CJK  fonts have composites
-    with up to 80 sub-glyphs !! Thanks to Werner
-
-
-======================================================================
-
-OLD CHANGES - 14-apr-2000
-
-  - fixed  a bug  in  the  TrueType glyph  loader  that prevented  the
-    correct loading of some CJK glyphs in mingli.ttf
-
-  - improved the standard Type 1 hinter in "src/type1"
-
-  - fixed two bugs  in the experimental Type 1  driver in "src/type1z"
-    to handle the new XFree86 4.0 fonts (and a few other ones..)
-
-  - the smooth  renderer is now  complete and supports  sub-banding to
-    render large glyphs  at high speed.  However, it is still  located
-    in "demos/src/ftgrays.c" and should move to the  library itself in
-    the next  beta.  NOTE: The  smooth  renderer  doesn't  compile  in
-    stand-alone mode anymore, but this should be fixed RSN..
-
-  - introduced convenience  functions to  more easily deal  with glyph
-    images, see  "include/ftglyph.h" for more details, as  well as the
-    new  demo program  named "demos/src/ftstring.c"  that demonstrates
-    its use
-
-  - implemented  FT_LOAD_NO_RECURSE in  both the  TrueType and  Type 1
-    drivers  (this  is required  by  the  auto-hinter  to improve  its
-    results).
-
-  - changed   the  raster   interface,  in   order  to   allow  client
-    applications  to   provide  their   own  span-drawing   callbacks.
-    However,   only   the   smooth   renderer   supports   this.   See
-    "FT_Raster_Params" in the file "include/ftimage.h".
-
-  - fixed  a small bug  in FT_MulFix  that caused  incorrect transform
-    computation!
-
-  - Note: The tutorial is out-of-date.
-
-
-======================================================================
-
-OLD CHANGES - 12-mar-2000
-
-  - changed  the  layout  of  configuration  files  :  now,  all  ANSI
-    configuration         files         are         located         in
-    "freetype2/config".  System-specific over-rides  can be  placed in
-    "freetype2/config/<system>".
-
-  - moved all configuration macros to "config/ftoption.h"
-
-  - improvements in the Type 1 driver with AFM support
-
-  - changed the fields  in the FT_Outline structure :  the old "flags"
-    array is re-named "tags", while all ancient flags are encoded into
-    a single unsigned int named "flags".
-
-  - introduced     new      flags     in     FT_Outline.flags     (see
-    ft_outline_.... enums in "ftimage.h").
-
-  - changed outline functions to "FT_Outline_<action>" syntax
-
-  - added a smooth anti-alias renderer to the demonstration programs
-
-  - added Mac graphics driver (thanks Just)
-
-  - FT_Open_Face  changed  in  order   to  received  a  pointer  to  a
-    FT_Open_Args descriptor..
-
-  - various  cleanups,  a  few  more API  functions  implemented  (see
-    FT_Attach_File)
-
-  - updated some docs
-
-
-======================================================================
-
-OLD CHANGES - 22-feb-2000
-
-  - introduced the "psnames" module.  It is used to:
-
-      o convert  a Postscript glyph  name into the  equivalent Unicode
-        character code (used by the  Type 1 driver(s) to synthetize on
-        the fly a Unicode charmap).
-
-      o provide an  interface to retrieve the Postscript  names of the
-        Macintosh,  Adobe  Standard &  Adobe  Expert character  codes.
-        (the Macintosh  names are  used by the  SFNT-module postscript
-        names support routines, while the other two tables are used by
-        the Type 1 driver(s)).
-
-  - introduced the "type1z" alternate Type 1 driver.  This is a (still
-    experimental) driver  for the Type  1 format that  will ultimately
-    replace the one  in "src/type1".  It uses pattern matching to load
-    data from the font, instead of a finite  state analyzer.  It works
-    much better than the "old" driver with "broken" fonts.  It is also
-    much smaller (under 15 Kb).
-
-  - the  Type 1  drivers (both  in "src/type1"  and  "src/type1z") are
-    nearly  complete.  They  both  provide automatic  Unicode  charmap
-    synthesis through  the "psnames" module.  No re-encoding vector is
-    needed.  (note  that they  still  leak  memory  due to  some  code
-    missing, and I'm getting lazy).
-
-    Trivial AFM support has been added to read kerning information but
-    wasn't exactly tested as it should ;-)
-
-  - The TrueType  glyph loader has  been seriously rewritten  (see the
-    file  "src/truetype/ttgload.c".  It is now  much, much  simpler as
-    well as  easier to read,  maintain and understand  :-) Preliminary
-    versions introduced a  memory leak that has been  reported by Jack
-    Davis, and is now fixed..
-
-  - introduced  the new  "ft_glyph_format_plotter", used  to represent
-    stroked outlines  like Windows "Vector" fonts, and  certain Type 1
-    fonts  like "Hershey".  The corresponding  raster will  be written
-    soon.
-
-  - FT_New_Memory_Face  is  gone.  Likewise,  FT_Open_Face has  a  new
-    interface that uses a structure  to describe the input stream, the
-    driver (if required), etc..
-
-
-TODO
-
-  - Write FT_Get_Glyph_Bitmap and FT_Load_Glyph_Bitmap
-
-  - Add a function like FT_Load_Character( face, char_code, load_flags
-    )  that  would really  embbed  a  call  to FT_Get_Char_Index  then
-    FT_Load_Glyph to ease developer's work.
-
-  - Update the tutorial!
-
-  - consider adding  support for Multiple  Master fonts in the  Type 1
-    drivers.
-
-  - Test the AFM routines of the  Type 1 drivers to check that kerning
-    information is returned correctly.
-
-  - write a decent auto-gridding component  !! We need this to release
-    FreeType 2.0 gold !
-
-
-less urgent needs:
-
-  - add a CFF/Type2 driver
-  - add a BDF driver
-  - add a FNT/PCF/HBF driver
-  - add a Speedo driver from the X11 sources
-
-
-======================================================================
-
-OLDER CHANGES - 27-jan-2000
-
-  - updated the  "sfnt" module  interface to allow  several SFNT-based
-    drivers to co-exist peacefully
-
-  - updated  the "T1_Face"  type  to better  separate Postscript  font
-    content  from the  rest of  the FT_Face  structure.  Might be used
-    later by the CFF/Type2 driver..
-
-  - added an experimental replacement Type 1 driver featuring advanced
-    (and speedy) pattern matching to retrieve the data from postscript
-    fonts.
-
-  - very minor  changes in the implementation  of FT_Set_Char_Size and
-    FT_Set_Pixel_Sizes (they now implement default to ligthen the font
-    driver's code).
-
-
-======================================================================
-
-OLD MESSAGE
-
-This file summarizes the changes that occured since the last "beta" of
-FreeType 2.  Because  the list is important, it  has been divided into
-separate sections:
-
-Table Of Contents:
-
-    I   High-Level Interface (easier !)
-   II   Directory Structure
-  III   Glyph Image Formats
-   IV   Build System
-    V   Portability
-   VI   Font Drivers
-
-
-----------------------------------------------------------------------
-
-High-Level Interface:
-
-  The high-level API has been considerably simplified.  Here is how:
-
-    - resource objects have disappeared.  this means that face objects
-      can now be created with  a single function call (see FT_New_Face
-      and FT_Open_Face)
-
-    - when calling  either FT_New_Face  & FT_Open_Face, a  size object
-      and a glyph slot object  are automatically created for the face,
-      and can  be accessed  through "face->glyph" and  "face->size" if
-      one really  needs to.   In most cases,  there's no need  to call
-      FT_New_Size or FT_New_Glyph.
-
-    - similarly,  FT_Load_Glyph  now  only  takes  a  "face"  argument
-      (instead  of a  glyph  slot  and a  size).  Also, it's  "result"
-      parameter is  gone, as the glyph  image type is  returned in the
-      field "face->glyph.format"
-
-    - the list  of available  charmaps is directly  accessible through
-      "face->charmaps", counting "face->num_charmaps"  elements.  Each
-      charmap  has an  'encoding'  field which  specifies which  known
-      encoding it deals with.  Valid values are, for example:
-
-          ft_encoding_unicode      (for ASCII, Latin-1 and Unicode)
-          ft_encoding_apple_roman
-          ft_encoding_sjis
-          ft_encoding_adobe_standard
-          ft_encoding_adobe_expert
-
-      other  values may  be added  in the  future.  Each charmap still
-      holds  its "platform_id"  and "encoding_id"  values in  case the
-      encoding is too exotic for the current library
-
-
-----------------------------------------------------------------------
-
-Directory Structure:
-
-  Should seem obvious to most of you:
-
-     freetype/
-         config/        -- configuration sub-makefiles
-            ansi/
-            unix/       -- platform-specific configuration files
-            win32/
-            os2/
-            msdos/
-
-         include/       -- public header  files, those to  be included
-                           directly by client apps
-
-         src/           -- sources of the library
-           base/        -- the base layer
-           sfnt/        -- the sfnt "driver"  (see the drivers section
-                           below)
-           truetype/    -- the truetype driver
-           type1/       -- the type1 driver
-           shared/      -- some header files shared between drivers
-
-         demos/         -- demos/tools
-
-         docs/          -- documentation (a bit empty for now)
-
-
-----------------------------------------------------------------------
-
-Glyph Image Formats:
-
-  Drivers are now able to  register new glyph image formats within the
-  library.  For  now, the  base layer supports  of course  bitmaps and
-  vector  outlines, but  one  could imagine  something different  like
-  colored bitmaps, bi-color vectors or wathever else (Metafonts anyone
-  ??).
-
-  See  the   file  `include/ftimage.h'.   Note  also  that   the  type
-  FT_Raster_Map  is gone,  and  is now  replaced  by FT_Bitmap,  which
-  should encompass all known bitmap types.
-
-  Each new  image format  must provide at  least one "raster",  i.e. a
-  module capable of  transforming the glyph image into a bitmap.  It's
-  also possible  to change the default  raster used for  a given glyph
-  image format.
-
-  The default outline  scan-converter now uses 128 levels  of grays by
-  default,  which tends  to smooth  many  things.  Note that the  demo
-  programs have been updated significantly in order to display these..
-
-
-----------------------------------------------------------------------
-
-Build system:
-
-  You still need  GNU Make to build the library.  The build system has
-  been very seriously re-vamped in order to provide things like :
-
-   - automatic host platform  detection (reverting to 'config/ansi' if
-     it is not detected, with pseudo-standard compilation flags)
-
-   - the ability to compile from the Makefiles with very different and
-     exotic compilers.  Note that linking the library can be difficult
-     for some platforms.
-
-     For example, the file `config/win32/lcclib.bat' is invoked by the
-     build system to create the ".lib" file with LCC-Win32 because its
-     librarian  has too  many flaws  to be  invoked directly  from the
-     Makefile.
-
-  Here's how it works:
-
-  - the first time you type `make',  the build system runs a series of
-    sub-makefiles  in order  to detect  your host  platform.  It  then
-    dumps what it found, and creates a file called `config.mk' in  the
-    current  directory.  This is a  sub-Makefile used  to  define many
-    important Make variables used to build the library.
-
-  - the second time, the build system detects the `config.mk' then use
-    it  to  build the  library.  All object  files  go  into 'obj'  by
-    default,  as well  as the  library file,  but this  can  easily be
-    changed.
-
-  Note that  you can run "make  setup" to force  another host platform
-  detection  even   if  a  `config.mk'  is  present   in  the  current
-  directory.  Another solution  is  simply to  delete  the file,  then
-  re-run make.
-
-  Finally, the  default compiler  for all platforms  is gcc  (for now,
-  this will hopefully changed in the future).  You can however specify
-  a different  compiler by specifying  it after the 'setup'  target as
-  in:
-
-      gnumake setup lcc         on Win32 to use the LCC compiler
-      gnumake setup visualc     on Win32 to use Visual C++
-
-  See  the file  `config/<system>/detect.mk' for  a list  of supported
-  compilers for your platforms.
-
-  It should be relatively easy  to write new detection rules files and
-  config.mk..
-
-  Finally, to  build the demo programs,  go to `demos'  and launch GNU
-  Make, it will use the `config.mk'  in the top directory to build the
-  test programs..
-
-
-----------------------------------------------------------------------
-
-Portability:
-
-  In  the  previous  beta,  a  single FT_System  object  was  used  to
-  encompass  all  low-level  operations like  thread  synchronisation,
-  memory management and i/o access.  This has been greatly simplified:
-
-    - thread synchronisation  has been dropped, for  the simple reason
-      that the library  is already re-entrant, and that  if you really
-      need  two  threads accessing  the  same  FT_Library, you  should
-      really synchronize access to it yourself with a simple mutex.
-
-    - memory  management is  performed  through a  very simple  object
-      called "FT_Memory",  which really is a table  containing a table
-      of pointers to  functions like malloc, realloc and  free as well
-      as some user data (closure).
-
-    - resources have disappeared (they created more problems than they
-      solved), and  i/o management have  been simplified greatly  as a
-      result.  Streams are  defined through  FT_Stream objects,  which
-      can be either memory-based or disk-based.
-
-      Note that  each face  has its own  stream, which is  closed only
-      when  the  face object  is  destroyed.  Hence,  a function  like
-      TT_Flush_Face in 1.x cannot be directly  supported.  However, if
-      you really need something like  this, you can easily tailor your
-      own streams  to achieve the same  feature at a  lower level (and
-      use FT_Open_Face instead of FT_New_Face to create the face).
-
-  See the file  "include/ftsystem.h" for more details, as  well as the
-  implementations found in "config/unix" and "config/ansi".
-
-
-----------------------------------------------------------------------
-
-Font Drivers:
-
-  The  Font Driver  interface has  been modified  in order  to support
-  extensions & versioning.
-
-
-  The  list of  the font  drivers that  are statically  linked  to the
-  library at compile time is  managed through a new configuration file
-  called `config/<platform>/ftmodule.h'.
-
-  This  file is  autogenerated  when  invoking  `make modules'.   This
-  target  will  parse  all  sub-directories  of  'src', looking  for a
-  "module.mk" rules  file, used  to describe  the driver to  the build
-  system.
-
-  Hence, one  should call  `make modules' each  time a font  driver is
-  added or removed from the `src' directory.
-
-  Finally, this  version  provides  a "pseudo-driver"  in  `src/sfnt'.
-  This  driver  doesn't  support  font  files  directly, but  provides
-  services used by all TrueType-like font drivers.  Hence, its code is
-  shared between  the TrueType & OpenType  font formats,  and possibly
-  more formats to come if we're lucky..
-
-
-----------------------------------------------------------------------
-
-Extensions support:
-
-  The extensions support is inspired by the one found in 1.x.
-
-  Now, each font driver has  its own "extension registry", which lists
-  which extensions  are available  for the font  faces managed  by the
-  driver.
-
-  Extension ids are  now strings, rather than 4-byte  tags, as this is
-  usually more readable.
-
-  Each extension has:
-    - some data, associated to each face object
-    - an interface (table of function pointers)
-
-  An extension  that is format-specific should  simply register itself
-  to the correct font driver.  Here is some example code:
-
-   // Registering an extensions
-   //
-   FT_Error  FT_Init_XXXX_Extension( FT_Library  library )
-   {
-     FT_DriverInterface*  tt_driver;
-
-     driver = FT_Get_Driver( library, "truetype" );
-     if (!driver) return FT_Err_Unimplemented_Feature;
-
-     return FT_Register_Extension( driver, &extension_class );
-   }
-
-
-   // Implementing the extensions
-   //
-   FT_Error  FT_Proceed_Extension_XXX( FT_Face  face )
-   {
-     FT_XXX_Extension            ext;
-     FT_XXX_Extension_Interface  ext_interface;
-
-     ext = FT_Get_Extension( face, "extensionid", &ext_interface );
-     if (!ext) return error;
-
-     return ext_interface->do_it(ext);
-   }
-
---- end of CHANGES ---
diff --git a/nx-X11/extras/freetype2/docs/CUSTOMIZE b/nx-X11/extras/freetype2/docs/CUSTOMIZE
deleted file mode 100644
index 8709b3dec..000000000
--- a/nx-X11/extras/freetype2/docs/CUSTOMIZE
+++ /dev/null
@@ -1,125 +0,0 @@
-How to customize the compilation of the library:
-================================================
-
-  FreeType  is  highly  customizable  to  fit various  needs,  and  this
-  document describes how it is possible to select options and components
-  at compilation time.
-
-
-I. Configuration macros
-
-  The file found in "include/freetype/config/ftoption.h" contains a list
-  of commented configuration macros that can be toggled by developers to
-  indicate which features should be active while building the library.
-  
-  These  options  range from  debug  level  to  availability of  certain
-  features, like native TrueType hinting through a bytecode interpreter.
-  
-  We invite you to read this  file for more information.  You can change
-  the file's content to suit your  needs, or override it with one of the
-  techniques described below.
-
-  
-II. Modules list
-
-  The file found in "include/freetype/config/ftmodule.h" contains a list
-  of  names  corresponding  to  the  modules  and  font  drivers  to  be
-  statically compiled in the FreeType library during the build.
-
-  You can change it to suit your own preferences.  Be aware that certain
-  modules depend  on others, as  described by the file  "modules.txt" in
-  this directory.
-
-  You can modify  the file's content to suit your  needs, or override it
-  at compile time with one of the methods described below.
-
-
-III. System interface
-
-  FreeType's default interface to the  system (i.e., the parts that deal
-  with   memory   management   and    i/o   streams)   is   located   in
-  "src/base/ftsystem.c".
-  
-  The  current implementation uses  standard C  library calls  to manage
-  memory and to read font files.  It is however possible to write custom
-  implementations to suit specific systems.
-
-  To  tell  the GNU  Make-based  build system  to  use  a custom  system
-  interface, you  have to define  the environment variable  FTSYS_SRC to
-  point to the relevant implementation:
-  
-    on Unix:
-
-      ./configure <your options>
-      export FTSYS_SRC=foo/my_ftsystem.c
-      make
-      make install
-   
-    on Windows:
-
-      make setup <compiler>
-      set FTSYS_SRC=foo/my_ftsystem.c
-      make
-     
-     
-IV. Overriding default configuration and module headers
-
-  It  is  possible to  override  the  default  configuration and  module
-  headers without changing the original files.  There are two ways to do
-  that:
-
-
-  1. Using the C include path
-  
-    Use the C include path to ensure that your own versions of the files
-    are used at compile time when the lines
-    
-       #include FT_CONFIG_OPTIONS_H
-       #include FT_CONFIG_MODULES_H
-
-    are       compiled.       Their      default       values      being
-    <freetype/config/ftoption.h>  and  <freetype/config/ftmodule.h>, you
-    can do something like:
-
-       custom/
-         freetype/
-           config/
-             ftoption.h    => custom options header
-             ftmodule.h    => custom modules list
-             
-       include/            => normal FreeType 2 include
-         freetype/
-           ...
-
-    then change the  C include path to always give  the path to "custom"
-    before the FreeType 2 "include".
-
-
-  2. Re-defining FT_CONFIG_OPTIONS_H and FT_CONFIG_MODULES_H
-  
-    Another way to  do the same thing is to redefine  the macros used to
-    name  the  configuration headers.   To  do  so,  you need  a  custom
-    "ft2build.h" whose content can be as simple as:
-   
-      #ifndef __FT2_BUILD_MY_PLATFORM_H__
-      #define __FT2_BUILD_MY_PLATFORM_H__
-
-      #define FT_CONFIG_OPTIONS_H  <custom/my-ftoption.h>
-      #define FT_CONFIG_MODULES_H  <custom/my-ftmodule.h>
-
-      #include <freetype/config/ftheader.h>
-
-      #endif /* __FT2_BUILD_MY_PLATFORM_H__ */
-   
-    Place those files in a separate directory, e.g.:
-   
-      custom/
-        ft2build.h           => custom version described above
-        my-ftoption.h        => custom options header
-        my-ftmodule.h        => custom modules list header
-
-    and  change the C  include path  to ensure  that "custom"  is always
-    placed before the FT2 "include" during compilation.
-
-
---- end of CUSTOMIZE ---
diff --git a/nx-X11/extras/freetype2/docs/DEBUG b/nx-X11/extras/freetype2/docs/DEBUG
deleted file mode 100644
index c85ef3cb1..000000000
--- a/nx-X11/extras/freetype2/docs/DEBUG
+++ /dev/null
@@ -1,183 +0,0 @@
-Debugging within the FreeType sources
-=====================================
-
-I. Configuration macros
------------------------
-
-There  are several ways  to enable  debugging features  in a  FreeType 2
-builds.   This is controlled  through the  definition of  special macros
-located in the file "ftoptions.h".  The macros are:
-
-
-  FT_DEBUG_LEVEL_ERROR
-
-    #define this macro  if you want to compile  the FT_ERROR macro calls
-    to  print error messages  during program  execution.  This  will not
-    stop  the  program.   Very  useful  to  spot  invalid  fonts  during
-    development and to code workarounds for them.
-
-  FT_DEBUG_LEVEL_TRACE
-
-    #define this macro  if you want to compile  both macros FT_ERROR and
-    FT_TRACE.   This also  includes the  variants  FT_TRACE0, FT_TRACE1,
-    FT_TRACE2, ..., FT_TRACE6.
-
-    The  trace  macros are  used  to  send  debugging messages  when  an
-    appropriate  "debug  level" is  configured  at  runtime through  the
-    FT2_DEBUG environment variable (more on this later).
-
-  FT_DEBUG_MEMORY
-
-    If  this macro is  #defined, the  FreeType engine  is linked  with a
-    small  but  effective  debugging  memory  manager  that  tracks  all
-    allocations and frees that are performed within the font engine.
-
-    When  the  FT2_DEBUG_MEMORY   environment  variable  is  defined  at
-    runtime,  a call  to FT_Done_FreeType  will dump  memory statistics,
-    including the list of leaked memory blocks with the source locations
-    where these were allocated.  It is always a very good idea to define
-    this in development builds.  This works with _any_ program linked to
-    FreeType, but  requires a big  deal of memory (the  debugging memory
-    manager never frees the blocks to the heap in order to detect double
-    frees).
-
-    When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory
-    manager is ignored, and performance is unaffected.
-
-
-II. Debugging macros
---------------------
-
-Several macros can be used within the FreeType sources to help debugging
-its code:
-
-  1. FT_ERROR(( ... ))
-
-    This macro is  used to send debug messages  that indicate relatively
-    serious  errors (like  broken font  files),  but will  not stop  the
-    execution of  the running program.   Its code is compiled  only when
-    either FT_DEBUG_LEVEL_ERROR  or FT_DEBUG_LEVEL_TRACE are  defined in
-    "ftoption.h".
-
-    Note that you  have to use a printf-like  signature, but with double
-    parentheses, like in:
-
-      FT_ERROR(( "your %s is not %s\n", "foo", "bar" ));
-
-
-  2. FT_ASSERT( condition )
-
-    This macro  is used to check  strong assertions at  runtime.  If its
-    condition isn't TRUE,  the program will abort with  a panic message.
-    Its   code   is  compiled   when   either  FT_DEBUG_LEVEL_ERROR   or
-    FT_DEBUG_LEVEL_TRACE are defined.  You don't need double-parentheses
-    here.  For example:
-
-      FT_ASSERT( ptr != NULL );
-
-
-  3. FT_TRACE( level, (message...) )
-
-    The  FT_TRACE  macro  is  used  to  send  general-purpose  debugging
-    messages during  program execution.   This macro uses  an *implicit*
-    macro named FT_COMPONENT used to name the current FreeType component
-    being run.
-
-    The developer should always  define FT_COMPONENT as appropriate, for
-    example as in:
-
-      #undef  FT_COMPONENT
-      #define FT_COMPONENT  trace_io
-
-    The  value  of  the  FT_COMPONENT  macro  is  an  enumeration  named
-    trace_XXXX where XXXX  is one of the component  names defined in the
-    internal file <freetype/internal/fttrace.h>.
-
-    Each  such component  is assigned  a "debug  level", ranging  from 0
-    to 6,  through  the  use   of  the  FT2_DEBUG  environment  variable
-    (described below) when a program linked with FreeType starts.
-
-    When FT_TRACE  is called, its  level is compared  to the one  of the
-    corresponding component.   Messages with trace  levels *higher* than
-    the corresponding component level are filtered and never printed.
-
-    This  means that  trace messages  with level  0 are  always printed,
-    those with level 2 are only  printed when the component level is *at
-    least* 2.
-
-    The  second  parameter  to  FT_TRACE must  contain  parentheses  and
-    correspond to a printf-like call, as in:
-
-      FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) )
-
-    The shortcut macros  FT_TRACE0, FT_TRACE1, FT_TRACE2_, ... FT_TRACE6
-    can be  used with  constant level indices,  and are much  cleaner to
-    use, as in
-
-     FT_TRACE2(( "your %s is not %s\n", "foo", "bar" ));
-
-
-III. Environment variables
---------------------------
-
-The  following  environment   variables  control  debugging  output  and
-behaviour of FreeType at runtime:
-
-  FT2_DEBUG
-
-    This   variable  is   only  used   when  FreeType   is   built  with
-    FT_DEBUG_LEVEL_TRACE defined.  It contains a list of component level
-    definitions, following this format:
-
-       component1:level1 component2:level2 component3:level3 ...
-
-    where "componentX" is the name of a tracing component, as defined in
-    "fttrace.h",  but  without the  "trace_"  prefix.   "levelX" is  the
-    corresponding level to use at runtime.
-
-    "any"  is a  special  component  name that  will  be interpreted  as
-    "any/all components".  For example, the following definitions
-
-       set FT2_DEBUG=any:2 memory:5 io:4        (on Windows)
-       export FT2_DEBUG="any:2 memory:5 io:4"   (on Linux with bash)
-
-    both stipulate that  all components should have level  2, except for
-    the memory  and io components  which will be  set to trace  levels 5
-    and 4, respectively.
-
-  FT2_DEBUG_MEMORY
-
-    This  environment variable, when  defined, tells  FreeType to  use a
-    debugging memory  manager that will  track leaking memory  blocks as
-    well as other  common errors like double frees.   It is also capable
-    of  reporting  _where_  the  leaking blocks  were  allocated,  which
-    considerably saves time when debugging new additions to the library.
-
-    This  code  is  only  compiled  when  FreeType  is  built  with  the
-    FT_DEBUG_MEMORY macro  #defined in  "ftoption.h" though, it  will be
-    ignored in other builds.
-
-  FT2_ALLOC_TOTAL_MAX
-
-    This  variable is ignored  if FT2_DEBUG_MEMORY  is not  defined.  It
-    allows you to specify a maximum heap size for all memory allocations
-    performed by FreeType.   This is very useful to  test the robustness
-    of  the  font  engine and  programs  that  use  it in  tight  memory
-    conditions.
-    
-    If it is  undefined, or if its value is  not strictly positive, then
-    no allocation bounds are checked at runtime.
-
-  FT2_ALLOC_COUNT_MAX
-  
-    This  variable is ignored  if FT2_DEBUG_MEMORY  is not  defined.  It
-    allows  you  to  specify  a  maximum number  of  memory  allocations
-    performed    by     FreeType    before    returning     the    error
-    FT_Err_Out_Of_Memory.  This is useful  for debugging and testing the
-    engine's robustness.
-    
-    If it is  undefined, or if its value is  not strictly positive, then
-    no allocation bounsd are checked at runtime.
-
-
---- end of DEBUG ---
diff --git a/nx-X11/extras/freetype2/docs/FTL.txt b/nx-X11/extras/freetype2/docs/FTL.txt
deleted file mode 100644
index 096730273..000000000
--- a/nx-X11/extras/freetype2/docs/FTL.txt
+++ /dev/null
@@ -1,174 +0,0 @@
-                    The FreeType Project LICENSE
-                    ----------------------------
-
-                            2002-Apr-11
-
-                       Copyright 1996-2002 by
-          David Turner, Robert Wilhelm, and Werner Lemberg
-
-
-
-Introduction
-============
-
-  The FreeType  Project is distributed in  several archive packages;
-  some of them may contain, in addition to the FreeType font engine,
-  various tools and  contributions which rely on, or  relate to, the
-  FreeType Project.
-
-  This  license applies  to all  files found  in such  packages, and
-  which do not  fall under their own explicit  license.  The license
-  affects  thus  the  FreeType   font  engine,  the  test  programs,
-  documentation and makefiles, at the very least.
-
-  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
-  (Independent JPEG  Group) licenses, which  all encourage inclusion
-  and  use of  free  software in  commercial  and freeware  products
-  alike.  As a consequence, its main points are that:
-
-    o We don't promise that this software works. However, we will be
-      interested in any kind of bug reports. (`as is' distribution)
-
-    o You can  use this software for whatever you  want, in parts or
-      full form, without having to pay us. (`royalty-free' usage)
-
-    o You may not pretend that  you wrote this software.  If you use
-      it, or  only parts of it,  in a program,  you must acknowledge
-      somewhere  in  your  documentation  that  you  have  used  the
-      FreeType code. (`credits')
-
-  We  specifically  permit  and  encourage  the  inclusion  of  this
-  software, with  or without modifications,  in commercial products.
-  We  disclaim  all warranties  covering  The  FreeType Project  and
-  assume no liability related to The FreeType Project.
-
-
-  Finally,  many  people  asked  us  for  a  preferred  form  for  a
-  credit/disclaimer to use in compliance with this license.  We thus
-  encourage you to use the following text:
-
-   """  
-    Portions of this software are copyright � 1996-2002 The FreeType
-    Project (www.freetype.org).  All rights reserved.
-   """
-
-
-Legal Terms
-===========
-
-0. Definitions
---------------
-
-  Throughout this license,  the terms `package', `FreeType Project',
-  and  `FreeType  archive' refer  to  the  set  of files  originally
-  distributed  by the  authors  (David Turner,  Robert Wilhelm,  and
-  Werner Lemberg) as the `FreeType Project', be they named as alpha,
-  beta or final release.
-
-  `You' refers to  the licensee, or person using  the project, where
-  `using' is a generic term including compiling the project's source
-  code as  well as linking it  to form a  `program' or `executable'.
-  This  program is  referred to  as  `a program  using the  FreeType
-  engine'.
-
-  This  license applies  to all  files distributed  in  the original
-  FreeType  Project,   including  all  source   code,  binaries  and
-  documentation,  unless  otherwise  stated   in  the  file  in  its
-  original, unmodified form as  distributed in the original archive.
-  If you are  unsure whether or not a particular  file is covered by
-  this license, you must contact us to verify this.
-
-  The FreeType  Project is copyright (C) 1996-2000  by David Turner,
-  Robert Wilhelm, and Werner Lemberg.  All rights reserved except as
-  specified below.
-
-1. No Warranty
---------------
-
-  THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
-  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
-  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
-  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
-  BE LIABLE  FOR ANY DAMAGES CAUSED  BY THE USE OR  THE INABILITY TO
-  USE, OF THE FREETYPE PROJECT.
-
-2. Redistribution
------------------
-
-  This  license  grants  a  worldwide, royalty-free,  perpetual  and
-  irrevocable right  and license to use,  execute, perform, compile,
-  display,  copy,   create  derivative  works   of,  distribute  and
-  sublicense the  FreeType Project (in  both source and  object code
-  forms)  and  derivative works  thereof  for  any  purpose; and  to
-  authorize others  to exercise  some or all  of the  rights granted
-  herein, subject to the following conditions:
-
-    o Redistribution of  source code  must retain this  license file
-      (`FTL.TXT') unaltered; any  additions, deletions or changes to
-      the original  files must be clearly  indicated in accompanying
-      documentation.   The  copyright   notices  of  the  unaltered,
-      original  files must  be  preserved in  all  copies of  source
-      files.
-
-    o Redistribution in binary form must provide a  disclaimer  that
-      states  that  the software is based in part of the work of the
-      FreeType Team,  in  the  distribution  documentation.  We also
-      encourage you to put an URL to the FreeType web page  in  your
-      documentation, though this isn't mandatory.
-
-  These conditions  apply to any  software derived from or  based on
-  the FreeType Project,  not just the unmodified files.   If you use
-  our work, you  must acknowledge us.  However, no  fee need be paid
-  to us.
-
-3. Advertising
---------------
-
-  Neither the  FreeType authors and  contributors nor you  shall use
-  the name of the  other for commercial, advertising, or promotional
-  purposes without specific prior written permission.
-
-  We suggest,  but do not require, that  you use one or  more of the
-  following phrases to refer  to this software in your documentation
-  or advertising  materials: `FreeType Project',  `FreeType Engine',
-  `FreeType library', or `FreeType Distribution'.
-
-  As  you have  not signed  this license,  you are  not  required to
-  accept  it.   However,  as  the FreeType  Project  is  copyrighted
-  material, only  this license, or  another one contracted  with the
-  authors, grants you  the right to use, distribute,  and modify it.
-  Therefore,  by  using,  distributing,  or modifying  the  FreeType
-  Project, you indicate that you understand and accept all the terms
-  of this license.
-
-4. Contacts
------------
-
-  There are two mailing lists related to FreeType:
-
-    o freetype@freetype.org
-
-      Discusses general use and applications of FreeType, as well as
-      future and  wanted additions to the  library and distribution.
-      If  you are looking  for support,  start in  this list  if you
-      haven't found anything to help you in the documentation.
-
-    o devel@freetype.org
-
-      Discusses bugs,  as well  as engine internals,  design issues,
-      specific licenses, porting, etc.
-
-    o http://www.freetype.org
-
-      Holds the current  FreeType web page, which will  allow you to
-      download  our  latest  development  version  and  read  online
-      documentation.
-
-  You can also contact us individually at:
-
-    David Turner      <david.turner@freetype.org>
-    Robert Wilhelm    <robert.wilhelm@freetype.org>
-    Werner Lemberg    <werner.lemberg@freetype.org>
-
-
---- end of LICENSE.TXT ---
diff --git a/nx-X11/extras/freetype2/docs/GPL.txt b/nx-X11/extras/freetype2/docs/GPL.txt
deleted file mode 100644
index e8a612e5c..000000000
--- a/nx-X11/extras/freetype2/docs/GPL.txt
+++ /dev/null
@@ -1,339 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	Appendix: How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
diff --git a/nx-X11/extras/freetype2/docs/INSTALL b/nx-X11/extras/freetype2/docs/INSTALL
deleted file mode 100644
index 8fb665759..000000000
--- a/nx-X11/extras/freetype2/docs/INSTALL
+++ /dev/null
@@ -1,67 +0,0 @@
-
-There are several ways to  build the FreeType library, depending on your
-system  and  the level  of  customization you  need.   Here  is a  short
-overview of the documentation available:
-
-
-I. Normal installation and upgrades
-===================================
-
-  1. Native TrueType Hinting
-
-    Native TrueType  hinting is disabled  by default[1].  If  you really
-    need it, read the file "TRUETYPE" for information.
-
-  2. Unix Systems (as well as Cygwin or MSys on Windows)
-
-    Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade
-    FreeType 2  on a Unix system.   Note that you *will*  need GNU Make,
-    since other make tools won't work (this includes BSD Make).
-
-  3. On VMS with the "mms" build tool
-  
-    See INSTALL.VMS for installation instructions on this platform.
-
-  4. Other systems using GNU Make
-  
-    On non-Unix platforms, it is possible to build the library using GNU
-    Make utility.   Note that  *NO OTHER MAKE  TOOL WILL  WORK*[2]! This
-    methods  supports  several compilers  on  Windows,  OS/2, and  BeOS,
-    including Mingw, Visual C++, Borland C++, and more.
-
-    Instructions are provided in the file "INSTALL.GNU".
-
-  5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior)
-  
-    We provide  a small  number of "project  files" for various  IDEs to
-    automatically build the library as  well.  Note that these files are
-    not supported and sporadically maintained by FreeType developers, so
-    don't expect them to work in each release.
-    
-    To find  them, have a look  at the content  of the "builds/<system>"
-    directory, where <system> stands for your OS or environment.
-
-  6. From you own IDE, or own Makefiles
-  
-    If you want to create your own project file, follow the instructions
-    given in the "INSTALL.ANY" document of this directory.
-
-
-II. Custom builds of the library
-================================
-
-  Customizing the  compilation of  FreeType is easy,  and allows  you to
-  select only  the components of the  font engine that  you really need.
-  For more details read the file "CUSTOMIZE".
-
-
-------------------------------------------------------------------------
-
-[1] More details on:  http://www.freetype.org/patents.html
-
-[2] make++, a  make tool written in Perl, has  sufficient support of GNU
-    make       extensions       to       build      FreeType.        See
-    http://makepp.sourceforge.net for more information; you need version
-    1.19 or newer, and you must pass option `--norc-substitution'.
-
---- end of INSTALL ---
diff --git a/nx-X11/extras/freetype2/docs/INSTALL.ANY b/nx-X11/extras/freetype2/docs/INSTALL.ANY
deleted file mode 100644
index af3f6e7a3..000000000
--- a/nx-X11/extras/freetype2/docs/INSTALL.ANY
+++ /dev/null
@@ -1,99 +0,0 @@
-Instructions on how to build FreeType with your own build tool
-==============================================================
-
-See the file "CUSTOMIZE" to  learn how to customize FreeType to specific
-environments.
-
-
-I. Standard procedure
----------------------
-
-  * DISABLE  PRE-COMPILED HEADERS!   This is  very important  for Visual
-    C++, because FreeType uses lines like:
-    
-      #include FT_FREETYPE_H
-    
-    which are not correctly supported by this compiler while being ISO C
-    compliant!
-
-  * You need to add  the directories "freetype2/include" to your include
-    path when compiling the library.
-
-  * FreeType 2 is made of several components; each of them is located in
-    a     subdirectory     of     "freetype2/src".      For     example,
-    'freetype2/src/truetype/' contains the TrueType font driver.
-
-  * DO NOT COMPILE ALL C FILES!  Rather, compile the following ones:
-
-    -- base components (required)
-
-      src/base/ftsystem.c
-      src/base/ftinit.c
-      src/base/ftdebug.c
-      src/base/ftbase.c
-      src/base/ftglyph.c
-      src/base/ftbbox.c
-      src/base/ftmm.c
-      src/base/ftpfr.c        -- optional, see <freetype/ftpfr.h>
-      src/base/ftbdf.c        -- optional, see <freetype/ftbdf.h>
-      src/base/ftwinfnt.c     -- optional, see <freetype/ftwinfnt.h>
-
-      src/base/ftmac.c        -- only on the Macintosh
-
-    -- other components (optional)
-
-      src/autohint/autohint.c -- auto hinting module
-      src/cache/ftcache.c     -- cache sub-system (in beta)
-      src/sfnt/sfnt.c         -- SFNT files support
-                                 (TrueType & OpenType)
-      src/cff/cff.c           -- CFF/OpenType font driver
-      src/pfr/pfr.c           -- PFR/TrueDoc font driver
-      src/bdf/bdf.c           -- BDF font driver
-      src/pcf/pcf.c           -- PCF font driver
-      src/psnames/psnames.c   -- PostScript glyph names support
-      src/psaux/psaux.c       -- PostScript Type 1 parsing
-      src/truetype/truetype.c -- TrueType font driver
-      src/type1/type1.c       -- Type 1 font driver
-      src/cid/type1cid.c      -- Type 1 CID-keyed font driver
-      src/winfonts/winfonts.c -- Windows FONT / FNT font driver
-      src/raster1/raster1.c   -- monochrome rasterizer
-      src/smooth/smooth.c     -- anti-aliasing rasterizer
-
-    Notes:
-
-      `truetype.c' needs `sfnt.c' and `psnames.c'
-      `type1.c'    needs `psaux.c' and `psnames.c'
-      `type1cid.c' needs `psaux.c' and `psnames.c'
-      `cff.c'      needs `sfnt.c', `psaux.c', and `psnames.c'
-
-
-  You are done.   In case of problems, see the  archives of the FreeType
-  development mailing list.
-
-
-II. Support for flat-directory compilation
-------------------------------------------
-
-  It  is possible  to put  all  FreeType 2  source files  into a  single
-  directory, with the *exception* of the `include' hierarchy.
-
-  1. Copy all files in current directory
-
-      cp freetype2/src/base/*.[hc] .
-      cp freetype2/src/raster1/*.[hc] .
-      cp freetype2/src/smooth/*.[hc] .
-      etc.
-
-  2. Compile sources
-
-      cc -c -Ifreetype2/include ftsystem.c
-      cc -c -Ifreetype2/include ftinit.c
-      cc -c -Ifreetype2/include ftdebug.c
-      cc -c -Ifreetype2/include ftbase.c
-      etc.
-
-    You don't need to define  the FT_FLAT_COMPILATION macro (as this was
-    required in previous releases of FreeType 2).
-
-
---- end of INSTALL.ANY ---
diff --git a/nx-X11/extras/freetype2/docs/INSTALL.GNU b/nx-X11/extras/freetype2/docs/INSTALL.GNU
deleted file mode 100644
index 4a56d6d6d..000000000
--- a/nx-X11/extras/freetype2/docs/INSTALL.GNU
+++ /dev/null
@@ -1,140 +0,0 @@
-This document contains instructions how to build the FreeType library on
-non-Unix  systems with  the help  of  GNU Make.   Note that  if you  are
-running Cygwin or MSys in Windows, you should follow the instructions in
-the file INSTALL.UNX instead.
-
-
-  FreeType 2 includes  a powerful and flexible build  system that allows
-  you to  easily compile  it on  a great variety  of platforms  from the
-  command line.  To do so, just follow these simple instructions:
-
-  1. Install GNU Make
-  -------------------
-
-    Because  GNU  Make  is  the  only Make  tool  supported  to  compile
-    FreeType 2, you should install it on your machine.
-
-    The FreeType 2  build system relies on many  features special to GNU
-    Make --  trying to build the  library with any other  Make tool will
-    *fail*.
-
-    NEARLY  ALL OTHER  MAKE TOOLS  WILL FAIL,  INCLUDING "BSD  MAKE", SO
-    REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
-
-    Note  that make++,  a make  tool  written in  Perl, supports  enough
-    features    of    GNU     make    to    compile    FreeType.     See
-    http://makepp.sourceforge.net for more information; you need version
-    1.19 or newer, and you must pass option `--norc-substitution'.
-
-    Make sure that  you are invoking GNU Make from  the command line, by
-    typing something like:
-
-      make -v
-
-    to display its version number.
-
-    VERSION 3.78.1 OR NEWER IS NEEDED!
-
-
-  2. Invoke 'make'
-  ----------------
-
-    Go to the root directory of  FreeType 2, then simply invoke GNU Make
-    from  the  command line.   This  will  launch  the FreeType  2  host
-    platform  detection  routines.  A  summary  will  be displayed,  for
-    example, on Win32:
-
-
-      ==============================================================
-      FreeType build system -- automatic system detection
-
-      The following settings are used:
-
-        platform                     win32
-        compiler                     gcc
-        configuration directory      ./builds/win32
-        configuration rules          ./builds/win32/w32-gcc.mk
-
-      If this does not correspond to your system or settings please
-      remove the file 'config.mk' from this directory then read the
-      INSTALL file for help.
-
-      Otherwise, simply type 'make' again to build the library.
-      =============================================================
-
-
-    If the  detected settings correspond to your  platform and compiler,
-    skip to step  5.  Note that if your platform  is completely alien to
-    the build system, the detected platform will be 'ansi'.
-
-
-  3. Configure the build system for a different compiler
-  ------------------------------------------------------
-
-    If the build  system correctly detected your platform,  but you want
-    to use  a different compiler than  the one specified  in the summary
-    (for most  platforms, gcc is  the defaut compiler), invoke  GNU Make
-    with
-
-      make setup <compiler>
-
-    Examples:
-
-      to use Visual C++ on Win32, type:  "make setup visualc"
-      to use Borland C++ on Win32, type  "make setup bcc32"
-      to use Watcom C++ on Win32, type   "make setup watcom"
-      to use Intel C++ on Win32, type    "make setup intelc"
-      to use LCC-Win32 on Win32, type:   "make setup lcc"
-      to use Watcom C++ on OS/2, type    "make setup watcom"
-      to use VisualAge C++ on OS/2, type "make setup visualage"
-
-    The  <compiler> name  to  use is  platform-dependent.   The list  of
-    available  compilers  for  your  system  is available  in  the  file
-    `builds/<system>/detect.mk'
-
-    If  you are  satisfied by  the  new configuration  summary, skip  to
-    step 5.
-
-
-  4. Configure the build system for an unknown platform/compiler
-  --------------------------------------------------------------
-
-    The auto-detection/setup phase of the  build system copies a file to
-    the current directory under the name `config.mk'.
-
-    For    example,    on     OS/2+gcc,    it    would    simply    copy
-    `builds/os2/os2-gcc.mk' to `./config.mk'.
-
-    If  for some  reason your  platform isn't  correctly  detected, copy
-    manually the  configuration sub-makefile to `./config.mk'  and go to
-    step 5.
-
-    Note that this file is a sub-Makefile used to specify Make variables
-    for compiler and linker invocation during the build.  You can easily
-    create  your own  version  from one  of  the existing  configuration
-    files,  then  copy  it  to  the current  directory  under  the  name
-    `./config.mk'.
-
-
-  5. Build the library
-  --------------------
-
-    The  auto-detection/setup phase  should have  copied a  file  in the
-    current  directory,   called  `./config.mk'.   This   file  contains
-    definitions of  various Make variables  used to invoke  the compiler
-    and linker during the build.
-
-    To launch the build, simply  invoke GNU Make again: The top Makefile
-    will detect the configuration file and run the build with it.
-
-
-  Final note
-  
-    The  build system  builds a  statically linked  library of  the font
-    engine in the "objs" directory.   It does _not_ support the build of
-    DLLs on Windows and OS/2.  If you need these, you have to either use
-    a  IDE-specific   project  file,  or  follow   the  instructions  in
-    "INSTALL.ANY" to create your own Makefiles.
-
-
---- end of INSTALL.GNU ---
diff --git a/nx-X11/extras/freetype2/docs/INSTALL.UNX b/nx-X11/extras/freetype2/docs/INSTALL.UNX
deleted file mode 100644
index d5a45c042..000000000
--- a/nx-X11/extras/freetype2/docs/INSTALL.UNX
+++ /dev/null
@@ -1,65 +0,0 @@
-This document contains instructions on how to build the FreeType library
-on Unix systems.  This also works for emulations like  Cygwin or MSys on
-Win32:
-
-
-  1. Ensure that you are using GNU Make
-  -------------------------------------
-
-    The FreeType  build system _exclusively_  works with GNU  Make.  You
-    will not be able to  compile the library with the instructions below
-    using any other alternative (including BSD Make).
-
-    [Well, this is not  really correct.  Recently, a perl implementation
-    of make called `makepp' has appeared which can also build FreeType 2
-    successfully  on Unix platforms.   See http://makepp.sourceforge.net
-    for more details; you need version 1.19 or newer,  and you must pass
-    option `--norc-substitution'.]
-
-    Trying to compile the library  with a different Make tool will print
-    a message like:
-
-      Sorry, GNU make is required to build FreeType2.
-
-    and the build process will be aborted.  If this happens, install GNU
-    Make on  your system,  and use the  GNUMAKE environment  variable to
-    name it.
-
-
-  2. Build and install the library
-  --------------------------------
-
-    The  following should  work on  all  Unix systems  where the  `make'
-    command invokes GNU Make:
-
-      ./configure [options]
-      make
-      make install           (as root)
-
-    The default  installation path is  "/usr/local".  It can  be changed
-    with the `--prefix=<path>' option.  Example:
-
-      ./configure --prefix=/usr
-
-    When using a  different command to invoke GNU  Make, use the GNUMAKE
-    variable.  For  example, if  `gmake' is the  command to use  on your
-    system, do something like:
-
-       GNUMAKE=gmake ./configure [options]
-       gmake
-       gmake install            (as root)
-
-    If  this  still  doesn't   work,  something's rotten on your system
-    (e.g. you are using a very old version of GNU Make).
-
-    It  is  possible  to  compile  FreeType in  a  different  directory.
-    Assuming the  FreeType source  files in directory  `/src/freetype' a
-    compilation in directory `foo' works as follows:
-
-      cd foo
-      /src/freetype/configure [options]
-      make
-      make install
-
-
---- end of INSTALL.UNX --
diff --git a/nx-X11/extras/freetype2/docs/INSTALL.VMS b/nx-X11/extras/freetype2/docs/INSTALL.VMS
deleted file mode 100644
index 4d9d64ca2..000000000
--- a/nx-X11/extras/freetype2/docs/INSTALL.VMS
+++ /dev/null
@@ -1,36 +0,0 @@
-How to build the freetype2 library on VMS
------------------------------------------
-
-Just type one of the following depending on the type of external entries
-you want:
-
-  mms
-
-or
-
-  mms/macro=("COMP_FLAGS=/name=(as_is,short)")
-
-The library is avalaible in the directory
-
-  [.LIB]
-
-To compile applications using FreeType  2 you have to define the logical
-FREETYPE pointing to the directory
-
-  [.INCLUDE.FREETYPE]
-
-i.e.,  if the directory  in which  this INSTALL.VMS  file is  located is
-$disk:[freetype] then define the logical with
-
-  define freetype $disk:[freetype.include.freetype]
-
-This version  has been  tested with Compaq  C V6.2-006 on  OpenVMS Alpha
-V7.2-1.
-
-
-  Any problems can be reported to
-
-    Jouk Jansen <joukj@hrem.stm.tudelft.nl>
-
-
---- end of INSTALL.VMS ---
diff --git a/nx-X11/extras/freetype2/docs/PATENTS b/nx-X11/extras/freetype2/docs/PATENTS
deleted file mode 100644
index 717bb7d3f..000000000
--- a/nx-X11/extras/freetype2/docs/PATENTS
+++ /dev/null
@@ -1,27 +0,0 @@
-
-                    FreeType Patents Disclaimer
-                            August 1999
-
-
-
-WE HAVE  DISCOVERED THAT APPLE  OWNS SEVERAL PATENTS RELATED  TO THE
-RENDERING OF TRUETYPE  FONTS.  THIS COULD MEAN THAT  THE FREE USE OF
-FREETYPE  MIGHT BE  ILLEGAL IN  THE USA,  JAPAN, AND  POSSIBLY OTHER
-COUNTRIES, BE IT IN COMMERCIAL OR OPEN SOURCE PRODUCTS.
-
-FOR  MORE DETAILS,  WE STRONGLY  ADVISE YOU  TO GO  TO  THE FREETYPE
-PATENTS PAGE AT THE FOLLOWING WEB ADDRESS:
-
-                http://www.freetype.org/patents.html
-
-WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL
-UNDETERMINED FOR NOW.  AT THE  TIME THESE LINES ARE WRITTEN, WE HAVE
-CONTACTED APPLE'S  LEGAL DEPARTMENT AND ARE STILL  WAITING FOR THEIR
-ANSWER ON THE SUBJECT.
-
-PLEASE READ  THE `INSTALL' FILE TO  SEE HOW TO  DISABLE THE ENGINE'S
-BYTECODE INTERPRETER IN ORDER TO  BUILD A PATENT-FREE ENGINE, AT THE
-COST OF RENDERING QUALITY.
-
-
---- end of PATENTS ---
diff --git a/nx-X11/extras/freetype2/docs/TODO b/nx-X11/extras/freetype2/docs/TODO
deleted file mode 100644
index 592809acf..000000000
--- a/nx-X11/extras/freetype2/docs/TODO
+++ /dev/null
@@ -1,23 +0,0 @@
-Here is a list of items that need to be addressed in FreeType 2; they are
-not exactly bugs, but should be considered though:
-
-* Implement stem3/counter hints properly in the Postscript hinter.
-
-* Finalize the cache sub-system.  It has been in beta far too long :-)
-
-* The automatic and Postscript hinters have been improved to increase
-  the quality of AA text, but Monochrome and LCD hinting still suck.  We
-  need to do something about that.
-
-* Add CIDCMap support to the CID driver.
-
-* Add track kerning support to the Type1 and PFR driver and the API
-  (The degree of kerning, e.g. light, normal or tight, and
-  the glyph size has to be passed as parameter).
-
-* Add kerning (AFM file) support to the CID driver.
-
-* Possibly add support for reading PFM files.
-
-
---- end of TODO ---
diff --git a/nx-X11/extras/freetype2/docs/TRUETYPE b/nx-X11/extras/freetype2/docs/TRUETYPE
deleted file mode 100644
index 68ecf1971..000000000
--- a/nx-X11/extras/freetype2/docs/TRUETYPE
+++ /dev/null
@@ -1,26 +0,0 @@
-How to enable the TrueType native hinter if you need it
---------------------------------------------------------
-
-  The TrueType  bytecode interpreter is disabled in  all public releases
-  of    the    FreeType    packages    for    patents    reasons    (see
-  http://www.freetype.org/patents.html for more details).
-
-  However,  many Linux distributions  do enable  the interpreter  in the
-  FreeType packages (DEB/RPM/etc.) they produce for their platforms.  If
-  you are using TrueType fonts on your system, you most probably want to
-  enable it manually by doing the following:
-
-    - open the file "include/freetype/config/ftoption.h"
-
-    - locate a line that says:
-
-          #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    - change it to:
-
-          #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  These steps must be done _before_ compiling the library.
-
-
---- end of TRUETYPE ---
diff --git a/nx-X11/extras/freetype2/docs/UPGRADE.UNX b/nx-X11/extras/freetype2/docs/UPGRADE.UNX
deleted file mode 100644
index 0246b97c7..000000000
--- a/nx-X11/extras/freetype2/docs/UPGRADE.UNX
+++ /dev/null
@@ -1,127 +0,0 @@
-
-SPECIAL NOTE FOR UNIX USERS
-===========================
-
-  If  you are  installing  this release  of  FreeType on  a system  that
-  already uses  release 2.0.5  (or even an  older version), you  have to
-  perform a few special steps to ensure that everything goes well.
-
-
-  1. Enable the TrueType bytecode hinter if you need it
-  -----------------------------------------------------
-
-    See the instructions in the file "TRUETYPE" of this directory.
-   
-    Note  that FreeType  supports  TrueType fonts  without the  bytecode
-    interpreter through its  auto-hinter, which now generates relatively
-    good results with most fonts.
-
-
-  2. Determine the correct installation path
-  ------------------------------------------
-
-    By  default,  the  configure  script  will install  the  library  in
-    "/usr/local".   However,  many Unix  distributions  now install  the
-    library  in "/usr",  since FreeType  is becoming  a  critical system
-    component.
-
-    If FreeType is already installed on your system, type
-
-      freetype-config --prefix
-
-    on  the command  line.   This should  return  the installation  path
-    (e.g.,  "/usr"  or "/usr/local").   To  avoid  problems of  parallel
-    FreeType  versions, use  this path  for the  --prefix option  of the
-    configure script.
-
-    Otherwise, simply use "/usr" (or  whatever you think is adequate for
-    your installation).
-
-
-  3. Ensure that you are using GNU Make
-  -------------------------------------
-
-    The FreeType build  system _exclusively_ works with GNU  Make (as an
-    exception you  can use make++ which emulates  GNU Make sufficiently;
-    see http://makepp.sourceforge.net).  You will not be able to compile
-    the library with the  instructions below using any other alternative
-    (including BSD Make).
-
-    Trying to compile the library  with a different Make tool will print
-    a message like:
-
-      Sorry, GNU make is required to build FreeType2.
-
-    and the build process will be aborted.  If this happens, install GNU
-    Make on  your system,  and use the  GNUMAKE environment  variable to
-    name it.
-
-
-  4. Build and install the library
-  --------------------------------
-
-    The  following should  work on  all  Unix systems  where the  `make'
-    command invokes GNU Make:
-
-      ./configure --prefix=<yourprefix>
-      make
-      make install           (as root)
-
-    where "<yourprefix>" must be replaced  by the prefix returned by the
-    "freetype-config" command.
-
-    When using a  different command to invoke GNU  Make, use the GNUMAKE
-    variable.  For  example, if  `gmake' is the  command to use  on your
-    system, do something like:
-
-       GNUMAKE=gmake ./configure --prefix=<yourprefix>
-       gmake
-       gmake install            (as root)
-
-
-  5. Take care of XFree86 version 4
-  ---------------------------------
-
-    Certain recent  Linux distributions will  install _several_ versions
-    of FreeType  on your system.  For  example, on a  fresh Mandrake 8.1
-    system, you can find the following files:
-
-      /usr/lib/libfreetype.so             which links to
-      /usr/lib/libfreetype.6.1.0.so
-
-    and
-
-      /usr/X11R6/lib/libfreetype.so       which links to
-      /usr/X11R6/lib/libfreetype.6.0.so
-
-    Note that  these files  correspond to two  distinct versions  of the
-    library!  It seems that this  surprising issue is due to the install
-    scripts of  recent XFree86 servers (from 4.1.0)  which install their
-    own (dated) version of the library in "/usr/X11R6/lib".
-
-    In certain  _rare_ cases  you may experience  minor problems  if you
-    install this  release of  the library in  "/usr" only,  namely, that
-    certain  applications  will  not  benefit  from the  bug  fixes  and
-    rendering improvements you would expect.
-
-    There are two good ways to deal with this situation:
-
-      - Install the library _twice_,  in "/usr" and in "/usr/X11R6" (you
-        have to  do that  each time you  install a new  FreeType release
-        though).
-
-      - Change the link in /usr/X11R6/lib/libfreetype.so to point to
-
-          /usr/lib/libfreetype.so,
-
-        and get rid of
-
-          /usr/X11R6/lib/libfreetype.6.0.so
-
-    The FreeType  Team is  not responsible for  this problem,  so please
-    contact  either   the  XFree86   development  team  or   your  Linux
-    distributor to help  clear this issue in case  the information given
-    here doesn't help.
-
-
----- end of UPGRADE.UNX ---
diff --git a/nx-X11/extras/freetype2/docs/VERSION.DLL b/nx-X11/extras/freetype2/docs/VERSION.DLL
deleted file mode 100644
index 9e27a57d2..000000000
--- a/nx-X11/extras/freetype2/docs/VERSION.DLL
+++ /dev/null
@@ -1,110 +0,0 @@
-Due  to our  use of  "libtool" to  generate and  install the  FreeType 2
-libraries on  Unix systems,  as well as  other historical events,  it is
-generally very  difficult to  know precisely which  release of  the font
-engine is installed on a given system.
-
-This file tries  to explain why and to document  ways to properly detect
-FreeType on Unix.
-
-
-1. Version & Release numbers
-----------------------------
-
-For each new  public release of FreeType 2,  there are generally *three*
-distinct "version" numbers to consider:
-
-  * The official FT2 release number, like 2.0.9, or 2.1.3.
-
-  * The libtool (and Unix)  specific version number, like "9.2.3".  This
-    is what "freetype-config --version" will return.
-
-  * The platform-specific  shared object  number, used for  example when
-    the library is installed as "/usr/lib/libfreetype.so.6.3.2".
-
-The platform-specific  number is, unsurprisingly,  platform-specific and
-varies  with the  operating system  you are  using (several  variants of
-Linux, FreeBSD,  Solaris, etc.).  You  should thus _never_ use  it, even
-for simple tests.
-
-The libtool-specific  number does  not equal the  release number  but is
-tied to it.
-
-The release number is available  at *compile* time through the following
-macros defined in FT_FREETYPE_H:
-
-  - FREETYPE_MAJOR : major release number
-  - FREETYPE_MINOR : minor release number
-  - FREETYPE_PATCH : patch release number
-
-See below for a small autoconf fragment.
-
-The  release   number  is  also  available  at   *runtime*  through  the
-"FT_Library_Version" API.   Unfortunately, this one  wasn't available or
-working correctly before the 2.1.3 official release.
-
-
-2. History
-----------
-
-The following table gives,  for each official release, the corresponding
-libtool  number, as well  as the  shared object  number found  on _most_
-systems, but not all of them:
-
-    release    libtool      so
-  -------------------------------
-     2.1.9      9.7.3     6.3.7
-     2.1.8      9.6.3     6.3.6
-     2.1.7      9.5.3     6.3.5
-     2.1.6      9.5.3     6.3.5
-     2.1.5      9.4.3     6.3.4
-     2.1.4      9.3.3     6.3.3
-     2.1.3      9.2.3     6.3.2
-     2.1.2      9.1.3     6.3.1
-     2.1.1      9.0.3         ?
-     2.1.0      8.0.2         ?
-     2.0.9      9.0.3         ?
-     2.0.8      8.0.2         ?
-     2.0.4      7.0.1         ?
-     2.0.1      6.1.0         ?
-
-The libtool numbers are a bit inconsistent due to the library's history:
-
-  - 2.1.0 was created as a development branch from 2.0.8 (hence the same
-    libtool numbers).
-
-  - 2.0.9  was  a  bug-fix  release  of  the  "stable"  branch,  and  we
-    incorrectly increased its libtool number.
-
-  - 2.1.4 is  still in  the "development" branch,  however it  is stable
-    enough to be the basis of an upcoming 2.2.0 release.
-
-
-3. Autoconf Code Fragment
--------------------------
-
-Lars Clausen contributed the following autoconf fragment to detect which
-version of  FreeType is  installed on  a system.  This  one tests  for a
-version that  is at least 2.0.9;  you should change  it to check against
-other release numbers.
-
-
-  AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
-  old_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS=`freetype-config --cflags`
-  AC_TRY_CPP([
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
-#error Freetype version too low.
-#endif
-  ],
-  [AC_MSG_RESULT(yes)
-   FREETYPE_LIBS=`freetype-config --libs`
-   AC_SUBST(FREETYPE_LIBS)
-   AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
-   CPPFLAGS="$old_CPPFLAGS"],
-  [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
-
-
---- end of VERSION.DLL ---
diff --git a/nx-X11/extras/freetype2/docs/formats.txt b/nx-X11/extras/freetype2/docs/formats.txt
deleted file mode 100644
index b11f6c409..000000000
--- a/nx-X11/extras/freetype2/docs/formats.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-This file contains a list of various font formats.  It gives the
-reference document and whether it is supported in FreeType 2.
-
-
-  file type:
-    The only special case is `MAC'; on older Mac OS versions, a `file'
-    is stored as a data and a resource fork, this is, within two
-    separate data chunks.  In all other cases, the font data is stored
-    in a single file.
-
-  wrapper format:
-    The format used to represent the font data.  In the table below it
-    is used only if the font format differs.  Possible values are
-    `SFNT' (binary), `PS' (a text header, followed by binary or text
-    data), and `LZW' (compressed with either `gzip' or `compress').
-
-  font format:
-    How the font is to be accessed, possibly after converting the file
-    type and wrapper format into a generic form.  Bitmap formats are
-    `BDF', `PCF', and one form of `WINFNT'; all others are vector
-    formats.
-
-  font type:
-    Sub-formats of the font format.  `SBIT' and `MACSBIT' are bitmap
-    formats, `MM' and `VAR' support optical axes.
-
-  glyph access:
-    If not specified, the glyph access is `standard' to the font
-    format.  Values are `CID' for CID-keyed fonts, `SYNTHETIC' for
-    fonts which are modified versions of other fonts by means of a
-    transformation matrix, `COLLECTION' for collecting multiple fonts
-    (sharing most of the data) into a single file, and `TYPE_0' for PS
-    fonts which are to be accessed in a tree-like structure.
-
-  FreeType driver:
-    The module in the FreeType library which handles the specific font
-    format.  A missing entry means that FreeType doesn't support the
-    font format (yet).
-
-
-Please send additions and/or corrections to wl@gnu.org or to the
-FreeType developer's list at devel@freetype (for subscribers only).  If
-you can provide a font example for a format which isn't supported yet
-please send a mail too.
-
-
-file wrapper font   font    glyph      FreeType reference
-type format  format type    access     driver   documents
-----------------------------------------------------------------------------
-
----  ---     BDF    ---     ---        bdf      5005.BDF_Spec.pdf, X11
-
-
----  SFNT    PS     TYPE_1  ---        ---      Type 1 GX Font Format
-                                                (for the Mac)
-MAC  SFNT    PS     TYPE_1  ---        ---      Type 1 GX Font Format
-                                                (for the Mac)
----  SFNT    PS     TYPE_1  CID        ---      5180.sfnt.pdf (for the Mac)
-MAC  SFNT    PS     TYPE_1  CID        ---      5180.sfnt.pdf (for the Mac)
----  SFNT    PS     CFF     ---        cff      OT spec, 5176.CFF.pdf
-                                                (`OTTO' format)
-MAC  SFNT    PS     CFF     ---        cff      OT spec, 5176.CFF.pdf
-                                                (`OTTO' format)
----  SFNT    PS     CFF     CID        cff      OT spec, 5176.CFF.pdf
-MAC  SFNT    PS     CFF     CID        cff      OT spec, 5176.CFF.pdf
----  SFNT    PS     CFF     SYNTHETIC  ---      OT spec, 5176.CFF.pdf
-MAC  SFNT    PS     CFF     SYNTHETIC  ---      OT spec, 5176.CFF.pdf
----  SFNT    TT     SBIT    ---        ---      XFree86? (bitmaps only;
-                                                `head' table)
----  SFNT    TT     MACSBIT ---        sfnt     OT spec (for the Mac;
-                                                bitmaps only; `bhed' table)
-MAC  SFNT    TT     MACSBIT ---        sfnt     OT spec (for the Mac;
-                                                bitmaps only; `bhed' table)
----  SFNT    TT     ---     ---        truetype OT spec (`normal' TT font)
-MAC  SFNT    TT     ---     ---        truetype OT spec (`normal' TT font)
-MAC  SFNT    TT     VAR     ---        truetype GX spec (`?var' tables)
----  SFNT    TT     ---     COLLECTION truetype OT spec (this can't be CFF)
-MAC  SFNT    TT     ---     COLLECTION truetype OT spec (this can't be CFF)
-
-
----  ---     PS     TYPE_1  ---        type1    T1_SPEC.pdf
-                                                (`normal' Type 1 font)
-MAC  ---     PS     TYPE_1  ---        type1    T1_SPEC.pdf
-                                                (`normal' Type 1 font)
----  ---     PS     TYPE_1  CID        cid      PLRM.pdf (CID Font Type 0;
-                                                Type 9 font)
----  ---     PS     MM      ---        type1    5015.Type1_Supp.pdf
-                                                (Multiple Masters)
----  ---     PS     CFF     ---        cff      5176.CFF.pdf (`pure' CFF)
----  ---     PS     CFF     CID        cff      5176.CFF.pdf (`pure' CFF)
----  ---     PS     CFF     SYNTHETIC  ---      5176.CFF.pdf (`pure' CFF)
----  PS      PS     CFF     ---        ---      PLRM.pdf (Type 2) [1]
----  PS      PS     CFF     CID        ---      PLRM.pdf (Type 2) [1]
----  PS      PS     CFF     SYNTHETIC  ---      PLRM.pdf (Type 2) [1]
----  ---     PS     ---     TYPE_0     ---      PLRM.pdf
----  ---     PS     TYPE_3  ---        ---      PLRM.pdf (never supported)
----  ---     PS     TYPE_3  CID        ---      PLRM.pdf (CID Font Type 1;
-                                                Type 10 font; never supported)
----  PS      PS     TYPE_14 ---        ---      PLRM.pdf (Chameleon font;
-                                                Type 14 font; never supported?)
----  ---     PS     TYPE_32 CID        ---      PLRM.pdf (CID Font Type 4;
-                                                Type 32 font; never supported?)
----  PS      TT     ---     ---        type42   5012.Type42_Spec.pdf
-                                                (Type 42 font)
----  PS      TT     ---     CID        ---      PLRM.pdf (CID Font Type 2;
-                                                Type 11 font)
-
-
----  ?       ?      CEF     ?          cff      ?
-
-
----  ---     PCF    ---     ---        pcf      X11
----  LZW     PCF    ---     ---        pcf      X11
-
-
----  ---     PFR    PFR0    ---        pfr      [2]
----  ---     PFR    PFR1    ---        ---      (undocumented, proprietary;
-                                                probably never supported)
-
-
----  ---     WINFNT ---     ---        winfonts MS Windows 3 Developer's Notes
----  ---     WINFNT VECTOR  ---        ---      MS Windows 3 Developer's Notes
-
-
-[1] Support should be rather simple since this is identical to `CFF'
-    but in a PS wrapper.
-
-[2] Official PFR specification:
-
-      http://www.bitstream.com/categories/developer/truedoc/pfrspec.html
-      http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf
-
-    The syntax of the auxiliary data is not defined there, but is partially
-    defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1) section 7.4.
-
-      http://www.etsi.org/
-      http://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=18799
-
-    (free registration required).
diff --git a/nx-X11/extras/freetype2/docs/license.txt b/nx-X11/extras/freetype2/docs/license.txt
deleted file mode 100644
index 876cc4b93..000000000
--- a/nx-X11/extras/freetype2/docs/license.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-
-The  FreeType 2  font  engine is  copyrighted  work and  cannot be  used
-legally  without a  software license.   In  order to  make this  project
-usable  to a vast  majority of  developers, we  distribute it  under two
-mutually exclusive open-source licenses.
-
-This means  that *you* must choose  *one* of the  two licenses described
-below, then obey  all its terms and conditions when  using FreeType 2 in
-any of your projects or products.
-
-  - The FreeType License, found in  the file `FTL.TXT', which is similar
-    to the original BSD license *with* an advertising clause that forces
-    you  to  explicitly cite  the  FreeType  project  in your  product's
-    documentation.  All  details are in the license  file.  This license
-    is  suited  to products  which  don't  use  the GNU  General  Public
-    License.
-
-  - The GNU  General Public License  version 2, found in  `GPL.TXT' (any
-    later version can be used  also), for programs which already use the
-    GPL.  Note  that the  FTL is  incompatible with the  GPL due  to its
-    advertisement clause.
-
-The contributed PCF driver comes with a license similar to that of the X
-Window System.   It is  compatible to the  above two licenses  (see file
-src/pcf/readme).
-
-
---- end of licence.txt ---
diff --git a/nx-X11/extras/freetype2/docs/modules.txt b/nx-X11/extras/freetype2/docs/modules.txt
deleted file mode 100644
index 04f4d120a..000000000
--- a/nx-X11/extras/freetype2/docs/modules.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-This file shows the interdependencies of various FreeType modules.
-
-Note that the use of `psnames' can be controlled in ftconfig.h
-(FT_CONFIG_OPTION_POSTSCRIPT_NAMES).
-
-  module       dependency
- ---------------------------------------
-  cff          sfnt, pshinter, psnames
-  cid          psaux, pshinter, psnames
-  truetype     sfnt
-  type1        psaux, pshinter, psnames
-  type42       truetype
-  psaux        psnames
-  sfnt         psnames
diff --git a/nx-X11/extras/freetype2/docs/raster.txt b/nx-X11/extras/freetype2/docs/raster.txt
deleted file mode 100644
index 078c51aa1..000000000
--- a/nx-X11/extras/freetype2/docs/raster.txt
+++ /dev/null
@@ -1,624 +0,0 @@
-
-                   How FreeType's rasterizer work
-
-                          by David Turner
-
-                        Revised 2003-Dec-08
-
-
-This file  is an  attempt to explain  the internals of  the FreeType
-rasterizer.  The  rasterizer is of  quite general purpose  and could
-easily be integrated into other programs.
-
-
-  I. Introduction
-
- II. Rendering Technology
-     1. Requirements
-     2. Profiles and Spans
-        a. Sweeping the Shape
-        b. Decomposing Outlines into Profiles
-        c. The Render Pool
-        d. Computing Profiles Extents
-        e. Computing Profiles Coordinates
-        f. Sweeping and Sorting the Spans
-
-
-I. Introduction
-===============
-
-  A  rasterizer is  a library  in charge  of converting  a vectorial
-  representation of a shape  into a bitmap.  The FreeType rasterizer
-  has  been  originally developed  to  render  the  glyphs found  in
-  TrueType  files, made  up  of segments  and second-order  B�ziers.
-  Meanwhile it has been extended to render third-order B�zier curves
-  also.   This  document  is   an  explanation  of  its  design  and
-  implementation.
-
-  While  these explanations start  from the  basics, a  knowledge of
-  common rasterization techniques is assumed.
-
-
-II. Rendering Technology
-========================
-
-1. Requirements
----------------
-
-  We  assume that  all scaling,  rotating, hinting,  etc.,  has been
-  already done.  The glyph is thus  described by a list of points in
-  the device space.
-
-  - All point coordinates  are in the 26.6 fixed  float format.  The
-    used orientation is:
-
-
-       ^ y
-       |         reference orientation
-       |
-       *----> x
-      0
-
-
-    `26.6' means  that 26 bits  are used for  the integer part  of a
-    value   and  6   bits  are   used  for   the   fractional  part.
-    Consequently, the `distance'  between two neighbouring pixels is
-    64 `units' (1 unit = 1/64th of a pixel).
-
-    Note  that, for  the rasterizer,  pixel centers  are  located at
-    integer   coordinates.   The   TrueType   bytecode  interpreter,
-    however, assumes that  the lower left edge of  a pixel (which is
-    taken  to be  a square  with  a length  of 1  unit) has  integer
-    coordinates.
-
-
-        ^ y                                        ^ y
-        |                                          |
-        |            (1,1)                         |      (0.5,0.5)
-        +-----------+                        +-----+-----+
-        |           |                        |     |     |
-        |           |                        |     |     |
-        |           |                        |     o-----+-----> x
-        |           |                        |   (0,0)   |
-        |           |                        |           |
-        o-----------+-----> x                +-----------+
-      (0,0)                             (-0.5,-0.5)
-
-   TrueType bytecode interpreter          FreeType rasterizer
-
-
-    A pixel line in the target bitmap is called a `scanline'.
-
-  - A  glyph  is  usually  made  of several  contours,  also  called
-    `outlines'.  A contour is simply a closed curve that delimits an
-    outer or inner region of the glyph.  It is described by a series
-    of successive points of the points table.
-
-    Each point  of the glyph  has an associated flag  that indicates
-    whether  it is  `on' or  `off' the  curve.  Two  successive `on'
-    points indicate a line segment joining the two points.
-
-    One `off' point amidst two `on' points indicates a second-degree
-    (conic)  B�zier parametric  arc, defined  by these  three points
-    (the `off' point being the  control point, and the `on' ones the
-    start and end points).  Similarly, a third-degree (cubic) B�zier
-    curve  is described  by four  points (two  `off'  control points
-    between two `on' points).
-
-    Finally,  for  second-order curves  only,  two successive  `off'
-    points  forces the  rasterizer to  create, during  rendering, an
-    `on'  point amidst them,  at their  exact middle.   This greatly
-    facilitates the  definition of  successive B�zier arcs.
-
-  The parametric form of a second-order B�zier curve is:
-
-      P(t) = (1-t)^2*P1 + 2*t*(1-t)*P2 + t^2*P3
-
-      (P1 and P3 are the end points, P2 the control point.)
-
-  The parametric form of a third-order B�zier curve is:
-
-      P(t) = (1-t)^3*P1 + 3*t*(1-t)^2*P2 + 3*t^2*(1-t)*P3 + t^3*P4
-
-      (P1 and P4 are the end points, P2 and P3 the control points.)
-
-  For both formulae, t is a real number in the range [0..1].
-
-  Note  that the rasterizer  does not  use these  formulae directly.
-  They exhibit,  however, one very  useful property of  B�zier arcs:
-  Each  point of  the curve  is a  weighted average  of  the control
-  points.
-
-  As all weights  are positive and always sum up  to 1, whatever the
-  value  of t,  each arc  point lies  within the  triangle (polygon)
-  defined by the arc's three (four) control points.
-
-  In  the following,  only second-order  curves are  discussed since
-  rasterization of third-order curves is completely identical.
-
-  Here some samples for second-order curves.
-
-
-                                        *            # on curve
-                                                     * off curve
-                                     __---__
-        #-__                      _--       -_
-            --__                _-            -
-                --__           #               \
-                    --__                        #
-                        -#
-                                 Two `on' points
-         Two `on' points       and one `off' point
-                                  between them
-
-                      *
-        #            __      Two `on' points with two `off'
-         \          -  -     points between them. The point
-          \        /    \    marked `0' is the middle of the
-           -      0      \   `off' points, and is a `virtual
-            -_  _-       #   on' point where the curve passes.
-              --             It does not appear in the point
-              *              list.
-
-
-2. Profiles and Spans
----------------------
-
-  The following is a basic explanation of the _kind_ of computations
-  made  by  the   rasterizer  to  build  a  bitmap   from  a  vector
-  representation.  Note  that the actual  implementation is slightly
-  different, due to performance tuning and other factors.
-
-  However, the following ideas remain  in the same category, and are
-  more convenient to understand.
-
-
-  a. Sweeping the Shape
-
-    The best way to fill a shape is to decompose it into a number of
-    simple  horizontal segments,  then turn  them on  in  the target
-    bitmap.  These segments are called `spans'.
-
-                __---__
-             _--       -_
-           _-            -
-          -               \
-         /                 \
-        /                   \
-       |                     \
-
-                __---__         Example: filling a shape
-             _----------_                with spans.
-           _--------------
-          ----------------\
-         /-----------------\    This is typically done from the top
-        /                   \   to the bottom of the shape, in a
-       |           |         \  movement called a `sweep'.
-                   V
-
-                __---__
-             _----------_
-           _--------------
-          ----------------\
-         /-----------------\
-        /-------------------\
-       |---------------------\
-
-
-    In  order  to draw  a  span,  the  rasterizer must  compute  its
-    coordinates, which  are simply the x coordinates  of the shape's
-    contours, taken on the y scanlines.
-
-
-                   /---/    |---|   Note that there are usually
-                  /---/     |---|   several spans per scanline.
-        |        /---/      |---|
-        |       /---/_______|---|   When rendering this shape to the
-        V      /----------------|   current scanline y, we must
-              /-----------------|   compute the x values of the
-           a /----|         |---|   points a, b, c, and d.
-      - - - *     * - - - - *   * - - y -
-           /     / b       c|   |d
-
-
-                   /---/    |---|
-                  /---/     |---|  And then turn on the spans a-b
-                 /---/      |---|  and c-d.
-                /---/_______|---|
-               /----------------|
-              /-----------------|
-           a /----|         |---|
-      - - - ####### - - - - ##### - - y -
-           /     / b       c|   |d
-
-
-  b. Decomposing Outlines into Profiles
-
-    For  each  scanline during  the  sweep,  we  need the  following
-    information:
-
-    o The  number of  spans on  the current  scanline, given  by the
-      number of  shape points  intersecting the scanline  (these are
-      the points a, b, c, and d in the above example).
-
-    o The x coordinates of these points.
-
-    x coordinates are  computed before the sweep, in  a phase called
-    `decomposition' which converts the glyph into *profiles*.
-
-    Put it simply, a `profile'  is a contour's portion that can only
-    be either ascending or descending,  i.e., it is monotonic in the
-    vertical direction (we also say  y-monotonic).  There is no such
-    thing as a horizontal profile, as we shall see.
-
-    Here are a few examples:
-
-
-      this square
-                                          1         2
-         ---->----     is made of two
-        |         |                       |         |
-        |         |       profiles        |         |
-        ^         v                       ^    +    v
-        |         |                       |         |
-        |         |                       |         |
-         ----<----
-
-                                         up        down
-
-
-      this triangle
-
-             P2                             1          2
-
-             |\        is made of two       |         \
-          ^  | \  \                         |          \
-          | |   \  \      profiles         |            \      |
-         |  |    \  v                  ^   |             \     |
-           |      \                    |  |         +     \    v
-           |       \                   |  |                \
-        P1 ---___   \                     ---___            \
-                 ---_\                          ---_         \
-             <--__     P3                   up           down
-
-
-
-      A more general contour can be made of more than two profiles:
-
-              __     ^
-             /  |   /  ___          /    |
-            /   |     /   |        /     |       /     |
-           |    |    /   /    =>  |      v      /     /
-           |    |   |   |         |      |     ^     |
-        ^  |    |___|   |  |      ^   +  |  +  |  +  v
-        |  |           |   v      |                 |
-           |           |          |           up    |
-           |___________|          |    down         |
-
-                <--               up              down
-
-
-    Successive  profiles are  always joined  by  horizontal segments
-    that are not part of the profiles themselves.
-
-    For  the  rasterizer,  a  profile  is  simply  an  *array*  that
-    associates  one  horizontal *pixel*  coordinate  to each  bitmap
-    *scanline*  crossed  by  the  contour's section  containing  the
-    profile.  Note that profiles are *oriented* up or down along the
-    glyph's original flow orientation.
-
-    In other graphics libraries, profiles are also called `edges' or
-    `edgelists'.
-
-
-  c. The Render Pool
-
-    FreeType  has been designed  to be  able to  run well  on _very_
-    light systems, including embedded systems with very few memory.
-
-    A render pool  will be allocated once; the  rasterizer uses this
-    pool for all  its needs by managing this  memory directly in it.
-    The  algorithms that are  used for  profile computation  make it
-    possible to use  the pool as a simple  growing heap.  This means
-    that this  memory management is  actually quite easy  and faster
-    than any kind of malloc()/free() combination.
-
-    Moreover,  we'll see  later that  the rasterizer  is  able, when
-    dealing with profiles too large  and numerous to lie all at once
-    in  the render  pool, to  immediately decompose  recursively the
-    rendering process  into independent sub-tasks,  each taking less
-    memory to be performed (see `sub-banding' below).
-
-    The  render pool doesn't  need to  be large.   A 4KByte  pool is
-    enough for nearly all renditions, though nearly 100% slower than
-    a more confortable 16KByte or 32KByte pool (that was tested with
-    complex glyphs at sizes over 500 pixels).
-
-
-  d. Computing Profiles Extents
-
-    Remember that a profile is an array, associating a _scanline_ to
-    the x pixel coordinate of its intersection with a contour.
-
-    Though it's not exactly how the FreeType rasterizer works, it is
-    convenient  to think  that  we need  a  profile's height  before
-    allocating it in the pool and computing its coordinates.
-
-    The profile's height  is the number of scanlines  crossed by the
-    y-monotonic section of a contour.  We thus need to compute these
-    sections from  the vectorial description.  In order  to do that,
-    we are  obliged to compute all  (local and global)  y extrema of
-    the glyph (minima and maxima).
-
-
-           P2             For instance, this triangle has only
-                          two y-extrema, which are simply
-           |\
-           | \               P2.y  as a vertical maximum
-          |   \              P3.y  as a vertical minimum
-          |    \
-         |      \            P1.y is not a vertical extremum (though
-         |       \           it is a horizontal minimum, which we
-      P1 ---___   \          don't need).
-               ---_\
-                     P3
-
-
-    Note  that the  extrema are  expressed  in pixel  units, not  in
-    scanlines.   The triangle's  height  is certainly  (P3.y-P2.y+1)
-    pixel  units,   but  its  profiles'  heights   are  computed  in
-    scanlines.  The exact conversion is simple:
-
-      - min scanline = FLOOR  ( min y )
-      - max scanline = CEILING( max y )
-
-    A problem  arises with B�zier  Arcs.  While a segment  is always
-    necessarily y-monotonic (i.e.,  flat, ascending, or descending),
-    which makes extrema computations easy,  the ascent of an arc can
-    vary between its control points.
-
-
-                          P2
-                         *
-                                       # on curve
-                                       * off curve
-                   __-x--_
-                _--       -_
-          P1  _-            -          A non y-monotonic B�zier arc.
-             #               \
-                              -        The arc goes from P1 to P3.
-                               \
-                                \  P3
-                                 #
-
-
-    We first  need to be  able to easily detect  non-monotonic arcs,
-    according to  their control points.  I will  state here, without
-    proof, that the monotony condition can be expressed as:
-
-      P1.y <= P2.y <= P3.y   for an ever-ascending arc
-
-      P1.y >= P2.y >= P3.y   for an ever-descending arc
-
-    with the special case of
-
-      P1.y = P2.y = P3.y     where the arc is said to be `flat'.
-
-    As  you can  see, these  conditions can  be very  easily tested.
-    They are, however, extremely important, as any arc that does not
-    satisfy them necessarily contains an extremum.
-
-    Note  also that  a monotonic  arc can  contain an  extremum too,
-    which is then one of its `on' points:
-
-
-        P1           P2
-          #---__   *         P1P2P3 is ever-descending, but P1
-                -_           is an y-extremum.
-                  -
-           ---_    \
-               ->   \
-                     \  P3
-                      #
-
-
-    Let's go back to our previous example:
-
-
-                          P2
-                         *
-                                       # on curve
-                                       * off curve
-                   __-x--_
-                _--       -_
-          P1  _-            -          A non-y-monotonic B�zier arc.
-             #               \
-                              -        Here we have
-                               \              P2.y >= P1.y &&
-                                \  P3         P2.y >= P3.y      (!)
-                                 #
-
-
-    We need to  compute the vertical maximum of this  arc to be able
-    to compute a profile's height (the point marked by an `x').  The
-    arc's equation indicates that  a direct computation is possible,
-    but  we rely  on a  different technique,  which use  will become
-    apparent soon.
-
-    B�zier  arcs have  the  special property  of  being very  easily
-    decomposed into two sub-arcs,  which are themselves B�zier arcs.
-    Moreover, it is easy to prove that there is at most one vertical
-    extremum on  each B�zier arc (for  second-degree curves; similar
-    conditions can be found for third-order arcs).
-
-    For instance,  the following arc  P1P2P3 can be  decomposed into
-    two sub-arcs Q1Q2Q3 and R1R2R3:
-
-
-                    P2
-                   *
-                                    # on  curve
-                                    * off curve
-
-
-                                    original B�zier arc P1P2P3.
-                __---__
-             _--       --_
-           _-             -_
-          -                 -
-         /                   \
-        /                     \
-       #                       #
-     P1                         P3
-
-
-
-                    P2
-                   *
-
-
-
-                   Q3                 Decomposed into two subarcs
-          Q2                R2        Q1Q2Q3 and R1R2R3
-            *   __-#-__   *
-             _--       --_
-           _-       R1    -_          Q1 = P1         R3 = P3
-          -                 -         Q2 = (P1+P2)/2  R2 = (P2+P3)/2
-         /                   \
-        /                     \            Q3 = R1 = (Q2+R2)/2
-       #                       #
-     Q1                         R3    Note that Q2, R2, and Q3=R1
-                                      are on a single line which is
-                                      tangent to the curve.
-
-
-    We have then decomposed  a non-y-monotonic B�zier curve into two
-    smaller sub-arcs.  Note that in the above drawing, both sub-arcs
-    are monotonic, and that the extremum is then Q3=R1.  However, in
-    a  more general  case,  only  one sub-arc  is  guaranteed to  be
-    monotonic.  Getting back to our former example:
-
-
-                    Q2
-                   *
-
-                   __-x--_ R1
-                _--       #_
-          Q1  _-        Q3  -   R2
-             #               \ *
-                              -
-                               \
-                                \  R3
-                                 #
-
-
-    Here, we see that,  though Q1Q2Q3 is still non-monotonic, R1R2R3
-    is ever  descending: We  thus know that  it doesn't  contain the
-    extremum.  We can then re-subdivide Q1Q2Q3 into two sub-arcs and
-    go  on recursively,  stopping  when we  encounter two  monotonic
-    subarcs, or when the subarcs become simply too small.
-
-    We  will finally  find  the vertical  extremum.   Note that  the
-    iterative process of finding an extremum is called `flattening'.
-
-
-  e. Computing Profiles Coordinates
-
-    Once we have the height of each profile, we are able to allocate
-    it in the render pool.   The next task is to compute coordinates
-    for each scanline.
-
-    In  the case  of segments,  the computation  is straightforward,
-    using  the  Euclidian   algorithm  (also  known  as  Bresenham).
-    However, for B�zier arcs, the job is a little more complicated.
-
-    We assume  that all B�ziers that  are part of a  profile are the
-    result of  flattening the curve,  which means that they  are all
-    y-monotonic (ascending  or descending, and never  flat).  We now
-    have  to compute the  intersections of  arcs with  the profile's
-    scanlines.  One  way is  to use a  similar scheme  to flattening
-    called `stepping'.
-
-
-                                 Consider this arc, going from P1 to
-      ---------------------      P3.  Suppose that we need to
-                                 compute its intersections with the
-                                 drawn scanlines.  As already
-      ---------------------      mentioned this can be done
-                                 directly, but the involed algorithm
-          * P2         _---# P3  is far too slow.
-      ------------- _--  --
-                  _-
-                _/               Instead, it is still possible to
-      ---------/-----------      use the decomposition property in
-              /                  the same recursive way, i.e.,
-             |                   subdivide the arc into subarcs
-      ------|--------------      until these get too small to cross
-            |                    more than one scanline!
-           |
-      -----|---------------      This is very easily done using a
-          |                      rasterizer-managed stack of
-          |                      subarcs.
-          # P1
-
-
-  f. Sweeping and Sorting the Spans
-
-    Once all our profiles have  been computed, we begin the sweep to
-    build (and fill) the spans.
-
-    As both the  TrueType and Type 1 specifications  use the winding
-    fill  rule (but  with opposite  directions), we  place,  on each
-    scanline, the present profiles in two separate lists.
-
-    One  list,  called  the  `left'  one,  only  contains  ascending
-    profiles, while  the other `right' list  contains the descending
-    profiles.
-
-    As  each glyph  is made  of  closed curves,  a simple  geometric
-    property ensures that  the two lists contain the  same number of
-    elements.
-
-    Creating spans is thus straightforward:
-
-    1. We sort each list in increasing horizontal order.
-
-    2. We pair  each value of  the left list with  its corresponding
-       value in the right list.
-
-
-                   /     /  |   |          For example, we have here
-                  /     /   |   |          four profiles.  Two of
-                >/     /    |   |  |       them are ascending (1 &
-              1//     /   ^ |   |  | 2     3), while the two others
-              //     //  3| |   |  v       are descending (2 & 4).
-              /     //4   | |   |          On the given scanline,
-           a /     /<       |   |          the left list is (1,3),
-      - - - *-----* - - - - *---* - - y -  and the right one is
-           /     / b       c|   |d         (4,2) (sorted).
-
-                                   There are then two spans, joining
-                                   1 to 4 (i.e. a-b) and 3 to 2
-                                   (i.e. c-d)!
-
-
-    Sorting doesn't necessarily  take much time, as in  99 cases out
-    of 100, the lists' order is  kept from one scanline to the next.
-    We can  thus implement it  with two simple  singly-linked lists,
-    sorted by a classic bubble-sort, which takes a minimum amount of
-    time when the lists are already sorted.
-
-    A  previous  version  of  the  rasterizer  used  more  elaborate
-    structures, like arrays to  perform `faster' sorting.  It turned
-    out that  this old scheme is  not faster than  the one described
-    above.
-
-    Once the spans  have been `created', we can  simply draw them in
-    the target bitmap.
-
-
---- end of raster.txt ---
-
-Local Variables:
-coding: latin-1
-End:
diff --git a/nx-X11/extras/freetype2/docs/reference/.cvsignore b/nx-X11/extras/freetype2/docs/reference/.cvsignore
deleted file mode 100644
index 2d19fc766..000000000
--- a/nx-X11/extras/freetype2/docs/reference/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.html
diff --git a/nx-X11/extras/freetype2/docs/reference/README b/nx-X11/extras/freetype2/docs/reference/README
deleted file mode 100644
index 7c3467b53..000000000
--- a/nx-X11/extras/freetype2/docs/reference/README
+++ /dev/null
@@ -1,2 +0,0 @@
-After saying `make refdoc' this directory contains the FreeType API
-reference.  You need python to make this target.
diff --git a/nx-X11/extras/freetype2/docs/release b/nx-X11/extras/freetype2/docs/release
deleted file mode 100644
index 7cf37b849..000000000
--- a/nx-X11/extras/freetype2/docs/release
+++ /dev/null
@@ -1,32 +0,0 @@
-How to prepare a new release
-----------------------------
-
-. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR, and
-  FREETYPE_PATCH.
-
-. builds/unix/configure.ac (version_info): Update according to the libtool
-  rules, then regenerate the configure script.
-
-. builds/freetype.mk (refdoc): Update the `--title' option.
-
-. docs/CHANGES: Document differences to last release.
-
-. README: Update.
-
-. docs/VERSION.DLL: Document changed `version_info'.
-
-. ChangeLog: Announce new release.
-
-. Call `make refdoc' to update HTML reference.  Copy it to
-  freetype2/docs/reference in the `www' CVS module and update the CVS.
-  Then call `update-www' in ~/cvs/scripts on www.freetype.org to
-  update and distribute everything to sourceforge.
-
-. Tag the CVS (freetype, ft2demos, www/freetype2/docs).
-
-. Update `make-release' and `make-current' in ~/cvs/scripts/ on
-  www.freetype.org, then call them.
-
-. Create an md5 checksum file (with md5sum).
-
-. Announce new release on announce@freetype.org and to relevant newsgroups.
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftccache.h b/nx-X11/extras/freetype2/include/freetype/cache/ftccache.h
deleted file mode 100644
index 7c7688dba..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftccache.h
+++ /dev/null
@@ -1,272 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftccache.h                                                             */
-/*                                                                         */
-/*    FreeType internal cache interface (specification).                   */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTCCACHE_H__
-#define __FTCCACHE_H__
-
-
-#include FT_CACHE_INTERNAL_MRU_H
-
-FT_BEGIN_HEADER
-
-  /* handle to cache object */
-  typedef struct FTC_CacheRec_*  FTC_Cache;
-
-  /* handle to cache class */
-  typedef const struct FTC_CacheClassRec_*  FTC_CacheClass;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                   CACHE NODE DEFINITIONS                      *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Each cache controls one or more cache nodes.  Each node is part of    */
-  /* the global_lru list of the manager.  Its `data' field however is used */
-  /* as a reference count for now.                                         */
-  /*                                                                       */
-  /* A node can be anything, depending on the type of information held by  */
-  /* the cache.  It can be an individual glyph image, a set of bitmaps     */
-  /* glyphs for a given size, some metrics, etc.                           */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /* structure size should be 20 bytes on 32-bits machines */
-  typedef struct  FTC_NodeRec_
-  {
-    FTC_MruNodeRec  mru;          /* circular mru list pointer           */
-    FTC_Node        link;         /* used for hashing                    */
-    FT_UInt32       hash;         /* used for hashing too                */
-    FT_UShort       cache_index;  /* index of cache the node belongs to  */
-    FT_Short        ref_count;    /* reference count for this node       */
-
-  } FTC_NodeRec;
-
-
-#define FTC_NODE( x )    ( (FTC_Node)(x) )
-#define FTC_NODE_P( x )  ( (FTC_Node*)(x) )
-
-#define FTC_NODE__NEXT(x)  FTC_NODE( (x)->mru.next )
-#define FTC_NODE__PREV(x)  FTC_NODE( (x)->mru.prev )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* These functions are exported so that they can be called from          */
-  /* user-provided cache classes; otherwise, they are really part of the   */
-  /* cache sub-system internals.                                           */
-  /*                                                                       */
-
-  /* reserved for manager's use */
-  FT_EXPORT( void )
-  ftc_node_destroy( FTC_Node     node,
-                    FTC_Manager  manager );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       CACHE DEFINITIONS                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* initialize a new cache node */
-  typedef FT_Error
-  (*FTC_Node_NewFunc)( FTC_Node    *pnode,
-                       FT_Pointer   query,
-                       FTC_Cache    cache );
-
-  typedef FT_ULong
-  (*FTC_Node_WeightFunc)( FTC_Node   node,
-                          FTC_Cache  cache );
-
-  /* compare a node to a given key pair */
-  typedef FT_Bool
-  (*FTC_Node_CompareFunc)( FTC_Node    node,
-                           FT_Pointer  key,
-                           FTC_Cache   cache );
-
-
-  typedef void
-  (*FTC_Node_FreeFunc)( FTC_Node   node,
-                        FTC_Cache  cache );
-
-  typedef FT_Error
-  (*FTC_Cache_InitFunc)( FTC_Cache  cache );
-
-  typedef void
-  (*FTC_Cache_DoneFunc)( FTC_Cache  cache );
-
-
-  typedef struct  FTC_CacheClassRec_
-  {
-    FTC_Node_NewFunc      node_new;
-    FTC_Node_WeightFunc   node_weight;
-    FTC_Node_CompareFunc  node_compare;
-    FTC_Node_CompareFunc  node_remove_faceid;
-    FTC_Node_FreeFunc     node_free;
-
-    FT_UInt               cache_size;
-    FTC_Cache_InitFunc    cache_init;
-    FTC_Cache_DoneFunc    cache_done;
-
-  } FTC_CacheClassRec;
-
-
-  /* each cache really implements a dynamic hash table to manage its nodes */
-  typedef struct  FTC_CacheRec_
-  {
-    FT_UFast           p;
-    FT_UFast           mask;
-    FT_Long            slack;
-    FTC_Node*          buckets;
-
-    FTC_CacheClassRec  clazz;       /* local copy, for speed  */
-
-    FTC_Manager        manager;
-    FT_Memory          memory;
-    FT_UInt            index;       /* in manager's table     */
-
-    FTC_CacheClass     org_class;   /* original class pointer */
-
-  } FTC_CacheRec;
-
-
-#define FTC_CACHE( x )    ( (FTC_Cache)(x) )
-#define FTC_CACHE_P( x )  ( (FTC_Cache*)(x) )
-
-
-  /* default cache initialize */
-  FT_EXPORT( FT_Error )
-  FTC_Cache_Init( FTC_Cache  cache );
-
-  /* default cache finalizer */
-  FT_EXPORT( void )
-  FTC_Cache_Done( FTC_Cache  cache );
-
-  /* Call this function to lookup the cache.  If no corresponding
-   * node is found, a new one is automatically created.  This function
-   * is capable of flushing the cache adequately to make room for the
-   * new cache object.
-   */
-  FT_EXPORT( FT_Error )
-  FTC_Cache_Lookup( FTC_Cache   cache,
-                    FT_UInt32   hash,
-                    FT_Pointer  query,
-                    FTC_Node   *anode );
-
-  FT_EXPORT( FT_Error )
-  FTC_Cache_NewNode( FTC_Cache   cache,
-                     FT_UInt32   hash,
-                     FT_Pointer  query,
-                     FTC_Node   *anode );
-
-  /* Remove all nodes that relate to a given face_id.  This is useful
-   * when un-installing fonts.  Note that if a cache node relates to
-   * the face_id, but is locked (i.e., has 'ref_count > 0'), the node
-   * will _not_ be destroyed, but its internal face_id reference will
-   * be modified.
-   *
-   * The final result will be that the node will never come back
-   * in further lookup requests, and will be flushed on demand from
-   * the cache normally when its reference count reaches 0.
-   */
-  FT_EXPORT( void )
-  FTC_Cache_RemoveFaceID( FTC_Cache   cache,
-                          FTC_FaceID  face_id );
-
-
-#ifdef FTC_INLINE
-
-#define FTC_CACHE_LOOKUP_CMP( cache, nodecmp, hash, query, node, error ) \
-  FT_BEGIN_STMNT                                                         \
-    FTC_Node             *_bucket, *_pnode, _node;                       \
-    FTC_Cache             _cache   = FTC_CACHE(cache);                   \
-    FT_UInt32             _hash    = (FT_UInt32)(hash);                  \
-    FTC_Node_CompareFunc  _nodcomp = (FTC_Node_CompareFunc)(nodecmp);    \
-    FT_UInt               _idx;                                          \
-                                                                         \
-                                                                         \
-    error = 0;                                                           \
-    node  = NULL;                                                        \
-    _idx  = _hash & _cache->mask;                                        \
-    if ( _idx < _cache->p )                                              \
-      _idx = _hash & ( _cache->mask*2 + 1 );                             \
-                                                                         \
-    _bucket = _pnode = _cache->buckets + _idx;                           \
-    for (;;)                                                             \
-    {                                                                    \
-      _node = *_pnode;                                                   \
-      if ( _node == NULL )                                               \
-        goto _NewNode;                                                   \
-                                                                         \
-      if ( _node->hash == _hash && _nodcomp( _node, query, _cache ) )    \
-        break;                                                           \
-                                                                         \
-      _pnode = &_node->link;                                             \
-    }                                                                    \
-                                                                         \
-    if ( _node != *_bucket )                                             \
-    {                                                                    \
-      *_pnode     = _node->link;                                         \
-      _node->link = *_bucket;                                            \
-      *_bucket    = _node;                                               \
-    }                                                                    \
-                                                                         \
-    {                                                                    \
-      FTC_Manager  _manager = _cache->manager;                           \
-                                                                         \
-                                                                         \
-      if ( _node != _manager->nodes_list )                               \
-        FTC_MruNode_Up( (FTC_MruNode*)&_manager->nodes_list,             \
-                        (FTC_MruNode)_node );                            \
-    }                                                                    \
-    goto _Ok;                                                            \
-                                                                         \
-  _NewNode:                                                              \
-    error = FTC_Cache_NewNode( _cache, _hash, query, &_node );           \
-                                                                         \
-  _Ok:                                                                   \
-    *(FTC_Node*)&(node) = _node;                                         \
-  FT_END_STMNT
-
-#else /* !FTC_INLINE */
-
-#define FTC_CACHE_LOOKUP_CMP( cache, nodecmp, hash, query, node, error ) \
-  FT_BEGIN_STMNT                                                         \
-    error = FTC_Cache_Lookup( FTC_CACHE( cache ), hash, query,           \
-                              (FTC_Node*)&(node) );                      \
-  FT_END_STMNT
-
-#endif /* !FTC_INLINE */
-
- /* */
-
-FT_END_HEADER
-
-
-#endif /* __FTCCACHE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftccmap.h b/nx-X11/extras/freetype2/include/freetype/cache/ftccmap.h
deleted file mode 100644
index a41989b28..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftccmap.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftccmap.h                                                              */
-/*                                                                         */
-/*    FreeType charmap cache (specification).                              */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTCCMAP_H__
-#define __FTCCMAP_H__
-
-#include <ft2build.h>
-#include FT_CACHE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    cache_subsystem                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    FTC_CMapCache                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    An opaque handle used to manager a charmap cache.  This cache is   */
-  /*    to hold character codes -> glyph indices mappings.                 */
-  /*                                                                       */
-  typedef struct FTC_CMapCacheRec_*  FTC_CMapCache;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    FTC_CMapDesc                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A handle to an @FTC_CMapDescRec structure used to describe a given */
-  /*    charmap in a charmap cache.                                        */
-  /*                                                                       */
-  /*    Each @FTC_CMapDesc describes which charmap (of which @FTC_FaceID)  */
-  /*    we want to use in @FTC_CMapCache_Lookup.                           */
-  /*                                                                       */
-  typedef struct FTC_CMapDescRec_*  FTC_CMapDesc;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @enum:                                                                */
-  /*    FTC_CMapType                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The list of valid @FTC_CMapDesc types.  They indicate how we want  */
-  /*    to address a charmap within an @FTC_FaceID.                        */
-  /*                                                                       */
-  /* @values:                                                              */
-  /*    FTC_CMAP_BY_INDEX ::                                               */
-  /*      Address a charmap by its index in the corresponding @FT_Face.    */
-  /*                                                                       */
-  /*    FTC_CMAP_BY_ENCODING ::                                            */
-  /*      Use a @FT_Face charmap that corresponds to a given encoding.     */
-  /*                                                                       */
-  /*    FTC_CMAP_BY_ID ::                                                  */
-  /*      Use an @FT_Face charmap that corresponds to a given              */
-  /*      (platform,encoding) ID.  See @FTC_CMapIdRec.                     */
-  /*                                                                       */
-  typedef enum  FTC_CMapType_
-  {
-    FTC_CMAP_BY_INDEX    = 0,
-    FTC_CMAP_BY_ENCODING = 1,
-    FTC_CMAP_BY_ID       = 2
-
-  } FTC_CMapType;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    FTC_CMapIdRec                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A short structure to identify a charmap by a (platform,encoding)   */
-  /*    pair of values.                                                    */
-  /*                                                                       */
-  /* @fields:                                                              */
-  /*    platform :: The platform ID.                                       */
-  /*                                                                       */
-  /*    encoding :: The encoding ID.                                       */
-  /*                                                                       */
-  typedef struct  FTC_CMapIdRec_
-  {
-    FT_UInt  platform;
-    FT_UInt  encoding;
-
-  } FTC_CMapIdRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    FTC_CMapDescRec                                                    */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A structure to describe a given charmap to @FTC_CMapCache.         */
-  /*                                                                       */
-  /* @fields:                                                              */
-  /*    face_id    :: @FTC_FaceID of the face this charmap belongs to.     */
-  /*                                                                       */
-  /*    type       :: The type of charmap, see @FTC_CMapType.              */
-  /*                                                                       */
-  /*    u.index    :: For @FTC_CMAP_BY_INDEX types, this is the charmap    */
-  /*                  index (within a @FT_Face) we want to use.            */
-  /*                                                                       */
-  /*    u.encoding :: For @FTC_CMAP_BY_ENCODING types, this is the charmap */
-  /*                  encoding we want to use. see @FT_Encoding.           */
-  /*                                                                       */
-  /*    u.id       :: For @FTC_CMAP_BY_ID types, this is the               */
-  /*                  (platform,encoding) pair we want to use. see         */
-  /*                  @FTC_CMapIdRec and @FT_CharMapRec.                   */
-  /*                                                                       */
-  typedef struct  FTC_CMapDescRec_
-  {
-    FTC_FaceID    face_id;
-    FTC_CMapType  type;
-
-    union
-    {
-      FT_UInt        index;
-      FT_Encoding    encoding;
-      FTC_CMapIdRec  id;
-
-    } u;
-
-  } FTC_CMapDescRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FTC_CMapCache_New                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Creates a new charmap cache.                                       */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    manager :: A handle to the cache manager.                          */
-  /*                                                                       */
-  /* @output:                                                              */
-  /*    acache  :: A new cache handle.  NULL in case of error.             */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    Like all other caches, this one will be destroyed with the cache   */
-  /*    manager.                                                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_CMapCache_New( FTC_Manager     manager,
-                     FTC_CMapCache  *acache );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FTC_CMapCache_Lookup                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Translates a character code into a glyph index, using the charmap  */
-  /*    cache.                                                             */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    cache     :: A charmap cache handle.                               */
-  /*                                                                       */
-  /*    cmap_desc :: A charmap descriptor handle.                          */
-  /*                                                                       */
-  /*    char_code :: The character code (in the corresponding charmap).    */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    Glyph index.  0 means "no glyph".                                  */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    This function doesn't return @FTC_Node handles, since there is no  */
-  /*    real use for them with typical uses of charmaps.                   */
-  /*                                                                       */
-  FT_EXPORT( FT_UInt )
-  FTC_CMapCache_Lookup( FTC_CMapCache  cache,
-                        FTC_CMapDesc   cmap_desc,
-                        FT_UInt32      char_code );
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __FTCCMAP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftcglyph.h b/nx-X11/extras/freetype2/include/freetype/cache/ftcglyph.h
deleted file mode 100644
index be237f934..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftcglyph.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcglyph.h                                                             */
-/*                                                                         */
-/*    FreeType abstract glyph cache (specification).                       */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*
-   *
-   *  FTC_GCache is an _abstract_ cache object optimized to store glyph
-   *  data.  It works as follows:
-   *
-   *   - It manages FTC_GNode objects. Each one of them can hold one or more
-   *     glyph `items'.  Item types are not specified in the FTC_GCache but
-   *     in classes that extend it.
-   *
-   *   - Glyph attributes, like face ID, character size, render mode, etc.,
-   *     can be grouped into abstract `glyph families'.  This avoids storing
-   *     the attributes within the FTC_GCache, since it is likely that many
-   *     FTC_GNodes will belong to the same family in typical uses.
-   *
-   *   - Each FTC_GNode is thus an FTC_Node with two additional fields:
-   *
-   *       * gindex: A glyph index, or the first index in a glyph range.
-   *       * family: A pointer to a glyph `family'.
-   *
-   *   - Family types are not fully specific in the FTC_Family type, but
-   *     by classes that extend it.
-   *
-   *  Note that both FTC_ImageCache and FTC_SBitCache extend FTC_GCache.
-   *  They share an FTC_Family sub-class called FTC_BasicFamily which is
-   *  used to store the following data: face ID, pixel/point sizes, load
-   *  flags.  For more details see the file `src/cache/ftcbasic.c'.
-   *
-   *  Client applications can extend FTC_GNode with their own FTC_GNode
-   *  and FTC_Family sub-classes to implement more complex caches (e.g.,
-   *  handling automatic synthesis, like obliquing & emboldening, colored
-   *  glyphs, etc.).
-   *
-   *  See also the FTC_ICache & FTC_SCache classes in `ftcimage.h' and
-   *  `ftcsbits.h', which both extend FTC_GCache with additional
-   *  optimizations.
-   *
-   *  A typical FTC_GCache implementation must provide at least the
-   *  following:
-   *
-   *  - FTC_GNode sub-class, e.g. MyNode, with relevant methods:
-   *        my_node_new            (must call FTC_GNode_Init)
-   *        my_node_free           (must call FTC_GNode_Done)
-   *        my_node_compare        (must call FTC_GNode_Compare)
-   *        my_node_remove_faceid  (must call ftc_gnode_unselect in case
-   *                                of match)
-   *
-   *  - FTC_Family sub-class, e.g. MyFamily, with relevant methods:
-   *        my_family_compare
-   *        my_family_init
-   *        my_family_reset (optional)
-   *        my_family_done
-   *
-   *  - FTC_GQuery sub-class, e.g. MyQuery, to hold cache-specific query
-   *    data.
-   *
-   *  - Constant structures for a FTC_GNodeClass.
-   *
-   *  - MyCacheNew() can be implemented easily as a call to the convenience
-   *    function FTC_GCache_New.
-   *
-   *  - MyCacheLookup with a call to FTC_GCache_Lookup.  This function will
-   *    automatically:
-   *
-   *    - Search for the corresponding family in the cache, or create
-   *      a new one if necessary.  Put it in FTC_GQUERY(myquery).family
-   *
-   *    - Call FTC_Cache_Lookup.
-   *
-   *    If it returns NULL, you should create a new node, then call
-   *    ftc_cache_add as usual.
-   */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Important: The functions defined in this file are only used to        */
-  /*            implement an abstract glyph cache class.  You need to      */
-  /*            provide additional logic to implement a complete cache.    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*********                                                       *********/
-  /*********             WARNING, THIS IS BETA CODE.               *********/
-  /*********                                                       *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#ifndef __FTCGLYPH_H__
-#define __FTCGLYPH_H__
-
-
-#include <ft2build.h>
-#include FT_CACHE_INTERNAL_MANAGER_H
-
-
-FT_BEGIN_HEADER
-
-
- /*
-  *  We can group glyphs into `families'.  Each family correspond to a
-  *  given face ID, character size, transform, etc.
-  *
-  *  Families are implemented as MRU list nodes.  They are
-  *  reference-counted.
-  */
-
-  typedef struct  FTC_FamilyRec_
-  {
-    FTC_MruNodeRec    mrunode;
-    FT_UInt           num_nodes; /* current number of nodes in this family */
-    FTC_Cache         cache;
-    FTC_MruListClass  clazz;
-
-  } FTC_FamilyRec, *FTC_Family;
-
-#define  FTC_FAMILY(x)    ( (FTC_Family)(x) )
-#define  FTC_FAMILY_P(x)  ( (FTC_Family*)(x) )
-
-
-  typedef struct  FTC_GNodeRec_
-  {
-    FTC_NodeRec      node;
-    FTC_Family       family;
-    FT_UInt          gindex;
-
-  } FTC_GNodeRec, *FTC_GNode;
-
-#define FTC_GNODE( x )    ( (FTC_GNode)(x) )
-#define FTC_GNODE_P( x )  ( (FTC_GNode*)(x) )
-
-
-  typedef struct  FTC_GQueryRec_
-  {
-    FT_UInt      gindex;
-    FTC_Family   family;
-
-  } FTC_GQueryRec, *FTC_GQuery;
-
-#define FTC_GQUERY( x )  ( (FTC_GQuery)(x) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* These functions are exported so that they can be called from          */
-  /* user-provided cache classes; otherwise, they are really part of the   */
-  /* cache sub-system internals.                                           */
-  /*                                                                       */
-
-  /* must be called by derived FTC_Node_InitFunc routines */
-  FT_EXPORT( void )
-  FTC_GNode_Init( FTC_GNode   node,
-                  FT_UInt     gindex,  /* glyph index for node */
-                  FTC_Family  family );
-
-  /* returns TRUE iff the query's glyph index correspond to the node;  */
-  /* this assumes that the "family" and "hash" fields of the query are */
-  /* already correctly set                                             */
-  FT_EXPORT( FT_Bool )
-  FTC_GNode_Compare( FTC_GNode   gnode,
-                     FTC_GQuery  gquery );
-
-  /* call this function to clear a node's family -- this is necessary */
-  /* to implement the `node_remove_faceid' cache method correctly     */
-  FT_EXPORT( void )
-  FTC_GNode_UnselectFamily( FTC_GNode  gnode,
-                            FTC_Cache  cache );
-
-  /* must be called by derived FTC_Node_DoneFunc routines */
-  FT_EXPORT( void )
-  FTC_GNode_Done( FTC_GNode  node,
-                  FTC_Cache  cache );
-
-
-  FT_EXPORT( void )
-  FTC_Family_Init( FTC_Family  family,
-                   FTC_Cache   cache );
-
-  typedef struct FTC_GCacheRec_
-  {
-    FTC_CacheRec    cache;
-    FTC_MruListRec  families;
-
-  } FTC_GCacheRec, *FTC_GCache;
-
-#define FTC_GCACHE( x )  ((FTC_GCache)(x))
-
-
-  /* can be used as @FTC_Cache_InitFunc */
-  FT_EXPORT( FT_Error )
-  FTC_GCache_Init( FTC_GCache  cache );
-
-
-  /* can be used as @FTC_Cache_DoneFunc */
-  FT_EXPORT( void )
-  FTC_GCache_Done( FTC_GCache  cache );
-
-
-  /* the glyph cache class adds fields for the family implementation */
-  typedef struct  FTC_GCacheClassRec_
-  {
-    FTC_CacheClassRec  clazz;
-    FTC_MruListClass   family_class;
-
-  } FTC_GCacheClassRec;
-
-  typedef const FTC_GCacheClassRec*   FTC_GCacheClass;
-
-#define FTC_GCACHE_CLASS( x )  ((FTC_GCacheClass)(x))
-
-#define FTC_CACHE__GCACHE_CLASS( x ) \
-          FTC_GCACHE_CLASS( FTC_CACHE(x)->org_class )
-#define FTC_CACHE__FAMILY_CLASS( x ) \
-          ((FTC_MruListClass) FTC_CACHE__GCACHE_CLASS(x)->family_class)
-
-
-  /* convenience function; use it instead of FTC_Manager_Register_Cache */
-  FT_EXPORT( FT_Error )
-  FTC_GCache_New( FTC_Manager       manager,
-                  FTC_GCacheClass   clazz,
-                  FTC_GCache       *acache );
-
-  FT_EXPORT( FT_Error )
-  FTC_GCache_Lookup( FTC_GCache   cache,
-                     FT_UInt32    hash,
-                     FT_UInt      gindex,
-                     FTC_GQuery   query,
-                     FTC_Node    *anode );
-
-
-#ifdef FTC_INLINE
-
-#define FTC_GCACHE_LOOKUP_CMP( cache, famcmp, nodecmp, hash,                \
-                               gindex, query, node, error )                 \
-  FT_BEGIN_STMNT                                                            \
-    FTC_GCache               _gcache   = FTC_GCACHE( cache );               \
-    FTC_GQuery               _gquery   = (FTC_GQuery)( query );             \
-    FTC_MruNode_CompareFunc  _fcompare = (FTC_MruNode_CompareFunc)(famcmp); \
-                                                                            \
-                                                                            \
-    _gquery->gindex = (gindex);                                             \
-                                                                            \
-    FTC_MRULIST_LOOKUP_CMP( &_gcache->families, _gquery, _fcompare,         \
-                            _gquery->family, error );                       \
-    if ( !error )                                                           \
-      FTC_CACHE_LOOKUP_CMP( cache, nodecmp, hash, query, node, error );     \
-  FT_END_STMNT
-  /* */
-
-#else /* !FTC_INLINE */
-
-#define FTC_GCACHE_LOOKUP_CMP( cache, famcmp, nodecmp, hash,               \
-                               gindex, query, node, error )                \
-   FT_BEGIN_STMNT                                                          \
-     error = FTC_GCache_Lookup( FTC_GCACHE( cache ), hash, gindex,         \
-                                FTC_GQUERY( query ), (FTC_Node*)&(node) ); \
-   FT_END_STMNT
-
-#endif /* !FTC_INLINE */
-
-
-FT_END_HEADER
-
-
-#endif /* __FTCGLYPH_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftcimage.h b/nx-X11/extras/freetype2/include/freetype/cache/ftcimage.h
deleted file mode 100644
index 1bf12db13..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftcimage.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcimage.h                                                             */
-/*                                                                         */
-/*    FreeType Generic Image cache (specification)                         */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
- /*
-  *  FTC_ICache is an _abstract_ cache used to store a single FT_Glyph
-  *  image per cache node.
-  *
-  *  FTC_ICache extends FTC_GCache.  For an implementation example,
-  *  see FTC_ImageCache in `src/cache/ftbasic.c'.
-  */
-  
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Each image cache really manages FT_Glyph objects.                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTCIMAGE_H__
-#define __FTCIMAGE_H__
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_GLYPH_H
-
-FT_BEGIN_HEADER
-
-
-  /* the FT_Glyph image node type - we store only 1 glyph per node */
-  typedef struct  FTC_INodeRec_
-  {
-    FTC_GNodeRec  gnode;
-    FT_Glyph      glyph;
-
-  } FTC_INodeRec, *FTC_INode;
-
-#define FTC_INODE( x )         ( (FTC_INode)( x ) )
-#define FTC_INODE_GINDEX( x )  FTC_GNODE(x)->gindex
-#define FTC_INODE_FAMILY( x )  FTC_GNODE(x)->family
-
-  typedef FT_Error
-  (*FTC_IFamily_LoadGlyphFunc)( FTC_Family  family,
-                                FT_UInt     gindex,
-                                FTC_Cache   cache,
-                                FT_Glyph   *aglyph );
-
-  typedef struct  FTC_IFamilyClassRec_
-  {
-    FTC_MruListClassRec        clazz;
-    FTC_IFamily_LoadGlyphFunc  family_load_glyph;
-
-  } FTC_IFamilyClassRec;
-
-  typedef const FTC_IFamilyClassRec*  FTC_IFamilyClass;
-
-#define FTC_IFAMILY_CLASS( x )  ((FTC_IFamilyClass)(x))
-
-#define FTC_CACHE__IFAMILY_CLASS( x ) \
-          FTC_IFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS(x)->family_class )
-
-
-  /* can be used as a @FTC_Node_FreeFunc */
-  FT_EXPORT( void )
-  FTC_INode_Free( FTC_INode  inode,
-                  FTC_Cache  cache );
-
-  /* Can be used as @FTC_Node_NewFunc.  `gquery.index' and `gquery.family'
-   * must be set correctly.  This function will call the `family_load_glyph'
-   * method to load the FT_Glyph into the cache node.
-   */
-  FT_EXPORT( FT_Error )
-  FTC_INode_New( FTC_INode   *pinode,
-                 FTC_GQuery   gquery,
-                 FTC_Cache    cache );
-
-  /* can be used as @FTC_Node_WeightFunc */
-  FT_EXPORT( FT_ULong )
-  FTC_INode_Weight( FTC_INode  inode );
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTCIMAGE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftcmanag.h b/nx-X11/extras/freetype2/include/freetype/cache/ftcmanag.h
deleted file mode 100644
index 526584822..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftcmanag.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcmanag.h                                                             */
-/*                                                                         */
-/*    FreeType Cache Manager (specification).                              */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A cache manager is in charge of the following:                        */
-  /*                                                                       */
-  /*  - Maintain a mapping between generic FTC_FaceIDs and live FT_Face    */
-  /*    objects.  The mapping itself is performed through a user-provided  */
-  /*    callback.  However, the manager maintains a small cache of FT_Face */
-  /*    and FT_Size objects in order to speed up things considerably.      */
-  /*                                                                       */
-  /*  - Manage one or more cache objects.  Each cache is in charge of      */
-  /*    holding a varying number of `cache nodes'.  Each cache node        */
-  /*    represents a minimal amount of individually accessible cached      */
-  /*    data.  For example, a cache node can be an FT_Glyph image          */
-  /*    containing a vector outline, or some glyph metrics, or anything    */
-  /*    else.                                                              */
-  /*                                                                       */
-  /*    Each cache node has a certain size in bytes that is added to the   */
-  /*    total amount of `cache memory' within the manager.                 */
-  /*                                                                       */
-  /*    All cache nodes are located in a global LRU list, where the oldest */
-  /*    node is at the tail of the list.                                   */
-  /*                                                                       */
-  /*    Each node belongs to a single cache, and includes a reference      */
-  /*    count to avoid destroying it (due to caching).                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*********                                                       *********/
-  /*********             WARNING, THIS IS BETA CODE.               *********/
-  /*********                                                       *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#ifndef __FTCMANAG_H__
-#define __FTCMANAG_H__
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_MRU_H
-#include FT_CACHE_INTERNAL_CACHE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    cache_subsystem                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define FTC_MAX_FACES_DEFAULT  2
-#define FTC_MAX_SIZES_DEFAULT  4
-#define FTC_MAX_BYTES_DEFAULT  200000L  /* ~200kByte by default */
-
-  /* maximum number of caches registered in a single manager */
-#define FTC_MAX_CACHES         16
-
-
-  typedef struct  FTC_ManagerRec_
-  {
-    FT_Library          library;
-    FT_Memory           memory;
-
-    FTC_Node            nodes_list;
-    FT_ULong            max_weight;
-    FT_ULong            cur_weight;
-    FT_UInt             num_nodes;
-
-    FTC_Cache           caches[FTC_MAX_CACHES];
-    FT_UInt             num_caches;
-
-    FTC_MruListRec      faces;
-    FTC_MruListRec      sizes;
-
-    FT_Pointer          request_data;
-    FTC_Face_Requester  request_face;
-
-  } FTC_ManagerRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Manager_Compress                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used to check the state of the cache manager if   */
-  /*    its `num_bytes' field is greater than its `max_bytes' field.  It   */
-  /*    will flush as many old cache nodes as possible (ignoring cache     */
-  /*    nodes with a non-zero reference count).                            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    manager :: A handle to the cache manager.                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Client applications should not call this function directly.  It is */
-  /*    normally invoked by specific cache implementations.                */
-  /*                                                                       */
-  /*    The reason this function is exported is to allow client-specific   */
-  /*    cache classes.                                                     */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FTC_Manager_Compress( FTC_Manager  manager );
-
-
-  /* try to flush `count' old nodes from the cache; return the number
-   * of really flushed nodes
-   */
-  FT_EXPORT( FT_UInt )
-  FTC_Manager_FlushN( FTC_Manager  manager,
-                      FT_UInt      count );
-
-
-  /* this must be used internally for the moment */
-  FT_EXPORT( FT_Error )
-  FTC_Manager_RegisterCache( FTC_Manager      manager,
-                             FTC_CacheClass   clazz,
-                             FTC_Cache       *acache );
-
- /* */
-
-#define FTC_SCALER_COMPARE( a, b )                \
-    ( (a)->face_id      == (b)->face_id      &&   \
-      (a)->width        == (b)->width        &&   \
-      (a)->height       == (b)->height       &&   \
-      ((a)->pixel != 0) == ((b)->pixel != 0) &&   \
-      ( (a)->pixel ||                             \
-        ( (a)->x_res == (b)->x_res &&             \
-          (a)->y_res == (b)->y_res ) ) )
-
-#define FTC_SCALER_HASH( q )                                 \
-    ( FTC_FACE_ID_HASH( (q)->face_id ) +                     \
-      (q)->width + (q)->height*7 +                           \
-      ( (q)->pixel ? 0 : ( (q)->x_res*33 ^ (q)->y_res*61 ) ) )
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTCMANAG_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftcmru.h b/nx-X11/extras/freetype2/include/freetype/cache/ftcmru.h
deleted file mode 100644
index d70c5cce7..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftcmru.h
+++ /dev/null
@@ -1,246 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcmru.h                                                               */
-/*                                                                         */
-/*    Simple MRU list-cache (specification).                               */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* An MRU is a list that cannot hold more than a certain number of       */
-  /* elements (`max_elements').  All elements in the list are sorted in    */
-  /* least-recently-used order, i.e., the `oldest' element is at the tail  */
-  /* of the list.                                                          */
-  /*                                                                       */
-  /* When doing a lookup (either through `Lookup()' or `Lookup_Node()'),   */
-  /* the list is searched for an element with the corresponding key.  If   */
-  /* it is found, the element is moved to the head of the list and is      */
-  /* returned.                                                             */
-  /*                                                                       */
-  /* If no corresponding element is found, the lookup routine will try to  */
-  /* obtain a new element with the relevant key.  If the list is already   */
-  /* full, the oldest element from the list is discarded and replaced by a */
-  /* new one; a new element is added to the list otherwise.                */
-  /*                                                                       */
-  /* Note that it is possible to pre-allocate the element list nodes.      */
-  /* This is handy if `max_elements' is sufficiently small, as it saves    */
-  /* allocations/releases during the lookup process.                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTCMRU_H__
-#define __FTCMRU_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-#define  xxFT_DEBUG_ERROR
-#define  FTC_INLINE
-
-FT_BEGIN_HEADER
-
-  typedef struct FTC_MruNodeRec_*  FTC_MruNode;
-
-  typedef struct  FTC_MruNodeRec_
-  {
-    FTC_MruNode  next;
-    FTC_MruNode  prev;
-
-  } FTC_MruNodeRec;
-
-
-  FT_EXPORT( void )
-  FTC_MruNode_Prepend( FTC_MruNode  *plist,
-                       FTC_MruNode   node );
-
-  FT_EXPORT( void )
-  FTC_MruNode_Up( FTC_MruNode  *plist,
-                  FTC_MruNode   node );
-
-  FT_EXPORT( void )
-  FTC_MruNode_Remove( FTC_MruNode  *plist,
-                      FTC_MruNode   node );
-
-
-  typedef struct FTC_MruListRec_*              FTC_MruList;
-
-  typedef struct FTC_MruListClassRec_ const *  FTC_MruListClass;
-
-
-  typedef FT_Bool
-  (*FTC_MruNode_CompareFunc)( FTC_MruNode  node,
-                              FT_Pointer   key );
-
-  typedef FT_Error
-  (*FTC_MruNode_InitFunc)( FTC_MruNode  node,
-                           FT_Pointer   key,
-                           FT_Pointer   data );
-
-  typedef FT_Error
-  (*FTC_MruNode_ResetFunc)( FTC_MruNode  node,
-                            FT_Pointer   key,
-                            FT_Pointer   data );
-
-  typedef void
-  (*FTC_MruNode_DoneFunc)( FTC_MruNode  node,
-                           FT_Pointer   data );
-
-
-  typedef struct  FTC_MruListClassRec_
-  {
-    FT_UInt                  node_size;
-    FTC_MruNode_CompareFunc  node_compare;
-    FTC_MruNode_InitFunc     node_init;
-    FTC_MruNode_ResetFunc    node_reset;
-    FTC_MruNode_DoneFunc     node_done;
-
-  } FTC_MruListClassRec;
-
-  typedef struct  FTC_MruListRec_
-  {
-    FT_UInt              num_nodes;
-    FT_UInt              max_nodes;
-    FTC_MruNode          nodes;
-    FT_Pointer           data;
-    FTC_MruListClassRec  clazz;
-    FT_Memory            memory;
-
-  } FTC_MruListRec;
-
-
-  FT_EXPORT( void )
-  FTC_MruList_Init( FTC_MruList       list,
-                    FTC_MruListClass  clazz,
-                    FT_UInt           max_nodes,
-                    FT_Pointer        data,
-                    FT_Memory         memory );
-
-  FT_EXPORT( void )
-  FTC_MruList_Reset( FTC_MruList  list );
-
-
-  FT_EXPORT( void )
-  FTC_MruList_Done( FTC_MruList  list );
-
-  FT_EXPORT( FTC_MruNode )
-  FTC_MruList_Find( FTC_MruList  list,
-                    FT_Pointer   key );
-
-  FT_EXPORT( FT_Error )
-  FTC_MruList_New( FTC_MruList   list,
-                   FT_Pointer    key,
-                   FTC_MruNode  *anode );
-
-  FT_EXPORT( FT_Error )
-  FTC_MruList_Lookup( FTC_MruList   list,
-                      FT_Pointer    key,
-                      FTC_MruNode  *pnode );
-
-
-  FT_EXPORT( void )
-  FTC_MruList_Remove( FTC_MruList  list,
-                      FTC_MruNode  node );
-
-  FT_EXPORT( void )
-  FTC_MruList_RemoveSelection( FTC_MruList              list,
-                               FTC_MruNode_CompareFunc  selection,
-                               FT_Pointer               key );
-
-
-#ifdef FTC_INLINE
-
-#define FTC_MRULIST_LOOKUP_CMP( list, key, compare, node, error )           \
-  FT_BEGIN_STMNT                                                            \
-    FTC_MruNode*             _pfirst  = &(list)->nodes;                     \
-    FTC_MruNode_CompareFunc  _compare = (FTC_MruNode_CompareFunc)(compare); \
-    FTC_MruNode              _first, _node;                              \
-                                                                         \
-                                                                         \
-    error  = 0;                                                          \
-    _first = *(_pfirst);                                                 \
-    _node  = NULL;                                                       \
-                                                                         \
-    if ( _first )                                                        \
-    {                                                                    \
-      _node = _first;                                                    \
-      do                                                                 \
-      {                                                                  \
-        if ( _compare( _node, (key) ) )                                  \
-        {                                                                \
-          if ( _node != _first )                                         \
-            FTC_MruNode_Up( _pfirst, _node );                            \
-                                                                         \
-          *(FTC_MruNode*)&(node) = _node;                                \
-          goto _MruOk;                                                   \
-        }                                                                \
-        _node = _node->next;                                             \
-                                                                         \
-      } while ( _node != _first) ;                                       \
-    }                                                                    \
-                                                                         \
-    error = FTC_MruList_New( (list), (key), (FTC_MruNode*)&(node) );     \
-  _MruOk:                                                                \
-    ;                                                                    \
-  FT_END_STMNT
-
-#define FTC_MRULIST_LOOKUP( list, key, node, error ) \
-  FTC_MRULIST_LOOKUP_CMP( list, key, (list)->clazz.node_compare, node, error )
-
-#else  /* !FTC_INLINE */
-
-#define FTC_MRULIST_LOOKUP( list, key, node, error ) \
-  error = FTC_MruList_Lookup( (list), (key), (FTC_MruNode*)&(node) )
-
-#endif /* !FTC_INLINE */
-
-
-#define FTC_MRULIST_LOOP( list, node )        \
-  FT_BEGIN_STMNT                              \
-    FTC_MruNode  _first = (list)->nodes;      \
-                                              \
-                                              \
-    if ( _first )                             \
-    {                                         \
-      FTC_MruNode  _node = _first;            \
-                                              \
-                                              \
-      do                                      \
-      {                                       \
-        *(FTC_MruNode*)&(node) = _node;
-
-
-#define FTC_MRULIST_LOOP_END()               \
-        _node = _node->next;                 \
-                                             \
-      } while ( _node != _first );           \
-    }                                        \
-  FT_END_STMNT
-
- /* */
-
-FT_END_HEADER
-
-
-#endif /* __FTCMRU_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/cache/ftcsbits.h b/nx-X11/extras/freetype2/include/freetype/cache/ftcsbits.h
deleted file mode 100644
index b2ef0f181..000000000
--- a/nx-X11/extras/freetype2/include/freetype/cache/ftcsbits.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcsbits.h                                                             */
-/*                                                                         */
-/*    A small-bitmap cache (specification).                                */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTCSBITS_H__
-#define __FTCSBITS_H__
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_GLYPH_H
-
-
-FT_BEGIN_HEADER
-
-#define FTC_SBIT_ITEMS_PER_NODE  16
-
-  typedef struct  FTC_SNodeRec_
-  {
-    FTC_GNodeRec  gnode;
-    FT_UInt       count;
-    FTC_SBitRec   sbits[FTC_SBIT_ITEMS_PER_NODE];
-
-  } FTC_SNodeRec, *FTC_SNode;
-
-
-#define FTC_SNODE( x )         ( (FTC_SNode)( x ) )
-#define FTC_SNODE_GINDEX( x )  FTC_GNODE( x )->gindex
-#define FTC_SNODE_FAMILY( x )  FTC_GNODE( x )->family
-
-  typedef FT_UInt
-  (*FTC_SFamily_GetCountFunc)( FTC_Family   family,
-                               FTC_Manager  manager );
-
-  typedef FT_Error
-  (*FTC_SFamily_LoadGlyphFunc)( FTC_Family   family,
-                                FT_UInt      gindex,
-                                FTC_Manager  manager,
-                                FT_Face     *aface );
-
-  typedef struct  FTC_SFamilyClassRec_
-  {
-    FTC_MruListClassRec        clazz;
-    FTC_SFamily_GetCountFunc   family_get_count;
-    FTC_SFamily_LoadGlyphFunc  family_load_glyph;
-
-  } FTC_SFamilyClassRec;
-
-  typedef const FTC_SFamilyClassRec*  FTC_SFamilyClass;
-
-#define FTC_SFAMILY_CLASS( x )  ((FTC_SFamilyClass)(x))
-
-#define FTC_CACHE__SFAMILY_CLASS( x )  \
-          FTC_SFAMILY_CLASS( FTC_CACHE__GCACHE_CLASS( x )->family_class )
-
-
-  FT_EXPORT( void )
-  FTC_SNode_Free( FTC_SNode  snode,
-                  FTC_Cache  cache );
-
-  FT_EXPORT( FT_Error )
-  FTC_SNode_New( FTC_SNode   *psnode,
-                 FTC_GQuery   gquery,
-                 FTC_Cache    cache );
-
-  FT_EXPORT( FT_ULong )
-  FTC_SNode_Weight( FTC_SNode  inode );
-
-
-  FT_EXPORT( FT_Bool )
-  FTC_SNode_Compare( FTC_SNode   snode,
-                     FTC_GQuery  gquery,
-                     FTC_Cache   cache );
-
-  /* */
-
-FT_END_HEADER
-
-#endif /* __FTCSBITS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/config/ftconfig.h b/nx-X11/extras/freetype2/include/freetype/config/ftconfig.h
deleted file mode 100644
index 4bd8cf617..000000000
--- a/nx-X11/extras/freetype2/include/freetype/config/ftconfig.h
+++ /dev/null
@@ -1,353 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftconfig.h                                                             */
-/*                                                                         */
-/*    ANSI-specific configuration file (specification only).               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This header file contains a number of macro definitions that are used */
-  /* by the rest of the engine.  Most of the macros here are automatically */
-  /* determined at compile time, and you should not need to change it to   */
-  /* port FreeType, except to compile the library with a non-ANSI          */
-  /* compiler.                                                             */
-  /*                                                                       */
-  /* Note however that if some specific modifications are needed, we       */
-  /* advise you to place a modified copy in your build directory.          */
-  /*                                                                       */
-  /* The build directory is usually `freetype/builds/<system>', and        */
-  /* contains system-specific files that are always included first when    */
-  /* building the library.                                                 */
-  /*                                                                       */
-  /* This ANSI version should stay in `include/freetype/config'.           */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTCONFIG_H__
-#define __FTCONFIG_H__
-
-#include <ft2build.h>
-#include FT_CONFIG_OPTIONS_H
-#include FT_CONFIG_STANDARD_LIBRARY_H
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*               PLATFORM-SPECIFIC CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* These macros can be toggled to suit a specific system.  The current   */
-  /* ones are defaults used to compile FreeType in an ANSI C environment   */
-  /* (16bit compilers are also supported).  Copy this file to your own     */
-  /* `freetype/builds/<system>' directory, and edit it to port the engine. */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* There are systems (like the Texas Instruments 'C54x) where a `char' */
-  /* has 16 bits.  ANSI C says that sizeof(char) is always 1.  Since an  */
-  /* `int' has 16 bits also for this system, sizeof(int) gives 1 which   */
-  /* is probably unexpected.                                             */
-  /*                                                                     */
-  /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a      */
-  /* `char' type.                                                        */
-
-#ifndef FT_CHAR_BIT
-#define FT_CHAR_BIT  CHAR_BIT
-#endif
-
-
-  /* The size of an `int' type.  */
-#if   FT_UINT_MAX == 0xFFFFFFFFUL
-#define FT_SIZEOF_INT  (32 / FT_CHAR_BIT)
-#elif FT_UINT_MAX == 0xFFFFU
-#define FT_SIZEOF_INT  (16 / FT_CHAR_BIT)
-#elif FT_UINT_MAX > 0xFFFFFFFFU && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFU
-#define FT_SIZEOF_INT  (64 / FT_CHAR_BIT)
-#else
-#error "Unsupported size of `int' type!"
-#endif
-
-  /* The size of a `long' type.  */
-#if   FT_ULONG_MAX == 0xFFFFFFFFUL
-#define FT_SIZEOF_LONG  (32 / FT_CHAR_BIT)
-#elif FT_ULONG_MAX > 0xFFFFFFFFU && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFU
-#define FT_SIZEOF_LONG  (64 / FT_CHAR_BIT)
-#else
-#error "Unsupported size of `long' type!"
-#endif
-
-
-  /* Preferred alignment of data */
-#define FT_ALIGNMENT  8
-
-
-  /* FT_UNUSED is a macro used to indicate that a given parameter is not  */
-  /* used -- this is only used to get rid of unpleasant compiler warnings */
-#ifndef FT_UNUSED
-#define FT_UNUSED( arg )  ( (arg) = (arg) )
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     AUTOMATIC CONFIGURATION MACROS                    */
-  /*                                                                       */
-  /* These macros are computed from the ones defined above.  Don't touch   */
-  /* their definition, unless you know precisely what you are doing.  No   */
-  /* porter should need to mess with them.                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Mac support                                                           */
-  /*                                                                       */
-  /*   This is the only necessary change, so it is defined here instead    */
-  /*   providing a new configuration file.                                 */
-  /*                                                                       */
-#if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \
-    ( defined( __MWERKS__ ) && defined( macintosh )        )
-#define FT_MACINTOSH 1
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IntN types                                                            */
-  /*                                                                       */
-  /*   Used to guarantee the size of some specific integers.               */
-  /*                                                                       */
-  typedef signed short    FT_Int16;
-  typedef unsigned short  FT_UInt16;
-
-#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT)
-
-  typedef signed int      FT_Int32;
-  typedef unsigned int    FT_UInt32;
-
-#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT)
-
-  typedef signed long     FT_Int32;
-  typedef unsigned long   FT_UInt32;
-
-#else
-#error "no 32bit type found -- please check your configuration files"
-#endif
-
-  /* look up an integer type that is at least 32 bits */
-#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT)
-
-  typedef int            FT_Fast;
-  typedef unsigned int   FT_UFast;
-
-#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT)
-
-  typedef long           FT_Fast;
-  typedef unsigned long  FT_UFast;
-
-#endif
-
-
-  /* determine whether we have a 64-bit int type for platforms without */
-  /* Autoconf                                                          */
-#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT)
-
-  /* FT_LONG64 must be defined if a 64-bit type is available */
-#define FT_LONG64
-#define FT_INT64  long
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 900  /* Visual C++ (and Intel C++) */
-
-  /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64  __int64
-
-#elif defined( __BORLANDC__ )  /* Borland C++ */
-
-  /* XXXX: We should probably check the value of __BORLANDC__ in order */
-  /*       to test the compiler version.                               */
-
-  /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64  __int64
-
-#elif defined( __WATCOMC__ )   /* Watcom C++ */
-
-  /* Watcom doesn't provide 64-bit data types */
-
-#elif defined( __MWERKS__ )    /* Metrowerks CodeWarrior */
-
-#define FT_LONG64
-#define FT_INT64  long long int
-
-#elif defined( __GNUC__ )
-
-  /* GCC provides the "long long" type */
-#define FT_LONG64
-#define FT_INT64  long long int
-
-#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
-
-
-#define FT_BEGIN_STMNT  do {
-#define FT_END_STMNT    } while ( 0 )
-#define FT_DUMMY_STMNT  FT_BEGIN_STMNT FT_END_STMNT
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A 64-bit data type will create compilation problems if you compile    */
-  /* in strict ANSI mode.  To avoid them, we disable their use if          */
-  /* __STDC__ is defined.  You can however ignore this rule by             */
-  /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro.        */
-  /*                                                                       */
-#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#ifdef __STDC__
-
-  /* undefine the 64-bit macros in strict ANSI compilation mode */
-#undef FT_LONG64
-#undef FT_INT64
-
-#endif /* __STDC__ */
-
-#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
-
-
-#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
-
-#define FT_LOCAL( x )      static  x
-#define FT_LOCAL_DEF( x )  static  x
-
-#else
-
-#ifdef __cplusplus
-#define FT_LOCAL( x )      extern "C"  x
-#define FT_LOCAL_DEF( x )  extern "C"  x
-#else
-#define FT_LOCAL( x )      extern  x
-#define FT_LOCAL_DEF( x )  x
-#endif
-
-#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
-
-
-#ifndef FT_BASE
-
-#ifdef __cplusplus
-#define FT_BASE( x )  extern "C"  x
-#else
-#define FT_BASE( x )  extern  x
-#endif
-
-#endif /* !FT_BASE */
-
-
-#ifndef FT_BASE_DEF
-
-#ifdef __cplusplus
-#define FT_BASE_DEF( x )  extern "C"  x
-#else
-#define FT_BASE_DEF( x )  extern  x
-#endif
-
-#endif /* !FT_BASE_DEF */
-
-
-#ifndef FT_EXPORT
-
-#ifdef __cplusplus
-#define FT_EXPORT( x )  extern "C"  x
-#else
-#define FT_EXPORT( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT */
-
-
-#ifndef FT_EXPORT_DEF
-
-#ifdef __cplusplus
-#define FT_EXPORT_DEF( x )  extern "C"  x
-#else
-#define FT_EXPORT_DEF( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT_DEF */
-
-
-#ifndef FT_EXPORT_VAR
-
-#ifdef __cplusplus
-#define FT_EXPORT_VAR( x )  extern "C"  x
-#else
-#define FT_EXPORT_VAR( x )  extern  x
-#endif
-
-#endif /* !FT_EXPORT_VAR */
-
-  /* The following macros are needed to compile the library with a   */
-  /* C++ compiler and with 16bit compilers.                          */
-  /*                                                                 */
-
-  /* This is special.  Within C++, you must specify `extern "C"' for */
-  /* functions which are used via function pointers, and you also    */
-  /* must do that for structures which contain function pointers to  */
-  /* assure C linkage -- it's not possible to have (local) anonymous */
-  /* functions which are accessed by (global) function pointers.     */
-  /*                                                                 */
-  /*                                                                 */
-  /* FT_CALLBACK_DEF is used to _define_ a callback function.        */
-  /*                                                                 */
-  /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
-  /* contains pointers to callback functions.                        */
-  /*                                                                 */
-  /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable   */
-  /* that contains pointers to callback functions.                   */
-  /*                                                                 */
-  /*                                                                 */
-  /* Some 16bit compilers have to redefine these macros to insert    */
-  /* the infamous `_cdecl' or `__fastcall' declarations.             */
-  /*                                                                 */
-#ifndef FT_CALLBACK_DEF
-#ifdef __cplusplus
-#define FT_CALLBACK_DEF( x )  extern "C"  x
-#else
-#define FT_CALLBACK_DEF( x )  static  x
-#endif
-#endif /* FT_CALLBACK_DEF */
-
-#ifndef FT_CALLBACK_TABLE
-#ifdef __cplusplus
-#define FT_CALLBACK_TABLE      extern "C"
-#define FT_CALLBACK_TABLE_DEF  extern "C"
-#else
-#define FT_CALLBACK_TABLE      extern
-#define FT_CALLBACK_TABLE_DEF  /* nothing */
-#endif
-#endif /* FT_CALLBACK_TABLE */
-
-
-FT_END_HEADER
-
-
-#endif /* __FTCONFIG_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/config/ftheader.h b/nx-X11/extras/freetype2/include/freetype/config/ftheader.h
deleted file mode 100644
index b996a7a6f..000000000
--- a/nx-X11/extras/freetype2/include/freetype/config/ftheader.h
+++ /dev/null
@@ -1,564 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftheader.h                                                             */
-/*                                                                         */
-/*    Build macros of the FreeType 2 library.                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-#ifndef __FT_HEADER_H__
-#define __FT_HEADER_H__
-
-  /*@***********************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_BEGIN_HEADER                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro is used in association with @FT_END_HEADER in header    */
-  /*    files to ensure that the declarations within are properly          */
-  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
-  /*    C++ compiler.                                                      */
-  /*                                                                       */
-#ifdef __cplusplus
-#define FT_BEGIN_HEADER  extern "C" {
-#else
-#define FT_BEGIN_HEADER  /* nothing */
-#endif
-
-
-  /*@***********************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_END_HEADER                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro is used in association with @FT_BEGIN_HEADER in header  */
-  /*    files to ensure that the declarations within are properly          */
-  /*    encapsulated in an `extern "C" { .. }' block when included from a  */
-  /*    C++ compiler.                                                      */
-  /*                                                                       */
-#ifdef __cplusplus
-#define FT_END_HEADER  }
-#else
-#define FT_END_HEADER  /* nothing */
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Aliases for the FreeType 2 public and configuration files.            */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    header_file_macros                                                 */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Header File Macros                                                 */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Macro definitions used to #include specific header files.          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The following macros are defined to the name of specific           */
-  /*    FreeType 2 header files.  They can be used directly in #include    */
-  /*    statements as in:                                                  */
-  /*                                                                       */
-  /*    {                                                                  */
-  /*      #include FT_FREETYPE_H                                           */
-  /*      #include FT_MULTIPLE_MASTERS_H                                   */
-  /*      #include FT_GLYPH_H                                              */
-  /*    }                                                                  */
-  /*                                                                       */
-  /*    There are several reasons why we are now using macros to name      */
-  /*    public header files.  The first one is that such macros are not    */
-  /*    limited to the infamous 8.3 naming rule required by DOS (and       */
-  /*    `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h').   */
-  /*                                                                       */
-  /*    The second reason is that is allows for more flexibility in the    */
-  /*    way FreeType 2 is installed on a given system.                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /* configuration files */
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CONFIG_CONFIG_H                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    FreeType 2 configuration data.                                     */
-  /*                                                                       */
-#ifndef FT_CONFIG_CONFIG_H
-#define FT_CONFIG_CONFIG_H  <freetype/config/ftconfig.h>
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CONFIG_STANDARD_LIBRARY_H                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    FreeType 2 configuration data.                                     */
-  /*                                                                       */
-#ifndef FT_CONFIG_STANDARD_LIBRARY_H
-#define FT_CONFIG_STANDARD_LIBRARY_H  <freetype/config/ftstdlib.h>
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CONFIG_OPTIONS_H                                                */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    FreeType 2 project-specific configuration options.                 */
-  /*                                                                       */
-#ifndef FT_CONFIG_OPTIONS_H
-#define FT_CONFIG_OPTIONS_H  <freetype/config/ftoption.h>
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CONFIG_MODULES_H                                                */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the list of FreeType 2 modules that are statically linked to new   */
-  /*    library instances in @FT_Init_FreeType.                            */
-  /*                                                                       */
-#ifndef FT_CONFIG_MODULES_H
-#define FT_CONFIG_MODULES_H  <freetype/config/ftmodule.h>
-#endif
-
-
-  /* public headers */
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_FREETYPE_H                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the base FreeType 2 API.                                           */
-  /*                                                                       */
-#define FT_FREETYPE_H  <freetype/freetype.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_ERRORS_H                                                        */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the list of FreeType 2 error codes (and messages).                 */
-  /*                                                                       */
-  /*    It is included by @FT_FREETYPE_H.                                  */
-  /*                                                                       */
-#define FT_ERRORS_H  <freetype/fterrors.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_MODULE_ERRORS_H                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the list of FreeType 2 module error offsets (and messages).        */
-  /*                                                                       */
-#define FT_MODULE_ERRORS_H  <freetype/ftmoderr.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_SYSTEM_H                                                        */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the FreeType 2 interface to low-level operations (i.e. memory      */
-  /*    management and stream i/o).                                        */
-  /*                                                                       */
-  /*    It is included by @FT_FREETYPE_H.                                  */
-  /*                                                                       */
-#define FT_SYSTEM_H  <freetype/ftsystem.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_IMAGE_H                                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    types definitions related to glyph images (i.e. bitmaps, outlines, */
-  /*    scan-converter parameters).                                        */
-  /*                                                                       */
-  /*    It is included by @FT_FREETYPE_H.                                  */
-  /*                                                                       */
-#define FT_IMAGE_H  <freetype/ftimage.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_TYPES_H                                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the basic data types defined by FreeType 2.                        */
-  /*                                                                       */
-  /*    It is included by @FT_FREETYPE_H.                                  */
-  /*                                                                       */
-#define FT_TYPES_H  <freetype/fttypes.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_LIST_H                                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the list management API of FreeType 2.                             */
-  /*                                                                       */
-  /*    (Most applications will never need to include this file.)          */
-  /*                                                                       */
-#define FT_LIST_H  <freetype/ftlist.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_OUTLINE_H                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the scalable outline management API of FreeType 2.                 */
-  /*                                                                       */
-#define FT_OUTLINE_H  <freetype/ftoutln.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_SIZES_H                                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the API used to manage multiple @FT_Size objects per face.         */
-  /*                                                                       */
-#define FT_SIZES_H  <freetype/ftsizes.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_MODULE_H                                                        */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the module management API of FreeType 2.                           */
-  /*                                                                       */
-#define FT_MODULE_H  <freetype/ftmodapi.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_RENDER_H                                                        */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the renderer module management API of FreeType 2.                  */
-  /*                                                                       */
-#define FT_RENDER_H  <freetype/ftrender.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_TYPE1_TABLES_H                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the types and API specific to the Type 1 format.                   */
-  /*                                                                       */
-#define FT_TYPE1_TABLES_H  <freetype/t1tables.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_TRUETYPE_IDS_H                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the enumeration values used to identify name strings, languages,   */
-  /*    encodings, etc.  This file really contains a _large_ set of        */
-  /*    constant macro definitions, taken from the TrueType and OpenType   */
-  /*    specifications.                                                    */
-  /*                                                                       */
-#define FT_TRUETYPE_IDS_H  <freetype/ttnameid.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_TRUETYPE_TABLES_H                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the types and API specific to the TrueType (as well as OpenType)   */
-  /*    format.                                                            */
-  /*                                                                       */
-#define FT_TRUETYPE_TABLES_H  <freetype/tttables.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_TRUETYPE_TAGS_H                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the definitions of TrueType 4-byte `tags' used to identify blocks  */
-  /*    in SFNT-based font formats (i.e. TrueType and OpenType).           */
-  /*                                                                       */
-#define FT_TRUETYPE_TAGS_H  <freetype/tttags.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_BDF_H                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the definitions of an API to access BDF-specific strings from a    */
-  /*    face.                                                              */
-  /*                                                                       */
-#define FT_BDF_H  <freetype/ftbdf.h>
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_GZIP_H                                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the definitions of an API to support for gzip-compressed files.    */
-  /*                                                                       */
-#define FT_GZIP_H  <freetype/ftgzip.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_LZW_H                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the definitions of an API to support for LZW-compressed files.     */
-  /*                                                                       */
-#define FT_LZW_H  <freetype/ftlzw.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_WINFONTS_H                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the definitions of an API to support Windows .FNT files            */
-  /*                                                                       */
-#define FT_WINFONTS_H   <freetype/ftwinfnt.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_GLYPH_H                                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the API of the optional glyph management component.                */
-  /*                                                                       */
-#define FT_GLYPH_H  <freetype/ftglyph.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_BBOX_H                                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the API of the optional exact bounding box computation routines.   */
-  /*                                                                       */
-#define FT_BBOX_H  <freetype/ftbbox.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CACHE_H                                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the API of the optional FreeType 2 cache sub-system.               */
-  /*                                                                       */
-#define FT_CACHE_H  <freetype/ftcache.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CACHE_IMAGE_H                                                   */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the `glyph image' API of the FreeType 2 cache sub-system.          */
-  /*                                                                       */
-  /*    It is used to define a cache for @FT_Glyph elements.  You can also */
-  /*    see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need  */
-  /*    to store small glyph bitmaps, as it will use less memory.          */
-  /*                                                                       */
-  /*    This macro is deprecated.  Simply include @FT_CACHE_H to have all  */
-  /*    glyph image-related cache declarations.                            */
-  /*                                                                       */
-#define FT_CACHE_IMAGE_H  FT_CACHE_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CACHE_SMALL_BITMAPS_H                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the `small bitmaps' API of the FreeType 2 cache sub-system.        */
-  /*                                                                       */
-  /*    It is used to define a cache for small glyph bitmaps in a          */
-  /*    relatively memory-efficient way.  You can also use the API defined */
-  /*    in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images,  */
-  /*    including scalable outlines.                                       */
-  /*                                                                       */
-  /*    This macro is deprecated.  Simply include @FT_CACHE_H to have all  */
-  /*    small bitmaps-related cache declarations.                          */
-  /*                                                                       */
-#define FT_CACHE_SMALL_BITMAPS_H  FT_CACHE_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_CACHE_CHARMAP_H                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the `charmap' API of the FreeType 2 cache sub-system.              */
-  /*                                                                       */
-  /*    This macro is deprecated.  Simply include @FT_CACHE_H to have all  */
-  /*    charmap-based cache declarations.                                  */
-  /*                                                                       */
-#define FT_CACHE_CHARMAP_H     FT_CACHE_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_MAC_H                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the Macintosh-specific FreeType 2 API. The latter is used to       */
-  /*    access fonts embedded in resource forks.                           */
-  /*                                                                       */
-  /*    This header file must be explicitly included by client             */
-  /*    applications compiled on the Mac (note that the base API still     */
-  /*    works though).                                                     */
-  /*                                                                       */
-#define FT_MAC_H  <freetype/ftmac.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_MULTIPLE_MASTERS_H                                              */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the optional multiple-masters management API of FreeType 2.        */
-  /*                                                                       */
-#define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_SFNT_NAMES_H                                                    */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro used in #include statements to name the file containing    */
-  /*    the optional FreeType 2 API used to access embedded `name' strings */
-  /*    in SFNT-based font formats (i.e. TrueType and OpenType).           */
-  /*                                                                       */
-#define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
-
-  /* */
-
-#define FT_TRIGONOMETRY_H       <freetype/fttrigon.h>
-#define FT_STROKER_H            <freetype/ftstroke.h>
-#define FT_SYNTHESIS_H          <freetype/ftsynth.h>
-#define FT_ERROR_DEFINITIONS_H  <freetype/fterrdef.h>
-
-#define FT_CACHE_MANAGER_H  <freetype/cache/ftcmanag.h>
-
-#define FT_CACHE_INTERNAL_MRU_H      <freetype/cache/ftcmru.h>
-#define FT_CACHE_INTERNAL_MANAGER_H  <freetype/cache/ftcmanag.h>
-#define FT_CACHE_INTERNAL_CACHE_H    <freetype/cache/ftccache.h>
-#define FT_CACHE_INTERNAL_GLYPH_H    <freetype/cache/ftcglyph.h>
-#define FT_CACHE_INTERNAL_IMAGE_H    <freetype/cache/ftcimage.h>
-#define FT_CACHE_INTERNAL_SBITS_H    <freetype/cache/ftcsbits.h>
-
-
-#define FT_XFREE86_H              <freetype/ftxf86.h>
-
-#define FT_INCREMENTAL_H          <freetype/ftincrem.h>
-
-#define FT_TRUETYPE_UNPATENTED_H  <freetype/ttunpat.h>
-
-  /* now include internal headers definitions from <freetype/internal/...> */
-
-#define  FT_INTERNAL_INTERNAL_H  <freetype/internal/internal.h>
-#include FT_INTERNAL_INTERNAL_H
-
-
-#endif /* __FT2_BUILD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/config/ftmodule.h b/nx-X11/extras/freetype2/include/freetype/config/ftmodule.h
deleted file mode 100644
index c00a489f7..000000000
--- a/nx-X11/extras/freetype2/include/freetype/config/ftmodule.h
+++ /dev/null
@@ -1,19 +0,0 @@
-FT_USE_MODULE(autohint_module_class)
-FT_USE_MODULE(tt_driver_class)
-FT_USE_MODULE(t1_driver_class)
-FT_USE_MODULE(cff_driver_class)
-FT_USE_MODULE(t1cid_driver_class)
-FT_USE_MODULE(pcf_driver_class)
-FT_USE_MODULE(bdf_driver_class)
-FT_USE_MODULE(psaux_module_class)
-FT_USE_MODULE(psnames_module_class)
-FT_USE_MODULE(pshinter_module_class)
-FT_USE_MODULE(ft_raster1_renderer_class)
-FT_USE_MODULE(sfnt_module_class)
-FT_USE_MODULE(ft_smooth_renderer_class)
-FT_USE_MODULE(ft_smooth_lcd_renderer_class)
-FT_USE_MODULE(ft_smooth_lcdv_renderer_class)
-FT_USE_MODULE(t42_driver_class)
-FT_USE_MODULE(pfr_driver_class)
-FT_USE_MODULE(winfnt_driver_class)
-
diff --git a/nx-X11/extras/freetype2/include/freetype/config/ftoption.h b/nx-X11/extras/freetype2/include/freetype/config/ftoption.h
deleted file mode 100644
index 028c6ea9c..000000000
--- a/nx-X11/extras/freetype2/include/freetype/config/ftoption.h
+++ /dev/null
@@ -1,577 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftoption.h                                                             */
-/*                                                                         */
-/*    User-selectable configuration macros (specification only).           */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTOPTION_H__
-#define __FTOPTION_H__
-
-
-#include <ft2build.h>
-
-
-FT_BEGIN_HEADER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                 USER-SELECTABLE CONFIGURATION MACROS                  */
-  /*                                                                       */
-  /* This file contains the default configuration macro definitions for    */
-  /* a standard build of the FreeType library.  There are three ways to    */
-  /* use this file to build project-specific versions of the library:      */
-  /*                                                                       */
-  /*  - You can modify this file by hand, but this is not recommended in   */
-  /*    cases where you would like to build several versions of the        */
-  /*    library from a single source directory.                            */
-  /*                                                                       */
-  /*  - You can put a copy of this file in your build directory, more      */
-  /*    precisely in "$BUILD/freetype/config/ftoption.h", where "$BUILD"   */
-  /*    is the name of a directory that is included _before_ the FreeType  */
-  /*    include path during compilation.                                   */
-  /*                                                                       */
-  /*    The default FreeType Makefiles and Jamfiles use the build          */
-  /*    directory "builds/<system>" by default, but you can easily change  */
-  /*    that for your own projects.                                        */
-  /*                                                                       */
-  /*  - Copy the file <ft2build.h> to "$BUILD/ft2build.h" and modify it    */
-  /*    slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to       */
-  /*    locate this file during the build.  For example,                   */
-  /*                                                                       */
-  /*      #define FT_CONFIG_OPTIONS_H  <myftoptions.h>                     */
-  /*      #include <freetype/config/ftheader.h>                            */
-  /*                                                                       */
-  /*    will use "$BUILD/myftoptions.h" instead of this file for macro     */
-  /*    definitions.                                                       */
-  /*                                                                       */
-  /*    Note also that you can similarly pre-define the macro              */
-  /*    FT_CONFIG_MODULES_H used to locate the file listing of the modules */
-  /*    that are statically linked to the library at compile time.  By     */
-  /*    default, this file is <freetype/config/ftmodule.h>.                */
-  /*                                                                       */
-  /*  We highly recommend using the third method whenever possible.        */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /**** G E N E R A L   F R E E T Y P E   2   C O N F I G U R A T I O N ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Many compilers provide a non-ANSI 64-bit data type that can be used   */
-  /* by FreeType to speed up some computations.  However, this will create */
-  /* some problems when compiling the library in strict ANSI mode.         */
-  /*                                                                       */
-  /* For this reason, the use of 64-bit integers is normally disabled when */
-  /* the __STDC__ macro is defined.  You can however disable this by       */
-  /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here.                 */
-  /*                                                                       */
-  /* For most compilers, this will only create compilation warnings when   */
-  /* building the library.                                                 */
-  /*                                                                       */
-  /* ObNote: The compiler-specific 64-bit integers are detected in the     */
-  /*         file "ftconfig.h" either statically or through the            */
-  /*         `configure' script on supported platforms.                    */
-  /*                                                                       */
-#undef  FT_CONFIG_OPTION_FORCE_INT64
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* LZW-compressed file support.                                          */
-  /*                                                                       */
-  /*   FreeType now handles font files that have been compressed with the  */
-  /*   'compress' program.  This is mostly used to parse many of the PCF   */
-  /*   files that come with various X11 distributions.  The implementation */
-  /*   uses NetBSD's `zopen' to partially uncompress the file on the fly   */
-  /*   (see src/lzw/ftgzip.c).                                             */
-  /*                                                                       */
-  /*   Define this macro if you want to enable this `feature'.             */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_USE_LZW
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Gzip-compressed file support.                                         */
-  /*                                                                       */
-  /*   FreeType now handles font files that have been compressed with the  */
-  /*   'gzip' program.  This is mostly used to parse many of the PCF files */
-  /*   that come with XFree86.  The implementation uses `zlib' to          */
-  /*   partially uncompress the file on the fly (see src/gzip/ftgzip.c).   */
-  /*                                                                       */
-  /*   Define this macro if you want to enable this `feature'.  See also   */
-  /*   the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below.                       */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_USE_ZLIB
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ZLib library selection                                                */
-  /*                                                                       */
-  /*   This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined.  */
-  /*   It allows FreeType's `ftgzip' component to link to the system's     */
-  /*   installation of the ZLib library.  This is useful on systems like   */
-  /*   Unix or VMS where it generally is already available.                */
-  /*                                                                       */
-  /*   If you let it undefined, the component will use its own copy        */
-  /*   of the zlib sources instead.  These have been modified to be        */
-  /*   included directly within the component and *not* export external    */
-  /*   function names.  This allows you to link any program with FreeType  */
-  /*   _and_ ZLib without linking conflicts.                               */
-  /*                                                                       */
-  /*   Do not #undef this macro here since the build system might define   */
-  /*   it for certain configurations only.                                 */
-  /*                                                                       */
-/* #define  FT_CONFIG_OPTION_SYSTEM_ZLIB */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DLL export compilation                                                */
-  /*                                                                       */
-  /*   When compiling FreeType as a DLL, some systems/compilers need a     */
-  /*   special keyword in front OR after the return type of function       */
-  /*   declarations.                                                       */
-  /*                                                                       */
-  /*   Two macros are used within the FreeType source code to define       */
-  /*   exported library functions: FT_EXPORT and FT_EXPORT_DEF.            */
-  /*                                                                       */
-  /*     FT_EXPORT( return_type )                                          */
-  /*                                                                       */
-  /*       is used in a function declaration, as in                        */
-  /*                                                                       */
-  /*         FT_EXPORT( FT_Error )                                         */
-  /*         FT_Init_FreeType( FT_Library*  alibrary );                    */
-  /*                                                                       */
-  /*                                                                       */
-  /*     FT_EXPORT_DEF( return_type )                                      */
-  /*                                                                       */
-  /*       is used in a function definition, as in                         */
-  /*                                                                       */
-  /*         FT_EXPORT_DEF( FT_Error )                                     */
-  /*         FT_Init_FreeType( FT_Library*  alibrary )                     */
-  /*         {                                                             */
-  /*           ... some code ...                                           */
-  /*           return FT_Err_Ok;                                           */
-  /*         }                                                             */
-  /*                                                                       */
-  /*   You can provide your own implementation of FT_EXPORT and            */
-  /*   FT_EXPORT_DEF here if you want.  If you leave them undefined, they  */
-  /*   will be later automatically defined as `extern return_type' to      */
-  /*   allow normal compilation.                                           */
-  /*                                                                       */
-  /*   Do not #undef these macros here since the build system might define */
-  /*   them for certain configurations only.                               */
-  /*                                                                       */
-/* #define  FT_EXPORT(x)       extern x */
-/* #define  FT_EXPORT_DEF(x)   x */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Glyph Postscript Names handling                                       */
-  /*                                                                       */
-  /*   By default, FreeType 2 is compiled with the `PSNames' module.  This */
-  /*   module is in charge of converting a glyph name string into a        */
-  /*   Unicode value, or return a Macintosh standard glyph name for the    */
-  /*   use with the TrueType `post' table.                                 */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want `PSNames' compiled in your   */
-  /*   build of FreeType.  This has the following effects:                 */
-  /*                                                                       */
-  /*   - The TrueType driver will provide its own set of glyph names,      */
-  /*     if you build it to support postscript names in the TrueType       */
-  /*     `post' table.                                                     */
-  /*                                                                       */
-  /*   - The Type 1 driver will not be able to synthetize a Unicode        */
-  /*     charmap out of the glyphs found in the fonts.                     */
-  /*                                                                       */
-  /*   You would normally undefine this configuration macro when building  */
-  /*   a version of FreeType that doesn't contain a Type 1 or CFF driver.  */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Postscript Names to Unicode Values support                            */
-  /*                                                                       */
-  /*   By default, FreeType 2 is built with the `PSNames' module compiled  */
-  /*   in.  Among other things, the module is used to convert a glyph name */
-  /*   into a Unicode value.  This is especially useful in order to        */
-  /*   synthetize on the fly a Unicode charmap from the CFF/Type 1 driver  */
-  /*   through a big table named the `Adobe Glyph List' (AGL).             */
-  /*                                                                       */
-  /*   Undefine this macro if you do not want the Adobe Glyph List         */
-  /*   compiled in your `PSNames' module.  The Type 1 driver will not be   */
-  /*   able to synthetize a Unicode charmap out of the glyphs found in the */
-  /*   fonts.                                                              */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Support for Mac fonts                                                 */
-  /*                                                                       */
-  /*   Define this macro if you want support for outline fonts in Mac      */
-  /*   format (mac dfont, mac resource, macbinary containing a mac         */
-  /*   resource) on non-Mac platforms.                                     */
-  /*                                                                       */
-  /*   Note that the `FOND' resource isn't checked.                        */
-  /*                                                                       */
-#define FT_CONFIG_OPTION_MAC_FONTS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Guessing methods to access embedded resource forks                    */
-  /*                                                                       */
-  /*   Enable extra Mac fonts support on non-Mac platforms (e.g.           */
-  /*   GNU/Linux).                                                         */
-  /*                                                                       */
-  /*   Resource forks which include fonts data are stored sometimes in     */
-  /*   locations which users or developers don't expected.  In some cases, */
-  /*   resource forks start with some offset from the head of a file.  In  */
-  /*   other cases, the actual resource fork is stored in file different   */
-  /*   from what the user specifies.  If this option is activated,         */
-  /*   FreeType tries to guess whether such offsets or different file      */
-  /*   names must be used.                                                 */
-  /*                                                                       */
-  /*   Note that normal, direct access of resource forks is controlled via */
-  /*   the FT_CONFIG_OPTION_MAC_FONTS option.                              */
-  /*                                                                       */
-#ifdef FT_CONFIG_OPTION_MAC_FONTS
-#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Allow the use of FT_Incremental_Interface to load typefaces that      */
-  /* contain no glyph data, but supply it via a callback function.         */
-  /* This allows FreeType to be used with the PostScript language, using   */
-  /* the GhostScript interpreter.                                          */
-  /*                                                                       */
-/* #define FT_CONFIG_OPTION_INCREMENTAL */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The size in bytes of the render pool used by the scan-line converter  */
-  /* to do all of its work.                                                */
-  /*                                                                       */
-  /* This must be greater than 4KByte.                                     */
-  /*                                                                       */
-#define FT_RENDER_POOL_SIZE  16384L
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MAX_MODULES                                                        */
-  /*                                                                       */
-  /*   The maximum number of modules that can be registered in a single    */
-  /*   FreeType library object.  32 is the default.                        */
-  /*                                                                       */
-#define FT_MAX_MODULES  32
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Debug level                                                           */
-  /*                                                                       */
-  /*   FreeType can be compiled in debug or trace mode.  In debug mode,    */
-  /*   errors are reported through the `ftdebug' component.  In trace      */
-  /*   mode, additional messages are sent to the standard output during    */
-  /*   execution.                                                          */
-  /*                                                                       */
-  /*   Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode.     */
-  /*   Define FT_DEBUG_LEVEL_TRACE to build it in trace mode.              */
-  /*                                                                       */
-  /*   Don't define any of these macros to compile in `release' mode!      */
-  /*                                                                       */
-  /*   Do not #undef these macros here since the build system might define */
-  /*   them for certain configurations only.                               */
-  /*                                                                       */
-/* #define FT_DEBUG_LEVEL_ERROR */
-/* #define FT_DEBUG_LEVEL_TRACE */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Memory Debugging                                                      */
-  /*                                                                       */
-  /*   FreeType now comes with an integrated memory debugger that is       */
-  /*   capable of detecting simple errors like memory leaks or double      */
-  /*   deletes.  To compile it within your build of the library, you       */
-  /*   should define FT_DEBUG_MEMORY here.                                 */
-  /*                                                                       */
-  /*   Note that the memory debugger is only activated at runtime when     */
-  /*   when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */
-  /*                                                                       */
-  /*   Do not #undef this macro here since the build system might define   */
-  /*   it for certain configurations only.                                 */
-  /*                                                                       */
-/* #define FT_DEBUG_MEMORY */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Module errors                                                         */
-  /*                                                                       */
-  /*   If this macro is set (which is _not_ the default), the higher byte  */
-  /*   of an error code gives the module in which the error has occurred,  */
-  /*   while the lower byte is the real error code.                        */
-  /*                                                                       */
-  /*   Setting this macro makes sense for debugging purposes only, since   */
-  /*   it would break source compatibility of certain programs that use    */
-  /*   FreeType 2.                                                         */
-  /*                                                                       */
-  /*   More details can be found in the files ftmoderr.h and fterrors.h.   */
-  /*                                                                       */
-#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
-
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****        S F N T   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support       */
-  /* embedded bitmaps in all formats using the SFNT module (namely         */
-  /* TrueType & OpenType).                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to    */
-  /* load and enumerate the glyph Postscript names in a TrueType or        */
-  /* OpenType file.                                                        */
-  /*                                                                       */
-  /* Note that when you do not compile the `PSNames' module by undefining  */
-  /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will   */
-  /* contain additional code used to read the PS Names table from a font.  */
-  /*                                                                       */
-  /* (By default, the module uses `PSNames' to extract glyph names.)       */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to       */
-  /* access the internal name table in a SFNT-based format like TrueType   */
-  /* or OpenType.  The name table contains various strings used to         */
-  /* describe the font, like family name, copyright, version, etc.  It     */
-  /* does not contain any glyph name though.                               */
-  /*                                                                       */
-  /* Accessing SFNT names is done through the functions declared in        */
-  /* `freetype/ftnames.h'.                                                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_SFNT_NAMES
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TrueType CMap support                                                 */
-  /*                                                                       */
-  /*   Here you can fine-tune which TrueType CMap table format shall be    */
-  /*   supported.                                                          */
-#define TT_CONFIG_CMAP_FORMAT_0
-#define TT_CONFIG_CMAP_FORMAT_2
-#define TT_CONFIG_CMAP_FORMAT_4
-#define TT_CONFIG_CMAP_FORMAT_6
-#define TT_CONFIG_CMAP_FORMAT_8
-#define TT_CONFIG_CMAP_FORMAT_10
-#define TT_CONFIG_CMAP_FORMAT_12
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****    T R U E T Y P E   D R I V E R    C O N F I G U R A T I O N   ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile   */
-  /* a bytecode interpreter in the TrueType driver.  Note that there are   */
-  /* important patent issues related to the use of the interpreter.        */
-  /*                                                                       */
-  /* By undefining this, you will only compile the code necessary to load  */
-  /* TrueType glyphs without hinting.                                      */
-  /*                                                                       */
-  /*   Do not #undef this macro here, since the build system might         */
-  /*   define it for certain configurations only.                          */
-  /*                                                                       */
-/* #define  TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to            */
-  /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented      */
-  /* work-around hinting system.  Note that for the moment, the algorithm  */
-  /* is only used when selected at runtime through the parameter tag       */
-  /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook               */
-  /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived                  */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_UNPATENTED_HINTING
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType    */
-  /* bytecode interpreter with a huge switch statement, rather than a call */
-  /* table.  This results in smaller and faster code for a number of       */
-  /* architectures.                                                        */
-  /*                                                                       */
-  /* Note however that on some compiler/processor combinations, undefining */
-  /* this macro will generate faster, though larger, code.                 */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the        */
-  /* TrueType glyph loader to use Apple's definition of how to handle      */
-  /* component offsets in composite glyphs.                                */
-  /*                                                                       */
-  /* Apple and MS disagree on the default behavior of component offsets    */
-  /* in composites.  Apple says that they should be scaled by the scale    */
-  /* factors in the transformation matrix (roughly, it's more complex)     */
-  /* while MS says they should not.  OpenType defines two bits in the      */
-  /* composite flags array which can be used to disambiguate, but old      */
-  /* fonts will not have them.                                             */
-  /*                                                                       */
-  /*   http://partners.adobe.com/asn/developer/opentype/glyf.html          */
-  /*   http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html                 */
-  /*                                                                       */
-#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include         */
-  /* support for Apple's distortable font technology (fvar, gvar, cvar,    */
-  /* and avar tables).  This has many similarities to Type 1 Multiple      */
-  /* Masters support.                                                      */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_GX_VAR_SUPPORT
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****      T Y P E 1   D R I V E R    C O N F I G U R A T I O N       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and       */
-  /* arrays in the Type 1 stream (see t1load.c).  A minimum of 4 is        */
-  /* required.                                                             */
-  /*                                                                       */
-#define T1_MAX_DICT_DEPTH  5
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine   */
-  /* calls during glyph loading.                                           */
-  /*                                                                       */
-#define T1_MAX_SUBRS_CALLS  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity.  A     */
-  /* minimum of 16 is required.                                            */
-  /*                                                                       */
-  /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */
-  /*                                                                       */
-#define T1_MAX_CHARSTRINGS_OPERANDS  256
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of `t1afm', which is in charge of reading Type 1 AFM      */
-  /* files into an existing face.  Note that if set, the T1 driver will be */
-  /* unable to produce kerning distances.                                  */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_AFM
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this configuration macro if you want to prevent the            */
-  /* compilation of the Multiple Masters font support in the Type 1        */
-  /* driver.                                                               */
-  /*                                                                       */
-#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
- /* */
-
-/*
- * The FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent
- * improvements to the auto-hinter contributed by David Chester.  They will
- * most likely disappear completely in the next release.  For now, you
- * should always keep them defined.
- *
- */
-#define  FT_CONFIG_OPTION_CHESTER_HINTS
-
-#ifdef   FT_CONFIG_OPTION_CHESTER_HINTS
-
-#define  FT_CONFIG_CHESTER_SMALL_F
-#define  FT_CONFIG_CHESTER_ASCENDER
-#define  FT_CONFIG_CHESTER_SERIF
-#define  FT_CONFIG_CHESTER_STEM
-#define  FT_CONFIG_CHESTER_BLUE_SCALE
-
-#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */
-
-FT_END_HEADER
-
-
-#endif /* __FTOPTION_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/config/ftstdlib.h b/nx-X11/extras/freetype2/include/freetype/config/ftstdlib.h
deleted file mode 100644
index 297d6f017..000000000
--- a/nx-X11/extras/freetype2/include/freetype/config/ftstdlib.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftstdlib.h                                                             */
-/*                                                                         */
-/*    ANSI-specific library and header configuration file (specification   */
-/*    only).                                                               */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to group all #includes to the ANSI C library that   */
-  /* FreeType normally requires.  It also defines macros to rename the     */
-  /* standard functions within the FreeType source code.                   */
-  /*                                                                       */
-  /* Load a file which defines __FTSTDLIB_H__ before this one to override  */
-  /* it.                                                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTSTDLIB_H__
-#define __FTSTDLIB_H__
-
-
-  /**********************************************************************/
-  /*                                                                    */
-  /*                           integer limits                           */
-  /*                                                                    */
-  /* UINT_MAX and ULONG_MAX are used to automatically compute the size  */
-  /* of `int' and `long' in bytes at compile-time.  So far, this works  */
-  /* for all platforms the library has been tested on.                  */
-  /*                                                                    */
-  /* Note that on the extremely rare platforms that do not provide      */
-  /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some    */
-  /* old Crays where `int' is 36 bits), we do not make any guarantee    */
-  /* about the correct behaviour of FT2 with all fonts.                 */
-  /*                                                                    */
-  /* In these case, "ftconfig.h" will refuse to compile anyway with a   */
-  /* message like "couldn't find 32-bit type" or something similar.     */
-  /*                                                                    */
-  /* IMPORTANT NOTE: We do not define aliases for heap management and   */
-  /*                 i/o routines (i.e. malloc/free/fopen/fread/...)    */
-  /*                 since these functions should all be encapsulated   */
-  /*                 by platform-specific implementations of            */
-  /*                 "ftsystem.c".                                      */
-  /*                                                                    */
-  /**********************************************************************/
-
-
-#include <limits.h>
-
-#define FT_UINT_MAX   UINT_MAX
-#define FT_ULONG_MAX  ULONG_MAX
-
-
-  /**********************************************************************/
-  /*                                                                    */
-  /*                 character and string processing                    */
-  /*                                                                    */
-  /**********************************************************************/
-
-
-#include <ctype.h>
-
-#define ft_isalnum   isalnum
-#define ft_isupper   isupper
-#define ft_islower   islower
-#define ft_isdigit   isdigit
-#define ft_isxdigit  isxdigit
-
-
-#include <string.h>
-
-#define ft_memcmp   memcmp
-#define ft_memcpy   memcpy
-#define ft_memmove  memmove
-#define ft_memset   memset
-#define ft_strcat   strcat
-#define ft_strcmp   strcmp
-#define ft_strcpy   strcpy
-#define ft_strlen   strlen
-#define ft_strncmp  strncmp
-#define ft_strncpy  strncpy
-#define ft_strrchr  strrchr
-
-
-#include <stdio.h>
-
-#define ft_sprintf  sprintf
-
-
-  /**********************************************************************/
-  /*                                                                    */
-  /*                             sorting                                */
-  /*                                                                    */
-  /**********************************************************************/
-
-
-#include <stdlib.h>
-
-#define ft_qsort  qsort
-#define ft_exit   exit    /* only used to exit from unhandled exceptions */
-
-#define ft_atol   atol
-
-
-  /**********************************************************************/
-  /*                                                                    */
-  /*                         execution control                          */
-  /*                                                                    */
-  /**********************************************************************/
-
-
-#include <setjmp.h>
-
-#define ft_jmp_buf  jmp_buf   /* note: this cannot be a typedef since */
-                              /*       jmp_buf is defined as a macro  */
-                              /*       on certain platforms           */
-
-#define ft_setjmp   setjmp    /* same thing here */
-#define ft_longjmp  longjmp   /* "               */
-
-
-  /* the following is only used for debugging purposes, i.e. when */
-  /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined     */
-  /*                                                              */
-#include <stdarg.h>
-
-
-#endif /* __FTSTDLIB_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/freetype.h b/nx-X11/extras/freetype2/include/freetype/freetype.h
deleted file mode 100644
index 3780a2836..000000000
--- a/nx-X11/extras/freetype2/include/freetype/freetype.h
+++ /dev/null
@@ -1,3083 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  freetype.h                                                             */
-/*                                                                         */
-/*    FreeType high-level API and common types (specification only).       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef FT_FREETYPE_H
-#error "`ft2build.h' hasn't been included yet!"
-#error "Please always use macros to include FreeType header files."
-#error "Example:"
-#error "  #include <ft2build.h>"
-#error "  #include FT_FREETYPE_H"
-#endif
-
-
-#ifndef __FREETYPE_H__
-#define __FREETYPE_H__
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The `raster' component duplicates some of the declarations in         */
-  /* freetype.h for stand-alone use if _FREETYPE_ isn't defined.           */
-  /*                                                                       */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The FREETYPE_MAJOR and FREETYPE_MINOR macros are used to version the  */
-  /* new FreeType design, which is able to host several kinds of font      */
-  /* drivers.  It starts at 2.0.                                           */
-  /*                                                                       */
-#define FREETYPE_MAJOR 2
-#define FREETYPE_MINOR 1
-#define FREETYPE_PATCH 9
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_ERRORS_H
-#include FT_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*                                                                       */
-  /*                        B A S I C   T Y P E S                          */
-  /*                                                                       */
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    base_interface                                                     */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Base Interface                                                     */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    The FreeType 2 base font interface.                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section describes the public high-level API of FreeType 2.    */
-  /*                                                                       */
-  /* <Order>                                                               */
-  /*    FT_Library                                                         */
-  /*    FT_Face                                                            */
-  /*    FT_Size                                                            */
-  /*    FT_GlyphSlot                                                       */
-  /*    FT_CharMap                                                         */
-  /*    FT_Encoding                                                        */
-  /*                                                                       */
-  /*    FT_FaceRec                                                         */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_SCALABLE                                              */
-  /*    FT_FACE_FLAG_FIXED_SIZES                                           */
-  /*    FT_FACE_FLAG_FIXED_WIDTH                                           */
-  /*    FT_FACE_FLAG_HORIZONTAL                                            */
-  /*    FT_FACE_FLAG_VERTICAL                                              */
-  /*    FT_FACE_FLAG_SFNT                                                  */
-  /*    FT_FACE_FLAG_KERNING                                               */
-  /*    FT_FACE_FLAG_MULTIPLE_MASTERS                                      */
-  /*    FT_FACE_FLAG_GLYPH_NAMES                                           */
-  /*    FT_FACE_FLAG_EXTERNAL_STREAM                                       */
-  /*    FT_FACE_FLAG_FAST_GLYPHS                                           */
-  /*                                                                       */
-  /*    FT_STYLE_FLAG_BOLD                                                 */
-  /*    FT_STYLE_FLAG_ITALIC                                               */
-  /*                                                                       */
-  /*    FT_SizeRec                                                         */
-  /*    FT_Size_Metrics                                                    */
-  /*                                                                       */
-  /*    FT_GlyphSlotRec                                                    */
-  /*    FT_Glyph_Metrics                                                   */
-  /*    FT_SubGlyph                                                        */
-  /*                                                                       */
-  /*    FT_Bitmap_Size                                                     */
-  /*                                                                       */
-  /*    FT_Init_FreeType                                                   */
-  /*    FT_Done_FreeType                                                   */
-  /*    FT_Library_Version                                                 */
-  /*                                                                       */
-  /*    FT_New_Face                                                        */
-  /*    FT_Done_Face                                                       */
-  /*    FT_New_Memory_Face                                                 */
-  /*    FT_Open_Face                                                       */
-  /*    FT_Open_Args                                                       */
-  /*    FT_Parameter                                                       */
-  /*    FT_Attach_File                                                     */
-  /*    FT_Attach_Stream                                                   */
-  /*                                                                       */
-  /*    FT_Set_Char_Size                                                   */
-  /*    FT_Set_Pixel_Sizes                                                 */
-  /*    FT_Set_Transform                                                   */
-  /*    FT_Load_Glyph                                                      */
-  /*    FT_Get_Char_Index                                                  */
-  /*    FT_Get_Name_Index                                                  */
-  /*    FT_Load_Char                                                       */
-  /*                                                                       */
-  /*    FT_OPEN_MEMORY                                                     */
-  /*    FT_OPEN_STREAM                                                     */
-  /*    FT_OPEN_PATHNAME                                                   */
-  /*    FT_OPEN_DRIVER                                                     */
-  /*    FT_OPEN_PARAMS                                                     */
-  /*                                                                       */
-  /*    FT_LOAD_DEFAULT                                                    */
-  /*    FT_LOAD_RENDER                                                     */
-  /*    FT_LOAD_MONOCHROME                                                 */
-  /*    FT_LOAD_LINEAR_DESIGN                                              */
-  /*    FT_LOAD_NO_SCALE                                                   */
-  /*    FT_LOAD_NO_HINTING                                                 */
-  /*    FT_LOAD_NO_BITMAP                                                  */
-  /*    FT_LOAD_CROP_BITMAP                                                */
-  /*                                                                       */
-  /*    FT_LOAD_VERTICAL_LAYOUT                                            */
-  /*    FT_LOAD_IGNORE_TRANSFORM                                           */
-  /*    FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH                                */
-  /*    FT_LOAD_FORCE_AUTOHINT                                             */
-  /*    FT_LOAD_NO_RECURSE                                                 */
-  /*    FT_LOAD_PEDANTIC                                                   */
-  /*                                                                       */
-  /*    FT_LOAD_TARGET_NORMAL                                              */
-  /*    FT_LOAD_TARGET_LIGHT                                               */
-  /*    FT_LOAD_TARGET_MONO                                                */
-  /*    FT_LOAD_TARGET_LCD                                                 */
-  /*    FT_LOAD_TARGET_LCD_V                                               */
-  /*                                                                       */
-  /*    FT_Render_Glyph                                                    */
-  /*    FT_Render_Mode                                                     */
-  /*    FT_Get_Kerning                                                     */
-  /*    FT_Kerning_Mode                                                    */
-  /*    FT_Get_Glyph_Name                                                  */
-  /*    FT_Get_Postscript_Name                                             */
-  /*                                                                       */
-  /*    FT_CharMapRec                                                      */
-  /*    FT_Select_Charmap                                                  */
-  /*    FT_Set_Charmap                                                     */
-  /*    FT_Get_Charmap_Index                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Glyph_Metrics                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model the metrics of a single glyph.  The      */
-  /*    values are expressed in 26.6 fractional pixel format; if the flag  */
-  /*    FT_LOAD_NO_SCALE is used, values are returned in font units        */
-  /*    instead.                                                           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    width ::                                                           */
-  /*      The glyph's width.                                               */
-  /*                                                                       */
-  /*    height ::                                                          */
-  /*      The glyph's height.                                              */
-  /*                                                                       */
-  /*    horiBearingX ::                                                    */
-  /*      Left side bearing for horizontal layout.                         */
-  /*                                                                       */
-  /*    horiBearingY ::                                                    */
-  /*      Top side bearing for horizontal layout.                          */
-  /*                                                                       */
-  /*    horiAdvance ::                                                     */
-  /*      Advance width for horizontal layout.                             */
-  /*                                                                       */
-  /*    vertBearingX ::                                                    */
-  /*      Left side bearing for vertical layout.                           */
-  /*                                                                       */
-  /*    vertBearingY ::                                                    */
-  /*      Top side bearing for vertical layout.                            */
-  /*                                                                       */
-  /*    vertAdvance ::                                                     */
-  /*      Advance height for vertical layout.                              */
-  /*                                                                       */
-  typedef struct  FT_Glyph_Metrics_
-  {
-    FT_Pos  width;
-    FT_Pos  height;
-
-    FT_Pos  horiBearingX;
-    FT_Pos  horiBearingY;
-    FT_Pos  horiAdvance;
-
-    FT_Pos  vertBearingX;
-    FT_Pos  vertBearingY;
-    FT_Pos  vertAdvance;
-
-  } FT_Glyph_Metrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Bitmap_Size                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This structure models the size of a bitmap strike (i.e., a bitmap  */
-  /*    instance of the font for a given resolution) in a fixed-size font  */
-  /*    face.  It is used for the `available_sizes' field of the           */
-  /*    @FT_FaceRec structure.                                             */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    height :: The (vertical) baseline-to-baseline distance in pixels.  */
-  /*              It makes most sense to define the height of a bitmap     */
-  /*              font in this way.                                        */
-  /*                                                                       */
-  /*    width  :: The average width of the font (in pixels).  Since the    */
-  /*              algorithms to compute this value are different for the   */
-  /*              various bitmap formats, it can only give an additional   */
-  /*              hint if the `height' value isn't sufficient to select    */
-  /*              the proper font.  For monospaced fonts the average width */
-  /*              is the same as the maximum width.                        */
-  /*                                                                       */
-  /*    size   :: The point size in 26.6 fractional format this font shall */
-  /*              represent (for a given vertical resolution).             */
-  /*                                                                       */
-  /*    x_ppem :: The horizontal ppem value (in 26.6 fractional format).   */
-  /*                                                                       */
-  /*    y_ppem :: The vertical ppem value (in 26.6 fractional format).     */
-  /*              Usually, this is the `nominal' pixel height of the font. */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The values in this structure are taken from the bitmap font.  If   */
-  /*    the font doesn't provide a parameter it is set to zero to indicate */
-  /*    that the information is not available.                             */
-  /*                                                                       */
-  /*    The following formula converts from dpi to ppem:                   */
-  /*                                                                       */
-  /*      ppem = size * dpi / 72                                           */
-  /*                                                                       */
-  /*    where `size' is in points.                                         */
-  /*                                                                       */
-  /*    Windows FNT:                                                       */
-  /*      The `size' parameter is not reliable: There exist fonts (e.g.,   */
-  /*      app850.fon) which have a wrong size for some subfonts; x_ppem    */
-  /*      and y_ppem are thus set equal to pixel width and height given in */
-  /*      in the Windows FNT header.                                       */
-  /*                                                                       */
-  /*    TrueType embedded bitmaps:                                         */
-  /*      `size', `width', and `height' values are not contained in the    */
-  /*      bitmap strike itself.  They are computed from the global font    */
-  /*      parameters.                                                      */
-  /*                                                                       */
-  typedef struct  FT_Bitmap_Size_
-  {
-    FT_Short  height;
-    FT_Short  width;
-
-    FT_Pos    size;
-
-    FT_Pos    x_ppem;
-    FT_Pos    y_ppem;
-
-  } FT_Bitmap_Size;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     O B J E C T   C L A S S E S                       */
-  /*                                                                       */
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Library                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a FreeType library instance.  Each `library' is        */
-  /*    completely independent from the others; it is the `root' of a set  */
-  /*    of objects like fonts, faces, sizes, etc.                          */
-  /*                                                                       */
-  /*    It also embeds a memory manager (see @FT_Memory), as well as a     */
-  /*    scan-line converter object (see @FT_Raster).                       */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Library objects are normally created by @FT_Init_FreeType, and     */
-  /*    destroyed with @FT_Done_FreeType.                                  */
-  /*                                                                       */
-  typedef struct FT_LibraryRec_  *FT_Library;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Module                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given FreeType module object.  Each module can be a  */
-  /*    font driver, a renderer, or anything else that provides services   */
-  /*    to the formers.                                                    */
-  /*                                                                       */
-  typedef struct FT_ModuleRec_*  FT_Module;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Driver                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given FreeType font driver object.  Each font driver */
-  /*    is a special module capable of creating faces from font files.     */
-  /*                                                                       */
-  typedef struct FT_DriverRec_*  FT_Driver;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Renderer                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given FreeType renderer.  A renderer is a special    */
-  /*    module in charge of converting a glyph image to a bitmap, when     */
-  /*    necessary.  Each renderer supports a given glyph image format, and */
-  /*    one or more target surface depths.                                 */
-  /*                                                                       */
-  typedef struct FT_RendererRec_*  FT_Renderer;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Face                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given typographic face object.  A face object models */
-  /*    a given typeface, in a given style.                                */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Each face object also owns a single @FT_GlyphSlot object, as well  */
-  /*    as one or more @FT_Size objects.                                   */
-  /*                                                                       */
-  /*    Use @FT_New_Face or @FT_Open_Face to create a new face object from */
-  /*    a given filepathname or a custom input stream.                     */
-  /*                                                                       */
-  /*    Use @FT_Done_Face to destroy it (along with its slot and sizes).   */
-  /*                                                                       */
-  /* <Also>                                                                */
-  /*    The @FT_FaceRec details the publicly accessible fields of a given  */
-  /*    face object.                                                       */
-  /*                                                                       */
-  typedef struct FT_FaceRec_*  FT_Face;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Size                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given size object.  Such an object models the data   */
-  /*    that depends on the current _resolution_ and _character size_ in a */
-  /*    given @FT_Face.                                                    */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Each face object owns one or more sizes.  There is however a       */
-  /*    single _active_ size for the face at any time that will be used by */
-  /*    functions like @FT_Load_Glyph, @FT_Get_Kerning, etc.               */
-  /*                                                                       */
-  /*    You can use the @FT_Activate_Size API to change the current        */
-  /*    active size of any given face.                                     */
-  /*                                                                       */
-  /* <Also>                                                                */
-  /*    The @FT_SizeRec structure details the publicly accessible fields   */
-  /*    of a given face object.                                            */
-  /*                                                                       */
-  typedef struct FT_SizeRec_*  FT_Size;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_GlyphSlot                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given `glyph slot'.  A slot is a container where it  */
-  /*    is possible to load any one of the glyphs contained in its parent  */
-  /*    face.                                                              */
-  /*                                                                       */
-  /*    In other words, each time you call @FT_Load_Glyph or               */
-  /*    @FT_Load_Char, the slot's content is erased by the new glyph data, */
-  /*    i.e. the glyph's metrics, its image (bitmap or outline), and       */
-  /*    other control information.                                         */
-  /*                                                                       */
-  /* <Also>                                                                */
-  /*    @FT_GlyphSlotRec details the publicly accessible glyph fields.     */
-  /*                                                                       */
-  typedef struct FT_GlyphSlotRec_*  FT_GlyphSlot;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_CharMap                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a given character map.  A charmap is used to translate */
-  /*    character codes in a given encoding into glyph indexes for its     */
-  /*    parent's face.  Some font formats may provide several charmaps per */
-  /*    font.                                                              */
-  /*                                                                       */
-  /*    Each face object owns zero or more charmaps, but only one of them  */
-  /*    can be "active" and used by @FT_Get_Char_Index or @FT_Load_Char.   */
-  /*                                                                       */
-  /*    The list of available charmaps in a face is available through the  */
-  /*    "face->num_charmaps" and "face->charmaps" fields of @FT_FaceRec.   */
-  /*                                                                       */
-  /*    The currently active charmap is available as "face->charmap".      */
-  /*    You should call @FT_Set_Charmap to change it.                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    When a new face is created (either through @FT_New_Face or         */
-  /*    @FT_Open_Face), the library looks for a Unicode charmap within     */
-  /*    the list and automatically activates it.                           */
-  /*                                                                       */
-  /* <Also>                                                                */
-  /*    The @FT_CharMapRec details the publicly accessible fields of a     */
-  /*    given character map.                                               */
-  /*                                                                       */
-  typedef struct FT_CharMapRec_*  FT_CharMap;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_ENC_TAG                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro converts four letter tags into an unsigned long.  It is */
-  /*    used to define "encoding" identifiers (see @FT_Encoding).          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Since many 16bit compilers don't like 32bit enumerations, you      */
-  /*    should redefine this macro in case of problems to something like   */
-  /*    this:                                                              */
-  /*                                                                       */
-  /*      #define FT_ENC_TAG( value, a, b, c, d )  value                   */
-  /*                                                                       */
-  /*    to get a simple enumeration without assigning special numbers.     */
-  /*                                                                       */
-
-#ifndef FT_ENC_TAG
-#define FT_ENC_TAG( value, a, b, c, d )         \
-          value = ( ( (FT_UInt32)(a) << 24 ) |  \
-                    ( (FT_UInt32)(b) << 16 ) |  \
-                    ( (FT_UInt32)(c) <<  8 ) |  \
-                      (FT_UInt32)(d)         )
-
-#endif /* FT_ENC_TAG */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Encoding                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An enumeration used to specify encodings supported by charmaps.    */
-  /*    Used in the @FT_Select_Charmap API function.                       */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Because of 32-bit charcodes defined in Unicode (i.e., surrogates), */
-  /*    all character codes must be expressed as FT_Longs.                 */
-  /*                                                                       */
-  /*    The values of this type correspond to specific character           */
-  /*    repertories (i.e. charsets), and not to text encoding methods      */
-  /*    (like UTF-8, UTF-16, GB2312_EUC, etc.).                            */
-  /*                                                                       */
-  /*    Other encodings might be defined in the future.                    */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*   FT_ENCODING_NONE ::                                                 */
-  /*     The encoding value 0 is reserved.                                 */
-  /*                                                                       */
-  /*   FT_ENCODING_UNICODE ::                                              */
-  /*     Corresponds to the Unicode character set.  This value covers      */
-  /*     all versions of the Unicode repertoire, including ASCII and       */
-  /*     Latin-1.  Most fonts include a Unicode charmap, but not all       */
-  /*     of them.                                                          */
-  /*                                                                       */
-  /*   FT_ENCODING_MS_SYMBOL ::                                            */
-  /*     Corresponds to the Microsoft Symbol encoding, used to encode      */
-  /*     mathematical symbols in the 32..255 character code range.  For    */
-  /*     more information, see `http://www.ceviz.net/symbol.htm'.          */
-  /*                                                                       */
-  /*   FT_ENCODING_SJIS ::                                                 */
-  /*     Corresponds to Japanese SJIS encoding.  More info at              */
-  /*     at `http://langsupport.japanreference.com/encoding.shtml'.        */
-  /*     See note on multi-byte encodings below.                           */
-  /*                                                                       */
-  /*   FT_ENCODING_GB2312 ::                                               */
-  /*     Corresponds to an encoding system for Simplified Chinese as used  */
-  /*     used in mainland China.                                           */
-  /*                                                                       */
-  /*   FT_ENCODING_BIG5 ::                                                 */
-  /*     Corresponds to an encoding system for Traditional Chinese as used */
-  /*     in Taiwan and Hong Kong.                                          */
-  /*                                                                       */
-  /*   FT_ENCODING_WANSUNG ::                                              */
-  /*     Corresponds to the Korean encoding system known as Wansung.       */
-  /*     For more information see                                          */
-  /*     `http://www.microsoft.com/typography/unicode/949.txt'.            */
-  /*                                                                       */
-  /*   FT_ENCODING_JOHAB ::                                                */
-  /*     The Korean standard character set (KS C-5601-1992), which         */
-  /*     corresponds to MS Windows code page 1361.  This character set     */
-  /*     includes all possible Hangeul character combinations.             */
-  /*                                                                       */
-  /*   FT_ENCODING_ADOBE_LATIN_1 ::                                        */
-  /*     Corresponds to a Latin-1 encoding as defined in a Type 1          */
-  /*     Postscript font.  It is limited to 256 character codes.           */
-  /*                                                                       */
-  /*   FT_ENCODING_ADOBE_STANDARD ::                                       */
-  /*     Corresponds to the Adobe Standard encoding, as found in Type 1,   */
-  /*     CFF, and OpenType/CFF fonts.  It is limited to 256 character      */
-  /*     codes.                                                            */
-  /*                                                                       */
-  /*   FT_ENCODING_ADOBE_EXPERT ::                                         */
-  /*     Corresponds to the Adobe Expert encoding, as found in Type 1,     */
-  /*     CFF, and OpenType/CFF fonts.  It is limited to 256 character      */
-  /*     codes.                                                            */
-  /*                                                                       */
-  /*   FT_ENCODING_ADOBE_CUSTOM ::                                         */
-  /*     Corresponds to a custom encoding, as found in Type 1, CFF, and    */
-  /*     OpenType/CFF fonts.  It is limited to 256 character codes.        */
-  /*                                                                       */
-  /*   FT_ENCODING_APPLE_ROMAN ::                                          */
-  /*     Corresponds to the 8-bit Apple roman encoding.  Many TrueType and */
-  /*     OpenType fonts contain a charmap for this encoding, since older   */
-  /*     versions of Mac OS are able to use it.                            */
-  /*                                                                       */
-  /*   FT_ENCODING_OLD_LATIN_2 ::                                          */
-  /*     This value is deprecated and was never used nor reported by       */
-  /*     FreeType.  Don't use or test for it.                              */
-  /*                                                                       */
-  /*   FT_ENCODING_MS_SJIS ::                                              */
-  /*     Same as FT_ENCODING_SJIS.  Deprecated.                            */
-  /*                                                                       */
-  /*   FT_ENCODING_MS_GB2312 ::                                            */
-  /*     Same as FT_ENCODING_GB2312.  Deprecated.                          */
-  /*                                                                       */
-  /*   FT_ENCODING_MS_BIG5 ::                                              */
-  /*     Same as FT_ENCODING_BIG5.  Deprecated.                            */
-  /*                                                                       */
-  /*   FT_ENCODING_MS_WANSUNG ::                                           */
-  /*     Same as FT_ENCODING_WANSUNG.  Deprecated.                         */
-  /*                                                                       */
-  /*   FT_ENCODING_MS_JOHAB ::                                             */
-  /*     Same as FT_ENCODING_JOHAB.  Deprecated.                           */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*   By default, FreeType automatically synthetizes a Unicode charmap    */
-  /*   for Postscript fonts, using their glyph names dictionaries.         */
-  /*   However, it will also report the encodings defined explicitly in    */
-  /*   the font file, for the cases when they are needed, with the Adobe   */
-  /*   values as well.                                                     */
-  /*                                                                       */
-  /*   FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap   */
-  /*   is neither Unicode nor ISO-8859-1 (otherwise it is set to           */
-  /*   FT_ENCODING_UNICODE).  Use `FT_Get_BDF_Charset_ID' to find out      */
-  /*   which encoding is really present.  If, for example, the             */
-  /*   `cs_registry' field is `KOI8' and the `cs_encoding' field is `R',   */
-  /*   the font is encoded in KOI8-R.                                      */
-  /*                                                                       */
-  /*   FT_ENCODING_NONE is always set (with a single exception) by the     */
-  /*   winfonts driver.  Use `FT_Get_WinFNT_Header' and examine the        */
-  /*   `charset' field of the `FT_WinFNT_HeaderRec' structure to find out  */
-  /*   which encoding is really present.  For example, FT_WinFNT_ID_CP1251 */
-  /*   (204) means Windows code page 1251 (for Russian).                   */
-  /*                                                                       */
-  /*   FT_ENCODING_NONE is set if `platform_id' is `TT_PLATFORM_MACINTOSH' */
-  /*   and `encoding_id' is not `TT_MAC_ID_ROMAN' (otherwise it is set to  */
-  /*   FT_ENCODING_APPLE_ROMAN).                                           */
-  /*                                                                       */
-  /*   If `platform_id' is `TT_PLATFORM_MACINTOSH', use the function       */
-  /*   `FT_Get_CMap_Language_ID' to query the Mac language ID which may be */
-  /*   needed to be able to distinguish Apple encoding variants.  See      */
-  /*                                                                       */
-  /*     http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT   */
-  /*                                                                       */
-  /*   to get an idea how to do that.  Basically, if the language ID is 0, */
-  /*   dont use it, otherwise subtract 1 from the language ID.  Then       */
-  /*   examine `encoding_id'.  If, for example, `encoding_id' is           */
-  /*   `TT_MAC_ID_ROMAN' and the language ID (minus 1) is                  */
-  /*   `TT_MAC_LANGID_GREEK', it is the Greek encoding, not Roman.         */
-  /*   `TT_MAC_ID_ARABIC' with `TT_MAC_LANGID_FARSI' means the Farsi       */
-  /*   variant the Arabic encoding.                                        */
-  /*                                                                       */
-  typedef enum  FT_Encoding_
-  {
-    FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ),
-
-    FT_ENC_TAG( FT_ENCODING_MS_SYMBOL,  's', 'y', 'm', 'b' ),
-    FT_ENC_TAG( FT_ENCODING_UNICODE,    'u', 'n', 'i', 'c' ),
-
-    FT_ENC_TAG( FT_ENCODING_SJIS,    's', 'j', 'i', 's' ),
-    FT_ENC_TAG( FT_ENCODING_GB2312,  'g', 'b', ' ', ' ' ),
-    FT_ENC_TAG( FT_ENCODING_BIG5,    'b', 'i', 'g', '5' ),
-    FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ),
-    FT_ENC_TAG( FT_ENCODING_JOHAB,   'j', 'o', 'h', 'a' ),
-
-    /* for backwards compatibility */
-    FT_ENCODING_MS_SJIS    = FT_ENCODING_SJIS,
-    FT_ENCODING_MS_GB2312  = FT_ENCODING_GB2312,
-    FT_ENCODING_MS_BIG5    = FT_ENCODING_BIG5,
-    FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG,
-    FT_ENCODING_MS_JOHAB   = FT_ENCODING_JOHAB,
-
-    FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ),
-    FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT,   'A', 'D', 'B', 'E' ),
-    FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM,   'A', 'D', 'B', 'C' ),
-    FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1,  'l', 'a', 't', '1' ),
-
-    FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ),
-
-    FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' )
-
-  } FT_Encoding;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_encoding_xxx                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    These constants are deprecated; use the corresponding @FT_Encoding */
-  /*    values instead.                                                    */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*   ft_encoding_none    :: see @FT_ENCODING_NONE                        */
-  /*   ft_encoding_unicode :: see @FT_ENCODING_UNICODE                     */
-  /*   ft_encoding_latin_2 :: see @FT_ENCODING_OLD_LATIN_2                 */
-  /*   ft_encoding_symbol  :: see @FT_ENCODING_MS_SYMBOL                   */
-  /*   ft_encoding_sjis    :: see @FT_ENCODING_SJIS                        */
-  /*   ft_encoding_gb2312  :: see @FT_ENCODING_GB2312                      */
-  /*   ft_encoding_big5    :: see @FT_ENCODING_BIG5                        */
-  /*   ft_encoding_wansung :: see @FT_ENCODING_WANSUNG                     */
-  /*   ft_encoding_johab   :: see @FT_ENCODING_JOHAB                       */
-  /*                                                                       */
-  /*   ft_encoding_adobe_standard :: see @FT_ENCODING_ADOBE_STANDARD       */
-  /*   ft_encoding_adobe_expert   :: see @FT_ENCODING_ADOBE_EXPERT         */
-  /*   ft_encoding_adobe_custom   :: see @FT_ENCODING_ADOBE_CUSTOM         */
-  /*   ft_encoding_latin_1        :: see @FT_ENCODING_ADOBE_LATIN_1        */
-  /*                                                                       */
-  /*   ft_encoding_apple_roman    :: see @FT_ENCODING_APPLE_ROMAN          */
-  /*                                                                       */
-#define ft_encoding_none            FT_ENCODING_NONE
-#define ft_encoding_unicode         FT_ENCODING_UNICODE
-#define ft_encoding_symbol          FT_ENCODING_MS_SYMBOL
-#define ft_encoding_latin_1         FT_ENCODING_ADOBE_LATIN_1
-#define ft_encoding_latin_2         FT_ENCODING_OLD_LATIN_2
-#define ft_encoding_sjis            FT_ENCODING_SJIS
-#define ft_encoding_gb2312          FT_ENCODING_GB2312
-#define ft_encoding_big5            FT_ENCODING_BIG5
-#define ft_encoding_wansung         FT_ENCODING_WANSUNG
-#define ft_encoding_johab           FT_ENCODING_JOHAB
-
-#define ft_encoding_adobe_standard  FT_ENCODING_ADOBE_STANDARD
-#define ft_encoding_adobe_expert    FT_ENCODING_ADOBE_EXPERT
-#define ft_encoding_adobe_custom    FT_ENCODING_ADOBE_CUSTOM
-#define ft_encoding_apple_roman     FT_ENCODING_APPLE_ROMAN
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_CharMapRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The base charmap structure.                                        */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    face        :: A handle to the parent face object.                 */
-  /*                                                                       */
-  /*    encoding    :: An @FT_Encoding tag identifying the charmap.  Use   */
-  /*                   this with @FT_Select_Charmap.                       */
-  /*                                                                       */
-  /*    platform_id :: An ID number describing the platform for the        */
-  /*                   following encoding ID.  This comes directly from    */
-  /*                   the TrueType specification and should be emulated   */
-  /*                   for other formats.                                  */
-  /*                                                                       */
-  /*    encoding_id :: A platform specific encoding number.  This also     */
-  /*                   comes from the TrueType specification and should be */
-  /*                   emulated similarly.                                 */
-  /*                                                                       */
-  typedef struct  FT_CharMapRec_
-  {
-    FT_Face      face;
-    FT_Encoding  encoding;
-    FT_UShort    platform_id;
-    FT_UShort    encoding_id;
-
-  } FT_CharMapRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*                                                                       */
-  /*                 B A S E   O B J E C T   C L A S S E S                 */
-  /*                                                                       */
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Face_Internal                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An opaque handle to an FT_Face_InternalRec structure, used to      */
-  /*    model private data of a given @FT_Face object.                     */
-  /*                                                                       */
-  /*    This structure might change between releases of FreeType 2 and is  */
-  /*    not generally available to client applications.                    */
-  /*                                                                       */
-  typedef struct FT_Face_InternalRec_*  FT_Face_Internal;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_FaceRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    FreeType root face class structure.  A face object models the      */
-  /*    resolution and point-size independent data found in a font file.   */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_faces           :: In the case where the face is located in a  */
-  /*                           collection (i.e., a file which embeds       */
-  /*                           several faces), this is the total number of */
-  /*                           faces found in the resource.  1 by default. */
-  /*                           Accessing non-existent face indices causes  */
-  /*                           an error.                                   */
-  /*                                                                       */
-  /*    face_index          :: The index of the face in its font file.     */
-  /*                           Usually, this is 0 for all normal font      */
-  /*                           formats.  It can be > 0 in the case of      */
-  /*                           collections (which embed several fonts in a */
-  /*                           single resource/file).                      */
-  /*                                                                       */
-  /*    face_flags          :: A set of bit flags that give important      */
-  /*                           information about the face; see the         */
-  /*                           @FT_FACE_FLAG_XXX constants for details.    */
-  /*                                                                       */
-  /*    style_flags         :: A set of bit flags indicating the style of  */
-  /*                           the face (i.e., italic, bold, underline,    */
-  /*                           etc).  See the @FT_STYLE_FLAG_XXX           */
-  /*                           constants.                                  */
-  /*                                                                       */
-  /*    num_glyphs          :: The total number of glyphs in the face.     */
-  /*                                                                       */
-  /*    family_name         :: The face's family name.  This is an ASCII   */
-  /*                           string, usually in English, which describes */
-  /*                           the typeface's family (like `Times New      */
-  /*                           Roman', `Bodoni', `Garamond', etc).  This   */
-  /*                           is a least common denominator used to list  */
-  /*                           fonts.  Some formats (TrueType & OpenType)  */
-  /*                           provide localized and Unicode versions of   */
-  /*                           this string.  Applications should use the   */
-  /*                           format specific interface to access them.   */
-  /*                                                                       */
-  /*    style_name          :: The face's style name.  This is an ASCII    */
-  /*                           string, usually in English, which describes */
-  /*                           the typeface's style (like `Italic',        */
-  /*                           `Bold', `Condensed', etc).  Not all font    */
-  /*                           formats provide a style name, so this field */
-  /*                           is optional, and can be set to NULL.  As    */
-  /*                           for `family_name', some formats provide     */
-  /*                           localized/Unicode versions of this string.  */
-  /*                           Applications should use the format specific */
-  /*                           interface to access them.                   */
-  /*                                                                       */
-  /*    num_fixed_sizes     :: The number of fixed sizes available in this */
-  /*                           face.  This should be set to 0 for scalable */
-  /*                           fonts, unless its face includes a set of    */
-  /*                           glyphs (called a `strike') for the          */
-  /*                           specified sizes.                            */
-  /*                                                                       */
-  /*    available_sizes     :: An array of sizes specifying the available  */
-  /*                           bitmap/graymap sizes that are contained in  */
-  /*                           in the font face.  Should be set to NULL if */
-  /*                           the field `num_fixed_sizes' is set to 0.    */
-  /*                                                                       */
-  /*    num_charmaps        :: The total number of character maps in the   */
-  /*                           face.                                       */
-  /*                                                                       */
-  /*    charmaps            :: A table of pointers to the face's charmaps. */
-  /*                           Used to scan the list of available charmaps */
-  /*                           -- this table might change after a call to  */
-  /*                           @FT_Attach_File or @FT_Attach_Stream (e.g.  */
-  /*                           if used to hook an additional encoding or   */
-  /*                           CMap to the face object).                   */
-  /*                                                                       */
-  /*    generic             :: A field reserved for client uses.  See the  */
-  /*                           @FT_Generic type description.               */
-  /*                                                                       */
-  /*    bbox                :: The font bounding box.  Coordinates are     */
-  /*                           expressed in font units (see units_per_EM). */
-  /*                           The box is large enough to contain any      */
-  /*                           glyph from the font.  Thus, bbox.yMax can   */
-  /*                           be seen as the `maximal ascender',          */
-  /*                           bbox.yMin as the `minimal descender', and   */
-  /*                           the maximal glyph width is given by         */
-  /*                           `bbox.xMax-bbox.xMin' (not to be confused   */
-  /*                           with the maximal _advance_width_).  Only    */
-  /*                           relevant for scalable formats.              */
-  /*                                                                       */
-  /*    units_per_EM        :: The number of font units per EM square for  */
-  /*                           this face.  This is typically 2048 for      */
-  /*                           TrueType fonts, 1000 for Type1 fonts, and   */
-  /*                           should be set to the (unrealistic) value 1  */
-  /*                           for fixed-sizes fonts.  Only relevant for   */
-  /*                           scalable formats.                           */
-  /*                                                                       */
-  /*    ascender            :: The face's ascender is the vertical         */
-  /*                           distance from the baseline to the topmost   */
-  /*                           point of any glyph in the face.  This       */
-  /*                           field's value is positive, expressed in     */
-  /*                           font units.  Some font designs use a value  */
-  /*                           different from `bbox.yMax'.  Only relevant  */
-  /*                           for scalable formats.                       */
-  /*                                                                       */
-  /*    descender           :: The face's descender is the vertical        */
-  /*                           distance from the baseline to the           */
-  /*                           bottommost point of any glyph in the face.  */
-  /*                           This field's value is *negative* for values */
-  /*                           below the baseline.  It is expressed in     */
-  /*                           font units.  Some font designs use a value  */
-  /*                           different from `bbox.yMin'.  Only relevant  */
-  /*                           for scalable formats.                       */
-  /*                                                                       */
-  /*    height              :: The face's height is the vertical distance  */
-  /*                           from one baseline to the next when writing  */
-  /*                           several lines of text.  Its value is always */
-  /*                           positive, expressed in font units.  The     */
-  /*                           value can be computed as                    */
-  /*                           `ascender+descender+line_gap' where the     */
-  /*                           value of `line_gap' is also called          */
-  /*                           `external leading'.  Only relevant for      */
-  /*                           scalable formats.                           */
-  /*                                                                       */
-  /*    max_advance_width   :: The maximal advance width, in font units,   */
-  /*                           for all glyphs in this face.  This can be   */
-  /*                           used to make word wrapping computations     */
-  /*                           faster.  Only relevant for scalable         */
-  /*                           formats.                                    */
-  /*                                                                       */
-  /*    max_advance_height  :: The maximal advance height, in font units,  */
-  /*                           for all glyphs in this face.  This is only  */
-  /*                           relevant for vertical layouts, and should   */
-  /*                           be set to the `height' for fonts that do    */
-  /*                           not provide vertical metrics.  Only         */
-  /*                           relevant for scalable formats.              */
-  /*                                                                       */
-  /*    underline_position  :: The position, in font units, of the         */
-  /*                           underline line for this face.  It's the     */
-  /*                           center of the underlining stem.  Only       */
-  /*                           relevant for scalable formats.              */
-  /*                                                                       */
-  /*    underline_thickness :: The thickness, in font units, of the        */
-  /*                           underline for this face.  Only relevant for */
-  /*                           scalable formats.                           */
-  /*                                                                       */
-  /*    glyph               :: The face's associated glyph slot(s).  This  */
-  /*                           object is created automatically with a new  */
-  /*                           face object.  However, certain kinds of     */
-  /*                           applications (mainly tools like converters) */
-  /*                           can need more than one slot to ease their   */
-  /*                           task.                                       */
-  /*                                                                       */
-  /*    size                :: The current active size for this face.      */
-  /*                                                                       */
-  /*    charmap             :: The current active charmap for this face.   */
-  /*                                                                       */
-  typedef struct  FT_FaceRec_
-  {
-    FT_Long           num_faces;
-    FT_Long           face_index;
-
-    FT_Long           face_flags;
-    FT_Long           style_flags;
-
-    FT_Long           num_glyphs;
-
-    FT_String*        family_name;
-    FT_String*        style_name;
-
-    FT_Int            num_fixed_sizes;
-    FT_Bitmap_Size*   available_sizes;
-
-    FT_Int            num_charmaps;
-    FT_CharMap*       charmaps;
-
-    FT_Generic        generic;
-
-    /*# the following are only relevant to scalable outlines */
-    FT_BBox           bbox;
-
-    FT_UShort         units_per_EM;
-    FT_Short          ascender;
-    FT_Short          descender;
-    FT_Short          height;
-
-    FT_Short          max_advance_width;
-    FT_Short          max_advance_height;
-
-    FT_Short          underline_position;
-    FT_Short          underline_thickness;
-
-    FT_GlyphSlot      glyph;
-    FT_Size           size;
-    FT_CharMap        charmap;
-
-    /*@private begin */
-
-    FT_Driver         driver;
-    FT_Memory         memory;
-    FT_Stream         stream;
-
-    FT_ListRec        sizes_list;
-
-    FT_Generic        autohint;
-    void*             extensions;
-
-    FT_Face_Internal  internal;
-
-    /*@private end */
-
-  } FT_FaceRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_FACE_FLAG_XXX                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of bit flags used in the `face_flags' field of the          */
-  /*    @FT_FaceRec structure.  They inform client applications of         */
-  /*    properties of the corresponding face.                              */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_FACE_FLAG_SCALABLE ::                                           */
-  /*      Indicates that the face provides vectorial outlines.  This       */
-  /*      doesn't prevent embedded bitmaps, i.e., a face can have both     */
-  /*      this bit and @FT_FACE_FLAG_FIXED_SIZES set.                      */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_FIXED_SIZES ::                                        */
-  /*      Indicates that the face contains `fixed sizes', i.e., bitmap     */
-  /*      strikes for some given pixel sizes.  See the `num_fixed_sizes'   */
-  /*      and `available_sizes' fields of @FT_FaceRec.                     */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_FIXED_WIDTH ::                                        */
-  /*      Indicates that the face contains fixed-width characters (like    */
-  /*      Courier, Lucido, MonoType, etc.).                                */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_SFNT ::                                               */
-  /*      Indicates that the face uses the `sfnt' storage scheme.  For     */
-  /*      now, this means TrueType and OpenType.                           */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_HORIZONTAL ::                                         */
-  /*      Indicates that the face contains horizontal glyph metrics.  This */
-  /*      should be set for all common formats.                            */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_VERTICAL ::                                           */
-  /*      Indicates that the face contains vertical glyph metrics.  This   */
-  /*      is only available in some formats, not all of them.              */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_KERNING ::                                            */
-  /*      Indicates that the face contains kerning information.  If set,   */
-  /*      the kerning distance can be retrieved through the function       */
-  /*      @FT_Get_Kerning.  Note that if unset, this function will always  */
-  /*      return the vector (0,0).                                         */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_FAST_GLYPHS ::                                        */
-  /*      THIS FLAG IS DEPRECATED.  DO NOT USE OR TEST IT.                 */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_MULTIPLE_MASTERS ::                                   */
-  /*      Indicates that the font contains multiple masters and is capable */
-  /*      of interpolating between them.  See the multiple-masters         */
-  /*      specific API for details.                                        */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_GLYPH_NAMES ::                                        */
-  /*      Indicates that the font contains glyph names that can be         */
-  /*      retrieved through @FT_Get_Glyph_Name.  Note that some TrueType   */
-  /*      fonts contain broken glyph name tables.  Use the function        */
-  /*      @FT_Has_PS_Glyph_Names when needed.                              */
-  /*                                                                       */
-  /*    FT_FACE_FLAG_EXTERNAL_STREAM ::                                    */
-  /*      Used internally by FreeType to indicate that a face's stream was */
-  /*      provided by the client application and should not be destroyed   */
-  /*      when @FT_Done_Face is called.  Don't read or test this flag.     */
-  /*                                                                       */
-#define FT_FACE_FLAG_SCALABLE          ( 1L <<  0 )
-#define FT_FACE_FLAG_FIXED_SIZES       ( 1L <<  1 )
-#define FT_FACE_FLAG_FIXED_WIDTH       ( 1L <<  2 )
-#define FT_FACE_FLAG_SFNT              ( 1L <<  3 )
-#define FT_FACE_FLAG_HORIZONTAL        ( 1L <<  4 )
-#define FT_FACE_FLAG_VERTICAL          ( 1L <<  5 )
-#define FT_FACE_FLAG_KERNING           ( 1L <<  6 )
-#define FT_FACE_FLAG_FAST_GLYPHS       ( 1L <<  7 )
-#define FT_FACE_FLAG_MULTIPLE_MASTERS  ( 1L <<  8 )
-#define FT_FACE_FLAG_GLYPH_NAMES       ( 1L <<  9 )
-#define FT_FACE_FLAG_EXTERNAL_STREAM   ( 1L << 10 )
-
-  /* */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_HORIZONTAL( face )                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains          */
-  /*    horizontal metrics (this is true for all font formats though).     */
-  /*                                                                       */
-  /* @also:                                                                */
-  /*    @FT_HAS_VERTICAL can be used to check for vertical metrics.        */
-  /*                                                                       */
-#define FT_HAS_HORIZONTAL( face ) \
-          ( face->face_flags & FT_FACE_FLAG_HORIZONTAL )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_VERTICAL( face )                                            */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains vertical */
-  /*    metrics.                                                           */
-  /*                                                                       */
-#define FT_HAS_VERTICAL( face ) \
-          ( face->face_flags & FT_FACE_FLAG_VERTICAL )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_KERNING( face )                                             */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains kerning  */
-  /*    data that can be accessed with @FT_Get_Kerning.                    */
-  /*                                                                       */
-#define FT_HAS_KERNING( face ) \
-          ( face->face_flags & FT_FACE_FLAG_KERNING )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_IS_SCALABLE( face )                                             */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains a        */
-  /*    scalable font face (true for TrueType, Type 1, CID, and            */
-  /*    OpenType/CFF font formats.                                         */
-  /*                                                                       */
-#define FT_IS_SCALABLE( face ) \
-          ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_IS_SFNT( face )                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains a font   */
-  /*    whose format is based on the SFNT storage scheme.  This usually    */
-  /*    means: TrueType fonts, OpenType fonts, as well as SFNT-based       */
-  /*    embedded bitmap fonts.                                             */
-  /*                                                                       */
-  /*    If this macro is true, all functions defined in @FT_SFNT_NAMES_H   */
-  /*    and @FT_TRUETYPE_TABLES_H are available.                           */
-  /*                                                                       */
-#define FT_IS_SFNT( face ) \
-          ( face->face_flags & FT_FACE_FLAG_SFNT )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_IS_FIXED_WIDTH( face )                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains a font   */
-  /*    face that contains fixed-width (or "monospace", "fixed-pitch",     */
-  /*    etc.) glyphs.                                                      */
-  /*                                                                       */
-#define FT_IS_FIXED_WIDTH( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_FIXED_SIZES( face )                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains some     */
-  /*    embedded bitmaps.  See the `available_sizes' field of the          */
-  /*    @FT_FaceRec structure.                                             */
-  /*                                                                       */
-#define FT_HAS_FIXED_SIZES( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
-
-
-   /* */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_FAST_GLYPHS( face )                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Deprecated; indicates that the face contains so-called "fast"      */
-  /*    glyph bitmaps.                                                     */
-  /*                                                                       */
-#define FT_HAS_FAST_GLYPHS( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FAST_GLYPHS )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_GLYPH_NAMES( face )                                         */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains some     */
-  /*    glyph names that can be accessed through @FT_Get_Glyph_Name.       */
-  /*                                                                       */
-#define FT_HAS_GLYPH_NAMES( face ) \
-          ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_HAS_MULTIPLE_MASTERS( face )                                    */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A macro that returns true whenever a face object contains some     */
-  /*    multiple masters.  The functions provided by                       */
-  /*    @FT_MULTIPLE_MASTERS_H are then available to choose the exact      */
-  /*    design you want.                                                   */
-  /*                                                                       */
-#define FT_HAS_MULTIPLE_MASTERS( face ) \
-          ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Constant>                                                            */
-  /*    FT_STYLE_FLAG_XXX                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of bit-flags used to indicate the style of a given face.    */
-  /*    These are used in the `style_flags' field of @FT_FaceRec.          */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_STYLE_FLAG_ITALIC ::                                            */
-  /*      Indicates that a given face is italicized.                       */
-  /*                                                                       */
-  /*    FT_STYLE_FLAG_BOLD ::                                              */
-  /*      Indicates that a given face is bold.                             */
-  /*                                                                       */
-#define FT_STYLE_FLAG_ITALIC  ( 1 << 0 )
-#define FT_STYLE_FLAG_BOLD    ( 1 << 1 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Size_Internal                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An opaque handle to an FT_Size_InternalRec structure, used to      */
-  /*    model private data of a given FT_Size object.                      */
-  /*                                                                       */
-  typedef struct FT_Size_InternalRec_*  FT_Size_Internal;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Size_Metrics                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The size metrics structure returned scaled important distances for */
-  /*    a given size object.                                               */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    x_ppem       :: The character width, expressed in integer pixels.  */
-  /*                    This is the width of the EM square expressed in    */
-  /*                    pixels, hence the term `ppem' (pixels per EM).     */
-  /*                                                                       */
-  /*    y_ppem       :: The character height, expressed in integer pixels. */
-  /*                    This is the height of the EM square expressed in   */
-  /*                    pixels, hence the term `ppem' (pixels per EM).     */
-  /*                                                                       */
-  /*    x_scale      :: A simple 16.16 fixed point format coefficient used */
-  /*                    to scale horizontal distances expressed in font    */
-  /*                    units to fractional (26.6) pixel coordinates.      */
-  /*                                                                       */
-  /*    y_scale      :: A simple 16.16 fixed point format coefficient used */
-  /*                    to scale vertical distances expressed in font      */
-  /*                    units to fractional (26.6) pixel coordinates.      */
-  /*                                                                       */
-  /*    ascender     :: The ascender, expressed in 26.6 fixed point        */
-  /*                    pixels.  Positive for ascenders above the          */
-  /*                    baseline.                                          */
-  /*                                                                       */
-  /*    descender    :: The descender, expressed in 26.6 fixed point       */
-  /*                    pixels.  Negative for descenders below the         */
-  /*                    baseline.                                          */
-  /*                                                                       */
-  /*    height       :: The text height, expressed in 26.6 fixed point     */
-  /*                    pixels.  Always positive.                          */
-  /*                                                                       */
-  /*    max_advance  :: Maximum horizontal advance, expressed in 26.6      */
-  /*                    fixed point pixels.  Always positive.              */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    For scalable fonts, the values of `ascender', `descender', and     */
-  /*    `height' are scaled versions of `face->ascender',                  */
-  /*    `face->descender', and `face->height', respectively.               */
-  /*                                                                       */
-  /*    Unfortunately, due to glyph hinting, these values might not be     */
-  /*    exact for certain fonts.  They thus must be treated as unreliable  */
-  /*    with an error margin of at least one pixel!                        */
-  /*                                                                       */
-  /*    Indeed, the only way to get the exact pixel ascender and descender */
-  /*    is to render _all_ glyphs.  As this would be a definite            */
-  /*    performance hit, it is up to client applications to perform such   */
-  /*    computations.                                                      */
-  /*                                                                       */
-  typedef struct  FT_Size_Metrics_
-  {
-    FT_UShort  x_ppem;      /* horizontal pixels per EM               */
-    FT_UShort  y_ppem;      /* vertical pixels per EM                 */
-
-    FT_Fixed   x_scale;     /* two scales used to convert font units  */
-    FT_Fixed   y_scale;     /* to 26.6 frac. pixel coordinates        */
-
-    FT_Pos     ascender;    /* ascender in 26.6 frac. pixels          */
-    FT_Pos     descender;   /* descender in 26.6 frac. pixels         */
-    FT_Pos     height;      /* text height in 26.6 frac. pixels       */
-    FT_Pos     max_advance; /* max horizontal advance, in 26.6 pixels */
-
-  } FT_Size_Metrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_SizeRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    FreeType root size class structure.  A size object models the      */
-  /*    resolution and pointsize dependent data of a given face.           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    face    :: Handle to the parent face object.                       */
-  /*                                                                       */
-  /*    generic :: A typeless pointer, which is unused by the FreeType     */
-  /*               library or any of its drivers.  It can be used by       */
-  /*               client applications to link their own data to each size */
-  /*               object.                                                 */
-  /*                                                                       */
-  /*    metrics :: Metrics for this size object.  This field is read-only. */
-  /*                                                                       */
-  typedef struct  FT_SizeRec_
-  {
-    FT_Face           face;      /* parent face object              */
-    FT_Generic        generic;   /* generic pointer for client uses */
-    FT_Size_Metrics   metrics;   /* size metrics                    */
-    FT_Size_Internal  internal;
-
-  } FT_SizeRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_SubGlyph                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The subglyph structure is an internal object used to describe      */
-  /*    subglyphs (for example, in the case of composites).                */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The subglyph implementation is not part of the high-level API,     */
-  /*    hence the forward structure declaration.                           */
-  /*                                                                       */
-  typedef struct FT_SubGlyphRec_*  FT_SubGlyph;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Slot_Internal                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An opaque handle to an FT_Slot_InternalRec structure, used to      */
-  /*    model private data of a given FT_GlyphSlot object.                 */
-  /*                                                                       */
-  typedef struct FT_Slot_InternalRec_*  FT_Slot_Internal;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_GlyphSlotRec                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    FreeType root glyph slot class structure.  A glyph slot is a       */
-  /*    container where individual glyphs can be loaded, be they           */
-  /*    vectorial or bitmap/graymaps.                                      */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    library           :: A handle to the FreeType library instance     */
-  /*                         this slot belongs to.                         */
-  /*                                                                       */
-  /*    face              :: A handle to the parent face object.           */
-  /*                                                                       */
-  /*    next              :: In some cases (like some font tools), several */
-  /*                         glyph slots per face object can be a good     */
-  /*                         thing.  As this is rare, the glyph slots are  */
-  /*                         listed through a direct, single-linked list   */
-  /*                         using its `next' field.                       */
-  /*                                                                       */
-  /*    generic           :: A typeless pointer which is unused by the     */
-  /*                         FreeType library or any of its drivers.  It   */
-  /*                         can be used by client applications to link    */
-  /*                         their own data to each glyph slot object.     */
-  /*                                                                       */
-  /*    metrics           :: The metrics of the last loaded glyph in the   */
-  /*                         slot.  The returned values depend on the last */
-  /*                         load flags (see the @FT_Load_Glyph API        */
-  /*                         function) and can be expressed either in 26.6 */
-  /*                         fractional pixels or font units.              */
-  /*                                                                       */
-  /*                         Note that even when the glyph image is        */
-  /*                         transformed, the metrics are not.             */
-  /*                                                                       */
-  /*    linearHoriAdvance :: For scalable formats only, this field holds   */
-  /*                         the linearly scaled horizontal advance width  */
-  /*                         for the glyph (i.e. the scaled and unhinted   */
-  /*                         value of the hori advance).  This can be      */
-  /*                         important to perform correct WYSIWYG layout.  */
-  /*                                                                       */
-  /*                         Note that this value is expressed by default  */
-  /*                         in 16.16 pixels. However, when the glyph is   */
-  /*                         loaded with the FT_LOAD_LINEAR_DESIGN flag,   */
-  /*                         this field contains simply the value of the   */
-  /*                         advance in original font units.               */
-  /*                                                                       */
-  /*    linearVertAdvance :: For scalable formats only, this field holds   */
-  /*                         the linearly scaled vertical advance height   */
-  /*                         for the glyph.  See linearHoriAdvance for     */
-  /*                         comments.                                     */
-  /*                                                                       */
-  /*    advance           :: This is the transformed advance width for the */
-  /*                         glyph.                                        */
-  /*                                                                       */
-  /*    format            :: This field indicates the format of the image  */
-  /*                         contained in the glyph slot.  Typically       */
-  /*                         FT_GLYPH_FORMAT_BITMAP,                       */
-  /*                         FT_GLYPH_FORMAT_OUTLINE, and                  */
-  /*                         FT_GLYPH_FORMAT_COMPOSITE, but others are     */
-  /*                         possible.                                     */
-  /*                                                                       */
-  /*    bitmap            :: This field is used as a bitmap descriptor     */
-  /*                         when the slot format is                       */
-  /*                         FT_GLYPH_FORMAT_BITMAP.  Note that the        */
-  /*                         address and content of the bitmap buffer can  */
-  /*                         change between calls of @FT_Load_Glyph and a  */
-  /*                         few other functions.                          */
-  /*                                                                       */
-  /*    bitmap_left       :: This is the bitmap's left bearing expressed   */
-  /*                         in integer pixels.  Of course, this is only   */
-  /*                         valid if the format is                        */
-  /*                         FT_GLYPH_FORMAT_BITMAP.                       */
-  /*                                                                       */
-  /*    bitmap_top        :: This is the bitmap's top bearing expressed in */
-  /*                         integer pixels.  Remember that this is the    */
-  /*                         distance from the baseline to the top-most    */
-  /*                         glyph scanline, upwards y-coordinates being   */
-  /*                         *positive*.                                   */
-  /*                                                                       */
-  /*    outline           :: The outline descriptor for the current glyph  */
-  /*                         image if its format is                        */
-  /*                         FT_GLYPH_FORMAT_OUTLINE.                      */
-  /*                                                                       */
-  /*    num_subglyphs     :: The number of subglyphs in a composite glyph. */
-  /*                         This field is only valid for the composite    */
-  /*                         glyph format that should normally only be     */
-  /*                         loaded with the @FT_LOAD_NO_RECURSE flag.     */
-  /*                         For now this is internal to FreeType.         */
-  /*                                                                       */
-  /*    subglyphs         :: An array of subglyph descriptors for          */
-  /*                         composite glyphs.  There are `num_subglyphs'  */
-  /*                         elements in there.  Currently internal to     */
-  /*                         FreeType.                                     */
-  /*                                                                       */
-  /*    control_data      :: Certain font drivers can also return the      */
-  /*                         control data for a given glyph image (e.g.    */
-  /*                         TrueType bytecode, Type 1 charstrings, etc.). */
-  /*                         This field is a pointer to such data.         */
-  /*                                                                       */
-  /*    control_len       :: This is the length in bytes of the control    */
-  /*                         data.                                         */
-  /*                                                                       */
-  /*    other             :: Really wicked formats can use this pointer to */
-  /*                         present their own glyph image to client apps. */
-  /*                         Note that the app will need to know about the */
-  /*                         image format.                                 */
-  /*                                                                       */
-  /*    lsb_delta         :: The difference between hinted and unhinted    */
-  /*                         left side bearing while autohinting is        */
-  /*                         active.  Zero otherwise.                      */
-  /*                                                                       */
-  /*    rsb_delta         :: The difference between hinted and unhinted    */
-  /*                         right side bearing while autohinting is       */
-  /*                         active.  Zero otherwise.                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If @FT_Load_Glyph is called with default flags (see                */
-  /*    @FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in   */
-  /*    its native format (e.g. a vectorial outline for TrueType and       */
-  /*    Type 1 formats).                                                   */
-  /*                                                                       */
-  /*    This image can later be converted into a bitmap by calling         */
-  /*    @FT_Render_Glyph.  This function finds the current renderer for    */
-  /*    the native image's format then invokes it.                         */
-  /*                                                                       */
-  /*    The renderer is in charge of transforming the native image through */
-  /*    the slot's face transformation fields, then convert it into a      */
-  /*    bitmap that is returned in `slot->bitmap'.                         */
-  /*                                                                       */
-  /*    Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */
-  /*    to specify the position of the bitmap relative to the current pen  */
-  /*    position (e.g. coordinates [0,0] on the baseline).  Of course,     */
-  /*    `slot->format' is also changed to `FT_GLYPH_FORMAT_BITMAP' .       */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Here a small pseudo code fragment which shows how to use           */
-  /*    `lsb_delta' and `rsb_delta':                                       */
-  /*                                                                       */
-  /*    {                                                                  */
-  /*      FT_Pos  origin_x       = 0;                                      */
-  /*      FT_Pos  prev_rsb_delta = 0;                                      */
-  /*                                                                       */
-  /*                                                                       */
-  /*      for all glyphs do                                                */
-  /*        <compute kern between current and previous glyph and add it to */
-  /*         `origin_x'>                                                   */
-  /*                                                                       */
-  /*        <load glyph with `FT_Load_Glyph'>                              */
-  /*                                                                       */
-  /*        if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 )           */
-  /*          origin_x -= 64;                                              */
-  /*        else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 )      */
-  /*          origin_x += 64;                                              */
-  /*                                                                       */
-  /*        prev_rsb_delta = face->glyph->rsb_delta;                       */
-  /*                                                                       */
-  /*        <save glyph image, or render glyph, or ...>                    */
-  /*                                                                       */
-  /*        origin_x += face->glyph->advance.x;                            */
-  /*      endfor                                                           */
-  /*    }                                                                  */
-  /*                                                                       */
-  typedef struct  FT_GlyphSlotRec_
-  {
-    FT_Library        library;
-    FT_Face           face;
-    FT_GlyphSlot      next;
-    FT_UInt           reserved;       /* retained for binary compatibility */
-    FT_Generic        generic;
-
-    FT_Glyph_Metrics  metrics;
-    FT_Fixed          linearHoriAdvance;
-    FT_Fixed          linearVertAdvance;
-    FT_Vector         advance;
-
-    FT_Glyph_Format   format;
-
-    FT_Bitmap         bitmap;
-    FT_Int            bitmap_left;
-    FT_Int            bitmap_top;
-
-    FT_Outline        outline;
-
-    FT_UInt           num_subglyphs;
-    FT_SubGlyph       subglyphs;
-
-    void*             control_data;
-    long              control_len;
-
-    FT_Pos            lsb_delta;
-    FT_Pos            rsb_delta;
-
-    void*             other;
-
-    FT_Slot_Internal  internal;
-
-  } FT_GlyphSlotRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*                                                                       */
-  /*                         F U N C T I O N S                             */
-  /*                                                                       */
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Init_FreeType                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a new FreeType library object.  The set of modules     */
-  /*    that are registered by this function is determined at build time.  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    alibrary :: A handle to a new library object.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Init_FreeType( FT_Library  *alibrary );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Library_Version                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Return the version of the FreeType library being used.  This is    */
-  /*    useful when dynamically linking to the library, since one cannot   */
-  /*    use the macros FT_FREETYPE_MAJOR, FT_FREETYPE_MINOR, and           */
-  /*    FT_FREETYPE_PATCH.                                                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A source library handle.                                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    amajor :: The major version number.                                */
-  /*                                                                       */
-  /*    aminor :: The minor version number.                                */
-  /*                                                                       */
-  /*    apatch :: The patch version number.                                */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The reason why this function takes a 'library' argument is because */
-  /*    certain programs implement library initialization in a custom way  */
-  /*    that doesn't use `FT_Init_FreeType'.                               */
-  /*                                                                       */
-  /*    In such cases, the library version might not be available before   */
-  /*    the library object has been created.                               */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Library_Version( FT_Library   library,
-                      FT_Int      *amajor,
-                      FT_Int      *aminor,
-                      FT_Int      *apatch );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_FreeType                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given FreeType library object and all of its childs,    */
-  /*    including resources, drivers, faces, sizes, etc.                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A handle to the target library object.                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Done_FreeType( FT_Library  library );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_OPEN_XXX                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of bit-field constants used within the `flags' field of the */
-  /*    @FT_Open_Args structure.                                           */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_OPEN_MEMORY      :: This is a memory-based stream.              */
-  /*                                                                       */
-  /*    FT_OPEN_STREAM      :: Copy the stream from the `stream' field.    */
-  /*                                                                       */
-  /*    FT_OPEN_PATHNAME    :: Create a new input stream from a C          */
-  /*                           path name.                                  */
-  /*                                                                       */
-  /*    FT_OPEN_DRIVER      :: Use the `driver' field.                     */
-  /*                                                                       */
-  /*    FT_OPEN_PARAMS      :: Use the `num_params' & `params' field.      */
-  /*                                                                       */
-  /*    ft_open_memory      :: Deprecated; use @FT_OPEN_MEMORY instead.    */
-  /*                                                                       */
-  /*    ft_open_stream      :: Deprecated; use @FT_OPEN_STREAM instead.    */
-  /*                                                                       */
-  /*    ft_open_pathname    :: Deprecated; use @FT_OPEN_PATHNAME instead.  */
-  /*                                                                       */
-  /*    ft_open_driver      :: Deprecated; use @FT_OPEN_DRIVER instead.    */
-  /*                                                                       */
-  /*    ft_open_params      :: Deprecated; use @FT_OPEN_PARAMS instead.    */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The `FT_OPEN_MEMORY', `FT_OPEN_STREAM', and `FT_OPEN_PATHNAME'     */
-  /*    flags are mutually exclusive.                                      */
-  /*                                                                       */
-#define FT_OPEN_MEMORY    0x1
-#define FT_OPEN_STREAM    0x2
-#define FT_OPEN_PATHNAME  0x4
-#define FT_OPEN_DRIVER    0x8
-#define FT_OPEN_PARAMS    0x10
-
-#define ft_open_memory    FT_OPEN_MEMORY     /* deprecated */
-#define ft_open_stream    FT_OPEN_STREAM     /* deprecated */
-#define ft_open_pathname  FT_OPEN_PATHNAME   /* deprecated */
-#define ft_open_driver    FT_OPEN_DRIVER     /* deprecated */
-#define ft_open_params    FT_OPEN_PARAMS     /* deprecated */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Parameter                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to pass more or less generic parameters    */
-  /*    to @FT_Open_Face.                                                  */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    tag  :: A 4-byte identification tag.                               */
-  /*                                                                       */
-  /*    data :: A pointer to the parameter data.                           */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The id and function of parameters are driver-specific.             */
-  /*                                                                       */
-  typedef struct  FT_Parameter_
-  {
-    FT_ULong    tag;
-    FT_Pointer  data;
-
-  } FT_Parameter;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Open_Args                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to indicate how to open a new font file/stream.   */
-  /*    A pointer to such a structure can be used as a parameter for the   */
-  /*    functions @FT_Open_Face and @FT_Attach_Stream.                     */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    flags       :: A set of bit flags indicating how to use the        */
-  /*                   structure.                                          */
-  /*                                                                       */
-  /*    memory_base :: The first byte of the file in memory.               */
-  /*                                                                       */
-  /*    memory_size :: The size in bytes of the file in memory.            */
-  /*                                                                       */
-  /*    pathname    :: A pointer to an 8-bit file pathname.                */
-  /*                                                                       */
-  /*    stream      :: A handle to a source stream object.                 */
-  /*                                                                       */
-  /*    driver      :: This field is exclusively used by @FT_Open_Face;    */
-  /*                   it simply specifies the font driver to use to open  */
-  /*                   the face.  If set to 0, FreeType will try to load   */
-  /*                   the face with each one of the drivers in its list.  */
-  /*                                                                       */
-  /*    num_params  :: The number of extra parameters.                     */
-  /*                                                                       */
-  /*    params      :: Extra parameters passed to the font driver when     */
-  /*                   opening a new face.                                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream type is determined by the contents of `flags' which     */
-  /*    are tested in the following order by @FT_Open_Face:                */
-  /*                                                                       */
-  /*    If the `FT_OPEN_MEMORY' bit is set, assume that this is a          */
-  /*    memory file of `memory_size' bytes,located at `memory_address'.    */
-  /*                                                                       */
-  /*    Otherwise, if the `FT_OPEN_STREAM' bit is set, assume that a       */
-  /*    custom input stream `stream' is used.                              */
-  /*                                                                       */
-  /*    Otherwise, if the `FT_OPEN_PATHNAME' bit is set, assume that this  */
-  /*    is a normal file and use `pathname' to open it.                    */
-  /*                                                                       */
-  /*    If the `FT_OPEN_DRIVER' bit is set, @FT_Open_Face will only try to */
-  /*    open the file with the driver whose handler is in `driver'.        */
-  /*                                                                       */
-  /*    If the `FT_OPEN_PARAMS' bit is set, the parameters given by        */
-  /*    `num_params' and `params' will be used.  They are ignored          */
-  /*    otherwise.                                                         */
-  /*                                                                       */
-  typedef struct  FT_Open_Args_
-  {
-    FT_UInt         flags;
-    const FT_Byte*  memory_base;
-    FT_Long         memory_size;
-    FT_String*      pathname;
-    FT_Stream       stream;
-    FT_Module       driver;
-    FT_Int          num_params;
-    FT_Parameter*   params;
-
-  } FT_Open_Args;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Face                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new face object from a given resource and typeface index */
-  /*    using a pathname to the font file.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library resource.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    pathname   :: A path to the font file.                             */
-  /*                                                                       */
-  /*    face_index :: The index of the face within the resource.  The      */
-  /*                  first face has index 0.                              */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aface      :: A handle to a new face object.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Unlike FreeType 1.x, this function automatically creates a glyph   */
-  /*    slot for the face object which can be accessed directly through    */
-  /*    `face->glyph'.                                                     */
-  /*                                                                       */
-  /*    @FT_New_Face can be used to determine and/or check the font format */
-  /*    of a given font resource.  If the `face_index' field is negative,  */
-  /*    the function will _not_ return any face handle in `aface';  the    */
-  /*    return value is 0 if the font format is recognized, or non-zero    */
-  /*    otherwise.                                                         */
-  /*                                                                       */
-  /*    Each new face object created with this function also owns a        */
-  /*    default @FT_Size object, accessible as `face->size'.               */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_New_Face( FT_Library   library,
-               const char*  filepathname,
-               FT_Long      face_index,
-               FT_Face     *aface );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Memory_Face                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new face object from a given resource and typeface index */
-  /*    using a font file already loaded into memory.                      */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library resource.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    file_base  :: A pointer to the beginning of the font data.         */
-  /*                                                                       */
-  /*    file_size  :: The size of the memory chunk used by the font data.  */
-  /*                                                                       */
-  /*    face_index :: The index of the face within the resource.  The      */
-  /*                  first face has index 0.                              */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aface      :: A handle to a new face object.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The font data bytes are used _directly_ by the @FT_Face object.    */
-  /*    This means that they are not copied, and that the client is        */
-  /*    responsible for releasing/destroying them _after_ the              */
-  /*    corresponding call to @FT_Done_Face .                              */
-  /*                                                                       */
-  /*    Unlike FreeType 1.x, this function automatically creates a glyph   */
-  /*    slot for the face object which can be accessed directly through    */
-  /*    `face->glyph'.                                                     */
-  /*                                                                       */
-  /*    @FT_New_Memory_Face can be used to determine and/or check the font */
-  /*    format of a given font resource.  If the `face_index' field is     */
-  /*    negative, the function will _not_ return any face handle in        */
-  /*    `aface'; the return value is 0 if the font format is recognized,   */
-  /*    or non-zero otherwise.                                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_New_Memory_Face( FT_Library      library,
-                      const FT_Byte*  file_base,
-                      FT_Long         file_size,
-                      FT_Long         face_index,
-                      FT_Face        *aface );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Open_Face                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Opens a face object from a given resource and typeface index using */
-  /*    an `FT_Open_Args' structure.  If the face object doesn't exist, it */
-  /*    will be created.                                                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library resource.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    args       :: A pointer to an `FT_Open_Args' structure which must  */
-  /*                  be filled by the caller.                             */
-  /*                                                                       */
-  /*    face_index :: The index of the face within the resource.  The      */
-  /*                  first face has index 0.                              */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aface      :: A handle to a new face object.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Unlike FreeType 1.x, this function automatically creates a glyph   */
-  /*    slot for the face object which can be accessed directly through    */
-  /*    `face->glyph'.                                                     */
-  /*                                                                       */
-  /*    @FT_Open_Face can be used to determine and/or check the font       */
-  /*    format of a given font resource.  If the `face_index' field is     */
-  /*    negative, the function will _not_ return any face handle in        */
-  /*    `*face'; the return value is 0 if the font format is recognized,   */
-  /*    or non-zero otherwise.                                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Open_Face( FT_Library           library,
-                const FT_Open_Args*  args,
-                FT_Long              face_index,
-                FT_Face             *aface );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Attach_File                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    `Attaches' a given font file to an existing face.  This is usually */
-  /*    to read additional information for a single face object.  For      */
-  /*    example, it is used to read the AFM files that come with Type 1    */
-  /*    fonts in order to add kerning data and other metrics.              */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face         :: The target face object.                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    filepathname :: An 8-bit pathname naming the `metrics' file.       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If your font file is in memory, or if you want to provide your     */
-  /*    own input stream object, use @FT_Attach_Stream.                    */
-  /*                                                                       */
-  /*    The meaning of the `attach' action (i.e., what really happens when */
-  /*    the new file is read) is not fixed by FreeType itself.  It really  */
-  /*    depends on the font format (and thus the font driver).             */
-  /*                                                                       */
-  /*    Client applications are expected to know what they are doing       */
-  /*    when invoking this function.  Most drivers simply do not implement */
-  /*    file attachments.                                                  */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Attach_File( FT_Face      face,
-                  const char*  filepathname );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Attach_Stream                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is similar to @FT_Attach_File with the exception     */
-  /*    that it reads the attachment from an arbitrary stream.             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: The target face object.                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    parameters :: A pointer to an FT_Open_Args structure used to       */
-  /*                  describe the input stream to FreeType.               */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The meaning of the `attach' (i.e. what really happens when the     */
-  /*    new file is read) is not fixed by FreeType itself.  It really      */
-  /*    depends on the font format (and thus the font driver).             */
-  /*                                                                       */
-  /*    Client applications are expected to know what they are doing       */
-  /*    when invoking this function.  Most drivers simply do not implement */
-  /*    file attachments.                                                  */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Attach_Stream( FT_Face        face,
-                    FT_Open_Args*  parameters );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_Face                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Discards a given face object, as well as all of its child slots    */
-  /*    and sizes.                                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to a target face object.                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Done_Face( FT_Face  face );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Char_Size                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets the character dimensions of a given face object.  The         */
-  /*    `char_width' and `char_height' values are used for the width and   */
-  /*    height, respectively, expressed in 26.6 fractional points.         */
-  /*                                                                       */
-  /*    If the horizontal or vertical resolution values are zero, a        */
-  /*    default value of 72dpi is used.  Similarly, if one of the          */
-  /*    character dimensions is zero, its value is set equal to the other. */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face            :: A handle to a target face object.               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    char_width      :: The character width, in 26.6 fractional points. */
-  /*                                                                       */
-  /*    char_height     :: The character height, in 26.6 fractional        */
-  /*                       points.                                         */
-  /*                                                                       */
-  /*    horz_resolution :: The horizontal resolution.                      */
-  /*                                                                       */
-  /*    vert_resolution :: The vertical resolution.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    When dealing with fixed-size faces (i.e., non-scalable formats),   */
-  /*    @FT_Set_Pixel_Sizes provides a more convenient interface.          */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_Char_Size( FT_Face     face,
-                    FT_F26Dot6  char_width,
-                    FT_F26Dot6  char_height,
-                    FT_UInt     horz_resolution,
-                    FT_UInt     vert_resolution );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Pixel_Sizes                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets the character dimensions of a given face object.  The width   */
-  /*    and height are expressed in integer pixels.                        */
-  /*                                                                       */
-  /*    If one of the character dimensions is zero, its value is set equal */
-  /*    to the other.                                                      */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face         :: A handle to the target face object.                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    pixel_width  :: The character width, in integer pixels.            */
-  /*                                                                       */
-  /*    pixel_height :: The character height, in integer pixels.           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The values of `pixel_width' and `pixel_height' correspond to the   */
-  /*    pixel values of the _typographic_ character size, which are NOT    */
-  /*    necessarily the same as the dimensions of the glyph `bitmap        */
-  /*    cells'.                                                            */
-  /*                                                                       */
-  /*    The `character size' is really the size of an abstract square      */
-  /*    called the `EM', used to design the font.  However, depending      */
-  /*    on the font design, glyphs will be smaller or greater than the     */
-  /*    EM.                                                                */
-  /*                                                                       */
-  /*    This means that setting the pixel size to, say, 8x8 doesn't        */
-  /*    guarantee in any way that you will get glyph bitmaps that all fit  */
-  /*    within an 8x8 cell (sometimes even far from it).                   */
-  /*                                                                       */
-  /*    For bitmap fonts, `pixel_height' usually is a reliable value for   */
-  /*    the height of the bitmap cell.  Drivers for bitmap font formats    */
-  /*    which contain a single bitmap strike only (BDF, PCF, FNT) ignore   */
-  /*    `pixel_width'.                                                     */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_Pixel_Sizes( FT_Face  face,
-                      FT_UInt  pixel_width,
-                      FT_UInt  pixel_height );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Load_Glyph                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to load a single glyph within a given glyph slot,  */
-  /*    for a given size.                                                  */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face        :: A handle to the target face object where the glyph  */
-  /*                   will be loaded.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    glyph_index :: The index of the glyph in the font file.  For       */
-  /*                   CID-keyed fonts (either in PS or in CFF format)     */
-  /*                   this argument specifies the CID value.              */
-  /*                                                                       */
-  /*    load_flags  :: A flag indicating what to load for this glyph.  The */
-  /*                   @FT_LOAD_XXX constants can be used to control the   */
-  /*                   glyph loading process (e.g., whether the outline    */
-  /*                   should be scaled, whether to load bitmaps or not,   */
-  /*                   whether to hint the outline, etc).                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If the glyph image is not a bitmap, and if the bit flag            */
-  /*    FT_LOAD_IGNORE_TRANSFORM is unset, the glyph image will be         */
-  /*    transformed with the information passed to a previous call to      */
-  /*    @FT_Set_Transform.                                                 */
-  /*                                                                       */
-  /*    Note that this also transforms the `face.glyph.advance' field, but */
-  /*    *not* the values in `face.glyph.metrics'.                          */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Load_Glyph( FT_Face   face,
-                 FT_UInt   glyph_index,
-                 FT_Int32  load_flags );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Load_Char                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to load a single glyph within a given glyph slot,  */
-  /*    for a given size, according to its character code.                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face        :: A handle to a target face object where the glyph    */
-  /*                   will be loaded.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    char_code   :: The glyph's character code, according to the        */
-  /*                   current charmap used in the face.                   */
-  /*                                                                       */
-  /*    load_flags  :: A flag indicating what to load for this glyph.  The */
-  /*                   @FT_LOAD_XXX constants can be used to control the   */
-  /*                   glyph loading process (e.g., whether the outline    */
-  /*                   should be scaled, whether to load bitmaps or not,   */
-  /*                   whether to hint the outline, etc).                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If the face has no current charmap, or if the character code       */
-  /*    is not defined in the charmap, this function will return an        */
-  /*    error.                                                             */
-  /*                                                                       */
-  /*    If the glyph image is not a bitmap, and if the bit flag            */
-  /*    FT_LOAD_IGNORE_TRANSFORM is unset, the glyph image will be         */
-  /*    transformed with the information passed to a previous call to      */
-  /*    @FT_Set_Transform.                                                 */
-  /*                                                                       */
-  /*    Note that this also transforms the `face.glyph.advance' field, but */
-  /*    *not* the values in `face.glyph.metrics'.                          */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Load_Char( FT_Face   face,
-                FT_ULong  char_code,
-                FT_Int32  load_flags );
-
-
- /***************************************************************************
-  *
-  * @enum:
-  *   FT_LOAD_XXX
-  *
-  * @description:
-  *   A list of bit-field constants, used with @FT_Load_Glyph to indicate
-  *   what kind of operations to perform during glyph loading.
-  *
-  * @values:
-  *   FT_LOAD_DEFAULT ::
-  *     Corresponding to 0, this value is used a default glyph load.  In this
-  *     case, the following will happen:
-  *
-  *     1. FreeType looks for a bitmap for the glyph corresponding to the
-  *        face's current size.  If one is found, the function returns.  The
-  *        bitmap data can be accessed from the glyph slot (see note below).
-  *
-  *     2. If no embedded bitmap is searched or found, FreeType looks for a
-  *        scalable outline.  If one is found, it is loaded from the font
-  *        file, scaled to device pixels, then "hinted" to the pixel grid in
-  *        order to optimize it.  The outline data can be accessed from the
-  *        glyph slot (see note below).
-  *
-  *     Note that by default, the glyph loader doesn't render outlines into
-  *     bitmaps.  The following flags are used to modify this default
-  *     behaviour to more specific and useful cases.
-  *
-  *   FT_LOAD_NO_SCALE ::
-  *     Don't scale the vector outline being loaded to 26.6 fractional
-  *     pixels, but kept in font units.  Note that this also disables
-  *     hinting and the loading of embedded bitmaps.  You should only use it
-  *     when you want to retrieve the original glyph outlines in font units.
-  *
-  *   FT_LOAD_NO_HINTING ::
-  *     Don't hint glyph outlines after their scaling to device pixels.
-  *     This generally generates "blurrier" glyphs in anti-aliased modes.
-  *
-  *     This flag is ignored if @FT_LOAD_NO_SCALE is set.
-  *
-  *   FT_LOAD_RENDER ::
-  *     Render the glyph outline immediately into a bitmap before the glyph
-  *     loader returns.  By default, the glyph is rendered for the
-  *     @FT_RENDER_MODE_NORMAL mode, which corresponds to 8-bit anti-aliased
-  *     bitmaps using 256 opacity levels.  You can use either
-  *     @FT_LOAD_TARGET_MONO or @FT_LOAD_MONOCHROME to render 1-bit
-  *     monochrome bitmaps.
-  *
-  *     This flag is ignored if @FT_LOAD_NO_SCALE is set.
-  *
-  *   FT_LOAD_NO_BITMAP ::
-  *     Don't look for bitmaps when loading the glyph.  Only scalable
-  *     outlines will be loaded when available, and scaled, hinted, or
-  *     rendered depending on other bit flags.
-  *
-  *     This does not prevent you from rendering outlines to bitmaps
-  *     with @FT_LOAD_RENDER, however.
-  *
-  *   FT_LOAD_VERTICAL_LAYOUT ::
-  *     Prepare the glyph image for vertical text layout.  This basically
-  *     means that `face.glyph.advance' will correspond to the vertical
-  *     advance height (instead of the default horizontal advance width),
-  *     and that the glyph image will be translated to match the vertical
-  *     bearings positions.
-  *
-  *   FT_LOAD_FORCE_AUTOHINT ::
-  *     Force the use of the FreeType auto-hinter when a glyph outline is
-  *     loaded.  You shouldn't need this in a typical application, since it
-  *     is mostly used to experiment with its algorithm.
-  *
-  *   FT_LOAD_CROP_BITMAP ::
-  *     Indicates that the glyph loader should try to crop the bitmap (i.e.,
-  *     remove all space around its black bits) when loading it.  This is
-  *     only useful when loading embedded bitmaps in certain fonts, since
-  *     bitmaps rendered with @FT_LOAD_RENDER are always cropped by default.
-  *
-  *   FT_LOAD_PEDANTIC ::
-  *     Indicates that the glyph loader should perform pedantic
-  *     verifications during glyph loading, rejecting invalid fonts.  This
-  *     is mostly used to detect broken glyphs in fonts.  By default,
-  *     FreeType tries to handle broken fonts also.
-  *
-  *   FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ::
-  *     Indicates that the glyph loader should ignore the global advance
-  *     width defined in the font.  As far as we know, this is only used by
-  *     the X-TrueType font server, in order to deal correctly with the
-  *     incorrect metrics contained in DynaLab's TrueType CJK fonts.
-  *
-  *   FT_LOAD_NO_RECURSE ::
-  *     This flag is only used internally.  It merely indicates that the
-  *     glyph loader should not load composite glyphs recursively.  Instead,
-  *     it should set the `num_subglyph' and `subglyphs' values of the glyph
-  *     slot accordingly, and set "glyph->format" to
-  *     @FT_GLYPH_FORMAT_COMPOSITE.
-  *
-  *     The description of sub-glyphs is not available to client
-  *     applications for now.
-  *
-  *   FT_LOAD_IGNORE_TRANSFORM ::
-  *     Indicates that the glyph loader should not try to transform the
-  *     loaded glyph image.  This doesn't prevent scaling, hinting, or
-  *     rendering.
-  *
-  *   FT_LOAD_MONOCHROME ::
-  *     This flag is used with @FT_LOAD_RENDER to indicate that you want
-  *     to render a 1-bit monochrome glyph bitmap from a vectorial outline.
-  *
-  *     Note that this has no effect on the hinting algorithm used by the
-  *     glyph loader.  You should better use @FT_LOAD_TARGET_MONO if you
-  *     want to render monochrome-optimized glyph images instead.
-  *
-  *   FT_LOAD_LINEAR_DESIGN ::
-  *     Return the linearly scaled metrics expressed in original font units
-  *     instead of the default 16.16 pixel values.
-  *
-  *   FT_LOAD_NO_AUTOHINT ::
-  *     Indicates that the auto-hinter should never be used to hint glyph
-  *     outlines.  This doesn't prevent native format-specific hinters from
-  *     being used.  This can be important for certain fonts where unhinted
-  *     output is better than auto-hinted one.
-  *
-  *   FT_LOAD_TARGET_NORMAL ::
-  *     Use hinting for @FT_RENDER_MODE_NORMAL.
-  *
-  *   FT_LOAD_TARGET_LIGHT ::
-  *     Use hinting for @FT_RENDER_MODE_LIGHT.
-  *
-  *   FT_LOAD_TARGET_MONO ::
-  *     Use hinting for @FT_RENDER_MODE_MONO.
-  *
-  *   FT_LOAD_TARGET_LCD ::
-  *     Use hinting for @FT_RENDER_MODE_LCD.
-  *
-  *   FT_LOAD_TARGET_LCD_V ::
-  *     Use hinting for @FT_RENDER_MODE_LCD_V.
-  */
-#define FT_LOAD_DEFAULT                      0x0
-#define FT_LOAD_NO_SCALE                     0x1
-#define FT_LOAD_NO_HINTING                   0x2
-#define FT_LOAD_RENDER                       0x4
-#define FT_LOAD_NO_BITMAP                    0x8
-#define FT_LOAD_VERTICAL_LAYOUT              0x10
-#define FT_LOAD_FORCE_AUTOHINT               0x20
-#define FT_LOAD_CROP_BITMAP                  0x40
-#define FT_LOAD_PEDANTIC                     0x80
-#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH  0x200
-#define FT_LOAD_NO_RECURSE                   0x400
-#define FT_LOAD_IGNORE_TRANSFORM             0x800
-#define FT_LOAD_MONOCHROME                   0x1000
-#define FT_LOAD_LINEAR_DESIGN                0x2000
-
-  /* temporary hack! */
-#define FT_LOAD_SBITS_ONLY                   0x4000
-#define FT_LOAD_NO_AUTOHINT                  0x8000U
-
-  /* */
-
-#define FT_LOAD_TARGET_( x )      ( (FT_Int32)( (x) & 15 ) << 16 )
-#define FT_LOAD_TARGET_MODE( x )  ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
-
-#define FT_LOAD_TARGET_NORMAL     FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
-#define FT_LOAD_TARGET_LIGHT      FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT  )
-#define FT_LOAD_TARGET_MONO       FT_LOAD_TARGET_( FT_RENDER_MODE_MONO   )
-#define FT_LOAD_TARGET_LCD        FT_LOAD_TARGET_( FT_RENDER_MODE_LCD    )
-#define FT_LOAD_TARGET_LCD_V      FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V  )
-
-  /* */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Transform                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to set the transformation that is applied to glyph */
-  /*    images just before they are converted to bitmaps in a glyph slot   */
-  /*    when @FT_Render_Glyph is called.                                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: A handle to the source face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    matrix :: A pointer to the transformation's 2x2 matrix.  Use 0 for */
-  /*              the identity matrix.                                     */
-  /*    delta  :: A pointer to the translation vector.  Use 0 for the null */
-  /*              vector.                                                  */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The transformation is only applied to scalable image formats after */
-  /*    the glyph has been loaded.  It means that hinting is unaltered by  */
-  /*    the transformation and is performed on the character size given in */
-  /*    the last call to @FT_Set_Char_Size or @FT_Set_Pixel_Sizes.         */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Set_Transform( FT_Face     face,
-                    FT_Matrix*  matrix,
-                    FT_Vector*  delta );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Render_Mode                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An enumeration type that lists the render modes supported by       */
-  /*    FreeType 2.  Each mode corresponds to a specific type of scanline  */
-  /*    conversion performed on the outline, as well as specific           */
-  /*    hinting optimizations.                                             */
-  /*                                                                       */
-  /*    For bitmap fonts the `bitmap->pixel_mode' field in the             */
-  /*    @FT_GlyphSlotRec structure gives the format of the returned        */
-  /*    bitmap.                                                            */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_RENDER_MODE_NORMAL ::                                           */
-  /*      This is the default render mode; it corresponds to 8-bit         */
-  /*      anti-aliased bitmaps, using 256 levels of opacity.               */
-  /*                                                                       */
-  /*    FT_RENDER_MODE_LIGHT ::                                            */
-  /*      This is similar to @FT_RENDER_MODE_NORMAL -- you have to use     */
-  /*      @FT_LOAD_TARGET_LIGHT in calls to @FT_Load_Glyph to get any      */
-  /*      effect since the rendering process no longer influences the      */
-  /*      positioning of glyph outlines.                                   */
-  /*                                                                       */
-  /*      The resulting glyph shapes are more similar to the original,     */
-  /*      while being a bit more fuzzy (`better shapes' instead of `better */
-  /*      contrast', so to say.                                            */
-  /*                                                                       */
-  /*    FT_RENDER_MODE_MONO ::                                             */
-  /*      This mode corresponds to 1-bit bitmaps.                          */
-  /*                                                                       */
-  /*    FT_RENDER_MODE_LCD ::                                              */
-  /*      This mode corresponds to horizontal RGB/BGR sub-pixel displays,  */
-  /*      like LCD-screens.  It produces 8-bit bitmaps that are 3 times    */
-  /*      the width of the original glyph outline in pixels, and which use */
-  /*      the @FT_PIXEL_MODE_LCD mode.                                     */
-  /*                                                                       */
-  /*    FT_RENDER_MODE_LCD_V ::                                            */
-  /*      This mode corresponds to vertical RGB/BGR sub-pixel displays     */
-  /*      (like PDA screens, rotated LCD displays, etc.).  It produces     */
-  /*      8-bit bitmaps that are 3 times the height of the original        */
-  /*      glyph outline in pixels and use the @FT_PIXEL_MODE_LCD_V mode.   */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*   The LCD-optimized glyph bitmaps produced by FT_Render_Glyph are     */
-  /*   _not filtered_ to reduce color-fringes.  It is up to the caller to  */
-  /*   perform this pass.                                                  */
-  /*                                                                       */
-  typedef enum  FT_Render_Mode_
-  {
-    FT_RENDER_MODE_NORMAL = 0,
-    FT_RENDER_MODE_LIGHT,
-    FT_RENDER_MODE_MONO,
-    FT_RENDER_MODE_LCD,
-    FT_RENDER_MODE_LCD_V,
-
-    FT_RENDER_MODE_MAX
-
-  } FT_Render_Mode;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_render_mode_xxx                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    These constats are deprecated.  Use the corresponding              */
-  /*    @FT_Render_Mode values instead.                                    */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*   ft_render_mode_normal :: see @FT_RENDER_MODE_NORMAL                 */
-  /*   ft_render_mode_mono   :: see @FT_RENDER_MODE_MONO                   */
-  /*                                                                       */
-#define ft_render_mode_normal  FT_RENDER_MODE_NORMAL
-#define ft_render_mode_mono    FT_RENDER_MODE_MONO
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Render_Glyph                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Converts a given glyph image to a bitmap.  It does so by           */
-  /*    inspecting the glyph image format, find the relevant renderer, and */
-  /*    invoke it.                                                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    slot        :: A handle to the glyph slot containing the image to  */
-  /*                   convert.                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    render_mode :: This is the render mode used to render the glyph    */
-  /*                   image into a bitmap.  See FT_Render_Mode for a list */
-  /*                   of possible values.                                 */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Render_Glyph( FT_GlyphSlot    slot,
-                   FT_Render_Mode  render_mode );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Kerning_Mode                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An enumeration used to specify which kerning values to return in   */
-  /*    @FT_Get_Kerning.                                                   */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_KERNING_DEFAULT  :: Return scaled and grid-fitted kerning       */
-  /*                           distances (value is 0).                     */
-  /*                                                                       */
-  /*    FT_KERNING_UNFITTED :: Return scaled but un-grid-fitted kerning    */
-  /*                           distances.                                  */
-  /*                                                                       */
-  /*    FT_KERNING_UNSCALED :: Return the kerning vector in original font  */
-  /*                           units.                                      */
-  /*                                                                       */
-  typedef enum  FT_Kerning_Mode_
-  {
-    FT_KERNING_DEFAULT  = 0,
-    FT_KERNING_UNFITTED,
-    FT_KERNING_UNSCALED
-
-  } FT_Kerning_Mode;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Const>                                                               */
-  /*    ft_kerning_default                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This constant is deprecated.  Please use @FT_KERNING_DEFAULT       */
-  /*    instead.                                                           */
-  /*                                                                       */
-#define ft_kerning_default   FT_KERNING_DEFAULT
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Const>                                                               */
-  /*    ft_kerning_unfitted                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This constant is deprecated.  Please use @FT_KERNING_UNFITTED      */
-  /*    instead.                                                           */
-  /*                                                                       */
-#define ft_kerning_unfitted  FT_KERNING_UNFITTED
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Const>                                                               */
-  /*    ft_kerning_unscaled                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This constant is deprecated.  Please use @FT_KERNING_UNSCALED      */
-  /*    instead.                                                           */
-  /*                                                                       */
-#define ft_kerning_unscaled  FT_KERNING_UNSCALED
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Kerning                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns the kerning vector between two glyphs of a same face.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to a source face object.                   */
-  /*                                                                       */
-  /*    left_glyph  :: The index of the left glyph in the kern pair.       */
-  /*                                                                       */
-  /*    right_glyph :: The index of the right glyph in the kern pair.      */
-  /*                                                                       */
-  /*    kern_mode   :: See @FT_Kerning_Mode for more information.          */
-  /*                   Determines the scale/dimension of the returned      */
-  /*                   kerning vector.                                     */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    akerning    :: The kerning vector.  This is in font units for      */
-  /*                   scalable formats, and in pixels for fixed-sizes     */
-  /*                   formats.                                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only horizontal layouts (left-to-right & right-to-left) are        */
-  /*    supported by this method.  Other layouts, or more sophisticated    */
-  /*    kernings, are out of the scope of this API function -- they can be */
-  /*    implemented through format-specific interfaces.                    */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Get_Kerning( FT_Face     face,
-                  FT_UInt     left_glyph,
-                  FT_UInt     right_glyph,
-                  FT_UInt     kern_mode,
-                  FT_Vector  *akerning );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Glyph_Name                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the ASCII name of a given glyph in a face.  This only    */
-  /*    works for those faces where FT_HAS_GLYPH_NAME(face) returns true.  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to a source face object.                   */
-  /*                                                                       */
-  /*    glyph_index :: The glyph index.                                    */
-  /*                                                                       */
-  /*    buffer_max  :: The maximal number of bytes available in the        */
-  /*                   buffer.                                             */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    buffer      :: A pointer to a target buffer where the name will be */
-  /*                   copied to.                                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    An error is returned if the face doesn't provide glyph names or if */
-  /*    the glyph index is invalid.  In all cases of failure, the first    */
-  /*    byte of `buffer' will be set to 0 to indicate an empty name.       */
-  /*                                                                       */
-  /*    The glyph name is truncated to fit within the buffer if it is too  */
-  /*    long.  The returned string is always zero-terminated.              */
-  /*                                                                       */
-  /*    This function is not compiled within the library if the config     */
-  /*    macro FT_CONFIG_OPTION_NO_GLYPH_NAMES is defined in                */
-  /*    `include/freetype/config/ftoptions.h'                              */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Get_Glyph_Name( FT_Face     face,
-                     FT_UInt     glyph_index,
-                     FT_Pointer  buffer,
-                     FT_UInt     buffer_max );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Postscript_Name                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the ASCII Postscript name of a given face, if available. */
-  /*    This should only work with Postscript and TrueType fonts.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the source face object.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A pointer to the face's Postscript name.  NULL if un-available.    */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The returned pointer is owned by the face and will be destroyed    */
-  /*    with it.                                                           */
-  /*                                                                       */
-  FT_EXPORT( const char* )
-  FT_Get_Postscript_Name( FT_Face  face );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Select_Charmap                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Selects a given charmap by its encoding tag (as listed in          */
-  /*    `freetype.h').                                                     */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face     :: A handle to the source face object.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    encoding :: A handle to the selected charmap.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function will return an error if no charmap in the face       */
-  /*    corresponds to the encoding queried here.                          */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Select_Charmap( FT_Face      face,
-                     FT_Encoding  encoding );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Charmap                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Selects a given charmap for character code to glyph index          */
-  /*    decoding.                                                          */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face    :: A handle to the source face object.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    charmap :: A handle to the selected charmap.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function will return an error if the charmap is not part of   */
-  /*    the face (i.e., if it is not listed in the face->charmaps[]        */
-  /*    table).                                                            */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_Charmap( FT_Face     face,
-                  FT_CharMap  charmap );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Get_Charmap_Index                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Retrieve index of a given charmap.                                 */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    charmap :: A handle to a charmap.                                  */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    The index into the array of character maps within the face to      */
-  /*    which `charmap' belongs.                                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Int )
-  FT_Get_Charmap_Index( FT_CharMap  charmap );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Char_Index                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns the glyph index of a given character code.  This function  */
-  /*    uses a charmap object to do the translation.                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face     :: A handle to the source face object.                    */
-  /*                                                                       */
-  /*    charcode :: The character code.                                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The glyph index.  0 means `undefined character code'.              */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    FreeType computes its own glyph indices which are not necessarily  */
-  /*    the same as used in the font in case the font is based on glyph    */
-  /*    indices.  Reason for this behaviour is to assure that index 0 is   */
-  /*    never used, representing the missing glyph.                        */
-  /*                                                                       */
-  FT_EXPORT( FT_UInt )
-  FT_Get_Char_Index( FT_Face   face,
-                     FT_ULong  charcode );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_First_Char                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used to return the first character code in the    */
-  /*    current charmap of a given face.  It will also return the          */
-  /*    corresponding glyph index.                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face    :: A handle to the source face object.                     */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    agindex :: Glyph index of first character code.  0 if charmap is   */
-  /*               empty.                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The charmap's first character code.                                */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You should use this function with @FT_Get_Next_Char to be able to  */
-  /*    parse all character codes available in a given charmap.  The code  */
-  /*    should look like this:                                             */
-  /*                                                                       */
-  /*    {                                                                  */
-  /*      FT_ULong  charcode;                                              */
-  /*      FT_UInt   gindex;                                                */
-  /*                                                                       */
-  /*                                                                       */
-  /*      charcode = FT_Get_First_Char( face, &gindex );                   */
-  /*      while ( gindex != 0 )                                            */
-  /*      {                                                                */
-  /*        ... do something with (charcode,gindex) pair ...               */
-  /*                                                                       */
-  /*        charcode = FT_Get_Next_Char( face, charcode, &gindex );        */
-  /*      }                                                                */
-  /*    }                                                                  */
-  /*                                                                       */
-  /*    Note that `*agindex' will be set to 0 if the charmap is empty.     */
-  /*    The result itself can be 0 in two cases: if the charmap is empty   */
-  /*    or when the value 0 is the first valid character code.             */
-  /*                                                                       */
-  FT_EXPORT( FT_ULong )
-  FT_Get_First_Char( FT_Face   face,
-                     FT_UInt  *agindex );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Next_Char                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used to return the next character code in the     */
-  /*    current charmap of a given face following the value 'char_code',   */
-  /*    as well as the corresponding glyph index.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face      :: A handle to the source face object.                   */
-  /*    char_code :: The starting character code.                          */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    agindex   :: Glyph index of first character code.  0 if charmap    */
-  /*                 is empty.                                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The charmap's next character code.                                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You should use this function with @FT_Get_First_Char to walk       */
-  /*    through all character codes available in a given charmap.  See     */
-  /*    the note for this function for a simple code example.              */
-  /*                                                                       */
-  /*    Note that `*agindex' will be set to 0 when there are no more codes */
-  /*    in the charmap.                                                    */
-  /*                                                                       */
-  FT_EXPORT( FT_ULong )
-  FT_Get_Next_Char( FT_Face    face,
-                    FT_ULong   char_code,
-                    FT_UInt   *agindex );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Name_Index                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns the glyph index of a given glyph name.  This function uses */
-  /*    driver specific objects to do the translation.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face       :: A handle to the source face object.                  */
-  /*                                                                       */
-  /*    glyph_name :: The glyph name.                                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The glyph index.  0 means `undefined character code'.              */
-  /*                                                                       */
-  FT_EXPORT( FT_UInt )
-  FT_Get_Name_Index( FT_Face     face,
-                     FT_String*  glyph_name );
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    computations                                                       */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Computations                                                       */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Crunching fixed numbers and vectors                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains various functions used to perform            */
-  /*    computations on 16.16 fixed-float numbers or 2d vectors.           */
-  /*                                                                       */
-  /* <Order>                                                               */
-  /*    FT_MulDiv                                                          */
-  /*    FT_MulFix                                                          */
-  /*    FT_DivFix                                                          */
-  /*    FT_RoundFix                                                        */
-  /*    FT_CeilFix                                                         */
-  /*    FT_FloorFix                                                        */
-  /*    FT_Vector_Transform                                                */
-  /*    FT_Matrix_Multiply                                                 */
-  /*    FT_Matrix_Invert                                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_MulDiv                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to perform the computation `(a*b)/c'   */
-  /*    with maximal accuracy (it uses a 64-bit intermediate integer       */
-  /*    whenever necessary).                                               */
-  /*                                                                       */
-  /*    This function isn't necessarily as fast as some processor specific */
-  /*    operations, but is at least completely portable.                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The first multiplier.                                         */
-  /*    b :: The second multiplier.                                        */
-  /*    c :: The divisor.                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `(a*b)/c'.  This function never traps when trying to */
-  /*    divide by zero; it simply returns `MaxInt' or `MinInt' depending   */
-  /*    on the signs of `a' and `b'.                                       */
-  /*                                                                       */
-  FT_EXPORT( FT_Long )
-  FT_MulDiv( FT_Long  a,
-             FT_Long  b,
-             FT_Long  c );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_MulFix                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to perform the computation             */
-  /*    `(a*b)/0x10000' with maximal accuracy.  Most of the time this is   */
-  /*    used to multiply a given value by a 16.16 fixed float factor.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The first multiplier.                                         */
-  /*    b :: The second multiplier.  Use a 16.16 factor here whenever      */
-  /*         possible (see note below).                                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `(a*b)/0x10000'.                                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function has been optimized for the case where the absolute   */
-  /*    value of `a' is less than 2048, and `b' is a 16.16 scaling factor. */
-  /*    As this happens mainly when scaling from notional units to         */
-  /*    fractional pixels in FreeType, it resulted in noticeable speed     */
-  /*    improvements between versions 2.x and 1.x.                         */
-  /*                                                                       */
-  /*    As a conclusion, always try to place a 16.16 factor as the         */
-  /*    _second_ argument of this function; this can make a great          */
-  /*    difference.                                                        */
-  /*                                                                       */
-  FT_EXPORT( FT_Long )
-  FT_MulFix( FT_Long  a,
-             FT_Long  b );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_DivFix                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to perform the computation             */
-  /*    `(a*0x10000)/b' with maximal accuracy.  Most of the time, this is  */
-  /*    used to divide a given value by a 16.16 fixed float factor.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The first multiplier.                                         */
-  /*    b :: The second multiplier.  Use a 16.16 factor here whenever      */
-  /*         possible (see note below).                                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `(a*0x10000)/b'.                                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The optimization for FT_DivFix() is simple: If (a << 16) fits in   */
-  /*    32 bits, then the division is computed directly.  Otherwise, we    */
-  /*    use a specialized version of @FT_MulDiv.                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Long )
-  FT_DivFix( FT_Long  a,
-             FT_Long  b );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_RoundFix                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to round a 16.16 fixed number.         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The number to be rounded.                                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `(a + 0x8000) & -0x10000'.                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_RoundFix( FT_Fixed  a );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_CeilFix                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to compute the ceiling function of a   */
-  /*    16.16 fixed number.                                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The number for which the ceiling function is to be computed.  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `(a + 0x10000 - 1) & -0x10000'.                      */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_CeilFix( FT_Fixed  a );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_FloorFix                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to compute the floor function of a     */
-  /*    16.16 fixed number.                                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The number for which the floor function is to be computed.    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `a & -0x10000'.                                      */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_FloorFix( FT_Fixed  a );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Vector_Transform                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Transforms a single vector through a 2x2 matrix.                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    vector :: The target vector to transform.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    matrix :: A pointer to the source 2x2 matrix.                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The result is undefined if either `vector' or `matrix' is invalid. */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Vector_Transform( FT_Vector*  vec,
-                       FT_Matrix*  matrix );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FREETYPE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftbbox.h b/nx-X11/extras/freetype2/include/freetype/ftbbox.h
deleted file mode 100644
index f98c89eb2..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftbbox.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftbbox.h                                                               */
-/*                                                                         */
-/*    FreeType exact bbox computation (specification).                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This component has a _single_ role: to compute exact outline bounding */
-  /* boxes.                                                                */
-  /*                                                                       */
-  /* It is separated from the rest of the engine for various technical     */
-  /* reasons.  It may well be integrated in `ftoutln' later.               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTBBOX_H__
-#define __FTBBOX_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    outline_processing                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Get_BBox                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the exact bounding box of an outline.  This is slower     */
-  /*    than computing the control box.  However, it uses an advanced      */
-  /*    algorithm which returns _very_ quickly when the two boxes          */
-  /*    coincide.  Otherwise, the outline Bezier arcs are walked over to   */
-  /*    extract their extrema.                                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    outline :: A pointer to the source outline.                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    abbox   :: The outline's exact bounding box.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Get_BBox( FT_Outline*  outline,
-                       FT_BBox     *abbox );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTBBOX_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftbdf.h b/nx-X11/extras/freetype2/include/freetype/ftbdf.h
deleted file mode 100644
index aa411440d..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftbdf.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftbdf.h                                                                */
-/*                                                                         */
-/*    FreeType API for accessing BDF-specific strings (specification).     */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTBDF_H__
-#define __FTBDF_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    bdf_fonts                                                          */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    BDF Fonts                                                          */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    BDF-specific APIs                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the declaration of BDF-specific functions.   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
- /**********************************************************************
-  *
-  * @enum:
-  *    FT_PropertyType
-  *
-  * @description:
-  *    A list of BDF property types.
-  *
-  * @values:
-  *    BDF_PROPERTY_TYPE_NONE ::
-  *      Value 0 is used to indicate a missing property.
-  *
-  *    BDF_PROPERTY_TYPE_ATOM ::
-  *      Property is a string atom.
-  *
-  *    BDF_PROPERTY_TYPE_INTEGER ::
-  *      Property is a 32-bit signed integer.
-  *
-  *    BDF_PROPERTY_TYPE_CARDINAL ::
-  *      Property is a 32-bit unsigned integer.
-  */
-  typedef enum  BDF_PropertyType_
-  {
-    BDF_PROPERTY_TYPE_NONE     = 0,
-    BDF_PROPERTY_TYPE_ATOM     = 1,
-    BDF_PROPERTY_TYPE_INTEGER  = 2,
-    BDF_PROPERTY_TYPE_CARDINAL = 3
-
-  } BDF_PropertyType;
-
-
- /**********************************************************************
-  *
-  * @type:
-  *    BDF_Property
-  *
-  * @description:
-  *    A handle to a @BDF_PropertyRec structure to model a given
-  *    BDF/PCF property.
-  */
-  typedef struct BDF_PropertyRec_*  BDF_Property;
-
-
- /**********************************************************************
-  *
-  * @struct:
-  *    BDF_PropertyRec
-  *
-  * @description:
-  *    This structure models a given BDF/PCF property.
-  *
-  * @fields:
-  *    type ::
-  *      The property type.
-  *
-  *    u.atom ::
-  *      The atom string, if type is @BDF_PROPERTY_TYPE_ATOM.
-  *
-  *    u.integer ::
-  *      A signed integer, if type is @BDF_PROPERTY_TYPE_INTEGER.
-  *
-  *    u.cardinal ::
-  *      An unsigned integer, if type is @BDF_PROPERTY_TYPE_CARDINAL.
-  */
-  typedef struct  BDF_PropertyRec_
-  {
-    BDF_PropertyType  type;
-    union {
-      const char*     atom;
-      FT_Int32        integer;
-      FT_UInt32       cardinal;
-
-    } u;
-
-  } BDF_PropertyRec;
-
-
- /**********************************************************************
-  *
-  * @function:
-  *    FT_Get_BDF_Charset_ID
-  *
-  * @description:
-  *    Retrieves a BDF font character set identity, according to
-  *    the BDF specification.
-  *
-  * @input:
-  *    face ::
-  *       A handle to the input face.
-  *
-  * @output:
-  *    acharset_encoding ::
-  *       Charset encoding, as a C string, owned by the face.
-  *
-  *    acharset_registry ::
-  *       Charset registry, as a C string, owned by the face.
-  *
-  * @return:
-  *   FreeType error code.  0 means success.
-  *
-  * @note:
-  *   This function only works with BDF faces, returning an error otherwise.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_BDF_Charset_ID( FT_Face       face,
-                         const char*  *acharset_encoding,
-                         const char*  *acharset_registry );
-
-
- /**********************************************************************
-  *
-  * @function:
-  *    FT_Get_BDF_Property
-  *
-  * @description:
-  *    Retrieves a BDF property from a BDF or PCF font file.
-  *
-  * @input:
-  *    face :: A handle to the input face.
-  *
-  *    name :: The property name.
-  *
-  * @output:
-  *    aproperty :: The property.
-  *
-  * @return:
-  *   FreeType error code.  0 means success.
-  *
-  * @note:
-  *   This function works with BDF _and_ PCF fonts.  It returns an error
-  *   otherwise.  It also returns an error if the property is not in the
-  *   font.
-  *
-  *   In case of error, "aproperty->type" is always set to
-  *   @BDF_PROPERTY_TYPE_NONE.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_BDF_Property( FT_Face           face,
-                       const char*       prop_name,
-                       BDF_PropertyRec  *aproperty );
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTBDF_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftcache.h b/nx-X11/extras/freetype2/include/freetype/ftcache.h
deleted file mode 100644
index c26ce6b1b..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftcache.h
+++ /dev/null
@@ -1,825 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcache.h                                                              */
-/*                                                                         */
-/*    FreeType Cache subsystem (specification).                            */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*********                                                       *********/
-  /*********             WARNING, THIS IS BETA CODE.               *********/
-  /*********                                                       *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#ifndef __FTCACHE_H__
-#define __FTCACHE_H__
-
-
-#include <ft2build.h>
-#include FT_GLYPH_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    cache_subsystem                                                    */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Cache Sub-System                                                   */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    How to cache face, size, and glyph data with FreeType 2.           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*   This section describes the FreeType 2 cache sub-system which is     */
-  /*   still in beta.                                                      */
-  /*                                                                       */
-  /* <Order>                                                               */
-  /*   FTC_Manager                                                         */
-  /*   FTC_FaceID                                                          */
-  /*   FTC_Face_Requester                                                  */
-  /*                                                                       */
-  /*   FTC_Manager_New                                                     */
-  /*   FTC_Manager_Reset                                                   */
-  /*   FTC_Manager_Done                                                    */
-  /*   FTC_Manager_LookupFace                                              */
-  /*   FTC_Manager_LookupSize                                              */
-  /*   FTC_Manager_RemoveFaceID                                            */
-  /*                                                                       */
-  /*   FTC_Node                                                            */
-  /*   FTC_Node_Unref                                                      */
-  /*                                                                       */
-  /*   FTC_Font                                                            */
-  /*   FTC_ImageCache                                                      */
-  /*   FTC_ImageCache_New                                                  */
-  /*   FTC_ImageCache_Lookup                                               */
-  /*                                                                       */
-  /*   FTC_SBit                                                            */
-  /*   FTC_SBitCache                                                       */
-  /*   FTC_SBitCache_New                                                   */
-  /*   FTC_SBitCache_Lookup                                                */
-  /*                                                                       */
-  /*   FTC_CMapCache                                                       */
-  /*   FTC_CMapCache_New                                                   */
-  /*   FTC_CMapCache_Lookup                                                */
-  /*                                                                       */
-  /*                                                                       */
-  /*   FTC_Image_Desc                                                      */
-  /*   FTC_Image_Cache                                                     */
-  /*   FTC_Image_Cache_Lookup                                              */
-  /*                                                                       */
-  /*   FTC_SBit_Cache                                                      */
-  /*   FTC_SBit_Cache_Lookup                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    BASIC TYPE DEFINITIONS                     *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_FaceID                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An opaque pointer type that is used to identity face objects.  The */
-  /*    contents of such objects is application-dependent.                 */
-  /*                                                                       */
-  typedef struct FTC_FaceIDRec_*  FTC_FaceID;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FTC_Face_Requester                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A callback function provided by client applications.  It is used   */
-  /*    to translate a given @FTC_FaceID into a new valid @FT_Face object. */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face_id :: The face ID to resolve.                                 */
-  /*                                                                       */
-  /*    library :: A handle to a FreeType library object.                  */
-  /*                                                                       */
-  /*    data    :: Application-provided request data.                      */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aface   :: A new @FT_Face handle.                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The face requester should not perform funny things on the returned */
-  /*    face object, like creating a new @FT_Size for it, or setting a     */
-  /*    transformation through @FT_Set_Transform!                          */
-  /*                                                                       */
-  typedef FT_Error
-  (*FTC_Face_Requester)( FTC_FaceID  face_id,
-                         FT_Library  library,
-                         FT_Pointer  request_data,
-                         FT_Face*    aface );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FTC_FontRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to describe a given `font' to the cache    */
-  /*    manager.  Note that a `font' is the combination of a given face    */
-  /*    with a given character size.                                       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    face_id    :: The ID of the face to use.                           */
-  /*                                                                       */
-  /*    pix_width  :: The character width in integer pixels.               */
-  /*                                                                       */
-  /*    pix_height :: The character height in integer pixels.              */
-  /*                                                                       */
-  typedef struct  FTC_FontRec_
-  {
-    FTC_FaceID  face_id;
-    FT_UShort   pix_width;
-    FT_UShort   pix_height;
-
-  } FTC_FontRec;
-
-
-  /* */
-
-
-#define FTC_FONT_COMPARE( f1, f2 )                  \
-          ( (f1)->face_id    == (f2)->face_id    && \
-            (f1)->pix_width  == (f2)->pix_width  && \
-            (f1)->pix_height == (f2)->pix_height )
-
-#define FT_POINTER_TO_ULONG( p )  ((FT_ULong)(FT_Pointer)(p))
-
-#define FTC_FACE_ID_HASH( i )                              \
-          ((FT_UInt32)(( FT_POINTER_TO_ULONG( i ) >> 3 ) ^ \
-                       ( FT_POINTER_TO_ULONG( i ) << 7 ) ) )
-
-#define FTC_FONT_HASH( f )                              \
-          (FT_UInt32)( FTC_FACE_ID_HASH((f)->face_id) ^ \
-                       ((f)->pix_width << 8)          ^ \
-                       ((f)->pix_height)              )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_Font                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple handle to an @FTC_FontRec structure.                      */
-  /*                                                                       */
-  typedef FTC_FontRec*  FTC_Font;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      CACHE MANAGER OBJECT                     *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_Manager                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This object is used to cache one or more @FT_Face objects, along   */
-  /*    with corresponding @FT_Size objects.                               */
-  /*                                                                       */
-  typedef struct FTC_ManagerRec_*  FTC_Manager;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_Node                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An opaque handle to a cache node object.  Each cache node is       */
-  /*    reference-counted.  A node with a count of 0 might be flushed      */
-  /*    out of a full cache whenever a lookup request is performed.        */
-  /*                                                                       */
-  /*    If you lookup nodes, you have the ability to "acquire" them, i.e., */
-  /*    to increment their reference count.  This will prevent the node    */
-  /*    from being flushed out of the cache until you explicitly "release" */
-  /*    it (see @FTC_Node_Unref).                                          */
-  /*                                                                       */
-  /*    See also @FTC_SBitCache_Lookup and @FTC_ImageCache_Lookup.         */
-  /*                                                                       */
-  typedef struct FTC_NodeRec_*  FTC_Node;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Manager_New                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new cache manager.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library     :: The parent FreeType library handle to use.          */
-  /*                                                                       */
-  /*    max_bytes   :: Maximum number of bytes to use for cached data.     */
-  /*                   Use 0 for defaults.                                 */
-  /*                                                                       */
-  /*    requester   :: An application-provided callback used to translate  */
-  /*                   face IDs into real @FT_Face objects.                */
-  /*                                                                       */
-  /*    req_data    :: A generic pointer that is passed to the requester   */
-  /*                   each time it is called (see @FTC_Face_Requester).   */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    amanager  :: A handle to a new manager object.  0 in case of       */
-  /*                 failure.                                              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_Manager_New( FT_Library          library,
-                   FT_UInt             max_faces,
-                   FT_UInt             max_sizes,
-                   FT_ULong            max_bytes,
-                   FTC_Face_Requester  requester,
-                   FT_Pointer          req_data,
-                   FTC_Manager        *amanager );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Manager_Reset                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Empties a given cache manager.  This simply gets rid of all the    */
-  /*    currently cached @FT_Face and @FT_Size objects within the manager. */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    manager :: A handle to the manager.                                */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FTC_Manager_Reset( FTC_Manager  manager );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Manager_Done                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given manager after emptying it.                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    manager :: A handle to the target cache manager object.            */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FTC_Manager_Done( FTC_Manager  manager );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Manager_LookupFace                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the @FT_Face object that corresponds to a given face ID  */
-  /*    through a cache manager.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    manager :: A handle to the cache manager.                          */
-  /*                                                                       */
-  /*    face_id :: The ID of the face object.                              */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aface   :: A handle to the face object.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The returned @FT_Face object is always owned by the manager.  You  */
-  /*    should never try to discard it yourself.                           */
-  /*                                                                       */
-  /*    The @FT_Face object doesn't necessarily have a current size object */
-  /*    (i.e., face->size can be 0).  If you need a specific `font size',  */
-  /*    use @FTC_Manager_LookupSize instead.                               */
-  /*                                                                       */
-  /*    Never change the face's transformation matrix (i.e., never call    */
-  /*    the @FT_Set_Transform function) on a returned face!  If you need   */
-  /*    to transform glyphs, do it yourself after glyph loading.           */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_Manager_LookupFace( FTC_Manager  manager,
-                          FTC_FaceID   face_id,
-                          FT_Face     *aface );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FTC_ScalerRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to describe a given character size in either      */
-  /*    pixels or points to the cache manager.  See                        */
-  /*    @FTC_Manager_LookupSize.                                           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    face_id :: The source face ID.                                     */
-  /*                                                                       */
-  /*    width   :: The character width.                                    */
-  /*                                                                       */
-  /*    height  :: The character height.                                   */
-  /*                                                                       */
-  /*    pixel   :: A Boolean.  If TRUE, the `width' and `height' fields    */
-  /*               are interpreted as integer pixel character sizes.       */
-  /*               Otherwise, they are expressed as 1/64th of points.      */
-  /*                                                                       */
-  /*    x_res   :: Only used when `pixel' is FALSE to indicate the         */
-  /*               horizontal resolution in dpi.                           */
-  /*                                                                       */
-  /*    y_res   :: Only used when `pixel' is FALSE to indicate the         */
-  /*               vertical resolution in dpi.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This type is mainly used to retrieve @FT_Size objects through the  */
-  /*    cache manager.                                                     */
-  /*                                                                       */
-  typedef struct  FTC_ScalerRec_
-  {
-    FTC_FaceID  face_id;
-    FT_UInt     width;
-    FT_UInt     height;
-    FT_Int      pixel;
-    FT_UInt     x_res;
-    FT_UInt     y_res;
-
-  } FTC_ScalerRec, *FTC_Scaler;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Manager_LookupSize                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieve the @FT_Size object that corresponds to a given           */
-  /*    @FTC_Scaler through a cache manager.                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    manager :: A handle to the cache manager.                          */
-  /*                                                                       */
-  /*    scaler  :: A scaler handle.                                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    asize   :: A handle to the size object.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The returned @FT_Size object is always owned by the manager.  You  */
-  /*    should never try to discard it by yourself.                        */
-  /*                                                                       */
-  /*    You can access the parent @FT_Face object simply as `size->face'   */
-  /*    if you need it.  Note that this object is also owned by the        */
-  /*    manager.                                                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_Manager_LookupSize( FTC_Manager  manager,
-                          FTC_Scaler   scaler,
-                          FT_Size     *asize );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_Node_Unref                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Decrement a cache node's internal reference count.  When the count */
-  /*    reaches 0, it is not destroyed but becomes eligible for subsequent */
-  /*    cache flushes.                                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    node    :: The cache node handle.                                  */
-  /*                                                                       */
-  /*    manager :: The cache manager handle.                               */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FTC_Node_Unref( FTC_Node     node,
-                  FTC_Manager  manager );
-
-
-  /* remove all nodes belonging to a given face_id */
-  FT_EXPORT( void )
-  FTC_Manager_RemoveFaceID( FTC_Manager  manager,
-                            FTC_FaceID   face_id );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    cache_subsystem                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /************************************************************************
-   *
-   * @type:
-   *    FTC_CMapCache
-   *
-   * @description:
-   *    An opaque handle used to manager a charmap cache.  This cache is
-   *    to hold character codes -> glyph indices mappings.
-   */
-  typedef struct FTC_CMapCacheRec_*  FTC_CMapCache;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FTC_CMapCache_New                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Create a new charmap cache.                                        */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    manager :: A handle to the cache manager.                          */
-  /*                                                                       */
-  /* @output:                                                              */
-  /*    acache  :: A new cache handle.  NULL in case of error.             */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    Like all other caches, this one will be destroyed with the cache   */
-  /*    manager.                                                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_CMapCache_New( FTC_Manager     manager,
-                     FTC_CMapCache  *acache );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FTC_CMapCache_Lookup                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Translate a character code into a glyph index, using the charmap   */
-  /*    cache.                                                             */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    cache      :: A charmap cache handle.                              */
-  /*                                                                       */
-  /*    face_id    :: The source face ID.                                  */
-  /*                                                                       */
-  /*    cmap_index :: The index of the charmap in the source face.         */
-  /*                                                                       */
-  /*    char_code  :: The character code (in the corresponding charmap).   */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    Glyph index.  0 means `no glyph'.                                  */
-  /*                                                                       */
-  FT_EXPORT( FT_UInt )
-  FTC_CMapCache_Lookup( FTC_CMapCache  cache,
-                        FTC_FaceID     face_id,
-                        FT_Int         cmap_index,
-                        FT_UInt32      char_code );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    cache_subsystem                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       IMAGE CACHE OBJECT                      *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct  FTC_ImageTypeRec_
-  {
-    FTC_FaceID   face_id;
-    FT_Int       width;
-    FT_Int       height;
-    FT_Int32     flags;
-
-  } FTC_ImageTypeRec;
-
-  typedef struct FTC_ImageTypeRec_*   FTC_ImageType;
-
- /* */
-
-#define FTC_IMAGE_TYPE_COMPARE( d1, d2 )                    \
-          ( FTC_FONT_COMPARE( &(d1)->font, &(d2)->font ) && \
-            (d1)->flags == (d2)->flags                   )
-
-#define FTC_IMAGE_TYPE_HASH( d )                    \
-          (FT_UFast)( FTC_FONT_HASH( &(d)->font ) ^ \
-                      ( (d)->flags << 4 )         )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_ImageCache                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to an glyph image cache object.  They are designed to     */
-  /*    hold many distinct glyph images while not exceeding a certain      */
-  /*    memory threshold.                                                  */
-  /*                                                                       */
-  typedef struct FTC_ImageCacheRec_*  FTC_ImageCache;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_ImageCache_New                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new glyph image cache.                                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    manager :: The parent manager for the image cache.                 */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    acache  :: A handle to the new glyph image cache object.           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_ImageCache_New( FTC_Manager      manager,
-                      FTC_ImageCache  *acache );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_ImageCache_Lookup                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves a given glyph image from a glyph image cache.            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    cache  :: A handle to the source glyph image cache.                */
-  /*                                                                       */
-  /*    type   :: A pointer to a glyph image type descriptor.              */
-  /*                                                                       */
-  /*    gindex :: The glyph index to retrieve.                             */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aglyph :: The corresponding @FT_Glyph object.  0 in case of        */
-  /*              failure.                                                 */
-  /*                                                                       */
-  /*    anode  :: Used to return the address of of the corresponding cache */
-  /*              node after incrementing its reference count (see note    */
-  /*              below).                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The returned glyph is owned and managed by the glyph image cache.  */
-  /*    Never try to transform or discard it manually!  You can however    */
-  /*    create a copy with @FT_Glyph_Copy and modify the new one.          */
-  /*                                                                       */
-  /*    If `anode' is _not_ NULL, it receives the address of the cache     */
-  /*    node containing the glyph image, after increasing its reference    */
-  /*    count.  This ensures that the node (as well as the FT_Glyph) will  */
-  /*    always be kept in the cache until you call @FTC_Node_Unref to      */
-  /*    `release' it.                                                      */
-  /*                                                                       */
-  /*    If `anode' is NULL, the cache node is left unchanged, which means  */
-  /*    that the FT_Glyph could be flushed out of the cache on the next    */
-  /*    call to one of the caching sub-system APIs.  Don't assume that it  */
-  /*    is persistent!                                                     */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_ImageCache_Lookup( FTC_ImageCache  cache,
-                         FTC_ImageType   type,
-                         FT_UInt         gindex,
-                         FT_Glyph       *aglyph,
-                         FTC_Node       *anode );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_SBit                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a small bitmap descriptor.  See the @FTC_SBitRec       */
-  /*    structure for details.                                             */
-  /*                                                                       */
-  typedef struct FTC_SBitRec_*  FTC_SBit;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FTC_SBitRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very compact structure used to describe a small glyph bitmap.    */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    width     :: The bitmap width in pixels.                           */
-  /*                                                                       */
-  /*    height    :: The bitmap height in pixels.                          */
-  /*                                                                       */
-  /*    left      :: The horizontal distance from the pen position to the  */
-  /*                 left bitmap border (a.k.a. `left side bearing', or    */
-  /*                 `lsb').                                               */
-  /*                                                                       */
-  /*    top       :: The vertical distance from the pen position (on the   */
-  /*                 baseline) to the upper bitmap border (a.k.a. `top     */
-  /*                 side bearing').  The distance is positive for upwards */
-  /*                 Y coordinates.                                        */
-  /*                                                                       */
-  /*    format    :: The format of the glyph bitmap (monochrome or gray).  */
-  /*                                                                       */
-  /*    max_grays :: Maximum gray level value (in the range 1 to 255).     */
-  /*                                                                       */
-  /*    pitch     :: The number of bytes per bitmap line.  May be positive */
-  /*                 or negative.                                          */
-  /*                                                                       */
-  /*    xadvance  :: The horizontal advance width in pixels.               */
-  /*                                                                       */
-  /*    yadvance  :: The vertical advance height in pixels.                */
-  /*                                                                       */
-  /*    buffer    :: A pointer to the bitmap pixels.                       */
-  /*                                                                       */
-  typedef struct  FTC_SBitRec_
-  {
-    FT_Byte   width;
-    FT_Byte   height;
-    FT_Char   left;
-    FT_Char   top;
-
-    FT_Byte   format;
-    FT_Byte   max_grays;
-    FT_Short  pitch;
-    FT_Char   xadvance;
-    FT_Char   yadvance;
-
-    FT_Byte*  buffer;
-
-  } FTC_SBitRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FTC_SBitCache                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a small bitmap cache.  These are special cache objects */
-  /*    used to store small glyph bitmaps (and anti-aliased pixmaps) in a  */
-  /*    much more efficient way than the traditional glyph image cache     */
-  /*    implemented by @FTC_ImageCache.                                    */
-  /*                                                                       */
-  typedef struct FTC_SBitCacheRec_*  FTC_SBitCache;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_SBitCache_New                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new cache to store small glyph bitmaps.                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    manager :: A handle to the source cache manager.                   */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    acache  :: A handle to the new sbit cache.  NULL in case of error. */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_SBitCache_New( FTC_Manager     manager,
-                     FTC_SBitCache  *acache );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FTC_SBitCache_Lookup                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Looks up a given small glyph bitmap in a given sbit cache and      */
-  /*    `lock' it to prevent its flushing from the cache until needed.     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    cache  :: A handle to the source sbit cache.                       */
-  /*                                                                       */
-  /*    type   :: A pointer to the glyph image type descriptor.            */
-  /*                                                                       */
-  /*    gindex :: The glyph index.                                         */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    sbit   :: A handle to a small bitmap descriptor.                   */
-  /*                                                                       */
-  /*    anode  :: Used to return the address of of the corresponding cache */
-  /*              node after incrementing its reference count (see note    */
-  /*              below).                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The small bitmap descriptor and its bit buffer are owned by the    */
-  /*    cache and should never be freed by the application.  They might    */
-  /*    as well disappear from memory on the next cache lookup, so don't   */
-  /*    treat them as persistent data.                                     */
-  /*                                                                       */
-  /*    The descriptor's `buffer' field is set to 0 to indicate a missing  */
-  /*    glyph bitmap.                                                      */
-  /*                                                                       */
-  /*    If `anode' is _not_ NULL, it receives the address of the cache     */
-  /*    node containing the bitmap, after increasing its reference count.  */
-  /*    This ensures that the node (as well as the image) will always be   */
-  /*    kept in the cache until you call @FTC_Node_Unref to `release' it.  */
-  /*                                                                       */
-  /*    If `anode' is NULL, the cache node is left unchanged, which means  */
-  /*    that the bitmap could be flushed out of the cache on the next      */
-  /*    call to one of the caching sub-system APIs.  Don't assume that it  */
-  /*    is persistent!                                                     */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FTC_SBitCache_Lookup( FTC_SBitCache    cache,
-                        FTC_ImageType    type,
-                        FT_UInt          gindex,
-                        FTC_SBit        *sbit,
-                        FTC_Node        *anode );
-
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTCACHE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftchapters.h b/nx-X11/extras/freetype2/include/freetype/ftchapters.h
deleted file mode 100644
index c134ec122..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftchapters.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/* <Chapter>                                                               */
-/*    core_api                                                             */
-/*                                                                         */
-/* <Title>                                                                 */
-/*    Core API                                                             */
-/*                                                                         */
-/* <Sections>                                                              */
-/*    basic_types                                                          */
-/*    base_interface                                                       */
-/*    glyph_management                                                     */
-/*    mac_specific                                                         */
-/*    sizes_management                                                     */
-/*    header_file_macros                                                   */
-/*                                                                         */
-/***************************************************************************/
-
-/***************************************************************************/
-/*                                                                         */
-/* <Chapter>                                                               */
-/*    format_specific                                                      */
-/*                                                                         */
-/* <Title>                                                                 */
-/*    Format-Specific API                                                  */
-/*                                                                         */
-/* <Sections>                                                              */
-/*    multiple_masters                                                     */
-/*    truetype_tables                                                      */
-/*    type1_tables                                                         */
-/*    sfnt_names                                                           */
-/*    bdf_fonts                                                            */
-/*    pfr_fonts                                                            */
-/*                                                                         */
-/***************************************************************************/
-
-
-/***************************************************************************/
-/*                                                                         */
-/* <Chapter>                                                               */
-/*    cache_subsystem                                                      */
-/*                                                                         */
-/* <Title>                                                                 */
-/*    Cache Sub-System                                                     */
-/*                                                                         */
-/* <Sections>                                                              */
-/*    cache_subsystem                                                      */
-/*                                                                         */
-/***************************************************************************/
-
-
-/***************************************************************************/
-/*                                                                         */
-/* <Chapter>                                                               */
-/*    support_api                                                          */
-/*                                                                         */
-/* <Title>                                                                 */
-/*    Support API                                                          */
-/*                                                                         */
-/* <Sections>                                                              */
-/*    computations                                                         */
-/*    list_processing                                                      */
-/*    outline_processing                                                   */
-/*    raster                                                               */
-/*    system_interface                                                     */
-/*    module_management                                                    */
-/*                                                                         */
-/***************************************************************************/
-
diff --git a/nx-X11/extras/freetype2/include/freetype/fterrdef.h b/nx-X11/extras/freetype2/include/freetype/fterrdef.h
deleted file mode 100644
index 2f73c0858..000000000
--- a/nx-X11/extras/freetype2/include/freetype/fterrdef.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fterrdef.h                                                             */
-/*                                                                         */
-/*    FreeType error codes (specification).                                */
-/*                                                                         */
-/*  Copyright 2002, 2004 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*******************************************************************/
-  /*******************************************************************/
-  /*****                                                         *****/
-  /*****                LIST OF ERROR CODES/MESSAGES             *****/
-  /*****                                                         *****/
-  /*******************************************************************/
-  /*******************************************************************/
-
-
-  /* You need to define both FT_ERRORDEF_ and FT_NOERRORDEF_ before */
-  /* including this file.                                           */
-
-
-  /* generic errors */
-
-  FT_NOERRORDEF_( Ok,                                        0x00, \
-                  "no error" )
-
-  FT_ERRORDEF_( Cannot_Open_Resource,                        0x01, \
-                "cannot open resource" )
-  FT_ERRORDEF_( Unknown_File_Format,                         0x02, \
-                "unknown file format" )
-  FT_ERRORDEF_( Invalid_File_Format,                         0x03, \
-                "broken file" )
-  FT_ERRORDEF_( Invalid_Version,                             0x04, \
-                "invalid FreeType version" )
-  FT_ERRORDEF_( Lower_Module_Version,                        0x05, \
-                "module version is too low" )
-  FT_ERRORDEF_( Invalid_Argument,                            0x06, \
-                "invalid argument" )
-  FT_ERRORDEF_( Unimplemented_Feature,                       0x07, \
-                "unimplemented feature" )
-  FT_ERRORDEF_( Invalid_Table,                               0x08, \
-                "broken table" )
-  FT_ERRORDEF_( Invalid_Offset,                              0x09, \
-                "broken offset within table" )
-
-  /* glyph/character errors */
-
-  FT_ERRORDEF_( Invalid_Glyph_Index,                         0x10, \
-                "invalid glyph index" )
-  FT_ERRORDEF_( Invalid_Character_Code,                      0x11, \
-                "invalid character code" )
-  FT_ERRORDEF_( Invalid_Glyph_Format,                        0x12, \
-                "unsupported glyph image format" )
-  FT_ERRORDEF_( Cannot_Render_Glyph,                         0x13, \
-                "cannot render this glyph format" )
-  FT_ERRORDEF_( Invalid_Outline,                             0x14, \
-                "invalid outline" )
-  FT_ERRORDEF_( Invalid_Composite,                           0x15, \
-                "invalid composite glyph" )
-  FT_ERRORDEF_( Too_Many_Hints,                              0x16, \
-                "too many hints" )
-  FT_ERRORDEF_( Invalid_Pixel_Size,                          0x17, \
-                "invalid pixel size" )
-
-  /* handle errors */
-
-  FT_ERRORDEF_( Invalid_Handle,                              0x20, \
-                "invalid object handle" )
-  FT_ERRORDEF_( Invalid_Library_Handle,                      0x21, \
-                "invalid library handle" )
-  FT_ERRORDEF_( Invalid_Driver_Handle,                       0x22, \
-                "invalid module handle" )
-  FT_ERRORDEF_( Invalid_Face_Handle,                         0x23, \
-                "invalid face handle" )
-  FT_ERRORDEF_( Invalid_Size_Handle,                         0x24, \
-                "invalid size handle" )
-  FT_ERRORDEF_( Invalid_Slot_Handle,                         0x25, \
-                "invalid glyph slot handle" )
-  FT_ERRORDEF_( Invalid_CharMap_Handle,                      0x26, \
-                "invalid charmap handle" )
-  FT_ERRORDEF_( Invalid_Cache_Handle,                        0x27, \
-                "invalid cache manager handle" )
-  FT_ERRORDEF_( Invalid_Stream_Handle,                       0x28, \
-                "invalid stream handle" )
-
-  /* driver errors */
-
-  FT_ERRORDEF_( Too_Many_Drivers,                            0x30, \
-                "too many modules" )
-  FT_ERRORDEF_( Too_Many_Extensions,                         0x31, \
-                "too many extensions" )
-
-  /* memory errors */
-
-  FT_ERRORDEF_( Out_Of_Memory,                               0x40, \
-                "out of memory" )
-  FT_ERRORDEF_( Unlisted_Object,                             0x41, \
-                "unlisted object" )
-
-  /* stream errors */
-
-  FT_ERRORDEF_( Cannot_Open_Stream,                          0x51, \
-                "cannot open stream" )
-  FT_ERRORDEF_( Invalid_Stream_Seek,                         0x52, \
-                "invalid stream seek" )
-  FT_ERRORDEF_( Invalid_Stream_Skip,                         0x53, \
-                "invalid stream skip" )
-  FT_ERRORDEF_( Invalid_Stream_Read,                         0x54, \
-                "invalid stream read" )
-  FT_ERRORDEF_( Invalid_Stream_Operation,                    0x55, \
-                "invalid stream operation" )
-  FT_ERRORDEF_( Invalid_Frame_Operation,                     0x56, \
-                "invalid frame operation" )
-  FT_ERRORDEF_( Nested_Frame_Access,                         0x57, \
-                "nested frame access" )
-  FT_ERRORDEF_( Invalid_Frame_Read,                          0x58, \
-                "invalid frame read" )
-
-  /* raster errors */
-
-  FT_ERRORDEF_( Raster_Uninitialized,                        0x60, \
-                "raster uninitialized" )
-  FT_ERRORDEF_( Raster_Corrupted,                            0x61, \
-                "raster corrupted" )
-  FT_ERRORDEF_( Raster_Overflow,                             0x62, \
-                "raster overflow" )
-  FT_ERRORDEF_( Raster_Negative_Height,                      0x63, \
-                "negative height while rastering" )
-
-  /* cache errors */
-
-  FT_ERRORDEF_( Too_Many_Caches,                             0x70, \
-                "too many registered caches" )
-
-  /* TrueType and SFNT errors */
-
-  FT_ERRORDEF_( Invalid_Opcode,                              0x80, \
-                "invalid opcode" )
-  FT_ERRORDEF_( Too_Few_Arguments,                           0x81, \
-                "too few arguments" )
-  FT_ERRORDEF_( Stack_Overflow,                              0x82, \
-                "stack overflow" )
-  FT_ERRORDEF_( Code_Overflow,                               0x83, \
-                "code overflow" )
-  FT_ERRORDEF_( Bad_Argument,                                0x84, \
-                "bad argument" )
-  FT_ERRORDEF_( Divide_By_Zero,                              0x85, \
-                "division by zero" )
-  FT_ERRORDEF_( Invalid_Reference,                           0x86, \
-                "invalid reference" )
-  FT_ERRORDEF_( Debug_OpCode,                                0x87, \
-                "found debug opcode" )
-  FT_ERRORDEF_( ENDF_In_Exec_Stream,                         0x88, \
-                "found ENDF opcode in execution stream" )
-  FT_ERRORDEF_( Nested_DEFS,                                 0x89, \
-                "nested DEFS" )
-  FT_ERRORDEF_( Invalid_CodeRange,                           0x8A, \
-                "invalid code range" )
-  FT_ERRORDEF_( Execution_Too_Long,                          0x8B, \
-                "execution context too long" )
-  FT_ERRORDEF_( Too_Many_Function_Defs,                      0x8C, \
-                "too many function definitions" )
-  FT_ERRORDEF_( Too_Many_Instruction_Defs,                   0x8D, \
-                "too many instruction definitions" )
-  FT_ERRORDEF_( Table_Missing,                               0x8E, \
-                "SFNT font table missing" )
-  FT_ERRORDEF_( Horiz_Header_Missing,                        0x8F, \
-                "horizontal header (hhea) table missing" )
-  FT_ERRORDEF_( Locations_Missing,                           0x90, \
-                "locations (loca) table missing" )
-  FT_ERRORDEF_( Name_Table_Missing,                          0x91, \
-                "name table missing" )
-  FT_ERRORDEF_( CMap_Table_Missing,                          0x92, \
-                "character map (cmap) table missing" )
-  FT_ERRORDEF_( Hmtx_Table_Missing,                          0x93, \
-                "horizontal metrics (hmtx) table missing" )
-  FT_ERRORDEF_( Post_Table_Missing,                          0x94, \
-                "PostScript (post) table missing" )
-  FT_ERRORDEF_( Invalid_Horiz_Metrics,                       0x95, \
-                "invalid horizontal metrics" )
-  FT_ERRORDEF_( Invalid_CharMap_Format,                      0x96, \
-                "invalid character map (cmap) format" )
-  FT_ERRORDEF_( Invalid_PPem,                                0x97, \
-                "invalid ppem value" )
-  FT_ERRORDEF_( Invalid_Vert_Metrics,                        0x98, \
-                "invalid vertical metrics" )
-  FT_ERRORDEF_( Could_Not_Find_Context,                      0x99, \
-                "could not find context" )
-  FT_ERRORDEF_( Invalid_Post_Table_Format,                   0x9A, \
-                "invalid PostScript (post) table format" )
-  FT_ERRORDEF_( Invalid_Post_Table,                          0x9B, \
-                "invalid PostScript (post) table" )
-
-  /* CFF, CID, and Type 1 errors */
-
-  FT_ERRORDEF_( Syntax_Error,                                0xA0, \
-                "opcode syntax error" )
-  FT_ERRORDEF_( Stack_Underflow,                             0xA1, \
-                "argument stack underflow" )
-  FT_ERRORDEF_( Ignore,                                      0xA2, \
-                "ignore" )
-
-  /* BDF errors */
-
-  FT_ERRORDEF_( Missing_Startfont_Field,                     0xB0, \
-                "`STARTFONT' field missing" )
-  FT_ERRORDEF_( Missing_Font_Field,                          0xB1, \
-                "`FONT' field missing" )
-  FT_ERRORDEF_( Missing_Size_Field,                          0xB2, \
-                "`SIZE' field missing" )
-  FT_ERRORDEF_( Missing_Chars_Field,                         0xB3, \
-                "`CHARS' field missing" )
-  FT_ERRORDEF_( Missing_Startchar_Field,                     0xB4, \
-                "`STARTCHAR' field missing" )
-  FT_ERRORDEF_( Missing_Encoding_Field,                      0xB5, \
-                "`ENCODING' field missing" )
-  FT_ERRORDEF_( Missing_Bbx_Field,                           0xB6, \
-                "`BBX' field missing" )
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/fterrors.h b/nx-X11/extras/freetype2/include/freetype/fterrors.h
deleted file mode 100644
index 1def4f9ce..000000000
--- a/nx-X11/extras/freetype2/include/freetype/fterrors.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fterrors.h                                                             */
-/*                                                                         */
-/*    FreeType error code handling (specification).                        */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This special header file is used to define the handling of FT2        */
-  /* enumeration constants.  It can also be used to generate error message */
-  /* strings with a small macro trick explained below.                     */
-  /*                                                                       */
-  /* I - Error Formats                                                     */
-  /* -----------------                                                     */
-  /*                                                                       */
-  /*   Since release 2.1, the error constants have changed.  The lower     */
-  /*   byte of the error value gives the "generic" error code, while the   */
-  /*   higher byte indicates in which module the error occurred.           */
-  /*                                                                       */
-  /*   You can use the macro FT_ERROR_BASE(x) macro to extract the generic */
-  /*   error code from an FT_Error value.                                  */
-  /*                                                                       */
-  /*   The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be   */
-  /*   undefined in ftoption.h in order to make the higher byte always     */
-  /*   zero, in case you need to be compatible with previous versions of   */
-  /*   FreeType 2.                                                         */
-  /*                                                                       */
-  /*                                                                       */
-  /* II - Error Message strings                                            */
-  /* --------------------------                                            */
-  /*                                                                       */
-  /*   The error definitions below are made through special macros that    */
-  /*   allow client applications to build a table of error message strings */
-  /*   if they need it.  The strings are not included in a normal build of */
-  /*   FreeType 2 to save space (most client applications do not use       */
-  /*   them).                                                              */
-  /*                                                                       */
-  /*   To do so, you have to define the following macros before including  */
-  /*   this file:                                                          */
-  /*                                                                       */
-  /*   FT_ERROR_START_LIST ::                                              */
-  /*     This macro is called before anything else to define the start of  */
-  /*     the error list.  It is followed by several FT_ERROR_DEF calls     */
-  /*     (see below).                                                      */
-  /*                                                                       */
-  /*   FT_ERROR_DEF( e, v, s ) ::                                          */
-  /*     This macro is called to define one single error.                  */
-  /*     `e' is the error code identifier (e.g. FT_Err_Invalid_Argument).  */
-  /*     `v' is the error numerical value.                                 */
-  /*     `s' is the corresponding error string.                            */
-  /*                                                                       */
-  /*   FT_ERROR_END_LIST ::                                                */
-  /*     This macro ends the list.                                         */
-  /*                                                                       */
-  /*   Additionally, you have to undefine __FTERRORS_H__ before #including */
-  /*   this file.                                                          */
-  /*                                                                       */
-  /*   Here is a simple example:                                           */
-  /*                                                                       */
-  /*     {                                                                 */
-  /*       #undef __FTERRORS_H__                                           */
-  /*       #define FT_ERRORDEF( e, v, s )  { e, s },                       */
-  /*       #define FT_ERROR_START_LIST     {                               */
-  /*       #define FT_ERROR_END_LIST       { 0, 0 } };                     */
-  /*                                                                       */
-  /*       const struct                                                    */
-  /*       {                                                               */
-  /*         int          err_code;                                        */
-  /*         const char*  err_msg                                          */
-  /*       } ft_errors[] =                                                 */
-  /*                                                                       */
-  /*       #include FT_ERRORS_H                                            */
-  /*     }                                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTERRORS_H__
-#define __FTERRORS_H__
-
-
-  /* include module base error codes */
-#include FT_MODULE_ERRORS_H
-
-
-  /*******************************************************************/
-  /*******************************************************************/
-  /*****                                                         *****/
-  /*****                       SETUP MACROS                      *****/
-  /*****                                                         *****/
-  /*******************************************************************/
-  /*******************************************************************/
-
-
-#undef  FT_NEED_EXTERN_C
-
-#undef  FT_ERR_XCAT
-#undef  FT_ERR_CAT
-
-#define FT_ERR_XCAT( x, y )  x ## y
-#define FT_ERR_CAT( x, y )   FT_ERR_XCAT( x, y )
-
-
-  /* FT_ERR_PREFIX is used as a prefix for error identifiers. */
-  /* By default, we use `FT_Err_'.                            */
-  /*                                                          */
-#ifndef FT_ERR_PREFIX
-#define FT_ERR_PREFIX  FT_Err_
-#endif
-
-
-  /* FT_ERR_BASE is used as the base for module-specific errors. */
-  /*                                                             */
-#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS
-
-#ifndef FT_ERR_BASE
-#define FT_ERR_BASE  FT_Mod_Err_Base
-#endif
-
-#else
-
-#undef FT_ERR_BASE
-#define FT_ERR_BASE  0
-
-#endif /* FT_CONFIG_OPTION_USE_MODULE_ERRORS */
-
-
-  /* If FT_ERRORDEF is not defined, we need to define a simple */
-  /* enumeration type.                                         */
-  /*                                                           */
-#ifndef FT_ERRORDEF
-
-#define FT_ERRORDEF( e, v, s )  e = v,
-#define FT_ERROR_START_LIST     enum {
-#define FT_ERROR_END_LIST       FT_ERR_CAT( FT_ERR_PREFIX, Max ) };
-
-#ifdef __cplusplus
-#define FT_NEED_EXTERN_C
-  extern "C" {
-#endif
-
-#endif /* !FT_ERRORDEF */
-
-
-  /* this macro is used to define an error */
-#define FT_ERRORDEF_( e, v, s )   \
-          FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s )
-
-  /* this is only used for FT_Err_Ok, which must be 0! */
-#define FT_NOERRORDEF_( e, v, s ) \
-          FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s )
-
-
-#ifdef FT_ERROR_START_LIST
-  FT_ERROR_START_LIST
-#endif
-
-
-  /* no include the error codes */
-#include FT_ERROR_DEFINITIONS_H
-
-
-#ifdef FT_ERROR_END_LIST
-  FT_ERROR_END_LIST
-#endif
-
-
-  /*******************************************************************/
-  /*******************************************************************/
-  /*****                                                         *****/
-  /*****                      SIMPLE CLEANUP                     *****/
-  /*****                                                         *****/
-  /*******************************************************************/
-  /*******************************************************************/
-
-#ifdef FT_NEED_EXTERN_C
-  }
-#endif
-
-#undef FT_ERROR_START_LIST
-#undef FT_ERROR_END_LIST
-
-#undef FT_ERRORDEF
-#undef FT_ERRORDEF_
-#undef FT_NOERRORDEF_
-
-#undef FT_NEED_EXTERN_C
-#undef FT_ERR_PREFIX
-#undef FT_ERR_BASE
-#undef FT_ERR_CONCAT
-
-#endif /* __FTERRORS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftglyph.h b/nx-X11/extras/freetype2/include/freetype/ftglyph.h
deleted file mode 100644
index 14050a21d..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftglyph.h
+++ /dev/null
@@ -1,565 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftglyph.h                                                              */
-/*                                                                         */
-/*    FreeType convenience functions to handle glyphs (specification).     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file contains the definition of several convenience functions    */
-  /* that can be used by client applications to easily retrieve glyph      */
-  /* bitmaps and outlines from a given face.                               */
-  /*                                                                       */
-  /* These functions should be optional if you are writing a font server   */
-  /* or text layout engine on top of FreeType.  However, they are pretty   */
-  /* handy for many other simple uses of the library.                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTGLYPH_H__
-#define __FTGLYPH_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    glyph_management                                                   */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Glyph Management                                                   */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Generic interface to manage individual glyph data.                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains definitions used to manage glyph data        */
-  /*    through generic FT_Glyph objects.  Each of them can contain a      */
-  /*    bitmap, a vector outline, or even images in other formats.         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* forward declaration to a private type */
-  typedef struct FT_Glyph_Class_  FT_Glyph_Class;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Glyph                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Handle to an object used to model generic glyph images.  It is a   */
-  /*    pointer to the @FT_GlyphRec structure and can contain a glyph      */
-  /*    bitmap or pointer.                                                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Glyph objects are not owned by the library.  You must thus release */
-  /*    them manually (through @FT_Done_Glyph) _before_ calling            */
-  /*    @FT_Done_FreeType.                                                 */
-  /*                                                                       */
-  typedef struct FT_GlyphRec_*  FT_Glyph;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_GlyphRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The root glyph structure contains a given glyph image plus its     */
-  /*    advance width in 16.16 fixed float format.                         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    library :: A handle to the FreeType library object.                */
-  /*                                                                       */
-  /*    clazz   :: A pointer to the glyph's class.  Private.               */
-  /*                                                                       */
-  /*    format  :: The format of the glyph's image.                        */
-  /*                                                                       */
-  /*    advance :: A 16.16 vector that gives the glyph's advance width.    */
-  /*                                                                       */
-  typedef struct  FT_GlyphRec_
-  {
-    FT_Library             library;
-    const FT_Glyph_Class*  clazz;
-    FT_Glyph_Format        format;
-    FT_Vector              advance;
-
-  } FT_GlyphRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_BitmapGlyph                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to an object used to model a bitmap glyph image.  This is */
-  /*    a sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec.     */
-  /*                                                                       */
-  typedef struct FT_BitmapGlyphRec_*  FT_BitmapGlyph;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_BitmapGlyphRec                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used for bitmap glyph images.  This really is a        */
-  /*    `sub-class' of `FT_GlyphRec'.                                      */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root   :: The root FT_Glyph fields.                                */
-  /*                                                                       */
-  /*    left   :: The left-side bearing, i.e., the horizontal distance     */
-  /*              from the current pen position to the left border of the  */
-  /*              glyph bitmap.                                            */
-  /*                                                                       */
-  /*    top    :: The top-side bearing, i.e., the vertical distance from   */
-  /*              the current pen position to the top border of the glyph  */
-  /*              bitmap.  This distance is positive for upwards-y!        */
-  /*                                                                       */
-  /*    bitmap :: A descriptor for the bitmap.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You can typecast FT_Glyph to FT_BitmapGlyph if you have            */
-  /*    glyph->format == FT_GLYPH_FORMAT_BITMAP.  This lets you access     */
-  /*    the bitmap's contents easily.                                      */
-  /*                                                                       */
-  /*    The corresponding pixel buffer is always owned by the BitmapGlyph  */
-  /*    and is thus created and destroyed with it.                         */
-  /*                                                                       */
-  typedef struct  FT_BitmapGlyphRec_
-  {
-    FT_GlyphRec  root;
-    FT_Int       left;
-    FT_Int       top;
-    FT_Bitmap    bitmap;
-
-  } FT_BitmapGlyphRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_OutlineGlyph                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to an object used to model an outline glyph image.  This  */
-  /*    is a sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. */
-  /*                                                                       */
-  typedef struct FT_OutlineGlyphRec_*  FT_OutlineGlyph;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_OutlineGlyphRec                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used for outline (vectorial) glyph images.  This       */
-  /*    really is a `sub-class' of `FT_GlyphRec'.                          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root    :: The root FT_Glyph fields.                               */
-  /*                                                                       */
-  /*    outline :: A descriptor for the outline.                           */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You can typecast FT_Glyph to FT_OutlineGlyph if you have           */
-  /*    glyph->format == FT_GLYPH_FORMAT_OUTLINE.  This lets you access    */
-  /*    the outline's content easily.                                      */
-  /*                                                                       */
-  /*    As the outline is extracted from a glyph slot, its coordinates are */
-  /*    expressed normally in 26.6 pixels, unless the flag                 */
-  /*    FT_LOAD_NO_SCALE was used in FT_Load_Glyph() or FT_Load_Char().    */
-  /*                                                                       */
-  /*    The outline's tables are always owned by the object and are        */
-  /*    destroyed with it.                                                 */
-  /*                                                                       */
-  typedef struct  FT_OutlineGlyphRec_
-  {
-    FT_GlyphRec  root;
-    FT_Outline   outline;
-
-  } FT_OutlineGlyphRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Glyph                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to extract a glyph image from a slot.              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    slot   :: A handle to the source glyph slot.                       */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aglyph :: A handle to the glyph object.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Get_Glyph( FT_GlyphSlot  slot,
-                FT_Glyph     *aglyph );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Glyph_Copy                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to copy a glyph image.  Note that the created      */
-  /*    @FT_Glyph object must be released with @FT_Done_Glyph.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    source :: A handle to the source glyph object.                     */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    target :: A handle to the target glyph object.  0 in case of       */
-  /*              error.                                                   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Glyph_Copy( FT_Glyph   source,
-                 FT_Glyph  *target );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Glyph_Transform                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Transforms a glyph image if its format is scalable.                */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    glyph  :: A handle to the target glyph object.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    matrix :: A pointer to a 2x2 matrix to apply.                      */
-  /*                                                                       */
-  /*    delta  :: A pointer to a 2d vector to apply.  Coordinates are      */
-  /*              expressed in 1/64th of a pixel.                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code (the glyph format is not scalable if it is     */
-  /*    not zero).                                                         */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The 2x2 transformation matrix is also applied to the glyph's       */
-  /*    advance vector.                                                    */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Glyph_Transform( FT_Glyph    glyph,
-                      FT_Matrix*  matrix,
-                      FT_Vector*  delta );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Glyph_BBox_Mode                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The mode how the values of @FT_Glyph_Get_CBox are returned.        */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_GLYPH_BBOX_UNSCALED ::                                          */
-  /*      Return unscaled font units.                                      */
-  /*                                                                       */
-  /*    FT_GLYPH_BBOX_SUBPIXELS ::                                         */
-  /*      Return unfitted 26.6 coordinates.                                */
-  /*                                                                       */
-  /*    FT_GLYPH_BBOX_GRIDFIT ::                                           */
-  /*      Return grid-fitted 26.6 coordinates.                             */
-  /*                                                                       */
-  /*    FT_GLYPH_BBOX_TRUNCATE ::                                          */
-  /*      Return coordinates in integer pixels.                            */
-  /*                                                                       */
-  /*    FT_GLYPH_BBOX_PIXELS ::                                            */
-  /*      Return grid-fitted pixel coordinates.                            */
-  /*                                                                       */
-  typedef enum  FT_Glyph_BBox_Mode_
-  {
-    FT_GLYPH_BBOX_UNSCALED  = 0,
-    FT_GLYPH_BBOX_SUBPIXELS = 0,
-    FT_GLYPH_BBOX_GRIDFIT   = 1,
-    FT_GLYPH_BBOX_TRUNCATE  = 2,
-    FT_GLYPH_BBOX_PIXELS    = 3
-
-  } FT_Glyph_BBox_Mode;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_glyph_bbox_xxx                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    These constants are deprecated.  Use the corresponding             */
-  /*    @FT_Glyph_BBox_Mode values instead.                                */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*   ft_glyph_bbox_unscaled  :: see @FT_GLYPH_BBOX_UNSCALED              */
-  /*   ft_glyph_bbox_subpixels :: see @FT_GLYPH_BBOX_SUBPIXELS             */
-  /*   ft_glyph_bbox_gridfit   :: see @FT_GLYPH_BBOX_GRIDFIT               */
-  /*   ft_glyph_bbox_truncate  :: see @FT_GLYPH_BBOX_TRUNCATE              */
-  /*   ft_glyph_bbox_pixels    :: see @FT_GLYPH_BBOX_PIXELS                */
-  /*                                                                       */
-#define ft_glyph_bbox_unscaled   FT_GLYPH_BBOX_UNSCALED
-#define ft_glyph_bbox_subpixels  FT_GLYPH_BBOX_SUBPIXELS
-#define ft_glyph_bbox_gridfit    FT_GLYPH_BBOX_GRIDFIT
-#define ft_glyph_bbox_truncate   FT_GLYPH_BBOX_TRUNCATE
-#define ft_glyph_bbox_pixels     FT_GLYPH_BBOX_PIXELS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Glyph_Get_CBox                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns a glyph's `control box'.  The control box encloses all the */
-  /*    outline's points, including Bezier control points.  Though it      */
-  /*    coincides with the exact bounding box for most glyphs, it can be   */
-  /*    slightly larger in some situations (like when rotating an outline  */
-  /*    which contains Bezier outside arcs).                               */
-  /*                                                                       */
-  /*    Computing the control box is very fast, while getting the bounding */
-  /*    box can take much more time as it needs to walk over all segments  */
-  /*    and arcs in the outline.  To get the latter, you can use the       */
-  /*    `ftbbox' component which is dedicated to this single task.         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    glyph :: A handle to the source glyph object.                      */
-  /*                                                                       */
-  /*    mode  :: The mode which indicates how to interpret the returned    */
-  /*             bounding box values.                                      */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    acbox :: The glyph coordinate bounding box.  Coordinates are       */
-  /*             expressed in 1/64th of pixels if it is grid-fitted.       */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Coordinates are relative to the glyph origin, using the Y-upwards  */
-  /*    convention.                                                        */
-  /*                                                                       */
-  /*    If the glyph has been loaded with FT_LOAD_NO_SCALE, `bbox_mode'    */
-  /*    must be set to `FT_GLYPH_BBOX_UNSCALED' to get unscaled font       */
-  /*    units in 26.6 pixel format.  The value `FT_GLYPH_BBOX_SUBPIXELS'   */
-  /*    is another name for this constant.                                 */
-  /*                                                                       */
-  /*    Note that the maximum coordinates are exclusive, which means that  */
-  /*    one can compute the width and height of the glyph image (be it in  */
-  /*    integer or 26.6 pixels) as:                                        */
-  /*                                                                       */
-  /*      width  = bbox.xMax - bbox.xMin;                                  */
-  /*      height = bbox.yMax - bbox.yMin;                                  */
-  /*                                                                       */
-  /*    Note also that for 26.6 coordinates, if `bbox_mode' is set to      */
-  /*    `FT_GLYPH_BBOX_GRIDFIT', the coordinates will also be grid-fitted, */
-  /*    which corresponds to:                                              */
-  /*                                                                       */
-  /*      bbox.xMin = FLOOR(bbox.xMin);                                    */
-  /*      bbox.yMin = FLOOR(bbox.yMin);                                    */
-  /*      bbox.xMax = CEILING(bbox.xMax);                                  */
-  /*      bbox.yMax = CEILING(bbox.yMax);                                  */
-  /*                                                                       */
-  /*    To get the bbox in pixel coordinates, set `bbox_mode' to           */
-  /*    `FT_GLYPH_BBOX_TRUNCATE'.                                          */
-  /*                                                                       */
-  /*    To get the bbox in grid-fitted pixel coordinates, set `bbox_mode'  */
-  /*    to `FT_GLYPH_BBOX_PIXELS'.                                         */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Glyph_Get_CBox( FT_Glyph  glyph,
-                     FT_UInt   bbox_mode,
-                     FT_BBox  *acbox );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Glyph_To_Bitmap                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Converts a given glyph object to a bitmap glyph object.            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    the_glyph   :: A pointer to a handle to the target glyph.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    render_mode :: An enumeration that describe how the data is        */
-  /*                   rendered.                                           */
-  /*                                                                       */
-  /*    origin      :: A pointer to a vector used to translate the glyph   */
-  /*                   image before rendering.  Can be 0 (if no            */
-  /*                   translation).  The origin is expressed in           */
-  /*                   26.6 pixels.                                        */
-  /*                                                                       */
-  /*    destroy     :: A boolean that indicates that the original glyph    */
-  /*                   image should be destroyed by this function.  It is  */
-  /*                   never destroyed in case of error.                   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The glyph image is translated with the `origin' vector before      */
-  /*    rendering.                                                         */
-  /*                                                                       */
-  /*    The first parameter is a pointer to a FT_Glyph handle, that will   */
-  /*    be replaced by this function.  Typically, you would use (omitting  */
-  /*    error handling):                                                   */
-  /*                                                                       */
-  /*                                                                       */
-  /*      {                                                                */
-  /*        FT_Glyph        glyph;                                         */
-  /*        FT_BitmapGlyph  glyph_bitmap;                                  */
-  /*                                                                       */
-  /*                                                                       */
-  /*        // load glyph                                                  */
-  /*        error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT );     */
-  /*                                                                       */
-  /*        // extract glyph image                                         */
-  /*        error = FT_Get_Glyph( face->glyph, &glyph );                   */
-  /*                                                                       */
-  /*        // convert to a bitmap (default render mode + destroy old)     */
-  /*        if ( glyph->format != FT_GLYPH_FORMAT_BITMAP )                 */
-  /*        {                                                              */
-  /*          error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_DEFAULT,  */
-  /*                                      0, 1 );                          */
-  /*          if ( error ) // glyph unchanged                              */
-  /*            ...                                                        */
-  /*        }                                                              */
-  /*                                                                       */
-  /*        // access bitmap content by typecasting                        */
-  /*        glyph_bitmap = (FT_BitmapGlyph)glyph;                          */
-  /*                                                                       */
-  /*        // do funny stuff with it, like blitting/drawing               */
-  /*        ...                                                            */
-  /*                                                                       */
-  /*        // discard glyph image (bitmap or not)                         */
-  /*        FT_Done_Glyph( glyph );                                        */
-  /*      }                                                                */
-  /*                                                                       */
-  /*                                                                       */
-  /*    This function does nothing if the glyph format isn't scalable.     */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Glyph_To_Bitmap( FT_Glyph*       the_glyph,
-                      FT_Render_Mode  render_mode,
-                      FT_Vector*      origin,
-                      FT_Bool         destroy );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_Glyph                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given glyph.                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    glyph :: A handle to the target glyph object.                      */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Done_Glyph( FT_Glyph  glyph );
-
-
-  /* other helpful functions */
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    computations                                                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Matrix_Multiply                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Performs the matrix operation `b = a*b'.                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: A pointer to matrix `a'.                                      */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    b :: A pointer to matrix `b'.                                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The result is undefined if either `a' or `b' is zero.              */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Matrix_Multiply( const FT_Matrix*  a,
-                      FT_Matrix*  b );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Matrix_Invert                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Inverts a 2x2 matrix.  Returns an error if it can't be inverted.   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    matrix :: A pointer to the target matrix.  Remains untouched in    */
-  /*              case of error.                                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Matrix_Invert( FT_Matrix*  matrix );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTGLYPH_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftgzip.h b/nx-X11/extras/freetype2/include/freetype/ftgzip.h
deleted file mode 100644
index 5d7228bb4..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftgzip.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftgzip.h                                                               */
-/*                                                                         */
-/*    Gzip-compressed stream support.                                      */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTGZIP_H__
-#define __FTGZIP_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    gzip                                                               */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    GZIP Streams                                                       */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Using gzip-compressed font files                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the declaration of Gzip-specific functions.  */
-  /*                                                                       */
-  /*************************************************************************/
-
-
- /************************************************************************
-  *
-  * @function:
-  *   FT_Stream_OpenGzip
-  *
-  * @description:
-  *   Open a new stream to parse gzip-compressed font files.  This is
-  *   mainly used to support the compressed *.pcf.gz fonts that come
-  *   with XFree86.
-  *
-  * @input:
-  *   stream :: The target embedding stream.
-  *
-  *   source :: The source stream.
-  *
-  * @return:
-  *   FreeType error code.  0 means success.
-  *
-  * @note:
-  *   The source stream must be opened _before_ calling this function.
-  *
-  *   Calling the internal function FT_Stream_Close on the new stream will
-  *   *not* call FT_Stream_Close on the source stream.  None of the stream
-  *   objects will be released to the heap.
-  *
-  *   The stream implementation is very basic and resets the decompression
-  *   process each time seeking backwards is needed within the stream.
-  *
-  *   In certain builds of the library, gzip compression recognition is
-  *   automatically handled when calling @FT_New_Face or @FT_Open_Face.
-  *   This means that if no font driver is capable of handling the raw
-  *   compressed file, the library will try to open a gzipped stream from
-  *   it and re-open the face with it.
-  *
-  *   This function may return "FT_Err_Unimplemented" if your build of
-  *   FreeType was not compiled with zlib support.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Stream_OpenGzip( FT_Stream  stream,
-                      FT_Stream  source );
-
- /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTGZIP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftimage.h b/nx-X11/extras/freetype2/include/freetype/ftimage.h
deleted file mode 100644
index 4682a4cad..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftimage.h
+++ /dev/null
@@ -1,1236 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftimage.h                                                              */
-/*                                                                         */
-/*    FreeType glyph image formats and default raster interface            */
-/*    (specification).                                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Note: A `raster' is simply a scan-line converter, used to render      */
-  /*       FT_Outlines into FT_Bitmaps.                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTIMAGE_H__
-#define __FTIMAGE_H__
-
-
-/* _STANDALONE_ is from ftgrays.c */
-#ifndef _STANDALONE_
-#include <ft2build.h>
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    basic_types                                                        */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Pos                                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The type FT_Pos is a 32-bit integer used to store vectorial        */
-  /*    coordinates.  Depending on the context, these can represent        */
-  /*    distances in integer font units, or 16,16, or 26.6 fixed float     */
-  /*    pixel coordinates.                                                 */
-  /*                                                                       */
-  typedef signed long  FT_Pos;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Vector                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to store a 2D vector; coordinates are of   */
-  /*    the FT_Pos type.                                                   */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    x :: The horizontal coordinate.                                    */
-  /*    y :: The vertical coordinate.                                      */
-  /*                                                                       */
-  typedef struct  FT_Vector_
-  {
-    FT_Pos  x;
-    FT_Pos  y;
-
-  } FT_Vector;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_BBox                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to hold an outline's bounding box, i.e., the      */
-  /*    coordinates of its extrema in the horizontal and vertical          */
-  /*    directions.                                                        */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    xMin :: The horizontal minimum (left-most).                        */
-  /*                                                                       */
-  /*    yMin :: The vertical minimum (bottom-most).                        */
-  /*                                                                       */
-  /*    xMax :: The horizontal maximum (right-most).                       */
-  /*                                                                       */
-  /*    yMax :: The vertical maximum (top-most).                           */
-  /*                                                                       */
-  typedef struct  FT_BBox_
-  {
-    FT_Pos  xMin, yMin;
-    FT_Pos  xMax, yMax;
-
-  } FT_BBox;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Pixel_Mode                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An enumeration type used to describe the format of pixels in a     */
-  /*    given bitmap.  Note that additional formats may be added in the    */
-  /*    future.                                                            */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_PIXEL_MODE_NONE ::                                              */
-  /*      Value 0 is reserved.                                             */
-  /*                                                                       */
-  /*    FT_PIXEL_MODE_MONO ::                                              */
-  /*      A monochrome bitmap, using 1 bit per pixel.  Note that pixels    */
-  /*      are stored in most-significant order (MSB), which means that     */
-  /*      the left-most pixel in a byte has value 128.                     */
-  /*                                                                       */
-  /*    FT_PIXEL_MODE_GRAY ::                                              */
-  /*      An 8-bit bitmap, generally used to represent anti-aliased glyph  */
-  /*      images.  Each pixel is stored in one byte.  Note that the number */
-  /*      of value "gray" levels is stored in the `num_bytes' field of     */
-  /*      the @FT_Bitmap structure (it generally is 256).                  */
-  /*                                                                       */
-  /*    FT_PIXEL_MODE_GRAY2 ::                                             */
-  /*      A 2-bit/pixel bitmap, used to represent embedded anti-aliased    */
-  /*      bitmaps in font files according to the OpenType specification.   */
-  /*      We haven't found a single font using this format, however.       */
-  /*                                                                       */
-  /*    FT_PIXEL_MODE_GRAY4 ::                                             */
-  /*      A 4-bit/pixel bitmap, used to represent embedded anti-aliased    */
-  /*      bitmaps in font files according to the OpenType specification.   */
-  /*      We haven't found a single font using this format, however.       */
-  /*                                                                       */
-  /*    FT_PIXEL_MODE_LCD ::                                               */
-  /*      An 8-bit bitmap, used to represent RGB or BGR decimated glyph    */
-  /*      images used for display on LCD displays; the bitmap's width is   */
-  /*      three times wider than the original glyph image.  See also       */
-  /*      @FT_RENDER_MODE_LCD.                                             */
-  /*                                                                       */
-  /*    FT_PIXEL_MODE_LCD_V ::                                             */
-  /*      An 8-bit bitmap, used to represent RGB or BGR decimated glyph    */
-  /*      images used for display on rotated LCD displays; the bitmap's    */
-  /*      height is three times taller than the original glyph image.      */
-  /*      See also @FT_RENDER_MODE_LCD_V.                                  */
-  /*                                                                       */
-  typedef enum  FT_Pixel_Mode_
-  {
-    FT_PIXEL_MODE_NONE = 0,
-    FT_PIXEL_MODE_MONO,
-    FT_PIXEL_MODE_GRAY,
-    FT_PIXEL_MODE_GRAY2,
-    FT_PIXEL_MODE_GRAY4,
-    FT_PIXEL_MODE_LCD,
-    FT_PIXEL_MODE_LCD_V,
-
-    FT_PIXEL_MODE_MAX      /* do not remove */
-
-  } FT_Pixel_Mode;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_pixel_mode_xxx                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of deprecated constants.  Use the corresponding             */
-  /*    @FT_Pixel_Mode values instead.                                     */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    ft_pixel_mode_none  :: see @FT_PIXEL_MODE_NONE                     */
-  /*    ft_pixel_mode_mono  :: see @FT_PIXEL_MODE_MONO                     */
-  /*    ft_pixel_mode_grays :: see @FT_PIXEL_MODE_GRAY                     */
-  /*    ft_pixel_mode_pal2  :: see @FT_PIXEL_MODE_GRAY2                    */
-  /*    ft_pixel_mode_pal4  :: see @FT_PIXEL_MODE_GRAY4                    */
-  /*                                                                       */
-#define ft_pixel_mode_none   FT_PIXEL_MODE_NONE
-#define ft_pixel_mode_mono   FT_PIXEL_MODE_MONO
-#define ft_pixel_mode_grays  FT_PIXEL_MODE_GRAY
-#define ft_pixel_mode_pal2   FT_PIXEL_MODE_GRAY2
-#define ft_pixel_mode_pal4   FT_PIXEL_MODE_GRAY4
-
- /* */
-
-#if 0
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Palette_Mode                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    THIS TYPE IS DEPRECATED.  DO NOT USE IT!                           */
-  /*                                                                       */
-  /*    An enumeration type used to describe the format of a bitmap        */
-  /*    palette, used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8.      */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    ft_palette_mode_rgb  :: The palette is an array of 3-bytes RGB     */
-  /*                            records.                                   */
-  /*                                                                       */
-  /*    ft_palette_mode_rgba :: The palette is an array of 4-bytes RGBA    */
-  /*                            records.                                   */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    As ft_pixel_mode_pal2, pal4 and pal8 are currently unused by       */
-  /*    FreeType, these types are not handled by the library itself.       */
-  /*                                                                       */
-  typedef enum  FT_Palette_Mode_
-  {
-    ft_palette_mode_rgb = 0,
-    ft_palette_mode_rgba,
-
-    ft_palettte_mode_max   /* do not remove */
-
-  } FT_Palette_Mode;
-
-  /* */
-
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Bitmap                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to describe a bitmap or pixmap to the raster.     */
-  /*    Note that we now manage pixmaps of various depths through the      */
-  /*    `pixel_mode' field.                                                */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    rows         :: The number of bitmap rows.                         */
-  /*                                                                       */
-  /*    width        :: The number of pixels in bitmap row.                */
-  /*                                                                       */
-  /*    pitch        :: The pitch's absolute value is the number of bytes  */
-  /*                    taken by one bitmap row, including padding.        */
-  /*                    However, the pitch is positive when the bitmap has */
-  /*                    a `down' flow, and negative when it has an `up'    */
-  /*                    flow.  In all cases, the pitch is an offset to add */
-  /*                    to a bitmap pointer in order to go down one row.   */
-  /*                                                                       */
-  /*    buffer       :: A typeless pointer to the bitmap buffer.  This     */
-  /*                    value should be aligned on 32-bit boundaries in    */
-  /*                    most cases.                                        */
-  /*                                                                       */
-  /*    num_grays    :: This field is only used with                       */
-  /*                    `FT_PIXEL_MODE_GRAY'; it gives the number of gray  */
-  /*                    levels used in the bitmap.                         */
-  /*                                                                       */
-  /*    pixel_mode   :: The pixel mode, i.e., how pixel bits are stored.   */
-  /*                    See @FT_Pixel_Mode for possible values.            */
-  /*                                                                       */
-  /*    palette_mode :: This field is only used with paletted pixel modes; */
-  /*                    it indicates how the palette is stored.            */
-  /*                                                                       */
-  /*    palette      :: A typeless pointer to the bitmap palette; only     */
-  /*                    used for paletted pixel modes.                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*   For now, the only pixel mode supported by FreeType are mono and     */
-  /*   grays.  However, drivers might be added in the future to support    */
-  /*   more `colorful' options.                                            */
-  /*                                                                       */
-  /*   When using pixel modes pal2, pal4 and pal8 with a void `palette'    */
-  /*   field, a gray pixmap with respectively 4, 16, and 256 levels of     */
-  /*   gray is assumed.  This, in order to be compatible with some         */
-  /*   embedded bitmap formats defined in the TrueType specification.      */
-  /*                                                                       */
-  /*   Note that no font was found presenting such embedded bitmaps, so    */
-  /*   this is currently completely unhandled by the library.              */
-  /*                                                                       */
-  typedef struct  FT_Bitmap_
-  {
-    int             rows;
-    int             width;
-    int             pitch;
-    unsigned char*  buffer;
-    short           num_grays;
-    char            pixel_mode;
-    char            palette_mode;
-    void*           palette;
-
-  } FT_Bitmap;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    outline_processing                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Outline                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This structure is used to describe an outline to the scan-line     */
-  /*    converter.                                                         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    n_contours :: The number of contours in the outline.               */
-  /*                                                                       */
-  /*    n_points   :: The number of points in the outline.                 */
-  /*                                                                       */
-  /*    points     :: A pointer to an array of `n_points' FT_Vector        */
-  /*                  elements, giving the outline's point coordinates.    */
-  /*                                                                       */
-  /*    tags       :: A pointer to an array of `n_points' chars, giving    */
-  /*                  each outline point's type.  If bit 0 is unset, the   */
-  /*                  point is `off' the curve, i.e. a Bezier control      */
-  /*                  point, while it is `on' when set.                    */
-  /*                                                                       */
-  /*                  Bit 1 is meaningful for `off' points only.  If set,  */
-  /*                  it indicates a third-order Bezier arc control point; */
-  /*                  and a second-order control point if unset.           */
-  /*                                                                       */
-  /*    contours   :: An array of `n_contours' shorts, giving the end      */
-  /*                  point of each contour within the outline.  For       */
-  /*                  example, the first contour is defined by the points  */
-  /*                  `0' to `contours[0]', the second one is defined by   */
-  /*                  the points `contours[0]+1' to `contours[1]', etc.    */
-  /*                                                                       */
-  /*    flags      :: A set of bit flags used to characterize the outline  */
-  /*                  and give hints to the scan-converter and hinter on   */
-  /*                  how to convert/grid-fit it.  See FT_Outline_Flags.   */
-  /*                                                                       */
-  typedef struct  FT_Outline_
-  {
-    short       n_contours;      /* number of contours in glyph        */
-    short       n_points;        /* number of points in the glyph      */
-
-    FT_Vector*  points;          /* the outline's points               */
-    char*       tags;            /* the points flags                   */
-    short*      contours;        /* the contour end points             */
-
-    int         flags;           /* outline masks                      */
-
-  } FT_Outline;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*   FT_OUTLINE_FLAGS                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of bit-field constants use for the flags in an outline's    */
-  /*    `flags' field.                                                     */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_OUTLINE_NONE           :: Value 0 is reserved.                  */
-  /*                                                                       */
-  /*    FT_OUTLINE_OWNER          :: If set, this flag indicates that the  */
-  /*                                 outline's field arrays (i.e.          */
-  /*                                 `points', `flags' & `contours') are   */
-  /*                                 `owned' by the outline object, and    */
-  /*                                 should thus be freed when it is       */
-  /*                                 destroyed.                            */
-  /*                                                                       */
-  /*   FT_OUTLINE_EVEN_ODD_FILL   :: By default, outlines are filled using */
-  /*                                 the non-zero winding rule.  If set to */
-  /*                                 1, the outline will be filled using   */
-  /*                                 the even-odd fill rule (only works    */
-  /*                                 with the smooth raster).              */
-  /*                                                                       */
-  /*   FT_OUTLINE_REVERSE_FILL    :: By default, outside contours of an    */
-  /*                                 outline are oriented in clock-wise    */
-  /*                                 direction, as defined in the TrueType */
-  /*                                 specification.  This flag is set if   */
-  /*                                 the outline uses the opposite         */
-  /*                                 direction (typically for Type 1       */
-  /*                                 fonts).  This flag is ignored by the  */
-  /*                                 scan-converter.  However, it is very  */
-  /*                                 important for the auto-hinter.        */
-  /*                                                                       */
-  /*   FT_OUTLINE_IGNORE_DROPOUTS :: By default, the scan converter will   */
-  /*                                 try to detect drop-outs in an outline */
-  /*                                 and correct the glyph bitmap to       */
-  /*                                 ensure consistent shape continuity.   */
-  /*                                 If set, this flag hints the scan-line */
-  /*                                 converter to ignore such cases.       */
-  /*                                                                       */
-  /*   FT_OUTLINE_HIGH_PRECISION  :: This flag indicates that the          */
-  /*                                 scan-line converter should try to     */
-  /*                                 convert this outline to bitmaps with  */
-  /*                                 the highest possible quality.  It is  */
-  /*                                 typically set for small character     */
-  /*                                 sizes.  Note that this is only a      */
-  /*                                 hint, that might be completely        */
-  /*                                 ignored by a given scan-converter.    */
-  /*                                                                       */
-  /*   FT_OUTLINE_SINGLE_PASS     :: This flag is set to force a given     */
-  /*                                 scan-converter to only use a single   */
-  /*                                 pass over the outline to render a     */
-  /*                                 bitmap glyph image.  Normally, it is  */
-  /*                                 set for very large character sizes.   */
-  /*                                 It is only a hint, that might be      */
-  /*                                 completely ignored by a given         */
-  /*                                 scan-converter.                       */
-  /*                                                                       */
-#define FT_OUTLINE_NONE             0x0
-#define FT_OUTLINE_OWNER            0x1
-#define FT_OUTLINE_EVEN_ODD_FILL    0x2
-#define FT_OUTLINE_REVERSE_FILL     0x4
-#define FT_OUTLINE_IGNORE_DROPOUTS  0x8
-
-#define FT_OUTLINE_HIGH_PRECISION   0x100
-#define FT_OUTLINE_SINGLE_PASS      0x200
-
-
- /*************************************************************************
-  *
-  * @enum:
-  *   ft_outline_flags
-  *
-  * @description:
-  *   These constants are deprecated.  Please use the corresponding
-  *   @FT_OUTLINE_FLAGS values.
-  *
-  * @values:
-  *   ft_outline_none            :: See @FT_OUTLINE_NONE.
-  *   ft_outline_owner           :: See @FT_OUTLINE_OWNER.
-  *   ft_outline_even_odd_fill   :: See @FT_OUTLINE_EVEN_ODD_FILL.
-  *   ft_outline_reverse_fill    :: See @FT_OUTLINE_REVERSE_FILL.
-  *   ft_outline_ignore_dropouts :: See @FT_OUTLINE_IGNORE_DROPOUTS.
-  *   ft_outline_high_precision  :: See @FT_OUTLINE_HIGH_PRECISION.
-  *   ft_outline_single_pass     :: See @FT_OUTLINE_SINGLE_PASS.
-  */
-#define ft_outline_none             FT_OUTLINE_NONE
-#define ft_outline_owner            FT_OUTLINE_OWNER
-#define ft_outline_even_odd_fill    FT_OUTLINE_EVEN_ODD_FILL
-#define ft_outline_reverse_fill     FT_OUTLINE_REVERSE_FILL
-#define ft_outline_ignore_dropouts  FT_OUTLINE_IGNORE_DROPOUTS
-#define ft_outline_high_precision   FT_OUTLINE_HIGH_PRECISION
-#define ft_outline_single_pass      FT_OUTLINE_SINGLE_PASS
-
-  /* */
-
-#define FT_CURVE_TAG( flag )  ( flag & 3 )
-
-#define FT_CURVE_TAG_ON           1
-#define FT_CURVE_TAG_CONIC        0
-#define FT_CURVE_TAG_CUBIC        2
-
-#define FT_CURVE_TAG_TOUCH_X      8  /* reserved for the TrueType hinter */
-#define FT_CURVE_TAG_TOUCH_Y     16  /* reserved for the TrueType hinter */
-
-#define FT_CURVE_TAG_TOUCH_BOTH  ( FT_CURVE_TAG_TOUCH_X | \
-                                   FT_CURVE_TAG_TOUCH_Y )
-
-#define  FT_Curve_Tag_On       FT_CURVE_TAG_ON
-#define  FT_Curve_Tag_Conic    FT_CURVE_TAG_CONIC
-#define  FT_Curve_Tag_Cubic    FT_CURVE_TAG_CUBIC
-#define  FT_Curve_Tag_Touch_X  FT_CURVE_TAG_TOUCH_X
-#define  FT_Curve_Tag_Touch_Y  FT_CURVE_TAG_TOUCH_Y
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Outline_MoveToFunc                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function pointer type used to describe the signature of a `move  */
-  /*    to' function during outline walking/decomposition.                 */
-  /*                                                                       */
-  /*    A `move to' is emitted to start a new contour in an outline.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    to   :: A pointer to the target point of the `move to'.            */
-  /*                                                                       */
-  /*    user :: A typeless pointer which is passed from the caller of the  */
-  /*            decomposition function.                                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
-  /*                                                                       */
-  typedef int
-  (*FT_Outline_MoveToFunc)( FT_Vector*  to,
-                            void*       user );
-
-#define FT_Outline_MoveTo_Func  FT_Outline_MoveToFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Outline_LineToFunc                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function pointer type used to describe the signature of a `line  */
-  /*    to' function during outline walking/decomposition.                 */
-  /*                                                                       */
-  /*    A `line to' is emitted to indicate a segment in the outline.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    to   :: A pointer to the target point of the `line to'.            */
-  /*                                                                       */
-  /*    user :: A typeless pointer which is passed from the caller of the  */
-  /*            decomposition function.                                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
-  /*                                                                       */
-  typedef int
-  (*FT_Outline_LineToFunc)( FT_Vector*  to,
-                            void*       user );
-
-#define  FT_Outline_LineTo_Func  FT_Outline_LineToFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Outline_ConicToFunc                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function pointer type use to describe the signature of a `conic  */
-  /*    to' function during outline walking/decomposition.                 */
-  /*                                                                       */
-  /*    A `conic to' is emitted to indicate a second-order Bezier arc in   */
-  /*    the outline.                                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    control :: An intermediate control point between the last position */
-  /*               and the new target in `to'.                             */
-  /*                                                                       */
-  /*    to      :: A pointer to the target end point of the conic arc.     */
-  /*                                                                       */
-  /*    user    :: A typeless pointer which is passed from the caller of   */
-  /*               the decomposition function.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
-  /*                                                                       */
-  typedef int
-  (*FT_Outline_ConicToFunc)( FT_Vector*  control,
-                             FT_Vector*  to,
-                             void*       user );
-
-#define  FT_Outline_ConicTo_Func  FT_Outline_ConicToFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Outline_CubicToFunc                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function pointer type used to describe the signature of a `cubic */
-  /*    to' function during outline walking/decomposition.                 */
-  /*                                                                       */
-  /*    A `cubic to' is emitted to indicate a third-order Bezier arc.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    control1 :: A pointer to the first Bezier control point.           */
-  /*                                                                       */
-  /*    control2 :: A pointer to the second Bezier control point.          */
-  /*                                                                       */
-  /*    to       :: A pointer to the target end point.                     */
-  /*                                                                       */
-  /*    user     :: A typeless pointer which is passed from the caller of  */
-  /*                the decomposition function.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
-  /*                                                                       */
-  typedef int
-  (*FT_Outline_CubicToFunc)( FT_Vector*  control1,
-                             FT_Vector*  control2,
-                             FT_Vector*  to,
-                             void*       user );
-
-#define  FT_Outline_CubicTo_Func  FT_Outline_CubicToFunc
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Outline_Funcs                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure to hold various function pointers used during outline  */
-  /*    decomposition in order to emit segments, conic, and cubic Beziers, */
-  /*    as well as `move to' and `close to' operations.                    */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    move_to  :: The `move to' emitter.                                 */
-  /*                                                                       */
-  /*    line_to  :: The segment emitter.                                   */
-  /*                                                                       */
-  /*    conic_to :: The second-order Bezier arc emitter.                   */
-  /*                                                                       */
-  /*    cubic_to :: The third-order Bezier arc emitter.                    */
-  /*                                                                       */
-  /*    shift    :: The shift that is applied to coordinates before they   */
-  /*                are sent to the emitter.                               */
-  /*                                                                       */
-  /*    delta    :: The delta that is applied to coordinates before they   */
-  /*                are sent to the emitter, but after the shift.          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The point coordinates sent to the emitters are the transformed     */
-  /*    version of the original coordinates (this is important for high    */
-  /*    accuracy during scan-conversion).  The transformation is simple:   */
-  /*                                                                       */
-  /*      x' = (x << shift) - delta                                        */
-  /*      y' = (x << shift) - delta                                        */
-  /*                                                                       */
-  /*    Set the value of `shift' and `delta' to 0 to get the original      */
-  /*    point coordinates.                                                 */
-  /*                                                                       */
-  typedef struct  FT_Outline_Funcs_
-  {
-    FT_Outline_MoveToFunc   move_to;
-    FT_Outline_LineToFunc   line_to;
-    FT_Outline_ConicToFunc  conic_to;
-    FT_Outline_CubicToFunc  cubic_to;
-
-    int                     shift;
-    FT_Pos                  delta;
-
-  } FT_Outline_Funcs;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    basic_types                                                        */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_IMAGE_TAG                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro converts four letter tags into an unsigned long.        */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Since many 16bit compilers don't like 32bit enumerations, you      */
-  /*    should redefine this macro in case of problems to something like   */
-  /*    this:                                                              */
-  /*                                                                       */
-  /*      #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  value         */
-  /*                                                                       */
-  /*    to get a simple enumeration without assigning special numbers.     */
-  /*                                                                       */
-#ifndef FT_IMAGE_TAG
-#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  \
-          value = ( ( (unsigned long)_x1 << 24 ) | \
-                    ( (unsigned long)_x2 << 16 ) | \
-                    ( (unsigned long)_x3 << 8  ) | \
-                      (unsigned long)_x4         )
-#endif /* FT_IMAGE_TAG */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Glyph_Format                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An enumeration type used to describe the format of a given glyph   */
-  /*    image.  Note that this version of FreeType only supports two image */
-  /*    formats, even though future font drivers will be able to register  */
-  /*    their own format.                                                  */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_GLYPH_FORMAT_NONE ::                                            */
-  /*      The value 0 is reserved and does describe a glyph format.        */
-  /*                                                                       */
-  /*    FT_GLYPH_FORMAT_COMPOSITE ::                                       */
-  /*      The glyph image is a composite of several other images.  This    */
-  /*      format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to   */
-  /*      report compound glyphs (like accented characters).               */
-  /*                                                                       */
-  /*    FT_GLYPH_FORMAT_BITMAP ::                                          */
-  /*      The glyph image is a bitmap, and can be described as an          */
-  /*      @FT_Bitmap.  You generally need to access the `bitmap' field of  */
-  /*      the @FT_GlyphSlotRec structure to read it.                       */
-  /*                                                                       */
-  /*    FT_GLYPH_FORMAT_OUTLINE ::                                         */
-  /*      The glyph image is a vertorial outline made of line segments     */
-  /*      and Bezier arcs; it can be described as an @FT_Outline; you      */
-  /*      generally want to access the `outline' field of the              */
-  /*      @FT_GlyphSlotRec structure to read it.                           */
-  /*                                                                       */
-  /*    FT_GLYPH_FORMAT_PLOTTER ::                                         */
-  /*      The glyph image is a vectorial path with no inside/outside       */
-  /*      contours.  Some Type 1 fonts, like those in the Hershey family,  */
-  /*      contain glyphs in this format.  These are described as           */
-  /*      @FT_Outline, but FreeType isn't currently capable of rendering   */
-  /*      them correctly.                                                  */
-  /*                                                                       */
-  typedef enum  FT_Glyph_Format_
-  {
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ),
-
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ),
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP,    'b', 'i', 't', 's' ),
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE,   'o', 'u', 't', 'l' ),
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER,   'p', 'l', 'o', 't' )
-
-  } FT_Glyph_Format;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    ft_glyph_format_xxx                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of decprecated constants.  Use the corresponding            */
-  /*    @FT_Glyph_Format values instead.                                   */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    ft_glyph_format_none      :: see @FT_GLYPH_FORMAT_NONE             */
-  /*    ft_glyph_format_composite :: see @FT_GLYPH_FORMAT_COMPOSITE        */
-  /*    ft_glyph_format_bitmap    :: see @FT_GLYPH_FORMAT_BITMAP           */
-  /*    ft_glyph_format_outline   :: see @FT_GLYPH_FORMAT_OUTLINE          */
-  /*    ft_glyph_format_plotter   :: see @FT_GLYPH_FORMAT_PLOTTER          */
-  /*                                                                       */
-#define ft_glyph_format_none       FT_GLYPH_FORMAT_NONE
-#define ft_glyph_format_composite  FT_GLYPH_FORMAT_COMPOSITE
-#define ft_glyph_format_bitmap     FT_GLYPH_FORMAT_BITMAP
-#define ft_glyph_format_outline    FT_GLYPH_FORMAT_OUTLINE
-#define ft_glyph_format_plotter    FT_GLYPH_FORMAT_PLOTTER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****            R A S T E R   D E F I N I T I O N S                *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A raster is a scan converter, in charge of rendering an outline into  */
-  /* a a bitmap.  This section contains the public API for rasters.        */
-  /*                                                                       */
-  /* Note that in FreeType 2, all rasters are now encapsulated within      */
-  /* specific modules called `renderers'.  See `freetype/ftrender.h' for   */
-  /* more details on renderers.                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    raster                                                             */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Scanline converter                                                 */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    How vectorial outlines are converted into bitmaps and pixmaps.     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains technical definitions.                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Raster                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle (pointer) to a raster object.  Each object can be used    */
-  /*    independently to convert an outline into a bitmap or pixmap.       */
-  /*                                                                       */
-  typedef struct FT_RasterRec_*  FT_Raster;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Span                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a single span of gray (or black) pixels  */
-  /*    when rendering a monochrome or anti-aliased bitmap.                */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    x        :: The span's horizontal start position.                  */
-  /*                                                                       */
-  /*    len      :: The span's length in pixels.                           */
-  /*                                                                       */
-  /*    coverage :: The span color/coverage, ranging from 0 (background)   */
-  /*                to 255 (foreground).  Only used for anti-aliased       */
-  /*                rendering.                                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This structure is used by the span drawing callback type named     */
-  /*    FT_SpanFunc which takes the y-coordinate of the span as a          */
-  /*    a parameter.                                                       */
-  /*                                                                       */
-  /*    The coverage value is always between 0 and 255, even if the number */
-  /*    of gray levels have been set through FT_Set_Gray_Levels().         */
-  /*                                                                       */
-  typedef struct  FT_Span_
-  {
-    short           x;
-    unsigned short  len;
-    unsigned char   coverage;
-
-  } FT_Span;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_SpanFunc                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used as a call-back by the anti-aliased renderer in     */
-  /*    order to let client applications draw themselves the gray pixel    */
-  /*    spans on each scan line.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    y     :: The scanline's y-coordinate.                              */
-  /*                                                                       */
-  /*    count :: The number of spans to draw on this scanline.             */
-  /*                                                                       */
-  /*    spans :: A table of `count' spans to draw on the scanline.         */
-  /*                                                                       */
-  /*    user  :: User-supplied data that is passed to the callback.        */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This callback allows client applications to directly render the    */
-  /*    gray spans of the anti-aliased bitmap to any kind of surfaces.     */
-  /*                                                                       */
-  /*    This can be used to write anti-aliased outlines directly to a      */
-  /*    given background bitmap, and even perform translucency.            */
-  /*                                                                       */
-  /*    Note that the `count' field cannot be greater than a fixed value   */
-  /*    defined by the FT_MAX_GRAY_SPANS configuration macro in            */
-  /*    ftoption.h.  By default, this value is set to 32, which means that */
-  /*    if there are more than 32 spans on a given scanline, the callback  */
-  /*    will be called several times with the same `y' parameter in order  */
-  /*    to draw all callbacks.                                             */
-  /*                                                                       */
-  /*    Otherwise, the callback is only called once per scan-line, and     */
-  /*    only for those scanlines that do have `gray' pixels on them.       */
-  /*                                                                       */
-  typedef void
-  (*FT_SpanFunc)( int       y,
-                  int       count,
-                  FT_Span*  spans,
-                  void*     user );
-
-#define FT_Raster_Span_Func   FT_SpanFunc
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_BitTest_Func                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    THIS TYPE IS DEPRECATED.  DO NOT USE IT.                           */
-  /*                                                                       */
-  /*    A function used as a call-back by the monochrome scan-converter    */
-  /*    to test whether a given target pixel is already set to the drawing */
-  /*    `color'.  These tests are crucial to implement drop-out control    */
-  /*    per-se the TrueType spec.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    y     :: The pixel's y-coordinate.                                 */
-  /*                                                                       */
-  /*    x     :: The pixel's x-coordinate.                                 */
-  /*                                                                       */
-  /*    user  :: User-supplied data that is passed to the callback.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*   1 if the pixel is `set', 0 otherwise.                               */
-  /*                                                                       */
-  typedef int
-  (*FT_Raster_BitTest_Func)( int    y,
-                             int    x,
-                             void*  user );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_BitSet_Func                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    THIS TYPE IS DEPRECATED.  DO NOT USE IT.                           */
-  /*                                                                       */
-  /*    A function used as a call-back by the monochrome scan-converter    */
-  /*    to set an individual target pixel.  This is crucial to implement   */
-  /*    drop-out control according to the TrueType specification.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    y     :: The pixel's y-coordinate.                                 */
-  /*                                                                       */
-  /*    x     :: The pixel's x-coordinate.                                 */
-  /*                                                                       */
-  /*    user  :: User-supplied data that is passed to the callback.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    1 if the pixel is `set', 0 otherwise.                              */
-  /*                                                                       */
-  typedef void
-  (*FT_Raster_BitSet_Func)( int    y,
-                            int    x,
-                            void*  user );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_RASTER_FLAG_XXX                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A list of bit flag constants as used in the `flags' field of a     */
-  /*    @FT_Raster_Params structure.                                       */
-  /*                                                                       */
-  /* <Values>                                                              */
-  /*    FT_RASTER_FLAG_DEFAULT :: This value is 0.                         */
-  /*                                                                       */
-  /*    FT_RASTER_FLAG_AA      :: This flag is set to indicate that an     */
-  /*                              anti-aliased glyph image should be       */
-  /*                              generated.  Otherwise, it will be        */
-  /*                              monochrome (1-bit).                      */
-  /*                                                                       */
-  /*    FT_RASTER_FLAG_DIRECT  :: This flag is set to indicate direct      */
-  /*                              rendering.  In this mode, client         */
-  /*                              applications must provide their own span */
-  /*                              callback.  This lets them directly       */
-  /*                              draw or compose over an existing bitmap. */
-  /*                              If this bit is not set, the target       */
-  /*                              pixmap's buffer _must_ be zeroed before  */
-  /*                              rendering.                               */
-  /*                                                                       */
-  /*                              Note that for now, direct rendering is   */
-  /*                              only possible with anti-aliased glyphs.  */
-  /*                                                                       */
-  /*    FT_RASTER_FLAG_CLIP    :: This flag is only used in direct         */
-  /*                              rendering mode.  If set, the output will */
-  /*                              be clipped to a box specified in the     */
-  /*                              "clip_box" field of the FT_Raster_Params */
-  /*                              structure.                               */
-  /*                                                                       */
-  /*                              Note that by default, the glyph bitmap   */
-  /*                              is clipped to the target pixmap, except  */
-  /*                              in direct rendering mode where all spans */
-  /*                              are generated if no clipping box is set. */
-  /*                                                                       */
-#define FT_RASTER_FLAG_DEFAULT  0x0
-#define FT_RASTER_FLAG_AA       0x1
-#define FT_RASTER_FLAG_DIRECT   0x2
-#define FT_RASTER_FLAG_CLIP     0x4
-
-  /* deprecated */
-#define ft_raster_flag_default  FT_RASTER_FLAG_DEFAULT
-#define ft_raster_flag_aa       FT_RASTER_FLAG_AA
-#define ft_raster_flag_direct   FT_RASTER_FLAG_DIRECT
-#define ft_raster_flag_clip     FT_RASTER_FLAG_CLIP
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Raster_Params                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure to hold the arguments used by a raster's render        */
-  /*    function.                                                          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    target      :: The target bitmap.                                  */
-  /*                                                                       */
-  /*    source      :: A pointer to the source glyph image (e.g. an        */
-  /*                   FT_Outline).                                        */
-  /*                                                                       */
-  /*    flags       :: The rendering flags.                                */
-  /*                                                                       */
-  /*    gray_spans  :: The gray span drawing callback.                     */
-  /*                                                                       */
-  /*    black_spans :: The black span drawing callback.                    */
-  /*                                                                       */
-  /*    bit_test    :: The bit test callback.  UNIMPLEMENTED!              */
-  /*                                                                       */
-  /*    bit_set     :: The bit set callback.  UNIMPLEMENTED!               */
-  /*                                                                       */
-  /*    user        :: User-supplied data that is passed to each drawing   */
-  /*                   callback.                                           */
-  /*                                                                       */
-  /*    clip_box    :: An optional clipping box.  It is only used in       */
-  /*                   direct rendering mode.  Note that coordinates here  */
-  /*                   should be expressed in _integer_ pixels (and not in */
-  /*                   26.6 fixed-point units).                            */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    An anti-aliased glyph bitmap is drawn if the FT_RASTER_FLAG_AA bit */
-  /*    flag is set in the `flags' field, otherwise a monochrome bitmap    */
-  /*    will be generated.                                                 */
-  /*                                                                       */
-  /*    If the FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the       */
-  /*    raster will call the `gray_spans' callback to draw gray pixel      */
-  /*    spans, in the case of an aa glyph bitmap, it will call             */
-  /*    `black_spans', and `bit_test' and `bit_set' in the case of a       */
-  /*    monochrome bitmap.  This allows direct composition over a          */
-  /*    pre-existing bitmap through user-provided callbacks to perform the */
-  /*    span drawing/composition.                                          */
-  /*                                                                       */
-  /*    Note that the `bit_test' and `bit_set' callbacks are required when */
-  /*    rendering a monochrome bitmap, as they are crucial to implement    */
-  /*    correct drop-out control as defined in the TrueType specification. */
-  /*                                                                       */
-  typedef struct  FT_Raster_Params_
-  {
-    FT_Bitmap*              target;
-    void*                   source;
-    int                     flags;
-    FT_SpanFunc             gray_spans;
-    FT_SpanFunc             black_spans;
-    FT_Raster_BitTest_Func  bit_test;     /* doesn't work! */
-    FT_Raster_BitSet_Func   bit_set;      /* doesn't work! */
-    void*                   user;
-    FT_BBox                 clip_box;
-
-  } FT_Raster_Params;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_NewFunc                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to create a new raster object.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A handle to the memory allocator.                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    raster :: A handle to the new raster object.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The `memory' parameter is a typeless pointer in order to avoid     */
-  /*    un-wanted dependencies on the rest of the FreeType code.  In       */
-  /*    practice, it is a FT_Memory, i.e., a handle to the standard        */
-  /*    FreeType memory allocator.  However, this field can be completely  */
-  /*    ignored by a given raster implementation.                          */
-  /*                                                                       */
-  typedef int
-  (*FT_Raster_NewFunc)( void*       memory,
-                        FT_Raster*  raster );
-
-#define  FT_Raster_New_Func    FT_Raster_NewFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_DoneFunc                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to destroy a given raster object.                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    raster :: A handle to the raster object.                           */
-  /*                                                                       */
-  typedef void
-  (*FT_Raster_DoneFunc)( FT_Raster  raster );
-
-#define  FT_Raster_Done_Func   FT_Raster_DoneFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_ResetFunc                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    FreeType provides an area of memory called the `render pool',      */
-  /*    available to all registered rasters.  This pool can be freely used */
-  /*    during a given scan-conversion but is shared by all rasters.  Its  */
-  /*    content is thus transient.                                         */
-  /*                                                                       */
-  /*    This function is called each time the render pool changes, or just */
-  /*    after a new raster object is created.                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    raster    :: A handle to the new raster object.                    */
-  /*                                                                       */
-  /*    pool_base :: The address in memory of the render pool.             */
-  /*                                                                       */
-  /*    pool_size :: The size in bytes of the render pool.                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Rasters can ignore the render pool and rely on dynamic memory      */
-  /*    allocation if they want to (a handle to the memory allocator is    */
-  /*    passed to the raster constructor).  However, this is not           */
-  /*    recommended for efficiency purposes.                               */
-  /*                                                                       */
-  typedef void
-  (*FT_Raster_ResetFunc)( FT_Raster       raster,
-                          unsigned char*  pool_base,
-                          unsigned long   pool_size );
-
-#define  FT_Raster_Reset_Func   FT_Raster_ResetFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_SetModeFunc                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is a generic facility to change modes or attributes  */
-  /*    in a given raster.  This can be used for debugging purposes, or    */
-  /*    simply to allow implementation-specific `features' in a given      */
-  /*    raster module.                                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    raster :: A handle to the new raster object.                       */
-  /*                                                                       */
-  /*    mode   :: A 4-byte tag used to name the mode or property.          */
-  /*                                                                       */
-  /*    args   :: A pointer to the new mode/property to use.               */
-  /*                                                                       */
-  typedef int
-  (*FT_Raster_SetModeFunc)( FT_Raster      raster,
-                            unsigned long  mode,
-                            void*          args );
-
-#define  FT_Raster_Set_Mode_Func  FT_Raster_SetModeFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Raster_RenderFunc                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*   Invokes a given raster to scan-convert a given glyph image into a   */
-  /*   target bitmap.                                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    raster :: A handle to the raster object.                           */
-  /*                                                                       */
-  /*    params :: A pointer to a FT_Raster_Params structure used to store  */
-  /*              the rendering parameters.                                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means success.                                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The exact format of the source image depends on the raster's glyph */
-  /*    format defined in its FT_Raster_Funcs structure.  It can be an     */
-  /*    FT_Outline or anything else in order to support a large array of   */
-  /*    glyph formats.                                                     */
-  /*                                                                       */
-  /*    Note also that the render function can fail and return a           */
-  /*    FT_Err_Unimplemented_Feature error code if the raster used does    */
-  /*    not support direct composition.                                    */
-  /*                                                                       */
-  /*    XXX: For now, the standard raster doesn't support direct           */
-  /*         composition but this should change for the final release (see */
-  /*         the files demos/src/ftgrays.c and demos/src/ftgrays2.c for    */
-  /*         examples of distinct implementations which support direct     */
-  /*         composition).                                                 */
-  /*                                                                       */
-  typedef int
-  (*FT_Raster_RenderFunc)( FT_Raster          raster,
-                           FT_Raster_Params*  params );
-
-#define  FT_Raster_Render_Func    FT_Raster_RenderFunc
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Raster_Funcs                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*   A structure used to describe a given raster class to the library.   */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    glyph_format  :: The supported glyph format for this raster.       */
-  /*                                                                       */
-  /*    raster_new    :: The raster constructor.                           */
-  /*                                                                       */
-  /*    raster_reset  :: Used to reset the render pool within the raster.  */
-  /*                                                                       */
-  /*    raster_render :: A function to render a glyph into a given bitmap. */
-  /*                                                                       */
-  /*    raster_done   :: The raster destructor.                            */
-  /*                                                                       */
-  typedef struct  FT_Raster_Funcs_
-  {
-    FT_Glyph_Format         glyph_format;
-    FT_Raster_NewFunc       raster_new;
-    FT_Raster_ResetFunc     raster_reset;
-    FT_Raster_SetModeFunc   raster_set_mode;
-    FT_Raster_RenderFunc    raster_render;
-    FT_Raster_DoneFunc      raster_done;
-
-  } FT_Raster_Funcs;
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTIMAGE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftincrem.h b/nx-X11/extras/freetype2/include/freetype/ftincrem.h
deleted file mode 100644
index 6a1aa1fc3..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftincrem.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftincrem.h                                                             */
-/*                                                                         */
-/*    FreeType incremental loading (specification).                        */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTINCREM_H__
-#define __FTINCREM_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
- /***************************************************************************
-  *
-  * @type:
-  *   FT_Incremental
-  *
-  * @description:
-  *   An opaque type describing a user-provided object used to implement
-  *   "incremental" glyph loading within FreeType.  This is used to support
-  *   embedded fonts in certain environments (e.g. Postscript interpreters),
-  *   where the glyph data isn't in the font file, or must be overridden by
-  *   different values.
-  *
-  * @note:
-  *   It is up to client applications to create and implement @FT_Incremental
-  *   objects, as long as they provide implementations for the methods
-  *   @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc
-  *   and @FT_Incremental_GetGlyphMetricsFunc.
-  *
-  *   See the description of @FT_Incremental_InterfaceRec to understand how
-  *   to use incremental objects with FreeType.
-  */
-  typedef struct FT_IncrementalRec_*  FT_Incremental;
-
-
- /***************************************************************************
-  *
-  * @struct:
-  *   FT_Incremental_Metrics
-  *
-  * @description:
-  *   A small structure used to contain the basic glyph metrics returned
-  *   by the @FT_Incremental_GetGlyphMetricsFunc method.
-  *
-  * @fields:
-  *   bearing_x ::
-  *     Left bearing, in font units.
-  *
-  *   bearing_y ::
-  *     Top bearing, in font units.
-  *
-  *   advance ::
-  *     Glyph advance, in font units.
-  *
-  * @note:
-  *   These correspond to horizontal or vertical metrics depending on the
-  *   value of the 'vertical' argument to the function
-  *   @FT_Incremental_GetGlyphMetricsFunc.
-  */
-  typedef struct  FT_Incremental_MetricsRec_
-  {
-    FT_Long  bearing_x;
-    FT_Long  bearing_y;
-    FT_Long  advance;
-
-  } FT_Incremental_MetricsRec, *FT_Incremental_Metrics;
-
-
- /***************************************************************************
-  *
-  * @type:
-  *   FT_Incremental_GetGlyphDataFunc
-  *
-  * @description:
-  *   A function called by FreeType to access a given glyph's data bytes
-  *   during @FT_Load_Glyph or @FT_Load_Char if incremental loading is
-  *   enabled.
-  *
-  *   Note that the format of the glyph's data bytes depends on the font
-  *   file format.  For TrueType, it must correspond to the raw bytes within
-  *   the 'glyf' table.  For Postscript formats, it must correspond to the
-  *   *unencrypted* charstring bytes, without any 'lenIV' header.  It is
-  *   undefined for any other format.
-  *
-  * @input:
-  *   incremental ::
-  *     Handle to an opaque @FT_Incremental handle provided by the client
-  *     application.
-  *
-  *   glyph_index ::
-  *     Index of relevant glyph.
-  *
-  * @output:
-  *   adata ::
-  *     A structure describing the returned glyph data bytes (which will be
-  *     accessed as a read-only byte block).
-  *
-  * @return:
-  *   FreeType error code.  0 means success.
-  *
-  * @note:
-  *   If this function returns succesfully the method
-  *   @FT_Incremental_FreeGlyphDataFunc will be called later to release
-  *   the data bytes.
-  *
-  *   Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for
-  *   compound glyphs.
-  */
-  typedef FT_Error
-  (*FT_Incremental_GetGlyphDataFunc)( FT_Incremental  incremental,
-                                      FT_UInt         glyph_index,
-                                      FT_Data*        adata );
-
-
- /***************************************************************************
-  *
-  * @type:
-  *   FT_Incremental_FreeGlyphDataFunc
-  *
-  * @description:
-  *   A function used to release the glyph data bytes returned by a
-  *   successful call to @FT_Incremental_GetGlyphDataFunc.
-  *
-  * @input:
-  *   incremental ::
-  *     A handle to an opaque @FT_Incremental handle provided by the client
-  *     application.
-  *
-  *   data ::
-  *     A structure describing the glyph data bytes (which will be accessed
-  *     as a read-only byte block).
-  */
-  typedef void
-  (*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental  incremental,
-                                       FT_Data*        data );
-
-
- /***************************************************************************
-  *
-  * @type:
-  *   FT_Incremental_GetGlyphMetricsFunc
-  *
-  * @description:
-  *   A function used to retrieve the basic metrics of a given glyph index
-  *   before accessing its data.  This is necessary because, in certain
-  *   formats like TrueType, the metrics are stored in a different place from
-  *   the glyph images proper.
-  *
-  * @input:
-  *   incremental ::
-  *     A handle to an opaque @FT_Incremental handle provided by the client
-  *     application.
-  *
-  *   glyph_index ::
-  *     Index of relevant glyph.
-  *
-  *   vertical ::
-  *     If true, return vertical metrics.
-  *
-  *   ametrics ::
-  *     This parameter is used for both input and output.
-  *     The original glyph metrics, if any, in font units.  If metrics are
-  *     not available all the values must be set to zero.
-  *
-  * @output:
-  *   ametrics ::
-  *     The replacement glyph metrics in font units.
-  *
-  */
-  typedef FT_Error
-  (*FT_Incremental_GetGlyphMetricsFunc)
-                      ( FT_Incremental              incremental,
-                        FT_UInt                     glyph_index,
-                        FT_Bool                     vertical,
-                        FT_Incremental_MetricsRec  *ametrics );
-
-
-  /**************************************************************************
-   *
-   * @struct:
-   *   FT_Incremental_FuncsRec
-   * 
-   * @description:
-   *   A table of functions for accessing fonts that load data
-   *   incrementally.  Used in @FT_Incremental_InterfaceRec.
-   * 
-   * @fields:
-   *   get_glyph_data ::
-   *     The function to get glyph data.  Must not be null.
-   *
-   *   free_glyph_data ::
-   *     The function to release glyph data.  Must not be null.
-   *
-   *   get_glyph_metrics ::
-   *     The function to get glyph metrics.  May be null if the font does
-   *     not provide overriding glyph metrics. 
-   */
-  typedef struct  FT_Incremental_FuncsRec_
-  {
-    FT_Incremental_GetGlyphDataFunc     get_glyph_data;
-    FT_Incremental_FreeGlyphDataFunc    free_glyph_data;
-    FT_Incremental_GetGlyphMetricsFunc  get_glyph_metrics;
-
-  } FT_Incremental_FuncsRec;
-
-
- /***************************************************************************
-  *
-  * @struct:
-  *   FT_Incremental_InterfaceRec
-  *
-  * @description:
-  *   A structure to be used with @FT_Open_Face to indicate that the user
-  *   wants to support incremental glyph loading.  You should use it with
-  *   @FT_PARAM_TAG_INCREMENTAL as in the following example:
-  *
-  *     {
-  *       FT_Incremental_InterfaceRec  inc_int;
-  *       FT_Parameter                 parameter;
-  *       FT_Open_Args                 open_args;
-  *
-  *
-  *       // set up incremental descriptor
-  *       inc_int.funcs  = my_funcs;
-  *       inc_int.object = my_object;
-  *
-  *       // set up optional parameter
-  *       parameter.tag  = FT_PARAM_TAG_INCREMENTAL;
-  *       parameter.data = &inc_int;
-  *
-  *       // set up FT_Open_Args structure
-  *       open_args.flags      = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
-  *       open_args.pathname   = my_font_pathname;
-  *       open_args.num_params = 1;
-  *       open_args.params     = &parameter; // we use one optional argument
-  *
-  *       // open the font
-  *       error = FT_Open_Face( library, &open_args, index, &face );
-  *       ...
-  *     }
-  */
-  typedef struct  FT_Incremental_InterfaceRec_
-  {
-    const FT_Incremental_FuncsRec*  funcs;
-    FT_Incremental                  object;
-  
-  } FT_Incremental_InterfaceRec;
-
-
- /***************************************************************************
-  *
-  * @constant:
-  *   FT_PARAM_TAG_INCREMENTAL
-  *
-  * @description:
-  *   A constant used as the tag of @FT_Parameter structures to indicate
-  *   an incremental loading object to be used by FreeType.
-  *
-  */
-#define FT_PARAM_TAG_INCREMENTAL  FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
-
- /* */  
-
-FT_END_HEADER
-
-#endif /* __FTINCREM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftlist.h b/nx-X11/extras/freetype2/include/freetype/ftlist.h
deleted file mode 100644
index ae9801b9d..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftlist.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftlist.h                                                               */
-/*                                                                         */
-/*    Generic list support for FreeType (specification).                   */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  This file implements functions relative to list processing.  Its     */
-  /*  data structures are defined in `freetype.h'.                         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTLIST_H__
-#define __FTLIST_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    list_processing                                                    */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    List Processing                                                    */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Simple management of lists.                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains various definitions related to list          */
-  /*    processing using doubly-linked nodes.                              */
-  /*                                                                       */
-  /* <Order>                                                               */
-  /*    FT_List                                                            */
-  /*    FT_ListNode                                                        */
-  /*    FT_ListRec                                                         */
-  /*    FT_ListNodeRec                                                     */
-  /*                                                                       */
-  /*    FT_List_Add                                                        */
-  /*    FT_List_Insert                                                     */
-  /*    FT_List_Find                                                       */
-  /*    FT_List_Remove                                                     */
-  /*    FT_List_Up                                                         */
-  /*    FT_List_Iterate                                                    */
-  /*    FT_List_Iterator                                                   */
-  /*    FT_List_Finalize                                                   */
-  /*    FT_List_Destructor                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Find                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finds the list node for a given listed object.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    list :: A pointer to the parent list.                              */
-  /*    data :: The address of the listed object.                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    List node.  NULL if it wasn't found.                               */
-  /*                                                                       */
-  FT_EXPORT( FT_ListNode )
-  FT_List_Find( FT_List  list,
-                void*    data );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Add                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Appends an element to the end of a list.                           */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    list :: A pointer to the parent list.                              */
-  /*    node :: The node to append.                                        */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_List_Add( FT_List      list,
-               FT_ListNode  node );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Insert                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Inserts an element at the head of a list.                          */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    list :: A pointer to parent list.                                  */
-  /*    node :: The node to insert.                                        */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_List_Insert( FT_List      list,
-                  FT_ListNode  node );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Remove                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Removes a node from a list.  This function doesn't check whether   */
-  /*    the node is in the list!                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    node :: The node to remove.                                        */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    list :: A pointer to the parent list.                              */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_List_Remove( FT_List      list,
-                  FT_ListNode  node );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Up                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Moves a node to the head/top of a list.  Used to maintain LRU      */
-  /*    lists.                                                             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    list :: A pointer to the parent list.                              */
-  /*    node :: The node to move.                                          */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_List_Up( FT_List      list,
-              FT_ListNode  node );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_List_Iterator                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An FT_List iterator function which is called during a list parse   */
-  /*    by FT_List_Iterate().                                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    node :: The current iteration list node.                           */
-  /*                                                                       */
-  /*    user :: A typeless pointer passed to FT_List_Iterate().            */
-  /*            Can be used to point to the iteration's state.             */
-  /*                                                                       */
-  typedef FT_Error
-  (*FT_List_Iterator)( FT_ListNode  node,
-                       void*        user );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Iterate                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Parses a list and calls a given iterator function on each element. */
-  /*    Note that parsing is stopped as soon as one of the iterator calls  */
-  /*    returns a non-zero value.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    list     :: A handle to the list.                                  */
-  /*    iterator :: An interator function, called on each node of the      */
-  /*                list.                                                  */
-  /*    user     :: A user-supplied field which is passed as the second    */
-  /*                argument to the iterator.                              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result (a FreeType error code) of the last iterator call.      */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_List_Iterate( FT_List           list,
-                   FT_List_Iterator  iterator,
-                   void*             user );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_List_Destructor                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An FT_List iterator function which is called during a list         */
-  /*    finalization by FT_List_Finalize() to destroy all elements in a    */
-  /*    given list.                                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    system :: The current system object.                               */
-  /*                                                                       */
-  /*    data   :: The current object to destroy.                           */
-  /*                                                                       */
-  /*    user   :: A typeless pointer passed to FT_List_Iterate().  It can  */
-  /*              be used to point to the iteration's state.               */
-  /*                                                                       */
-  typedef void
-  (*FT_List_Destructor)( FT_Memory  memory,
-                         void*      data,
-                         void*      user );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_List_Finalize                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys all elements in the list as well as the list itself.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    list    :: A handle to the list.                                   */
-  /*                                                                       */
-  /*    destroy :: A list destructor that will be applied to each element  */
-  /*               of the list.                                            */
-  /*                                                                       */
-  /*    memory  :: The current memory object which handles deallocation.   */
-  /*                                                                       */
-  /*    user    :: A user-supplied field which is passed as the last       */
-  /*               argument to the destructor.                             */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_List_Finalize( FT_List             list,
-                    FT_List_Destructor  destroy,
-                    FT_Memory           memory,
-                    void*               user );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTLIST_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftlzw.h b/nx-X11/extras/freetype2/include/freetype/ftlzw.h
deleted file mode 100644
index a0a042ea0..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftlzw.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftlzw.h                                                                */
-/*                                                                         */
-/*    LZW-compressed stream support.                                       */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTLZW_H__
-#define __FTLZW_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    lzw                                                                */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    LZW Streams                                                        */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Using LZW-compressed font files                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the declaration of LZW-specific functions.   */
-  /*                                                                       */
-  /*************************************************************************/
-
- /************************************************************************
-  *
-  * @function:
-  *   FT_Stream_OpenLZW
-  *
-  * @description:
-  *   Open a new stream to parse LZW-compressed font files.  This is
-  *   mainly used to support the compressed *.pcf.Z fonts that come
-  *   with XFree86.
-  *
-  * @input:
-  *   stream :: The target embedding stream.
-  *
-  *   source :: The source stream.
-  *
-  * @return:
-  *   FreeType error code.  0 means success.
-  *
-  * @note:
-  *   The source stream must be opened _before_ calling this function.
-  *
-  *   Calling the internal function FT_Stream_Close on the new stream will
-  *   *not* call FT_Stream_Close on the source stream.  None of the stream
-  *   objects will be released to the heap.
-  *
-  *   The stream implementation is very basic and resets the decompression
-  *   process each time seeking backwards is needed within the stream
-  *
-  *   In certain builds of the library, LZW compression recognition is
-  *   automatically handled when calling @FT_New_Face or @FT_Open_Face.
-  *   This means that if no font driver is capable of handling the raw
-  *   compressed file, the library will try to open a LZW stream from it
-  *   and re-open the face with it.
-  *
-  *   This function may return "FT_Err_Unimplemented" if your build of
-  *   FreeType was not compiled with LZW support.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Stream_OpenLZW( FT_Stream  stream,
-                     FT_Stream  source );
-
- /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTLZW_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftmac.h b/nx-X11/extras/freetype2/include/freetype/ftmac.h
deleted file mode 100644
index 78ed77947..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftmac.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmac.h                                                                */
-/*                                                                         */
-/*    Additional Mac-specific API.                                         */
-/*                                                                         */
-/*  Copyright 1996-2001, 2004 by                                           */
-/*  Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.     */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-/***************************************************************************/
-/*                                                                         */
-/* NOTE: Include this file after <freetype/freetype.h> and after the       */
-/*       Mac-specific <Types.h> header (or any other Mac header that       */
-/*       includes <Types.h>); we use Handle type.                          */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTMAC_H__
-#define __FTMAC_H__
-
-
-#include <ft2build.h>
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    mac_specific                                                       */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Mac-Specific Interface                                             */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Only available on the Macintosh.                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The following definitions are only available if FreeType is        */
-  /*    compiled on a Macintosh.                                           */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Face_From_FOND                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new face object from an FOND resource.                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library resource.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    fond       :: An FOND resource.                                    */
-  /*                                                                       */
-  /*    face_index :: Only supported for the -1 `sanity check' special     */
-  /*                  case.                                                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aface      :: A handle to a new face object.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Notes>                                                               */
-  /*    This function can be used to create FT_Face abjects from fonts     */
-  /*    that are installed in the system like so:                          */
-  /*                                                                       */
-  /*    {                                                                  */
-  /*      fond = GetResource( 'FOND', fontName );                          */
-  /*      error = FT_New_Face_From_FOND( library, fond, 0, &face );        */
-  /*    }                                                                  */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_New_Face_From_FOND( FT_Library  library,
-                         Handle      fond,
-                         FT_Long     face_index,
-                         FT_Face    *aface );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_GetFile_From_Mac_Name                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns an FSSpec for the disk file containing the named font.     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    fontName   :: Mac OS name of the font (eg. Times New Roman Bold).  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    pathSpec   :: FSSpec to the file.  For passing to @FT_New_Face.    */
-  /*                                                                       */
-  /*    face_index :: Index of the face.  For passing to @FT_New_Face.     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_GetFile_From_Mac_Name( const char*  fontName, 
-                            FSSpec*      pathSpec,
-                            FT_Long*     face_index );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Face_From_FSSpec                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new face object from a given resource and typeface index */
-  /*    using an FSSpec to the font file.                                  */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library resource.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    spec       :: FSSpec to the font file.                             */
-  /*                                                                       */
-  /*    face_index :: The index of the face within the resource.  The      */
-  /*                  first face has index 0.                              */
-  /* <Output>                                                              */
-  /*    aface      :: A handle to a new face object.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    @FT_New_Face_From_FSSpec is identical to @FT_New_Face except       */
-  /*    it accepts an FSSpec instead of a path.                            */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_New_Face_From_FSSpec( FT_Library     library,
-                           const FSSpec  *spec,
-                           FT_Long        face_index,
-                           FT_Face       *aface );
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __FTMAC_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftmm.h b/nx-X11/extras/freetype2/include/freetype/ftmm.h
deleted file mode 100644
index 525b5c08e..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftmm.h
+++ /dev/null
@@ -1,378 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmm.h                                                                 */
-/*                                                                         */
-/*    FreeType Multiple Master font interface (specification).             */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTMM_H__
-#define __FTMM_H__
-
-
-#include <ft2build.h>
-#include FT_TYPE1_TABLES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    multiple_masters                                                   */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Multiple Masters                                                   */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    How to manage Multiple Masters fonts.                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The following types and functions are used to manage Multiple      */
-  /*    Master fonts, i.e. the selection of specific design instances by   */
-  /*    setting design axis coordinates.                                   */
-  /*                                                                       */
-  /*    George Williams has extended this interface to make it work with   */
-  /*    both Type 1 Multiple Masters fonts, and GX distortable (var)       */
-  /*    fonts.  Some of these routines only work with MM fonts, others     */
-  /*    will work with both types.  They are similar enough that a         */
-  /*    consistent interface makes sense.                                  */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_MM_Axis                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to model a given axis in design space for  */
-  /*    Multiple Masters fonts.                                            */
-  /*                                                                       */
-  /*    This structure can't be used for GX var fonts.                     */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    name    :: The axis's name.                                        */
-  /*                                                                       */
-  /*    minimum :: The axis's minimum design coordinate.                   */
-  /*                                                                       */
-  /*    maximum :: The axis's maximum design coordinate.                   */
-  /*                                                                       */
-  typedef struct  FT_MM_Axis_
-  {
-    FT_String*  name;
-    FT_Long     minimum;
-    FT_Long     maximum;
-
-  } FT_MM_Axis;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Multi_Master                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model the axes and space of a Multiple Masters */
-  /*    font.                                                              */
-  /*                                                                       */
-  /*    This structure can't be used for GX var fonts.                     */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_axis    :: Number of axes.  Cannot exceed 4.                   */
-  /*                                                                       */
-  /*    num_designs :: Number of designs; should ne normally 2^num_axis    */
-  /*                   even though the Type 1 specification strangely      */
-  /*                   allows for intermediate designs to be present. This */
-  /*                   number cannot exceed 16.                            */
-  /*                                                                       */
-  /*    axis        :: A table of axis descriptors.                        */
-  /*                                                                       */
-  typedef struct  FT_Multi_Master_
-  {
-    FT_UInt     num_axis;
-    FT_UInt     num_designs;
-    FT_MM_Axis  axis[T1_MAX_MM_AXIS];
-
-  } FT_Multi_Master;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Var_Axis                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to model a given axis in design space for  */
-  /*    Multiple Masters and GX var fonts.                                 */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    name    :: The axis's name.                                        */
-  /*               Not always meaningful for GX.                           */
-  /*                                                                       */
-  /*    minimum :: The axis's minimum design coordinate.                   */
-  /*                                                                       */
-  /*    def     :: The axis's default design coordinate.                   */
-  /*               FreeType computes meaningful default values for MM; it  */
-  /*               is then an integer value, not in 16.16 format.          */
-  /*                                                                       */
-  /*    maximum :: The axis's maximum design coordinate.                   */
-  /*                                                                       */
-  /*    tag     :: The axis's tag (the GX equivalent to `name').           */
-  /*               FreeType provides default values for MM if possible.    */
-  /*                                                                       */
-  /*    strid   :: The entry in `name' table (another GX version of        */
-  /*               `name').                                                */
-  /*               Not meaningful for MM.                                  */
-  /*                                                                       */
-  typedef struct  FT_Var_Axis_
-  {
-    FT_String*  name;
-
-    FT_Fixed    minimum;
-    FT_Fixed    def;
-    FT_Fixed    maximum;
-
-    FT_ULong    tag;
-    FT_UInt     strid;
-
-  } FT_Var_Axis;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Var_Named_Style                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to model a named style in a GX var font.   */
-  /*                                                                       */
-  /*    This structure can't be used for MM fonts.                         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    coords :: The design coordinates for this style.                   */
-  /*              This is an array with one entry for each axis.           */
-  /*                                                                       */
-  /*    strid  :: The entry in `name' table identifying this style.        */
-  /*                                                                       */
-  typedef struct  FT_Var_Named_Style_
-  {
-    FT_Fixed*  coords;
-    FT_UInt    strid;
-
-  } FT_Var_Named_Style;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_MM_Var                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model the axes and space of a Multiple Masters */
-  /*    or GX var distortable font.                                        */
-  /*                                                                       */
-  /*    Some fields are specific to one format and not to the other.       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_axis        :: The number of axes.  The maximum value is 4 for */
-  /*                       MM; no limit in GX.                             */
-  /*                                                                       */
-  /*    num_designs     :: The number of designs; should be normally       */
-  /*                       2^num_axis for MM fonts.  Not meaningful for GX */
-  /*                       (where every glyph could have a different       */
-  /*                       number of designs).                             */
-  /*                                                                       */
-  /*    num_namedstyles :: The number of named styles; only meaningful for */
-  /*                       GX which allows certain design coordinates to   */
-  /*                       have a string ID (in the `name' table)          */
-  /*                       associated with them.  The font can tell the    */
-  /*                       user that, for example, Weight=1.5 is `Bold'.   */
-  /*                                                                       */
-  /*    axis            :: A table of axis descriptors.                    */
-  /*                       GX fonts contain slightly more data than MM.    */
-  /*                                                                       */
-  /*    namedstyles     :: A table of named styles.                        */
-  /*                       Only meaningful with GX.                        */
-  /*                                                                       */
-  typedef struct  FT_MM_Var_
-  {
-    FT_UInt              num_axis;
-    FT_UInt              num_designs;
-    FT_UInt              num_namedstyles;
-    FT_Var_Axis*         axis;
-    FT_Var_Named_Style*  namedstyle;
-
-  } FT_MM_Var;
-
-
-  /* */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Multi_Master                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the Multiple Master descriptor of a given font.          */
-  /*                                                                       */
-  /*    This function can't be used with GX fonts.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face    :: A handle to the source face.                            */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    amaster :: The Multiple Masters descriptor.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Get_Multi_Master( FT_Face           face,
-                       FT_Multi_Master  *amaster );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_MM_Var                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the Multiple Master/GX var descriptor of a given font.   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face    :: A handle to the source face.                            */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    amaster :: The Multiple Masters descriptor.                        */
-  /*               Allocates a data structure, which the user must free    */
-  /*               (a single call to FT_FREE will do it).                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Get_MM_Var( FT_Face      face,
-                 FT_MM_Var*  *amaster );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_MM_Design_Coordinates                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    For Multiple Masters fonts, choose an interpolated font design     */
-  /*    through design coordinates.                                        */
-  /*                                                                       */
-  /*    This function can't be used with GX fonts.                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: A handle to the source face.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    num_coords :: The number of design coordinates (must be equal to   */
-  /*                  the number of axes in the font).                     */
-  /*                                                                       */
-  /*    coords     :: An array of design coordinates.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_MM_Design_Coordinates( FT_Face   face,
-                                FT_UInt   num_coords,
-                                FT_Long*  coords );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Var_Design_Coordinates                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    For Multiple Master or GX Var fonts, choose an interpolated font   */
-  /*    design through design coordinates.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: A handle to the source face.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    num_coords :: The number of design coordinates (must be equal to   */
-  /*                  the number of axes in the font).                     */
-  /*                                                                       */
-  /*    coords     :: An array of design coordinates.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_Var_Design_Coordinates( FT_Face    face,
-                                 FT_UInt    num_coords,
-                                 FT_Fixed*  coords );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_MM_Blend_Coordinates                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    For Multiple Masters and GX var fonts, choose an interpolated font */
-  /*    design through normalized blend coordinates.                       */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: A handle to the source face.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    num_coords :: The number of design coordinates (must be equal to   */
-  /*                  the number of axes in the font).                     */
-  /*                                                                       */
-  /*    coords     :: The design coordinates array (each element must be   */
-  /*                  between 0 and 1.0).                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_MM_Blend_Coordinates( FT_Face    face,
-                               FT_UInt    num_coords,
-                               FT_Fixed*  coords );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Var_Blend_Coordinates                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This is another name of @FT_Set_MM_Blend_Coordinates.              */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_Var_Blend_Coordinates( FT_Face    face,
-                                FT_UInt    num_coords,
-                                FT_Fixed*  coords );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTMM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftmodapi.h b/nx-X11/extras/freetype2/include/freetype/ftmodapi.h
deleted file mode 100644
index 1929ca025..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftmodapi.h
+++ /dev/null
@@ -1,319 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmodapi.h                                                             */
-/*                                                                         */
-/*    FreeType modules public interface (specification).                   */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTMODAPI_H__
-#define __FTMODAPI_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    module_management                                                  */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Module Management                                                  */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    How to add, upgrade, and remove modules from FreeType.             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The definitions below are used to manage modules within FreeType.  */
-  /*    Modules can be added, upgraded, and removed at runtime.            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* module bit flags */
-#define FT_MODULE_FONT_DRIVER         1  /* this module is a font driver  */
-#define FT_MODULE_RENDERER            2  /* this module is a renderer     */
-#define FT_MODULE_HINTER              4  /* this module is a glyph hinter */
-#define FT_MODULE_STYLER              8  /* this module is a styler       */
-
-#define FT_MODULE_DRIVER_SCALABLE     0x100   /* the driver supports      */
-                                              /* scalable fonts           */
-#define FT_MODULE_DRIVER_NO_OUTLINES  0x200   /* the driver does not      */
-                                              /* support vector outlines  */
-#define FT_MODULE_DRIVER_HAS_HINTER   0x400   /* the driver provides its  */
-                                              /* own hinter               */
-
-
-  /* deprecated values */
-#define ft_module_font_driver         FT_MODULE_FONT_DRIVER
-#define ft_module_renderer            FT_MODULE_RENDERER
-#define ft_module_hinter              FT_MODULE_HINTER
-#define ft_module_styler              FT_MODULE_STYLER
-
-#define ft_module_driver_scalable     FT_MODULE_DRIVER_SCALABLE
-#define ft_module_driver_no_outlines  FT_MODULE_DRIVER_NO_OUTLINES
-#define ft_module_driver_has_hinter   FT_MODULE_DRIVER_HAS_HINTER
-
-
-  typedef FT_Pointer  FT_Module_Interface;
-
-  typedef FT_Error
-  (*FT_Module_Constructor)( FT_Module  module );
-
-  typedef void
-  (*FT_Module_Destructor)( FT_Module  module );
-
-  typedef FT_Module_Interface 
-  (*FT_Module_Requester)( FT_Module    module,
-                          const char*  name );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Module_Class                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The module class descriptor.                                       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    module_flags      :: Bit flags describing the module.              */
-  /*                                                                       */
-  /*    module_size       :: The size of one module object/instance in     */
-  /*                         bytes.                                        */
-  /*                                                                       */
-  /*    module_name       :: The name of the module.                       */
-  /*                                                                       */
-  /*    module_version    :: The version, as a 16.16 fixed number          */
-  /*                         (major.minor).                                */
-  /*                                                                       */
-  /*    module_requires   :: The version of FreeType this module requires  */
-  /*                         (starts at version 2.0, i.e 0x20000)          */
-  /*                                                                       */
-  /*    module_init       :: A function used to initialize (not create) a  */
-  /*                         new module object.                            */
-  /*                                                                       */
-  /*    module_done       :: A function used to finalize (not destroy) a   */
-  /*                         given module object                           */
-  /*                                                                       */
-  /*    get_interface     :: Queries a given module for a specific         */
-  /*                         interface by name.                            */
-  /*                                                                       */
-  typedef struct  FT_Module_Class_
-  {
-    FT_ULong               module_flags;
-    FT_Long                module_size;
-    const FT_String*       module_name;
-    FT_Fixed               module_version;
-    FT_Fixed               module_requires;
-
-    const void*            module_interface;
-
-    FT_Module_Constructor  module_init;
-    FT_Module_Destructor   module_done;
-    FT_Module_Requester    get_interface;
-
-  } FT_Module_Class;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Add_Module                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Adds a new module to a given library instance.                     */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library :: A handle to the library object.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    clazz   :: A pointer to class descriptor for the module.           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    An error will be returned if a module already exists by that name, */
-  /*    or if the module requires a version of FreeType that is too great. */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Add_Module( FT_Library              library,
-                 const FT_Module_Class*  clazz );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Module                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finds a module by its name.                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library     :: A handle to the library object.                     */
-  /*                                                                       */
-  /*    module_name :: The module's name (as an ASCII string).             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A module handle.  0 if none was found.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You should better be familiar with FreeType internals to know      */
-  /*    which module to look for :-)                                       */
-  /*                                                                       */
-  FT_EXPORT( FT_Module )
-  FT_Get_Module( FT_Library   library,
-                 const char*  module_name );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Remove_Module                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Removes a given module from a library instance.                    */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library :: A handle to a library object.                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    module  :: A handle to a module object.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The module object is destroyed by the function in case of success. */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Remove_Module( FT_Library  library,
-                    FT_Module   module );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Library                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used to create a new FreeType library instance    */
-  /*    from a given memory object.  It is thus possible to use libraries  */
-  /*    with distinct memory allocators within the same program.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory   :: A handle to the original memory object.                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    alibrary :: A pointer to handle of a new library object.           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_New_Library( FT_Memory    memory,
-                  FT_Library  *alibrary );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_Library                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Discards a given library object.  This closes all drivers and      */
-  /*    discards all resource objects.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A handle to the target library.                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Done_Library( FT_Library  library );
-
-
-
-  typedef void
-  (*FT_DebugHook_Func)( void*  arg );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Debug_Hook                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets a debug hook function for debugging the interpreter of a font */
-  /*    format.                                                            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    hook_index :: The index of the debug hook.  You should use the     */
-  /*                  values defined in ftobjs.h, e.g.                     */
-  /*                  FT_DEBUG_HOOK_TRUETYPE.                              */
-  /*                                                                       */
-  /*    debug_hook :: The function used to debug the interpreter.          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Currently, four debug hook slots are available, but only two (for  */
-  /*    the TrueType and the Type 1 interpreter) are defined.              */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Set_Debug_Hook( FT_Library         library,
-                     FT_UInt            hook_index,
-                     FT_DebugHook_Func  debug_hook );
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Add_Default_Modules                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Adds the set of default drivers to a given library object.         */
-  /*    This is only useful when you create a library object with          */
-  /*    FT_New_Library() (usually to plug a custom memory manager).        */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library :: A handle to a new library object.                       */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Add_Default_Modules( FT_Library  library );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTMODAPI_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftmoderr.h b/nx-X11/extras/freetype2/include/freetype/ftmoderr.h
deleted file mode 100644
index d190167fa..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftmoderr.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmoderr.h                                                             */
-/*                                                                         */
-/*    FreeType module error offsets (specification).                       */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003, 2004 by                                    */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the FreeType module error offsets.        */
-  /*                                                                       */
-  /* The lower byte gives the error code, the higher byte gives the        */
-  /* module.  The base module has error offset 0.  For example, the error  */
-  /* `FT_Err_Invalid_File_Format' has value 0x003, the error               */
-  /* `TT_Err_Invalid_File_Format' has value 0x1003, the error              */
-  /* `T1_Err_Invalid_File_Format' has value 0x1103, etc.                   */
-  /*                                                                       */
-  /* Undefine the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in ftoption.h   */
-  /* to make the higher byte always zero (disabling the module error       */
-  /* mechanism).                                                           */
-  /*                                                                       */
-  /* It can also be used to create a module error message table easily     */
-  /* with something like                                                   */
-  /*                                                                       */
-  /*   {                                                                   */
-  /*     #undef __FTMODERR_H__                                             */
-  /*     #define FT_MODERRDEF( e, v, s )  { FT_Mod_Err_ ## e, s },         */
-  /*     #define FT_MODERR_START_LIST     {                                */
-  /*     #define FT_MODERR_END_LIST       { 0, 0 } };                      */
-  /*                                                                       */
-  /*     const struct                                                      */
-  /*     {                                                                 */
-  /*       int          mod_err_offset;                                    */
-  /*       const char*  mod_err_msg                                        */
-  /*     } ft_mod_errors[] =                                               */
-  /*                                                                       */
-  /*     #include FT_MODULE_ERRORS_H                                       */
-  /*   }                                                                   */
-  /*                                                                       */
-  /* To use such a table, all errors must be ANDed with 0xFF00 to remove   */
-  /* the error code.                                                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTMODERR_H__
-#define __FTMODERR_H__
-
-
-  /*******************************************************************/
-  /*******************************************************************/
-  /*****                                                         *****/
-  /*****                       SETUP MACROS                      *****/
-  /*****                                                         *****/
-  /*******************************************************************/
-  /*******************************************************************/
-
-
-#undef  FT_NEED_EXTERN_C
-
-#ifndef FT_MODERRDEF
-
-#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS
-#define FT_MODERRDEF( e, v, s )  FT_Mod_Err_ ## e = v,
-#else
-#define FT_MODERRDEF( e, v, s )  FT_Mod_Err_ ## e = 0,
-#endif
-
-#define FT_MODERR_START_LIST  enum {
-#define FT_MODERR_END_LIST    FT_Mod_Err_Max };
-
-#ifdef __cplusplus
-#define FT_NEED_EXTERN_C
-  extern "C" {
-#endif
-
-#endif /* !FT_MODERRDEF */
-
-
-  /*******************************************************************/
-  /*******************************************************************/
-  /*****                                                         *****/
-  /*****               LIST MODULE ERROR BASES                   *****/
-  /*****                                                         *****/
-  /*******************************************************************/
-  /*******************************************************************/
-
-
-#ifdef FT_MODERR_START_LIST
-  FT_MODERR_START_LIST
-#endif
-
-
-  FT_MODERRDEF( Base,      0x000, "base module" )
-  FT_MODERRDEF( Autohint,  0x100, "autohinter module" )
-  FT_MODERRDEF( BDF,       0x200, "BDF module" )
-  FT_MODERRDEF( Cache,     0x300, "cache module" )
-  FT_MODERRDEF( CFF,       0x400, "CFF module" )
-  FT_MODERRDEF( CID,       0x500, "CID module" )
-  FT_MODERRDEF( Gzip,      0x600, "Gzip module" )
-  FT_MODERRDEF( LZW,       0x700, "LZW module" )
-  FT_MODERRDEF( PCF,       0x800, "PCF module" )
-  FT_MODERRDEF( PFR,       0x900, "PFR module" )
-  FT_MODERRDEF( PSaux,     0xA00, "PS auxiliary module" )
-  FT_MODERRDEF( PShinter,  0xB00, "PS hinter module" )
-  FT_MODERRDEF( PSnames,   0xC00, "PS names module" )
-  FT_MODERRDEF( Raster,    0xD00, "raster module" )
-  FT_MODERRDEF( SFNT,      0xE00, "SFNT module" )
-  FT_MODERRDEF( Smooth,    0xF00, "smooth raster module" )
-  FT_MODERRDEF( TrueType, 0x1000, "TrueType module" )
-  FT_MODERRDEF( Type1,    0x1100, "Type 1 module" )
-  FT_MODERRDEF( Type42,   0x1200, "Type 42 module" )
-  FT_MODERRDEF( Winfonts, 0x1300, "Windows FON/FNT module" )
-
-
-#ifdef FT_MODERR_END_LIST
-  FT_MODERR_END_LIST
-#endif
-
-
-  /*******************************************************************/
-  /*******************************************************************/
-  /*****                                                         *****/
-  /*****                      CLEANUP                            *****/
-  /*****                                                         *****/
-  /*******************************************************************/
-  /*******************************************************************/
-
-
-#ifdef FT_NEED_EXTERN_C
-  }
-#endif
-
-#undef FT_MODERR_START_LIST
-#undef FT_MODERR_END_LIST
-#undef FT_MODERRDEF
-#undef FT_NEED_EXTERN_C
-
-
-#endif /* __FTMODERR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftoutln.h b/nx-X11/extras/freetype2/include/freetype/ftoutln.h
deleted file mode 100644
index 79ed35b59..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftoutln.h
+++ /dev/null
@@ -1,472 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftoutln.h                                                              */
-/*                                                                         */
-/*    Support for the FT_Outline type used to store glyph shapes of        */
-/*    most scalable font formats (specification).                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTOUTLN_H__
-#define __FTOUTLN_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    outline_processing                                                 */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Outline Processing                                                 */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Functions to create, transform, and render vectorial glyph images. */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains routines used to create and destroy scalable */
-  /*    glyph images known as `outlines'.  These can also be measured,     */
-  /*    transformed, and converted into bitmaps and pixmaps.               */
-  /*                                                                       */
-  /* <Order>                                                               */
-  /*    FT_Outline                                                         */
-  /*    FT_OUTLINE_FLAGS                                                   */
-  /*    FT_Outline_New                                                     */
-  /*    FT_Outline_Done                                                    */
-  /*    FT_Outline_Copy                                                    */
-  /*    FT_Outline_Translate                                               */
-  /*    FT_Outline_Transform                                               */
-  /*    FT_Outline_Reverse                                                 */
-  /*    FT_Outline_Check                                                   */
-  /*                                                                       */
-  /*    FT_Outline_Get_CBox                                                */
-  /*    FT_Outline_Get_BBox                                                */
-  /*                                                                       */
-  /*    FT_Outline_Get_Bitmap                                              */
-  /*    FT_Outline_Render                                                  */
-  /*                                                                       */
-  /*    FT_Outline_Decompose                                               */
-  /*    FT_Outline_Funcs                                                   */
-  /*    FT_Outline_MoveTo_Func                                             */
-  /*    FT_Outline_LineTo_Func                                             */
-  /*    FT_Outline_ConicTo_Func                                            */
-  /*    FT_Outline_CubicTo_Func                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Decompose                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Walks over an outline's structure to decompose it into individual  */
-  /*    segments and Bezier arcs.  This function is also able to emit      */
-  /*    `move to' and `close to' operations to indicate the start and end  */
-  /*    of new contours in the outline.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    outline        :: A pointer to the source target.                  */
-  /*                                                                       */
-  /*    func_interface :: A table of `emitters', i.e,. function pointers   */
-  /*                      called during decomposition to indicate path     */
-  /*                      operations.                                      */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    user           :: A typeless pointer which is passed to each       */
-  /*                      emitter during the decomposition.  It can be     */
-  /*                      used to store the state during the               */
-  /*                      decomposition.                                   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means sucess.                              */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Decompose( FT_Outline*              outline,
-                        const FT_Outline_Funcs*  func_interface,
-                        void*                    user );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_New                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new outline of a given size.                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library     :: A handle to the library object from where the       */
-  /*                   outline is allocated.  Note however that the new    */
-  /*                   outline will NOT necessarily be FREED, when         */
-  /*                   destroying the library, by FT_Done_FreeType().      */
-  /*                                                                       */
-  /*    numPoints   :: The maximal number of points within the outline.    */
-  /*                                                                       */
-  /*    numContours :: The maximal number of contours within the outline.  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    anoutline   :: A handle to the new outline.  NULL in case of       */
-  /*                   error.                                              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The reason why this function takes a `library' parameter is simply */
-  /*    to use the library's memory allocator.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_New( FT_Library   library,
-                  FT_UInt      numPoints,
-                  FT_Int       numContours,
-                  FT_Outline  *anoutline );
-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_New_Internal( FT_Memory    memory,
-                           FT_UInt      numPoints,
-                           FT_Int       numContours,
-                           FT_Outline  *anoutline );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Done                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys an outline created with FT_Outline_New().                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A handle of the library object used to allocate the     */
-  /*               outline.                                                */
-  /*                                                                       */
-  /*    outline :: A pointer to the outline object to be discarded.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If the outline's `owner' field is not set, only the outline        */
-  /*    descriptor will be released.                                       */
-  /*                                                                       */
-  /*    The reason why this function takes an `library' parameter is       */
-  /*    simply to use FT_Free().                                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Done( FT_Library   library,
-                   FT_Outline*  outline );
-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Done_Internal( FT_Memory    memory,
-                            FT_Outline*  outline );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Check                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Check the contents of an outline descriptor.                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    outline :: A handle to a source outline.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Check( FT_Outline*  outline );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Get_CBox                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns an outline's `control box'.  The control box encloses all  */
-  /*    the outline's points, including Bezier control points.  Though it  */
-  /*    coincides with the exact bounding box for most glyphs, it can be   */
-  /*    slightly larger in some situations (like when rotating an outline  */
-  /*    which contains Bezier outside arcs).                               */
-  /*                                                                       */
-  /*    Computing the control box is very fast, while getting the bounding */
-  /*    box can take much more time as it needs to walk over all segments  */
-  /*    and arcs in the outline.  To get the latter, you can use the       */
-  /*    `ftbbox' component which is dedicated to this single task.         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    outline :: A pointer to the source outline descriptor.             */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    acbox   :: The outline's control box.                              */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Outline_Get_CBox( FT_Outline*  outline,
-                       FT_BBox     *acbox );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Translate                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Applies a simple translation to the points of an outline.          */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    outline :: A pointer to the target outline descriptor.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    xOffset :: The horizontal offset.                                  */
-  /*                                                                       */
-  /*    yOffset :: The vertical offset.                                    */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Outline_Translate( FT_Outline*  outline,
-                        FT_Pos       xOffset,
-                        FT_Pos       yOffset );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Copy                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Copies an outline into another one.  Both objects must have the    */
-  /*    same sizes (number of points & number of contours) when this       */
-  /*    function is called.                                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    source :: A handle to the source outline.                          */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    target :: A handle to the target outline.                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Copy( FT_Outline*  source,
-                   FT_Outline  *target );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Transform                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Applies a simple 2x2 matrix to all of an outline's points.  Useful */
-  /*    for applying rotations, slanting, flipping, etc.                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    outline :: A pointer to the target outline descriptor.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    matrix  :: A pointer to the transformation matrix.                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You can use FT_Outline_Translate() if you need to translate the    */
-  /*    outline's points.                                                  */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Outline_Transform( FT_Outline*  outline,
-                        FT_Matrix*   matrix );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Reverse                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Reverses the drawing direction of an outline.  This is used to     */
-  /*    ensure consistent fill conventions for mirrored glyphs.            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    outline :: A pointer to the target outline descriptor.             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This functions toggles the bit flag `FT_OUTLINE_REVERSE_FILL' in   */
-  /*    the outline's `flags' field.                                       */
-  /*                                                                       */
-  /*    It shouldn't be used by a normal client application, unless it     */
-  /*    knows what it is doing.                                            */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Outline_Reverse( FT_Outline*  outline );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Get_Bitmap                                              */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Renders an outline within a bitmap.  The outline's image is simply */
-  /*    OR-ed to the target bitmap.                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A handle to a FreeType library object.                  */
-  /*                                                                       */
-  /*    outline :: A pointer to the source outline descriptor.             */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    abitmap :: A pointer to the target bitmap descriptor.              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function does NOT CREATE the bitmap, it only renders an       */
-  /*    outline image within the one you pass to it!                       */
-  /*                                                                       */
-  /*    It will use the raster correponding to the default glyph format.   */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Get_Bitmap( FT_Library   library,
-                         FT_Outline*  outline,
-                         FT_Bitmap   *abitmap );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Render                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Renders an outline within a bitmap using the current scan-convert. */
-  /*    This functions uses an FT_Raster_Params structure as an argument,  */
-  /*    allowing advanced features like direct composition, translucency,  */
-  /*    etc.                                                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A handle to a FreeType library object.                  */
-  /*                                                                       */
-  /*    outline :: A pointer to the source outline descriptor.             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    params  :: A pointer to a FT_Raster_Params structure used to       */
-  /*               describe the rendering operation.                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You should know what you are doing and how FT_Raster_Params works  */
-  /*    to use this function.                                              */
-  /*                                                                       */
-  /*    The field `params.source' will be set to `outline' before the scan */
-  /*    converter is called, which means that the value you give to it is  */
-  /*    actually ignored.                                                  */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Outline_Render( FT_Library         library,
-                     FT_Outline*        outline,
-                     FT_Raster_Params*  params );
-
-
- /**************************************************************************
-  *
-  * @enum:
-  *   FT_Orientation
-  *  
-  * @description:
-  *   A list of values used to describe an outline's contour orientation.
-  *
-  *   The TrueType and Postscript specifications use different conventions
-  *   to determine whether outline contours should be filled or unfilled.
-  *   
-  * @values:
-  *   FT_ORIENTATION_TRUETYPE ::
-  *     According to the TrueType specification, clockwise contours must
-  *     be filled, and counter-clockwise ones must be unfilled.
-  *
-  *   FT_ORIENTATION_POSTSCRIPT ::
-  *     According to the Postscript specification, counter-clockwise contours
-  *     must be filled, and clockwise ones must be unfilled.
-  *
-  *   FT_ORIENTATION_FILL_RIGHT ::
-  *     This is identical to @FT_ORIENTATION_TRUETYPE, but is used to
-  *     remember that in TrueType, everything that is to the right of
-  *     the drawing direction of a contour must be filled.
-  *
-  *   FT_ORIENTATION_FILL_LEFT ::
-  *     This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to
-  *     remember that in Postscript, everything that is to the left of
-  *     the drawing direction of a contour must be filled.
-  */
-  typedef enum
-  {
-    FT_ORIENTATION_TRUETYPE   = 0,
-    FT_ORIENTATION_POSTSCRIPT = 1,
-    FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE,
-    FT_ORIENTATION_FILL_LEFT  = FT_ORIENTATION_POSTSCRIPT
-  
-  } FT_Orientation;
-
-
- /**************************************************************************
-  *
-  * @function:
-  *   FT_Outline_Get_Orientation
-  *  
-  * @description:
-  *   This function analyzes a glyph outline and tries to compute its
-  *   fill orientation (see @FT_Orientation).  This is done by computing
-  *   the direction of each global horizontal and/or vertical extrema
-  *   within the outline.
-  *
-  *   Note that this will return @FT_ORIENTATION_TRUETYPE for empty
-  *   outlines.
-  *
-  * @input:
-  *   outline ::
-  *     A handle to the source outline.
-  *
-  * @return:
-  *   The orientation.
-  *
-  */
-  FT_EXPORT( FT_Orientation )
-  FT_Outline_Get_Orientation( FT_Outline*  outline );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTOUTLN_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftpfr.h b/nx-X11/extras/freetype2/include/freetype/ftpfr.h
deleted file mode 100644
index c9a567544..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftpfr.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftpfr.h                                                                */
-/*                                                                         */
-/*    FreeType API for accessing PFR-specific data (specification only).   */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTPFR_H__
-#define __FTPFR_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    pfr_fonts                                                          */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    PFR Fonts                                                          */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    PFR/TrueDoc specific APIs                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the declaration of PFR-specific functions.   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
- /**********************************************************************
-  *
-  * @function:
-  *    FT_Get_PFR_Metrics
-  *
-  * @description:
-  *    Return the outline and metrics resolutions of a given PFR face.
-  *
-  * @input:
-  *    face :: Handle to the input face.  It can be a non-PFR face.
-  *
-  * @output:
-  *    aoutline_resolution ::
-  *      Outline resolution.  This is equivalent to `face->units_per_EM'.
-  *      Optional (parameter can be NULL).
-  *
-  *    ametrics_resolution ::
-  *      Metrics resolution.  This is equivalent to `outline_resolution'
-  *      for non-PFR fonts.  Optional (parameter can be NULL).
-  *
-  *    ametrics_x_scale ::
-  *      A 16.16 fixed-point number used to scale distance expressed
-  *      in metrics units to device sub-pixels.  This is equivalent to
-  *      `face->size->x_scale', but for metrics only.  Optional (parameter
-  *      can be NULL)
-  *
-  *    ametrics_y_scale ::
-  *      Same as `ametrics_x_scale' but for the vertical direction.
-  *      optional (parameter can be NULL)
-  *
-  * @return:
-  *    FreeType error code.  0 means success.
-  *
-  * @note:
-  *   If the input face is not a PFR, this function will return an error.
-  *   However, in all cases, it will return valid values.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_PFR_Metrics( FT_Face    face,
-                      FT_UInt   *aoutline_resolution,
-                      FT_UInt   *ametrics_resolution,
-                      FT_Fixed  *ametrics_x_scale,
-                      FT_Fixed  *ametrics_y_scale );
-
-
- /**********************************************************************
-  *
-  * @function:
-  *    FT_Get_PFR_Kerning
-  *
-  * @description:
-  *    Return the kerning pair corresponding to two glyphs in a PFR face.
-  *    The distance is expressed in metrics units, unlike the result of
-  *    @FT_Get_Kerning.
-  *
-  * @input:
-  *    face  :: A handle to the input face.
-  *
-  *    left  :: Index of the left glyph.
-  *
-  *    right :: Index of the right glyph.
-  *
-  * @output:
-  *    avector :: A kerning vector.
-  *
-  * @return:
-  *    FreeType error code.  0 means success.
-  *
-  * @note:
-  *    This function always return distances in original PFR metrics
-  *    units.  This is unlike @FT_Get_Kerning with the @FT_KERNING_UNSCALED
-  *    mode, which always returns distances converted to outline units.
-  *
-  *    You can use the value of the `x_scale' and `y_scale' parameters
-  *    returned by @FT_Get_PFR_Metrics to scale these to device sub-pixels.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_PFR_Kerning( FT_Face     face,
-                      FT_UInt     left,
-                      FT_UInt     right,
-                      FT_Vector  *avector );
-
-
- /**********************************************************************
-  *
-  * @function:
-  *    FT_Get_PFR_Advance
-  *
-  * @description:
-  *    Return a given glyph advance, expressed in original metrics units,
-  *    from a PFR font.
-  *
-  * @input:
-  *    face   :: A handle to the input face.
-  *
-  *    gindex :: The glyph index.
-  *
-  * @output:
-  *    aadvance :: The glyph advance in metrics units.
-  *
-  * @return:
-  *    FreeType error code.  0 means success.
-  *
-  * @note:
-  *    You can use the `x_scale' or `y_scale' results of @FT_Get_PFR_Metrics
-  *    to convert the advance to device sub-pixels (i.e. 1/64th of pixels).
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_PFR_Advance( FT_Face   face,
-                      FT_UInt   gindex,
-                      FT_Pos   *aadvance );
-
- /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTBDF_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftrender.h b/nx-X11/extras/freetype2/include/freetype/ftrender.h
deleted file mode 100644
index db3ca94dd..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftrender.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftrender.h                                                             */
-/*                                                                         */
-/*    FreeType renderer modules public interface (specification).          */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTRENDER_H__
-#define __FTRENDER_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-#include FT_GLYPH_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    module_management                                                  */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* create a new glyph object */
-  typedef FT_Error
-  (*FT_Glyph_InitFunc)( FT_Glyph      glyph,
-                        FT_GlyphSlot  slot );
-
-  /* destroys a given glyph object */
-  typedef void
-  (*FT_Glyph_DoneFunc)( FT_Glyph  glyph );
-
-  typedef void
-  (*FT_Glyph_TransformFunc)( FT_Glyph    glyph,
-                             FT_Matrix*  matrix,
-                             FT_Vector*  delta );
-
-  typedef void
-  (*FT_Glyph_GetBBoxFunc)( FT_Glyph  glyph,
-                           FT_BBox*  abbox );
-
-  typedef FT_Error
-  (*FT_Glyph_CopyFunc)( FT_Glyph   source,
-                        FT_Glyph   target );
-
-  typedef FT_Error
-  (*FT_Glyph_PrepareFunc)( FT_Glyph      glyph,
-                           FT_GlyphSlot  slot );
-
-/* deprecated */
-#define FT_Glyph_Init_Func       FT_Glyph_InitFunc
-#define FT_Glyph_Done_Func       FT_Glyph_DoneFunc
-#define FT_Glyph_Transform_Func  FT_Glyph_TransformFunc
-#define FT_Glyph_BBox_Func       FT_Glyph_GetBBoxFunc
-#define FT_Glyph_Copy_Func       FT_Glyph_CopyFunc
-#define FT_Glyph_Prepare_Func    FT_Glyph_PrepareFunc
-
-
-  struct  FT_Glyph_Class_
-  {
-    FT_Long                 glyph_size;
-    FT_Glyph_Format         glyph_format;
-    FT_Glyph_InitFunc       glyph_init;
-    FT_Glyph_DoneFunc       glyph_done;
-    FT_Glyph_CopyFunc       glyph_copy;
-    FT_Glyph_TransformFunc  glyph_transform;
-    FT_Glyph_GetBBoxFunc    glyph_bbox;
-    FT_Glyph_PrepareFunc    glyph_prepare;
-  };
-
-
-  typedef FT_Error
-  (*FT_Renderer_RenderFunc)( FT_Renderer   renderer,
-                             FT_GlyphSlot  slot,
-                             FT_UInt       mode,
-                             FT_Vector*    origin );
-
-  typedef FT_Error
-  (*FT_Renderer_TransformFunc)( FT_Renderer   renderer,
-                                FT_GlyphSlot  slot,
-                                FT_Matrix*    matrix,
-                                FT_Vector*    delta );
-
-
-  typedef void
-  (*FT_Renderer_GetCBoxFunc)( FT_Renderer   renderer,
-                              FT_GlyphSlot  slot,
-                              FT_BBox*      cbox );
-
-
-  typedef FT_Error
-  (*FT_Renderer_SetModeFunc)( FT_Renderer  renderer,
-                              FT_ULong     mode_tag,
-                              FT_Pointer   mode_ptr );
-
-/* deprecated identifiers */
-#define FTRenderer_render  FT_Renderer_RenderFunc
-#define FTRenderer_transform  FT_Renderer_TransformFunc
-#define FTRenderer_getCBox  FT_Renderer_GetCBoxFunc
-#define FTRenderer_setMode  FT_Renderer_SetModeFunc
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Renderer_Class                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The renderer module class descriptor.                              */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root         :: The root FT_Module_Class fields.                   */
-  /*                                                                       */
-  /*    glyph_format :: The glyph image format this renderer handles.      */
-  /*                                                                       */
-  /*    render_glyph :: A method used to render the image that is in a     */
-  /*                    given glyph slot into a bitmap.                    */
-  /*                                                                       */
-  /*    set_mode     :: A method used to pass additional parameters.       */
-  /*                                                                       */
-  /*    raster_class :: For `FT_GLYPH_FORMAT_OUTLINE' renderers only, this */
-  /*                    is a pointer to its raster's class.                */
-  /*                                                                       */
-  /*    raster       :: For `FT_GLYPH_FORMAT_OUTLINE' renderers only. this */
-  /*                    is a pointer to the corresponding raster object,   */
-  /*                    if any.                                            */
-  /*                                                                       */
-  typedef struct  FT_Renderer_Class_
-  {
-    FT_Module_Class       root;
-
-    FT_Glyph_Format       glyph_format;
-
-    FT_Renderer_RenderFunc     render_glyph;
-    FT_Renderer_TransformFunc  transform_glyph;
-    FT_Renderer_GetCBoxFunc    get_glyph_cbox;
-    FT_Renderer_SetModeFunc    set_mode;
-
-    FT_Raster_Funcs*           raster_class;
-
-  } FT_Renderer_Class;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Renderer                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the current renderer for a given glyph format.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library :: A handle to the library object.                         */
-  /*                                                                       */
-  /*    format  :: The glyph format.                                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A renderer handle.  0 if none found.                               */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    An error will be returned if a module already exists by that name, */
-  /*    or if the module requires a version of FreeType that is too great. */
-  /*                                                                       */
-  /*    To add a new renderer, simply use FT_Add_Module().  To retrieve a  */
-  /*    renderer by its name, use FT_Get_Module().                         */
-  /*                                                                       */
-  FT_EXPORT( FT_Renderer )
-  FT_Get_Renderer( FT_Library       library,
-                   FT_Glyph_Format  format );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Set_Renderer                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets the current renderer to use, and set additional mode.         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    library    :: A handle to the library object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    renderer   :: A handle to the renderer object.                     */
-  /*                                                                       */
-  /*    num_params :: The number of additional parameters.                 */
-  /*                                                                       */
-  /*    parameters :: Additional parameters.                               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    In case of success, the renderer will be used to convert glyph     */
-  /*    images in the renderer's known format into bitmaps.                */
-  /*                                                                       */
-  /*    This doesn't change the current renderer for other formats.        */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Set_Renderer( FT_Library     library,
-                   FT_Renderer    renderer,
-                   FT_UInt        num_params,
-                   FT_Parameter*  parameters );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTRENDER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftsizes.h b/nx-X11/extras/freetype2/include/freetype/ftsizes.h
deleted file mode 100644
index f0ec91599..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftsizes.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsizes.h                                                              */
-/*                                                                         */
-/*    FreeType size objects management (specification).                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Typical application would normally not need to use these functions.   */
-  /* However, they have been placed in a public API for the rare cases     */
-  /* where they are needed.                                                */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTSIZES_H__
-#define __FTSIZES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    sizes_management                                                   */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Size management                                                    */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Managing multiple sizes per face                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    When creating a new face object (e.g. with @FT_New_Face), an       */
-  /*    @FT_Size object is automatically created and used to store all     */
-  /*    pixel-size dependent information, available in the "face->size"    */
-  /*    field.                                                             */
-  /*                                                                       */
-  /*    It is however possible to create more sizes for a given face,      */
-  /*    mostly in order to manage several character pixel sizes of the     */
-  /*    same font family and style.  See @FT_New_Size and @FT_Done_Size.   */
-  /*                                                                       */
-  /*    Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only           */
-  /*    modify the contents of the current "active" size; you thus need    */
-  /*    to use @FT_Activate_Size to change it.                             */
-  /*                                                                       */
-  /*    99% of applications won't need the functions provided here,        */
-  /*    especially if they use the caching sub-system, so be cautious      */
-  /*    when using these.                                                  */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Size                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new size object from a given face object.                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to a parent face object.                          */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    asize :: A handle to a new size object.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You need to call @FT_Activate_Size in order to select the new size */
-  /*    for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size,      */
-  /*    @FT_Load_Glyph, @FT_Load_Char, etc.                                */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_New_Size( FT_Face   face,
-               FT_Size*  size );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_Size                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Discards a given size object.  Note that @FT_Done_Face             */
-  /*    automatically discards all size objects allocated with             */
-  /*    @FT_New_Size.                                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    size :: A handle to a target size object.                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Done_Size( FT_Size  size );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Activate_Size                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Even though it is possible to create several size objects for a    */
-  /*    given face (see @FT_New_Size for details), functions like          */
-  /*    @FT_Load_Glyph or @FT_Load_Char only use the last-created one to   */
-  /*    determine the "current character pixel size".                      */
-  /*                                                                       */
-  /*    This function can be used to "activate" a previously created size  */
-  /*    object.                                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    size :: A handle to a target size object.                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If "face" is the size's parent face object, this function changes  */
-  /*    the value of "face->size" to the input size handle.                */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Activate_Size( FT_Size  size );
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTSIZES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftsnames.h b/nx-X11/extras/freetype2/include/freetype/ftsnames.h
deleted file mode 100644
index 0e2d9a4ad..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftsnames.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsnames.h                                                             */
-/*                                                                         */
-/*    Simple interface to access SFNT name tables (which are used          */
-/*    to hold font names, copyright info, notices, etc.) (specification).  */
-/*                                                                         */
-/*    This is _not_ used to retrieve glyph names!                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FT_SFNT_NAMES_H__
-#define __FT_SFNT_NAMES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    sfnt_names                                                         */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    SFNT Names                                                         */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Access the names embedded in TrueType and OpenType files.          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The TrueType and OpenType specification allow the inclusion of     */
-  /*    a special `names table' in font files.  This table contains        */
-  /*    textual (and internationalized) information regarding the font,    */
-  /*    like family name, copyright, version, etc.                         */
-  /*                                                                       */
-  /*    The definitions below are used to access them if available.        */
-  /*                                                                       */
-  /*    Note that this has nothing to do with glyph names!                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_SfntName                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model an SFNT `name' table entry.              */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    platform_id :: The platform ID for `string'.                       */
-  /*                                                                       */
-  /*    encoding_id :: The encoding ID for `string'.                       */
-  /*                                                                       */
-  /*    language_id :: The language ID for `string'.                       */
-  /*                                                                       */
-  /*    name_id     :: An identifier for `string'.                         */
-  /*                                                                       */
-  /*    string      :: The `name' string.  Note that its format differs    */
-  /*                   depending on the (platform,encoding) pair. It can   */
-  /*                   be a Pascal String, a UTF-16 one, etc..             */
-  /*                                                                       */
-  /*                   Generally speaking, the string is not               */
-  /*                   zero-terminated. Please refer to the TrueType       */
-  /*                   specification for details..                         */
-  /*                                                                       */
-  /*    string_len  :: The length of `string' in bytes.                    */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Possible values for `platform_id', `encoding_id', `language_id',   */
-  /*    and `name_id' are given in the file `ttnameid.h'.  For details     */
-  /*    please refer to the TrueType or OpenType specification.            */
-  /*                                                                       */
-  typedef struct  FT_SfntName_
-  {
-    FT_UShort  platform_id;
-    FT_UShort  encoding_id;
-    FT_UShort  language_id;
-    FT_UShort  name_id;
-
-    FT_Byte*   string;      /* this string is *not* null-terminated! */
-    FT_UInt    string_len;  /* in bytes */
-
-  } FT_SfntName;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Sfnt_Name_Count                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the number of name strings in the SFNT `name' table.     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the source face.                               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The number of strings in the `name' table.                         */
-  /*                                                                       */
-  FT_EXPORT( FT_UInt )
-  FT_Get_Sfnt_Name_Count( FT_Face  face );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Sfnt_Name                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves a string of the SFNT `name' table for a given index.     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face  :: A handle to the source face.                              */
-  /*                                                                       */
-  /*    idx   :: The index of the `name' string.                           */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aname :: The indexed FT_SfntName structure.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The `string' array returned in the `aname' structure is not        */
-  /*    null-terminated.                                                   */
-  /*                                                                       */
-  /*    Use FT_Get_Sfnt_Name_Count() to get the total number of available  */
-  /*    `name' table entries, then do a loop until you get the right       */
-  /*    platform, encoding, and name ID.                                   */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  FT_Get_Sfnt_Name( FT_Face       face,
-                    FT_UInt       idx,
-                    FT_SfntName  *aname );
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FT_SFNT_NAMES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftstroke.h b/nx-X11/extras/freetype2/include/freetype/ftstroke.h
deleted file mode 100644
index a3052e858..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftstroke.h
+++ /dev/null
@@ -1,686 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftstroke.h                                                             */
-/*                                                                         */
-/*    FreeType path stroker (specification).                               */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FT_STROKE_H__
-#define __FT_STROKE_H__
-
-#include <ft2build.h>
-#include FT_OUTLINE_H
-#include FT_GLYPH_H
-
-FT_BEGIN_HEADER
-
- /*@*************************************************************
-  *
-  * @type:
-  *   FT_Stroker
-  *
-  * @description:
-  *   Opaque handler to a path stroker object.
-  */
-  typedef struct FT_StrokerRec_*  FT_Stroker;
-
-
-  /*@*************************************************************
-   *
-   * @enum:
-   *   FT_Stroker_LineJoin
-   *
-   * @description:
-   *   These values determine how two joining lines are rendered
-   *   in a stroker.
-   *
-   * @values:
-   *   FT_STROKER_LINEJOIN_ROUND ::
-   *     Used to render rounded line joins.  Circular arcs are used
-   *     to join two lines smoothly.
-   *
-   *   FT_STROKER_LINEJOIN_BEVEL ::
-   *     Used to render beveled line joins; i.e., the two joining lines
-   *     are extended until they intersect.
-   *
-   *   FT_STROKER_LINEJOIN_MITER ::
-   *     Same as beveled rendering, except that an additional line
-   *     break is added if the angle between the two joining lines
-   *     is too closed (this is useful to avoid unpleasant spikes
-   *     in beveled rendering).
-   */
-  typedef enum
-  {
-    FT_STROKER_LINEJOIN_ROUND = 0,
-    FT_STROKER_LINEJOIN_BEVEL,
-    FT_STROKER_LINEJOIN_MITER
-
-  } FT_Stroker_LineJoin;
-
-
-  /*@*************************************************************
-   *
-   * @enum:
-   *   FT_Stroker_LineCap
-   *
-   * @description:
-   *   These values determine how the end of opened sub-paths are
-   *   rendered in a stroke.
-   *
-   * @values:
-   *   FT_STROKER_LINECAP_BUTT ::
-   *     The end of lines is rendered as a full stop on the last
-   *     point itself.
-   *
-   *   FT_STROKER_LINECAP_ROUND ::
-   *     The end of lines is rendered as a half-circle around the
-   *     last point.
-   *
-   *   FT_STROKER_LINECAP_SQUARE ::
-   *     The end of lines is rendered as a square around the
-   *     last point.
-   */
-  typedef enum
-  {
-    FT_STROKER_LINECAP_BUTT = 0,
-    FT_STROKER_LINECAP_ROUND,
-    FT_STROKER_LINECAP_SQUARE
-
-  } FT_Stroker_LineCap;
-
-
-  /**************************************************************
-   *
-   * @enum:
-   *   FT_StrokerBorder
-   *
-   * @description:
-   *   These values are used to select a given stroke border
-   *   in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder.
-   *
-   * @values:
-   *   FT_STROKER_BORDER_LEFT ::
-   *     Select the left border, relative to the drawing direction.
-   *
-   *   FT_STROKER_BORDER_RIGHT ::
-   *     Select the right border, relative to the drawing direction.
-   *
-   * @note:
-   *   Applications are generally interested in the `inside' and `outside'
-   *   borders.  However, there is no direct mapping between these and
-   *   the `left' / `right' ones, since this really depends on the glyph's
-   *   drawing orientation, which varies between font formats.
-   *
-   *   You can however use @FT_Outline_GetInsideBorder and
-   *   @FT_Outline_GetOutsideBorder to get these.
-   */
-  typedef enum
-  {
-    FT_STROKER_BORDER_LEFT = 0,
-    FT_STROKER_BORDER_RIGHT
-
-  } FT_StrokerBorder;
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Outline_GetInsideBorder
-   *
-   * @description:
-   *   Retrieve the @FT_StrokerBorder value corresponding to the
-   *   `inside' borders of a given outline.
-   *
-   * @input:
-   *   outline ::
-   *     The source outline handle.
-   *
-   * @return:
-   *   The border index.  @FT_STROKER_BORDER_LEFT for empty or invalid
-   *   outlines.
-   */
-  FT_EXPORT( FT_StrokerBorder )
-  FT_Outline_GetInsideBorder( FT_Outline*  outline );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Outline_GetOutsideBorder
-   *
-   * @description:
-   *   Retrieve the @FT_StrokerBorder value corresponding to the
-   *   `outside' borders of a given outline.
-   *
-   * @input:
-   *   outline ::
-   *     The source outline handle.
-   *
-   * @return:
-   *   The border index.  @FT_STROKER_BORDER_LEFT for empty or invalid
-   *   outlines.
-   */
-  FT_EXPORT( FT_StrokerBorder )
-  FT_Outline_GetOutsideBorder( FT_Outline*  outline );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_New
-   *
-   * @description:
-   *   Create a new stroker object.
-   *
-   * @input:
-   *   memory ::
-   *     The memory manager handle.
-   *
-   * @output:
-   *   A new stroker object handle.  NULL in case of error.
-   *
-   * @return:
-   *    FreeType error code.  0 means success.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_New( FT_Memory    memory,
-                  FT_Stroker  *astroker );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_Set
-   *
-   * @description:
-   *   Reset a stroker object's attributes.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   radius ::
-   *     The border radius.
-   *
-   *   line_cap ::
-   *     The line cap style.
-   *
-   *   line_join ::
-   *     The line join style.
-   *
-   *   miter_limit ::
-   *     The miter limit for the FT_STROKER_LINEJOIN_MITER style,
-   *     expressed as 16.16 fixed point value.
-   *
-   * @note:
-   *   The radius is expressed in the same units that the outline
-   *   coordinates.
-   */
-  FT_EXPORT( void )
-  FT_Stroker_Set( FT_Stroker           stroker,
-                  FT_Fixed             radius,
-                  FT_Stroker_LineCap   line_cap,
-                  FT_Stroker_LineJoin  line_join,
-                  FT_Fixed             miter_limit );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_Rewind
-   *
-   * @description:
-   *   Reset a stroker object without changing its attributes.
-   *   You should call this function before beginning a new
-   *   series of calls to @FT_Stroker_BeginSubPath or
-   *   @FT_Stroker_EndSubPath.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   */
-  FT_EXPORT( void )
-  FT_Stroker_Rewind( FT_Stroker  stroker );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_ParseOutline
-   *
-   * @description:
-   *   A convenience function used to parse a whole outline with
-   *   the stroker.  The resulting outline(s) can be retrieved
-   *   later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   outline ::
-   *     The source outline.
-   *
-   *   opened ::
-   *     A boolean.  If TRUE, the outline is treated as an open path
-   *     instead of a closed one.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   If `opened' is 0 (the default), the outline is treated as a closed
-   *   path, and the stroker will generate two distinct `border' outlines.
-   *
-   *   If `opened' is 1, the outline is processed as an open path, and the
-   *   stroker will generate a single `stroke' outline.
-   *
-   *   This function calls @FT_Stroker_Rewind automatically.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_ParseOutline( FT_Stroker   stroker,
-                           FT_Outline*  outline,
-                           FT_Bool      opened );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_BeginSubPath
-   *
-   * @description:
-   *   Start a new sub-path in the stroker.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   to ::
-   *     A pointer to the start vector.
-   *
-   *   open ::
-   *     A boolean.  If TRUE, the sub-path is treated as an open one.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   This function is useful when you need to stroke a path that is
-   *   not stored as a @FT_Outline object.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_BeginSubPath( FT_Stroker  stroker,
-                           FT_Vector*  to,
-                           FT_Bool     open );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_EndSubPath
-   *
-   * @description:
-   *   Close the current sub-path in the stroker.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   You should call this function after @FT_Stroker_BeginSubPath.
-   *   If the subpath was not `opened', this function will `draw' a
-   *   single line segment to the start position when needed.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_EndSubPath( FT_Stroker  stroker );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_LineTo
-   *
-   * @description:
-   *   `Draw' a single line segment in the stroker's current sub-path,
-   *   from the last position.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   to ::
-   *     A pointer to the destination point.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   You should call this function between @FT_Stroker_BeginSubPath and
-   *   @FT_Stroker_EndSubPath.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_LineTo( FT_Stroker  stroker,
-                     FT_Vector*  to );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_ConicTo
-   *
-   * @description:
-   *   `Draw; a single quadratic bezier in the stroker's current sub-path,
-   *   from the last position.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   control ::
-   *     A pointer to a B�zier control point.
-   *
-   *   to ::
-   *     A pointer to the destination point.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   You should call this function between @FT_Stroker_BeginSubPath and
-   *   @FT_Stroker_EndSubPath.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_ConicTo( FT_Stroker  stroker,
-                      FT_Vector*  control,
-                      FT_Vector*  to );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_CubicTo
-   *
-   * @description:
-   *   `Draw' a single cubic B�zier in the stroker's current sub-path,
-   *   from the last position.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   control1 ::
-   *     A pointer to the first B�zier control point.
-   *
-   *   control2 ::
-   *     A pointer to second B�zier control point.
-   *
-   *   to ::
-   *     A pointer to the destination point.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   You should call this function between @FT_Stroker_BeginSubPath and
-   *   @FT_Stroker_EndSubPath.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_CubicTo( FT_Stroker  stroker,
-                      FT_Vector*  control1,
-                      FT_Vector*  control2,
-                      FT_Vector*  to );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_GetBorderCounts
-   *
-   * @description:
-   *   Vall this function once you have finished parsing your paths
-   *   with the stroker.  It will return the number of points and
-   *   contours necessary to export one of the `border' or `stroke'
-   *   outlines generated by the stroker.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   border ::
-   *     The border index.
-   *
-   * @output:
-   *   anum_points ::
-   *     The number of points.
-   *
-   *   anum_contours ::
-   *     The number of contours.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   *
-   * @note:
-   *   When an outline, or a sub-path, is `closed', the stroker generates
-   *   two independent `border' outlines, named `left' and `right'.
-   *
-   *   When the outline, or a sub-path, is `opened', the stroker merges
-   *   the `border' outlines with caps.  The `left' border receives all
-   *   points, while the `right' border becomes empty.
-   *
-   *   Use the function @FT_Stroker_GetCounts instead if you want to
-   *   retrieve the counts associated to both borders.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_GetBorderCounts( FT_Stroker        stroker,
-                              FT_StrokerBorder  border,
-                              FT_UInt          *anum_points,
-                              FT_UInt          *anum_contours );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_ExportBorder
-   *
-   * @description:
-   *   Call this function after @FT_Stroker_GetBorderCounts to
-   *   export the corresponding border to your own @FT_Outline
-   *   structure.
-   *
-   *   Note that this function will append the border points and
-   *   contours to your outline, but will not try to resize its
-   *   arrays.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   border ::
-   *     The border index.
-   *
-   *   outline ::
-   *     The target outline handle.
-   *
-   * @note:
-   *   Always call this function after @FT_Stroker_GetBorderCounts to
-   *   get sure that there is enough room in your @FT_Outline object to
-   *   receive all new data.
-   *
-   *   When an outline, or a sub-path, is `closed', the stroker generates
-   *   two independent `border' outlines, named `left' and `right'
-   *
-   *   When the outline, or a sub-path, is `opened', the stroker merges
-   *   the `border' outlines with caps. The `left' border receives all
-   *   points, while the `right' border becomes empty.
-   *
-   *   Use the function @FT_Stroker_Export instead if you want to
-   *   retrieve all borders at once.
-   */
-  FT_EXPORT( void )
-  FT_Stroker_ExportBorder( FT_Stroker        stroker,
-                           FT_StrokerBorder  border,
-                           FT_Outline*       outline );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_GetCounts
-   *
-   * @description:
-   *   Call this function once you have finished parsing your paths
-   *   with the stroker.  It returns the number of points and
-   *   contours necessary to export all points/borders from the stroked
-   *   outline/path.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   * @output:
-   *   anum_points ::
-   *     The number of points.
-   *
-   *   anum_contours ::
-   *     The number of contours.
-   *
-   * @return:
-   *   FreeType error code.  0 means success.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Stroker_GetCounts( FT_Stroker  stroker,
-                        FT_UInt    *anum_points,
-                        FT_UInt    *anum_contours );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_Export
-   *
-   * @description:
-   *   Call this function after @FT_Stroker_GetBorderCounts to
-   *   export the all borders to your own @FT_Outline structure.
-   *
-   *   Note that this function will append the border points and
-   *   contours to your outline, but will not try to resize its
-   *   arrays.
-   *
-   * @input:
-   *   stroker ::
-   *     The target stroker handle.
-   *
-   *   outline ::
-   *     The target outline handle.
-   */
-  FT_EXPORT( void )
-  FT_Stroker_Export( FT_Stroker   stroker,
-                     FT_Outline*  outline );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Stroker_Done
-   *
-   * @description:
-   *   Destroy a stroker object.
-   *
-   * @input:
-   *   stroker ::
-   *     A stroker handle.  Can be NULL.
-   */
-  FT_EXPORT( void )
-  FT_Stroker_Done( FT_Stroker  stroker );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Glyph_Stroke
-   *
-   * @description:
-   *   Stroke a given outline glyph object with a given stroker.
-   *
-   * @inout:
-   *   pglyph :: Source glyph handle on input, new glyph handle
-   *             on output.
-   *
-   * @input:
-   *   stroker ::
-   *     A stroker handle.
-   *
-   *   destroy ::
-   *     A Boolean.  If TRUE, the source glyph object is destroyed
-   *     on success.
-   *
-   * @return:
-   *    FreeType error code.  0 means success.
-   *
-   * @note:
-   *   The source glyph is untouched in case of error.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Glyph_Stroke( FT_Glyph    *pglyph,
-                   FT_Stroker   stroker,
-                   FT_Bool      destroy );
-
-
-  /**************************************************************
-   *
-   * @function:
-   *   FT_Glyph_StrokeBorder
-   *
-   * @description:
-   *   Stroke a given outline glyph object with a given stroker, but
-   *   only return either its inside or outside border.
-   *
-   * @inout:
-   *   pglyph ::
-   *     Source glyph handle on input, new glyph handle on output.
-   *
-   * @input:
-   *   stroker ::
-   *     A stroker handle.
-   *
-   *   inside ::
-   *     A Boolean.  If TRUE, return the inside border, otherwise
-   *     the outside border.
-   *
-   *   destroy ::
-   *     A Boolean.  If TRUE, the source glyph object is destroyed
-   *     on success.
-   *
-   * @return:
-   *    FreeType error code.  0 means success.
-   *
-   * @note:
-   *   The source glyph is untouched in case of error.
-   */
-  FT_EXPORT( FT_Error )
-  FT_Glyph_StrokeBorder( FT_Glyph    *pglyph,
-                         FT_Stroker   stroker,
-                         FT_Bool      inside,
-                         FT_Bool      destroy );
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FT_STROKE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftsynth.h b/nx-X11/extras/freetype2/include/freetype/ftsynth.h
deleted file mode 100644
index f0c738532..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftsynth.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsynth.h                                                              */
-/*                                                                         */
-/*    FreeType synthesizing code for emboldening and slanting              */
-/*    (specification).                                                     */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*********                                                       *********/
-  /*********        WARNING, THIS IS ALPHA CODE, THIS API          *********/
-  /*********    IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE    *********/
-  /*********            FREETYPE DEVELOPMENT TEAM                  *********/
-  /*********                                                       *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#ifndef __FTSYNTH_H__
-#define __FTSYNTH_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /* This code is completely experimental -- use with care! */
-  /* It will probably be completely rewritten in the future */
-  /* or even integrated into the library.                   */
-  FT_EXPORT( void )
-  FT_GlyphSlot_Embolden( FT_GlyphSlot  slot );
-
-
-  FT_EXPORT( void )
-  FT_GlyphSlot_Oblique( FT_GlyphSlot  slot );
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTSYNTH_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftsysio.h b/nx-X11/extras/freetype2/include/freetype/ftsysio.h
deleted file mode 100644
index f8e49543f..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftsysio.h
+++ /dev/null
@@ -1,195 +0,0 @@
-#ifndef __FT_SYSTEM_IO_H__
-#define __FT_SYSTEM_IO_H__
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****    NOTE: THE CONTENT OF THIS FILE IS NOT CURRENTLY USED      *****/
- /*****          IN NORMAL BUILDS.  CONSIDER IT EXPERIMENTAL.        *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
- /********************************************************************
-  *
-  *  designing custom streams is a bit different now
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  *
-  */
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECT_H
-
-FT_BEGIN_HEADER
-
- /*@*******************************************************************
-  *
-  * @type: FT_Stream
-  *
-  * @description:
-  *   handle to an input stream object. These are also @FT_Object handles
-  */
-  typedef struct FT_StreamRec_*    FT_Stream;
-
-
- /*@*******************************************************************
-  *
-  * @type: FT_Stream_Class
-  *
-  * @description:
-  *   opaque handle to a @FT_Stream_ClassRec class structure describing
-  *   the methods of input streams
-  */
-  typedef const struct FT_Stream_ClassRec_*   FT_Stream_Class;
-
-
- /*@*******************************************************************
-  *
-  * @functype: FT_Stream_ReadFunc
-  *
-  * @description:
-  *   a method used to read bytes from an input stream into memory
-  *
-  * @input:
-  *   stream  :: target stream handle
-  *   buffer  :: target buffer address
-  *   size    :: number of bytes to read
-  *
-  * @return:
-  *   number of bytes effectively read. Must be <= 'size'.
-  */
-  typedef FT_ULong  (*FT_Stream_ReadFunc)( FT_Stream   stream,
-                                           FT_Byte*    buffer,
-                                           FT_ULong    size );
-
-
- /*@*******************************************************************
-  *
-  * @functype: FT_Stream_SeekFunc
-  *
-  * @description:
-  *   a method used to seek to a new position within a stream
-  *
-  * @input:
-  *   stream  :: target stream handle
-  *   pos     :: new read position, from start of stream
-  *
-  * @return:
-  *   error code. 0 means success
-  */
-  typedef FT_Error  (*FT_Stream_SeekFunc)( FT_Stream   stream,
-                                           FT_ULong    pos );
-
-
- /*@*******************************************************************
-  *
-  * @struct: FT_Stream_ClassRec
-  *
-  * @description:
-  *   a structure used to describe an input stream class
-  *
-  * @input:
-  *   clazz       :: root @FT_ClassRec fields
-  *   stream_read :: stream byte read method
-  *   stream_seek :: stream seek method
-  */
-  typedef struct FT_Stream_ClassRec_
-  {
-    FT_ClassRec          clazz;
-    FT_Stream_ReadFunc   stream_read;
-    FT_Stream_SeekFunc   stream_seek;
-
-  } FT_Stream_ClassRec;
-
- /* */
-
-#define  FT_STREAM_CLASS(x)        ((FT_Stream_Class)(x))
-#define  FT_STREAM_CLASS__READ(x)  FT_STREAM_CLASS(x)->stream_read
-#define  FT_STREAM_CLASS__SEEK(x)  FT_STREAM_CLASS(x)->stream_seek;
-
- /*@*******************************************************************
-  *
-  * @struct: FT_StreamRec
-  *
-  * @description:
-  *   the input stream object structure. See @FT_Stream_ClassRec for
-  *   its class descriptor
-  *
-  * @fields:
-  *   object      :: root @FT_ObjectRec fields
-  *   size        :: size of stream in bytes (0 if unknown)
-  *   pos         :: current position within stream
-  *   base        :: for memory-based streams, the address of the stream's
-  *                  first data byte in memory. NULL otherwise
-  *
-  *   cursor      :: the current cursor position within an input stream
-  *                  frame. Only valid within a FT_FRAME_ENTER .. FT_FRAME_EXIT
-  *                  block; NULL otherwise
-  *
-  *   limit       :: the current frame limit within a FT_FRAME_ENTER ..
-  *                  FT_FRAME_EXIT block. NULL otherwise
-  */
-  typedef struct FT_StreamRec_
-  {
-    FT_ObjectRec        object;
-    FT_ULong            size;
-    FT_ULong            pos;
-    const FT_Byte*      base;
-    const FT_Byte*      cursor;
-    const FT_Byte*      limit;
-
-  } FT_StreamRec;
-
- /* some useful macros */
-#define  FT_STREAM(x)    ((FT_Stream)(x))
-#define  FT_STREAM_P(x)  ((FT_Stream*)(x))
-
-#define  FT_STREAM__READ(x)  FT_STREAM_CLASS__READ(FT_OBJECT__CLASS(x))
-#define  FT_STREAM__SEEK(x)  FT_STREAM_CLASS__SEEK(FT_OBJECT__CLASS(x))
-
-#define  FT_STREAM_IS_BASED(x)  ( FT_STREAM(x)->base != NULL )
-
- /* */
-
- /* create new memory-based stream */
-  FT_BASE( FT_Error )   ft_stream_new_memory( const FT_Byte*  stream_base,
-                                              FT_ULong        stream_size,
-                                              FT_Memory       memory,
-                                              FT_Stream      *astream );
-
-  FT_BASE( FT_Error )   ft_stream_new_iso( const char*  pathanme,
-                                           FT_Memory    memory,
-                                           FT_Stream   *astream );
-
-
- /* handle to default stream class implementation for a given build */
- /* this is used by "FT_New_Face"                                   */
- /*                                                                 */
-  FT_APIVAR( FT_Type )   ft_stream_default_type;
-
-FT_END_HEADER
-
-#endif /* __FT_SYSTEM_STREAM_H__ */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftsysmem.h b/nx-X11/extras/freetype2/include/freetype/ftsysmem.h
deleted file mode 100644
index 8de0c4db0..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftsysmem.h
+++ /dev/null
@@ -1,202 +0,0 @@
-#ifndef __FT_SYSTEM_MEMORY_H__
-#define __FT_SYSTEM_MEMORY_H__
-
-#include <ft2build.h>
-
-FT_BEGIN_HEADER
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****    NOTE: THE CONTENT OF THIS FILE IS NOT CURRENTLY USED      *****/
- /*****          IN NORMAL BUILDS.  CONSIDER IT EXPERIMENTAL.        *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
- /*@**********************************************************************
-  *
-  * @type: FT_Memory
-  *
-  * @description:
-  *   opaque handle to a memory manager handle. Note that since FreeType
-  *   2.2, the memory manager structure FT_MemoryRec is hidden to client
-  *   applications.
-  *
-  *   however, you can still define custom allocators easily using the
-  *   @ft_memory_new API
-  */
-  typedef struct FT_MemoryRec_*   FT_Memory;
-
-
- /*@**********************************************************************
-  *
-  * @functype: FT_Memory_AllocFunc
-  *
-  * @description:
-  *   a function used to allocate a block of memory.
-  *
-  * @input:
-  *   size     :: size of blocks in bytes. Always > 0 !!
-  *   mem_data :: memory-manager specific optional argument
-  *               (see @ft_memory_new)
-  *
-  * @return:
-  *   address of new block. NULL in case of memory exhaustion
-  */
-  typedef FT_Pointer  (*FT_Memory_AllocFunc)( FT_ULong   size,
-                                              FT_Pointer mem_data );
-
-
- /*@**********************************************************************
-  *
-  * @functype: FT_Memory_FreeFunc
-  *
-  * @description:
-  *   a function used to release a block of memory created through
-  *   @FT_Memory_AllocFunc or @FT_Memory_ReallocFunc
-  *
-  * @input:
-  *   block    :: address of target memory block. cannot be NULL !!
-  *   mem_data :: memory-manager specific optional argument
-  *               (see @ft_memory_new)
-  */
-  typedef void        (*FT_Memory_FreeFunc) ( FT_Pointer  block,
-                                              FT_Pointer  mem_data );
-
-
- /*@**********************************************************************
-  *
-  * @functype: FT_Memory_ReallocFunc
-  *
-  * @description:
-  *   a function used to reallocate a memory block.
-  *
-  * @input:
-  *   block    :: address of target memory block. cannot be NULL !!
-  *   new_size :: new requested size in bytes
-  *   cur_size :: current block size in bytes
-  *   mem_data :: memory-manager specific optional argument
-  *               (see @ft_memory_new)
-  */
-  typedef FT_Pointer  (*FT_Memory_ReallocFunc)( FT_Pointer   block,
-                                                FT_ULong     new_size,
-                                                FT_ULong     cur_size,
-                                                FT_Pointer   mem_data );
-
-
- /*@**********************************************************************
-  *
-  * @functype: FT_Memory_CreateFunc
-  *
-  * @description:
-  *   a function used to create a @FT_Memory object to model a
-  *   memory manager
-  *
-  * @input:
-  *   size      :: size of memory manager structure in bytes
-  *   init_data :: optional initialisation argument
-  *
-  * @output:
-  *   amem_data :: memory-manager specific argument to block management
-  *                routines.
-  *
-  * @return:
-  *   handle to new memory manager object. NULL in case of failure
-  */
-  typedef FT_Pointer  (*FT_Memory_CreateFunc)( FT_UInt     size,
-                                               FT_Pointer  init_data,
-                                               FT_Pointer *amem_data );
-
-
- /*@**********************************************************************
-  *
-  * @functype: FT_Memory_DestroyFunc
-  *
-  * @description:
-  *   a function used to destroy a given @FT_Memory manager
-  *
-  * @input:
-  *   memory   :: target memory manager handle
-  *   mem_data :: option manager-specific argument
-  */
-  typedef void        (*FT_Memory_DestroyFunc)( FT_Memory  memory,
-                                                FT_Pointer mem_data );
-
-
- /*@**********************************************************************
-  *
-  * @struct: FT_Memory_FuncsRec
-  *
-  * @description:
-  *   a function used to hold all methods of a given memory manager
-  *   implementation.
-  *
-  * @fields:
-  *   mem_alloc   :: block allocation routine
-  *   mem_free    :: block release routine
-  *   mem_realloc :: block re-allocation routine
-  *   mem_create  :: manager creation routine
-  *   mem_destroy :: manager destruction routine
-  */
-  typedef struct FT_Memory_FuncsRec_
-  {
-    FT_Memory_AllocFunc     mem_alloc;
-    FT_Memory_FreeFunc      mem_free;
-    FT_Memory_ReallocFunc   mem_realloc;
-    FT_Memory_CreateFunc    mem_create;
-    FT_Memory_DestroyFunc   mem_destroy;
-
-  } FT_Memory_FuncsRec, *FT_Memory_Funcs;
-
-
- /*@**********************************************************************
-  *
-  * @type: FT_Memory_Funcs
-  *
-  * @description:
-  *   a pointer to a constant @FT_Memory_FuncsRec structure used to
-  *   describe a given memory manager implementation.
-  */
-  typedef const FT_Memory_FuncsRec*  FT_Memory_Funcs;
-
-
- /*@**********************************************************************
-  *
-  * @function: ft_memory_new
-  *
-  * @description:
-  *   create a new memory manager, given a set of memory methods
-  *
-  * @input:
-  *   mem_funcs     :: handle to memory manager implementation descriptor
-  *   mem_init_data :: optional initialisation argument, passed to
-  *                    @FT_Memory_CreateFunc
-  *
-  * @return:
-  *   new memory manager handle. NULL in case of failure
-  */
-  FT_BASE( FT_Memory )
-  ft_memory_new( FT_Memory_Funcs  mem_funcs,
-                 FT_Pointer       mem_init_data );
-
-
- /*@**********************************************************************
-  *
-  * @function: ft_memory_destroy
-  *
-  * @description:
-  *   destroy a given memory manager
-  *
-  * @input:
-  *   memory :: handle to target memory manager
-  */
-  FT_BASE( void )
-  ft_memory_destroy( FT_Memory  memory );
-
-/* */
-
-FT_END_HEADER
-
-#endif /* __FT_SYSTEM_MEMORY_H__ */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftsystem.h b/nx-X11/extras/freetype2/include/freetype/ftsystem.h
deleted file mode 100644
index d1c55f7ae..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftsystem.h
+++ /dev/null
@@ -1,309 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsystem.h                                                             */
-/*                                                                         */
-/*    FreeType low-level system interface definition (specification).      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTSYSTEM_H__
-#define __FTSYSTEM_H__
-
-
-#include <ft2build.h>
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    system_interface                                                   */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    System Interface                                                   */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    How FreeType manages memory and i/o.                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains various definitions related to memory        */
-  /*    management and i/o access.  You need to understand this            */
-  /*    information if you want to use a custom memory manager or you own  */
-  /*    input i/o streams.                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                  M E M O R Y   M A N A G E M E N T                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    FT_Memory                                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A handle to a given memory manager object, defined with a          */
-  /*    @FT_MemoryRec structure.                                           */
-  /*                                                                       */
-  typedef struct FT_MemoryRec_*  FT_Memory;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    FT_Alloc_Func                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A function used to allocate `size' bytes from `memory'.            */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    memory :: A handle to the source memory manager.                   */
-  /*                                                                       */
-  /*    size   :: The size in bytes to allocate.                           */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    Address of new memory block.  0 in case of failure.                */
-  /*                                                                       */
-  typedef void*
-  (*FT_Alloc_Func)( FT_Memory  memory,
-                    long       size );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    FT_Free_Func                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A function used to release a given block of memory.                */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    memory :: A handle to the source memory manager.                   */
-  /*                                                                       */
-  /*    block  :: The address of the target memory block.                  */
-  /*                                                                       */
-  typedef void
-  (*FT_Free_Func)( FT_Memory  memory,
-                   void*      block );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    FT_Realloc_Func                                                    */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    a function used to re-allocate a given block of memory.            */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    memory   :: A handle to the source memory manager.                 */
-  /*                                                                       */
-  /*    cur_size :: The block's current size in bytes.                     */
-  /*                                                                       */
-  /*    new_size :: The block's requested new size.                        */
-  /*                                                                       */
-  /*    block    :: The block's current address.                           */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    New block address.  0 in case of memory shortage.                  */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*   In case of error, the old block must still be available.            */
-  /*                                                                       */
-  typedef void*
-  (*FT_Realloc_Func)( FT_Memory  memory,
-                      long       cur_size,
-                      long       new_size,
-                      void*      block );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    FT_MemoryRec                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A structure used to describe a given memory manager to FreeType 2. */
-  /*                                                                       */
-  /* @fields:                                                              */
-  /*    user    :: A generic typeless pointer for user data.               */
-  /*                                                                       */
-  /*    alloc   :: A pointer type to an allocation function.               */
-  /*                                                                       */
-  /*    free    :: A pointer type to an memory freeing function.           */
-  /*                                                                       */
-  /*    realloc :: A pointer type to a reallocation function.              */
-  /*                                                                       */
-  struct  FT_MemoryRec_
-  {
-    void*            user;
-    FT_Alloc_Func    alloc;
-    FT_Free_Func     free;
-    FT_Realloc_Func  realloc;
-  };
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                       I / O   M A N A G E M E N T                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    FT_Stream                                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A handle to an input stream.                                       */
-  /*                                                                       */
-  typedef struct FT_StreamRec_*  FT_Stream;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    FT_StreamDesc                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A union type used to store either a long or a pointer.  This is    */
-  /*    used to store a file descriptor or a FILE* in an input stream.     */
-  /*                                                                       */
-  typedef union  FT_StreamDesc_
-  {
-    long   value;
-    void*  pointer;
-
-  } FT_StreamDesc;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    FT_Stream_IoFunc                                                   */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A function used to seek and read data from a given input stream.   */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    stream :: A handle to the source stream.                           */
-  /*                                                                       */
-  /*    offset :: The offset of read in stream (always from start).        */
-  /*                                                                       */
-  /*    buffer :: The address of the read buffer.                          */
-  /*                                                                       */
-  /*    count  :: The number of bytes to read from the stream.             */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    The number of bytes effectively read by the stream.                */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    This function might be called to perform a seek or skip operation  */
-  /*    with a `count' of 0.                                               */
-  /*                                                                       */
-  typedef unsigned long
-  (*FT_Stream_IoFunc)( FT_Stream       stream,
-                       unsigned long   offset,
-                       unsigned char*  buffer,
-                       unsigned long   count );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    FT_Stream_CloseFunc                                                */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A function used to close a given input stream.                     */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*   stream :: A handle to the target stream.                            */
-  /*                                                                       */
-  typedef void
-  (*FT_Stream_CloseFunc)( FT_Stream  stream );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    FT_StreamRec                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*   A structure used to describe an input stream.                       */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*   base       :: For memory-based streams, this is the address of the  */
-  /*                 first stream byte in memory.  This field should       */
-  /*                 always be set to NULL for disk-based streams.         */
-  /*                                                                       */
-  /*   size       :: The stream size in bytes.                             */
-  /*                                                                       */
-  /*   pos        :: The current position within the stream.               */
-  /*                                                                       */
-  /*   descriptor :: This field is a union that can hold an integer or a   */
-  /*                 pointer.  It is used by stream implementations to     */
-  /*                 store file descriptors or FILE* pointers.             */
-  /*                                                                       */
-  /*   pathname   :: This field is completely ignored by FreeType.         */
-  /*                 However, it is often useful during debugging to use   */
-  /*                 it to store the stream's filename (where available).  */
-  /*                                                                       */
-  /*   read       :: The stream's input function.                          */
-  /*                                                                       */
-  /*   close      :: The stream;s close function.                          */
-  /*                                                                       */
-  /*   memory     :: The memory manager to use to preload frames.  This is */
-  /*                 set internally by FreeType and shouldn't be touched   */
-  /*                 by stream implementations.                            */
-  /*                                                                       */
-  /*   cursor     :: This field is set and used internally by FreeType     */
-  /*                 when parsing frames.                                  */
-  /*                                                                       */
-  /*   limit      :: This field is set and used internally by FreeType     */
-  /*                 when parsing frames.                                  */
-  /*                                                                       */
-  typedef struct  FT_StreamRec_
-  {
-    unsigned char*       base;
-    unsigned long        size;
-    unsigned long        pos;
-
-    FT_StreamDesc        descriptor;
-    FT_StreamDesc        pathname;
-    FT_Stream_IoFunc     read;
-    FT_Stream_CloseFunc  close;
-
-    FT_Memory            memory;
-    unsigned char*       cursor;
-    unsigned char*       limit;
-
-  } FT_StreamRec;
-
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTSYSTEM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/fttrigon.h b/nx-X11/extras/freetype2/include/freetype/fttrigon.h
deleted file mode 100644
index 0462265e3..000000000
--- a/nx-X11/extras/freetype2/include/freetype/fttrigon.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fttrigon.h                                                             */
-/*                                                                         */
-/*    FreeType trigonometric functions (specification).                    */
-/*                                                                         */
-/*  Copyright 2001, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTTRIGON_H__
-#define __FTTRIGON_H__
-
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @section:                                                             */
-  /*   computations                                                        */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    FT_Angle                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    This type is used to model angle values in FreeType.  Note that    */
-  /*    the angle is a 16.16 fixed float value expressed in degrees.       */
-  /*                                                                       */
-  typedef FT_Fixed  FT_Angle;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_ANGLE_PI                                                        */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*   The angle pi expressed in @FT_Angle units.                          */
-  /*                                                                       */
-#define FT_ANGLE_PI  ( 180L << 16 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_ANGLE_2PI                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The angle 2*pi expressed in @FT_Angle units.                       */
-  /*                                                                       */
-#define FT_ANGLE_2PI  ( FT_ANGLE_PI * 2 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_ANGLE_PI2                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The angle pi/2 expressed in @FT_Angle units.                       */
-  /*                                                                       */
-#define FT_ANGLE_PI2  ( FT_ANGLE_PI / 2 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @macro:                                                               */
-  /*    FT_ANGLE_PI4                                                       */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The angle pi/4 expressed in @FT_Angle units.                       */
-  /*                                                                       */
-#define FT_ANGLE_PI4  ( FT_ANGLE_PI / 4 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Sin                                                             */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Return the sinus of a given angle in fixed point format.           */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    angle :: The input angle.                                          */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    The sinus value.                                                   */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    If you need both the sinus and cosinus for a given angle, use the  */
-  /*    function @FT_Vector_Unit.                                          */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_Sin( FT_Angle  angle );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Cos                                                             */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Return the cosinus of a given angle in fixed point format.         */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    angle :: The input angle.                                          */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    The cosinus value.                                                 */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    If you need both the sinus and cosinus for a given angle, use the  */
-  /*    function @FT_Vector_Unit.                                          */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_Cos( FT_Angle  angle );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Tan                                                             */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Return the tangent of a given angle in fixed point format.         */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    angle :: The input angle.                                          */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    The tangent value.                                                 */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_Tan( FT_Angle  angle );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Atan2                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Return the arc-tangent corresponding to a given vector (x,y) in    */
-  /*    the 2d plane.                                                      */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    x :: The horizontal vector coordinate.                             */
-  /*                                                                       */
-  /*    y :: The vertical vector coordinate.                               */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    The arc-tangent value (i.e. angle).                                */
-  /*                                                                       */
-  FT_EXPORT( FT_Angle )
-  FT_Atan2( FT_Fixed  x,
-            FT_Fixed  y );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Angle_Diff                                                      */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Return the difference between two angles.  The result is always    */
-  /*    constrained to the ]-PI..PI] interval.                             */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    angle1 :: First angle.                                             */
-  /*                                                                       */
-  /*    angle2 :: Second angle.                                            */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    Contrainted value of `value2-value1'.                              */
-  /*                                                                       */
-  FT_EXPORT( FT_Angle )
-  FT_Angle_Diff( FT_Angle  angle1,
-                 FT_Angle  angle2 );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Vector_Unit                                                     */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Return the unit vector corresponding to a given angle.  After the  */
-  /*    call, the value of `vec.x' will be `sin(angle)', and the value of  */
-  /*    `vec.y' will be `cos(angle)'.                                      */
-  /*                                                                       */
-  /*    This function is useful to retrieve both the sinus and cosinus of  */
-  /*    a given angle quickly.                                             */
-  /*                                                                       */
-  /* @output:                                                              */
-  /*    vec   :: The address of target vector.                             */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    angle :: The address of angle.                                     */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Vector_Unit( FT_Vector*  vec,
-                  FT_Angle    angle );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Vector_Rotate                                                   */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Rotate a vector by a given angle.                                  */
-  /*                                                                       */
-  /* @inout:                                                               */
-  /*    vec   :: The address of target vector.                             */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    angle :: The address of angle.                                     */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Vector_Rotate( FT_Vector*  vec,
-                    FT_Angle    angle );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*   FT_Vector_Length                                                    */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*   Return the length of a given vector.                                */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*   vec :: The address of target vector.                                */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*   The vector length, expressed in the same units that the original    */
-  /*   vector coordinates.                                                 */
-  /*                                                                       */
-  FT_EXPORT( FT_Fixed )
-  FT_Vector_Length( FT_Vector*  vec );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Vector_Polarize                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Compute both the length and angle of a given vector.               */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    vec    :: The address of source vector.                            */
-  /*                                                                       */
-  /* @output:                                                              */
-  /*    length :: The vector length.                                       */
-  /*    angle  :: The vector angle.                                        */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Vector_Polarize( FT_Vector*  vec,
-                      FT_Fixed   *length,
-                      FT_Angle   *angle );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @function:                                                            */
-  /*    FT_Vector_From_Polar                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    Compute vector coordinates from a length and angle.                */
-  /*                                                                       */
-  /* @output:                                                              */
-  /*    vec    :: The address of source vector.                            */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    length :: The vector length.                                       */
-  /*    angle  :: The vector angle.                                        */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Vector_From_Polar( FT_Vector*  vec,
-                        FT_Fixed    length,
-                        FT_Angle    angle );
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTTRIGON_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/fttypes.h b/nx-X11/extras/freetype2/include/freetype/fttypes.h
deleted file mode 100644
index 2782f74d5..000000000
--- a/nx-X11/extras/freetype2/include/freetype/fttypes.h
+++ /dev/null
@@ -1,558 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fttypes.h                                                              */
-/*                                                                         */
-/*    FreeType simple types definitions (specification only).              */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTTYPES_H__
-#define __FTTYPES_H__
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_SYSTEM_H
-#include FT_IMAGE_H
-
-#include <stddef.h>
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    basic_types                                                        */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Basic Data Types                                                   */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    The basic data types defined by the library.                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the basic data types defined by FreeType 2,  */
-  /*    ranging from simple scalar types to bitmap descriptors.  More      */
-  /*    font-specific structures are defined in a different section.       */
-  /*                                                                       */
-  /* <Order>                                                               */
-  /*    FT_Byte                                                            */
-  /*    FT_Char                                                            */
-  /*    FT_Int                                                             */
-  /*    FT_UInt                                                            */
-  /*    FT_Short                                                           */
-  /*    FT_UShort                                                          */
-  /*    FT_Long                                                            */
-  /*    FT_ULong                                                           */
-  /*    FT_Bool                                                            */
-  /*    FT_Offset                                                          */
-  /*    FT_PtrDist                                                         */
-  /*    FT_String                                                          */
-  /*    FT_Error                                                           */
-  /*    FT_Fixed                                                           */
-  /*    FT_Pointer                                                         */
-  /*    FT_Pos                                                             */
-  /*    FT_Vector                                                          */
-  /*    FT_BBox                                                            */
-  /*    FT_Matrix                                                          */
-  /*    FT_FWord                                                           */
-  /*    FT_UFWord                                                          */
-  /*    FT_F2Dot14                                                         */
-  /*    FT_UnitVector                                                      */
-  /*    FT_F26Dot6                                                         */
-  /*                                                                       */
-  /*                                                                       */
-  /*    FT_Generic                                                         */
-  /*    FT_Generic_Finalizer                                               */
-  /*                                                                       */
-  /*    FT_Bitmap                                                          */
-  /*    FT_Pixel_Mode                                                      */
-  /*    FT_Palette_Mode                                                    */
-  /*    FT_Glyph_Format                                                    */
-  /*    FT_IMAGE_TAG                                                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Bool                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef of unsigned char, used for simple booleans.              */
-  /*                                                                       */
-  typedef unsigned char  FT_Bool;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_FWord                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A signed 16-bit integer used to store a distance in original font  */
-  /*    units.                                                             */
-  /*                                                                       */
-  typedef signed short  FT_FWord;   /* distance in FUnits */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_UFWord                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An unsigned 16-bit integer used to store a distance in original    */
-  /*    font units.                                                        */
-  /*                                                                       */
-  typedef unsigned short  FT_UFWord;  /* unsigned distance */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Char                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple typedef for the _signed_ char type.                       */
-  /*                                                                       */
-  typedef signed char  FT_Char;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Byte                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple typedef for the _unsigned_ char type.                     */
-  /*                                                                       */
-  typedef unsigned char  FT_Byte;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_String                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple typedef for the char type, usually used for strings.      */
-  /*                                                                       */
-  typedef char  FT_String;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Short                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef for signed short.                                        */
-  /*                                                                       */
-  typedef signed short  FT_Short;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_UShort                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef for unsigned short.                                      */
-  /*                                                                       */
-  typedef unsigned short  FT_UShort;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Int                                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef for the int type.                                        */
-  /*                                                                       */
-  typedef int  FT_Int;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_UInt                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef for the unsigned int type.                               */
-  /*                                                                       */
-  typedef unsigned int  FT_UInt;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Long                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef for signed long.                                         */
-  /*                                                                       */
-  typedef signed long  FT_Long;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_ULong                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A typedef for unsigned long.                                       */
-  /*                                                                       */
-  typedef unsigned long  FT_ULong;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_F2Dot14                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A signed 2.14 fixed float type used for unit vectors.              */
-  /*                                                                       */
-  typedef signed short  FT_F2Dot14;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_F26Dot6                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A signed 26.6 fixed float type used for vectorial pixel            */
-  /*    coordinates.                                                       */
-  /*                                                                       */
-  typedef signed long  FT_F26Dot6;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Fixed                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This type is used to store 16.16 fixed float values, like scales   */
-  /*    or matrix coefficients.                                            */
-  /*                                                                       */
-  typedef signed long  FT_Fixed;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Error                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The FreeType error code type.  A value of 0 is always interpreted  */
-  /*    as a successful operation.                                         */
-  /*                                                                       */
-  typedef int  FT_Error;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Pointer                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple typedef for a typeless pointer.                           */
-  /*                                                                       */
-  typedef void*  FT_Pointer;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_Offset                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This is equivalent to the ANSI C `size_t' type, i.e. the largest   */
-  /*    _unsigned_ integer type used to express a file size or position,   */
-  /*    or a memory block size.                                            */
-  /*                                                                       */
-  typedef size_t  FT_Offset;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_PtrDist                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This is equivalent to the ANSI C `ptrdiff_t' type, i.e. the        */
-  /*    largest _signed_ integer type used to express the distance         */
-  /*    between two pointers.                                              */
-  /*                                                                       */
-  typedef size_t  FT_PtrDist;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_UnitVector                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to store a 2D vector unit vector.  Uses    */
-  /*    FT_F2Dot14 types.                                                  */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    x :: Horizontal coordinate.                                        */
-  /*                                                                       */
-  /*    y :: Vertical coordinate.                                          */
-  /*                                                                       */
-  typedef struct  FT_UnitVector_
-  {
-    FT_F2Dot14  x;
-    FT_F2Dot14  y;
-
-  } FT_UnitVector;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Matrix                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure used to store a 2x2 matrix.  Coefficients are   */
-  /*    in 16.16 fixed float format.  The computation performed is:        */
-  /*                                                                       */
-  /*       {                                                               */
-  /*          x' = x*xx + y*xy                                             */
-  /*          y' = x*yx + y*yy                                             */
-  /*       }                                                               */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    xx :: Matrix coefficient.                                          */
-  /*                                                                       */
-  /*    xy :: Matrix coefficient.                                          */
-  /*                                                                       */
-  /*    yx :: Matrix coefficient.                                          */
-  /*                                                                       */
-  /*    yy :: Matrix coefficient.                                          */
-  /*                                                                       */
-  typedef struct  FT_Matrix_
-  {
-    FT_Fixed  xx, xy;
-    FT_Fixed  yx, yy;
-
-  } FT_Matrix;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Data	                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Read-only binary data represented as a pointer and a length.       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    pointer :: The data.                                               */
-  /*                                                                       */
-  /*    length  :: The length of the data in bytes.                        */
-  /*                                                                       */
-  typedef struct  FT_Data_
-  {
-    const FT_Byte*  pointer;
-    FT_Int          length;
-
-  } FT_Data;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_Generic_Finalizer                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Describes a function used to destroy the `client' data of any      */
-  /*    FreeType object.  See the description of the FT_Generic type for   */
-  /*    details of usage.                                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    The address of the FreeType object which is under finalization.    */
-  /*    Its client data is accessed through its `generic' field.           */
-  /*                                                                       */
-  typedef void  (*FT_Generic_Finalizer)(void*  object);
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Generic                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Client applications often need to associate their own data to a    */
-  /*    variety of FreeType core objects.  For example, a text layout API  */
-  /*    might want to associate a glyph cache to a given size object.      */
-  /*                                                                       */
-  /*    Most FreeType object contains a `generic' field, of type           */
-  /*    FT_Generic, which usage is left to client applications and font    */
-  /*    servers.                                                           */
-  /*                                                                       */
-  /*    It can be used to store a pointer to client-specific data, as well */
-  /*    as the address of a `finalizer' function, which will be called by  */
-  /*    FreeType when the object is destroyed (for example, the previous   */
-  /*    client example would put the address of the glyph cache destructor */
-  /*    in the `finalizer' field).                                         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    data      :: A typeless pointer to any client-specified data. This */
-  /*                 field is completely ignored by the FreeType library.  */
-  /*                                                                       */
-  /*    finalizer :: A pointer to a `generic finalizer' function, which    */
-  /*                 will be called when the object is destroyed.  If this */
-  /*                 field is set to NULL, no code will be called.         */
-  /*                                                                       */
-  typedef struct  FT_Generic_
-  {
-    void*                 data;
-    FT_Generic_Finalizer  finalizer;
-
-  } FT_Generic;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_MAKE_TAG                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro converts four letter tags which are used to label       */
-  /*    TrueType tables into an unsigned long to be used within FreeType.  */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The produced values *must* be 32bit integers.  Don't redefine this */
-  /*    macro.                                                             */
-  /*                                                                       */
-#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
-          ( ( (FT_ULong)_x1 << 24 ) |     \
-            ( (FT_ULong)_x2 << 16 ) |     \
-            ( (FT_ULong)_x3 <<  8 ) |     \
-              (FT_ULong)_x4         )
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*                                                                       */
-  /*                    L I S T   M A N A G E M E N T                      */
-  /*                                                                       */
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    list_processing                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_ListNode                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*     Many elements and objects in FreeType are listed through a        */
-  /*     FT_List record (see FT_ListRec).  As its name suggests, a         */
-  /*     FT_ListNode is a handle to a single list element.                 */
-  /*                                                                       */
-  typedef struct FT_ListNodeRec_*  FT_ListNode;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    FT_List                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a list record (see FT_ListRec).                        */
-  /*                                                                       */
-  typedef struct FT_ListRec_*  FT_List;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_ListNodeRec                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to hold a single list element.                    */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    prev :: The previous element in the list.  NULL if first.          */
-  /*                                                                       */
-  /*    next :: The next element in the list.  NULL if last.               */
-  /*                                                                       */
-  /*    data :: A typeless pointer to the listed object.                   */
-  /*                                                                       */
-  typedef struct  FT_ListNodeRec_
-  {
-    FT_ListNode  prev;
-    FT_ListNode  next;
-    void*        data;
-
-  } FT_ListNodeRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_ListRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to hold a simple doubly-linked list.  These are   */
-  /*    used in many parts of FreeType.                                    */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    head :: The head (first element) of doubly-linked list.            */
-  /*                                                                       */
-  /*    tail :: The tail (last element) of doubly-linked list.             */
-  /*                                                                       */
-  typedef struct  FT_ListRec_
-  {
-    FT_ListNode  head;
-    FT_ListNode  tail;
-
-  } FT_ListRec;
-
-
-  /* */
-
-#define FT_IS_EMPTY( list )  ( (list).head == 0 )
-
-  /* return base error code (without module-specific prefix) */
-#define FT_ERROR_BASE( x )    ( (x) & 0xFF )
-
-  /* return module error code */
-#define FT_ERROR_MODULE( x )  ( (x) & 0xFF00U )
-
-#define FT_BOOL( x )  ( (FT_Bool)( x ) )
-
-FT_END_HEADER
-
-#endif /* __FTTYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftwinfnt.h b/nx-X11/extras/freetype2/include/freetype/ftwinfnt.h
deleted file mode 100644
index a19a12d97..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftwinfnt.h
+++ /dev/null
@@ -1,257 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftwinfnt.h                                                             */
-/*                                                                         */
-/*    FreeType API for accessing Windows fnt-specific data.                */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTWINFNT_H__
-#define __FTWINFNT_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    winfnt_fonts                                                       */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Window FNT Fonts                                                   */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Windows FNT specific APIs                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the declaration of Windows FNT specific      */
-  /*    functions.                                                         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************
-   *
-   * @enum:
-   *   FT_WinFNT_ID_XXX
-   *
-   * @description:
-   *   A list of valid values for the `charset' byte in
-   *   @FT_WinFNT_HeaderRec.  Exact mapping tables for the various cpXXXX
-   *   encodings (except for cp1361) can be found at ftp://ftp.unicode.org
-   *   in the MAPPINGS/VENDORS/MICSFT/WINDOWS subdirectory.  cp1361 is
-   *   roughly a superset of MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT.
-   *
-   * @values:
-   *   FT_WinFNT_ID_DEFAULT ::
-   *     This is used for font enumeration and font creation as a 
-   *     `don't care' value.  Valid font files don't contain this value.
-   *     When querying for information about the character set of the font
-   *     that is currently selected into a specified device context, this
-   *     return value (of the related Windows API) simply denotes failure.
-   *
-   *   FT_WinFNT_ID_SYMBOL ::
-   *     There is no known mapping table available.
-   *
-   *   FT_WinFNT_ID_MAC ::
-   *     Mac Roman encoding.
-   *
-   *   FT_WinFNT_ID_OEM ::
-   *     From Michael P�ttgen <michael@poettgen.de>:
-   *       The `Windows Font Mapping' article says that FT_WinFNT_ID_OEM
-   *       is used for the charset of vector fonts, like `modern.fon',
-   *       `roman.fon', and `script.fon' on Windows.
-   *
-   *       The `CreateFont' documentation says: The FT_WinFNT_ID_OEM value
-   *       specifies a character set that is operating-system dependent.
-   *
-   *       The `IFIMETRICS' documentation from the `Windows Driver
-   *       Development Kit' says: This font supports an OEM-specific
-   *       character set.  The OEM character set is system dependent.
-   *
-   *       In general OEM, as opposed to ANSI (i.e., cp1252), denotes the
-   *       second default codepage that most international versions of
-   *       Windows have.  It is one of the OEM codepages from
-   *
-   *         http://www.microsoft.com/globaldev/reference/cphome.mspx,
-   *    
-   *       and is used for the `DOS boxes', to support legacy applications.
-   *       A German Windows version for example usually uses ANSI codepage
-   *       1252 and OEM codepage 850.
-   *
-   *   FT_WinFNT_ID_CP874 ::
-   *     A superset of Thai TIS 620 and ISO 8859-11.
-   *
-   *   FT_WinFNT_ID_CP932 ::
-   *     A superset of Japanese Shift-JIS (with minor deviations).
-   *
-   *   FT_WinFNT_ID_CP936 ::
-   *     A superset of simplified Chinese GB 2312-1980 (with different
-   *     ordering and minor deviations).
-   *
-   *   FT_WinFNT_ID_CP949 ::
-   *     A superset of Korean Hangul KS C 5601-1987 (with different
-   *     ordering and minor deviations).
-   *
-   *   FT_WinFNT_ID_CP950 ::
-   *     A superset of traditional Chinese Big 5 ETen (with different
-   *     ordering and minor deviations).
-   *
-   *   FT_WinFNT_ID_CP1250 ::
-   *     A superset of East European ISO 8859-2 (with slightly different
-   *     ordering).
-   *
-   *   FT_WinFNT_ID_CP1251 ::
-   *     A superset of Russian ISO 8859-5 (with different ordering).
-   *
-   *   FT_WinFNT_ID_CP1252 ::
-   *     ANSI encoding.  A superset of ISO 8859-1.
-   *
-   *   FT_WinFNT_ID_CP1253 ::
-   *     A superset of Greek ISO 8859-7 (with minor modifications).
-   *     
-   *   FT_WinFNT_ID_CP1254 ::
-   *     A superset of Turkish ISO 8859-9.
-   *     
-   *   FT_WinFNT_ID_CP1255 ::
-   *     A superset of Hebrew ISO 8859-8 (with some modifications).
-   *
-   *   FT_WinFNT_ID_CP1256 ::
-   *     A superset of Arabic ISO 8859-6 (with different ordering).
-   *
-   *   FT_WinFNT_ID_CP1257 ::
-   *     A superset of Baltic ISO 8859-13 (with some deviations).
-   *
-   *   FT_WinFNT_ID_CP1258 ::
-   *     For Vietnamese.  This encoding doesn't cover all necessary
-   *     characters.
-   *
-   *   FT_WinFNT_ID_CP1361 ::
-   *     Korean (Johab).
-   */
-
-#define FT_WinFNT_ID_CP1252    0
-#define FT_WinFNT_ID_DEFAULT   1
-#define FT_WinFNT_ID_SYMBOL    2
-#define FT_WinFNT_ID_MAC      77
-#define FT_WinFNT_ID_CP932   128
-#define FT_WinFNT_ID_CP949   129
-#define FT_WinFNT_ID_CP1361  130
-#define FT_WinFNT_ID_CP936   134
-#define FT_WinFNT_ID_CP950   136
-#define FT_WinFNT_ID_CP1253  161
-#define FT_WinFNT_ID_CP1254  162
-#define FT_WinFNT_ID_CP1258  163
-#define FT_WinFNT_ID_CP1255  177
-#define FT_WinFNT_ID_CP1256  178
-#define FT_WinFNT_ID_CP1257  186
-#define FT_WinFNT_ID_CP1251  204
-#define FT_WinFNT_ID_CP874   222
-#define FT_WinFNT_ID_CP1250  238
-#define FT_WinFNT_ID_OEM     255
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_WinFNT_HeaderRec                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Windows FNT Header info.                                           */
-  /*                                                                       */
-  typedef struct  FT_WinFNT_HeaderRec_
-  {
-    FT_UShort  version;
-    FT_ULong   file_size;
-    FT_Byte    copyright[60];
-    FT_UShort  file_type;
-    FT_UShort  nominal_point_size;
-    FT_UShort  vertical_resolution;
-    FT_UShort  horizontal_resolution;
-    FT_UShort  ascent;
-    FT_UShort  internal_leading;
-    FT_UShort  external_leading;
-    FT_Byte    italic;
-    FT_Byte    underline;
-    FT_Byte    strike_out;
-    FT_UShort  weight;
-    FT_Byte    charset;
-    FT_UShort  pixel_width;
-    FT_UShort  pixel_height;
-    FT_Byte    pitch_and_family;
-    FT_UShort  avg_width;
-    FT_UShort  max_width;
-    FT_Byte    first_char;
-    FT_Byte    last_char;
-    FT_Byte    default_char;
-    FT_Byte    break_char;
-    FT_UShort  bytes_per_row;
-    FT_ULong   device_offset;
-    FT_ULong   face_name_offset;
-    FT_ULong   bits_pointer;
-    FT_ULong   bits_offset;
-    FT_Byte    reserved;
-    FT_ULong   flags;
-    FT_UShort  A_space;
-    FT_UShort  B_space;
-    FT_UShort  C_space;
-    FT_UShort  color_table_offset;
-    FT_ULong   reserved1[4];
-
-  } FT_WinFNT_HeaderRec, *FT_WinFNT_Header;
-
-
- /**********************************************************************
-  *
-  * @function:
-  *    FT_Get_WinFNT_Header
-  *
-  * @description:
-  *    Retrieve a Windows FNT font info header.
-  *
-  * @input:
-  *    face    :: A handle to the input face.
-  *
-  * @output:
-  *    aheader :: The WinFNT header.
-  *
-  * @return:
-  *   FreeType error code.  0 means success.
-  *
-  * @note:
-  *   This function only works with Windows FNT faces, returning an error
-  *   otherwise.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_WinFNT_Header( FT_Face               face,
-                        FT_WinFNT_HeaderRec  *aheader );
-
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTWINFNT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ftxf86.h b/nx-X11/extras/freetype2/include/freetype/ftxf86.h
deleted file mode 100644
index 3362883cb..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ftxf86.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftxf86.h                                                               */
-/*                                                                         */
-/*    Support functions for X11.                                           */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTXF86_H__
-#define __FTXF86_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-  /* this comment is intentionally disabled for now, to prevent this       */
-  /* function from appearing in the API Reference.                         */
-
-  /*@***********************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_X11_Font_Format                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Return a string describing the format of a given face as an X11    */
-  /*    FONT_PROPERTY.  It should only be used by the FreeType 2 font      */
-  /*    backend of the XFree86 font server.                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: Input face handle.                                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Font format string.  NULL in case of error.                        */
-  /*                                                                       */
-  FT_EXPORT( const char* )
-  FT_Get_X11_Font_Format( FT_Face  face );
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTXF86_H__ */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/autohint.h b/nx-X11/extras/freetype2/include/freetype/internal/autohint.h
deleted file mode 100644
index 22340afc3..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/autohint.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  autohint.h                                                             */
-/*                                                                         */
-/*    High-level `autohint' module-specific interface (specification).     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The auto-hinter is used to load and automatically hint glyphs if a    */
-  /* format-specific hinter isn't available.                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __AUTOHINT_H__
-#define __AUTOHINT_H__
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A small technical note regarding automatic hinting in order to        */
-  /* clarify this module interface.                                        */
-  /*                                                                       */
-  /* An automatic hinter might compute two kinds of data for a given face: */
-  /*                                                                       */
-  /* - global hints: Usually some metrics that describe global properties  */
-  /*                 of the face.  It is computed by scanning more or less */
-  /*                 agressively the glyphs in the face, and thus can be   */
-  /*                 very slow to compute (even if the size of global      */
-  /*                 hints is really small).                               */
-  /*                                                                       */
-  /* - glyph hints:  These describe some important features of the glyph   */
-  /*                 outline, as well as how to align them.  They are      */
-  /*                 generally much faster to compute than global hints.   */
-  /*                                                                       */
-  /* The current FreeType auto-hinter does a pretty good job while         */
-  /* performing fast computations for both global and glyph hints.         */
-  /* However, we might be interested in introducing more complex and       */
-  /* powerful algorithms in the future, like the one described in the John */
-  /* D. Hobby paper, which unfortunately requires a lot more horsepower.   */
-  /*                                                                       */
-  /* Because a sufficiently sophisticated font management system would     */
-  /* typically implement an LRU cache of opened face objects to reduce     */
-  /* memory usage, it is a good idea to be able to avoid recomputing       */
-  /* global hints every time the same face is re-opened.                   */
-  /*                                                                       */
-  /* We thus provide the ability to cache global hints outside of the face */
-  /* object, in order to speed up font re-opening time.  Of course, this   */
-  /* feature is purely optional, so most client programs won't even notice */
-  /* it.                                                                   */
-  /*                                                                       */
-  /* I initially thought that it would be a good idea to cache the glyph   */
-  /* hints too.  However, my general idea now is that if you really need   */
-  /* to cache these too, you are simply in need of a new font format,      */
-  /* where all this information could be stored within the font file and   */
-  /* decoded on the fly.                                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct FT_AutoHinterRec_  *FT_AutoHinter;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_AutoHinter_GlobalGetFunc                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Retrieves the global hints computed for a given face object the    */
-  /*    resulting data is dissociated from the face and will survive a     */
-  /*    call to FT_Done_Face().  It must be discarded through the API      */
-  /*    FT_AutoHinter_GlobalDoneFunc().                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    hinter        :: A handle to the source auto-hinter.               */
-  /*                                                                       */
-  /*    face          :: A handle to the source face object.               */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    global_hints  :: A typeless pointer to the global hints.           */
-  /*                                                                       */
-  /*    global_len    :: The size in bytes of the global hints.            */
-  /*                                                                       */
-  typedef void
-  (*FT_AutoHinter_GlobalGetFunc)( FT_AutoHinter  hinter,
-                                  FT_Face        face,
-                                  void**         global_hints,
-                                  long*          global_len );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_AutoHinter_GlobalDoneFunc                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Discards the global hints retrieved through                        */
-  /*    FT_AutoHinter_GlobalGetFunc().  This is the only way these hints   */
-  /*    are freed from memory.                                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    hinter :: A handle to the auto-hinter module.                      */
-  /*                                                                       */
-  /*    global :: A pointer to retrieved global hints to discard.          */
-  /*                                                                       */
-  typedef void
-  (*FT_AutoHinter_GlobalDoneFunc)( FT_AutoHinter  hinter,
-                                   void*          global );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_AutoHinter_GlobalResetFunc                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used to recompute the global metrics in a given   */
-  /*    font.  This is useful when global font data changes (e.g. Multiple */
-  /*    Masters fonts where blend coordinates change).                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    hinter :: A handle to the source auto-hinter.                      */
-  /*                                                                       */
-  /*    face   :: A handle to the face.                                    */
-  /*                                                                       */
-  typedef void
-  (*FT_AutoHinter_GlobalResetFunc)( FT_AutoHinter  hinter,
-                                    FT_Face        face );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    FT_AutoHinter_GlyphLoadFunc                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used to load, scale, and automatically hint a     */
-  /*    glyph from a given face.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to the face.                               */
-  /*                                                                       */
-  /*    glyph_index :: The glyph index.                                    */
-  /*                                                                       */
-  /*    load_flags  :: The load flags.                                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function is capable of loading composite glyphs by hinting    */
-  /*    each sub-glyph independently (which improves quality).             */
-  /*                                                                       */
-  /*    It will call the font driver with FT_Load_Glyph(), with            */
-  /*    FT_LOAD_NO_SCALE set.                                              */
-  /*                                                                       */
-  typedef FT_Error
-  (*FT_AutoHinter_GlyphLoadFunc)( FT_AutoHinter  hinter,
-                                  FT_GlyphSlot   slot,
-                                  FT_Size        size,
-                                  FT_UInt        glyph_index,
-                                  FT_Int32       load_flags );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_AutoHinter_ServiceRec                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The auto-hinter module's interface.                                */
-  /*                                                                       */
-  typedef struct  FT_AutoHinter_ServiceRec_
-  {
-    FT_AutoHinter_GlobalResetFunc  reset_face;
-    FT_AutoHinter_GlobalGetFunc    get_global_hints;
-    FT_AutoHinter_GlobalDoneFunc   done_global_hints;
-    FT_AutoHinter_GlyphLoadFunc    load_glyph;
-
-  } FT_AutoHinter_ServiceRec, *FT_AutoHinter_Service;
-
-
-FT_END_HEADER
-
-#endif /* __AUTOHINT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftcalc.h b/nx-X11/extras/freetype2/include/freetype/internal/ftcalc.h
deleted file mode 100644
index 7866c4627..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftcalc.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcalc.h                                                               */
-/*                                                                         */
-/*    Arithmetic computations (specification).                             */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTCALC_H__
-#define __FTCALC_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT( FT_Int32 )
-  FT_SqrtFixed( FT_Int32  x );
-
-
-#define SQRT_32( x )  FT_Sqrt32( x )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Sqrt32                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the square root of an Int32 integer (which will be        */
-  /*    handled as an unsigned long value).                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x :: The value to compute the root for.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `sqrt(x)'.                                           */
-  /*                                                                       */
-  FT_EXPORT( FT_Int32 )
-  FT_Sqrt32( FT_Int32  x );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FT_MulDiv() and FT_MulFix() are declared in freetype.h.               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_MulDiv_No_Round                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A very simple function used to perform the computation `(a*b)/c'   */
-  /*    (without rounding) with maximal accuracy (it uses a 64-bit         */
-  /*    intermediate integer whenever necessary).                          */
-  /*                                                                       */
-  /*    This function isn't necessarily as fast as some processor specific */
-  /*    operations, but is at least completely portable.                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    a :: The first multiplier.                                         */
-  /*    b :: The second multiplier.                                        */
-  /*    c :: The divisor.                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The result of `(a*b)/c'.  This function never traps when trying to */
-  /*    divide by zero; it simply returns `MaxInt' or `MinInt' depending   */
-  /*    on the signs of `a' and `b'.                                       */
-  /*                                                                       */
-  FT_BASE( FT_Long )
-  FT_MulDiv_No_Round( FT_Long  a,
-                      FT_Long  b,
-                      FT_Long  c );
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-#define INT_TO_F26DOT6( x )    ( (FT_Long)(x) << 6  )
-#define INT_TO_F2DOT14( x )    ( (FT_Long)(x) << 14 )
-#define INT_TO_FIXED( x )      ( (FT_Long)(x) << 16 )
-#define F2DOT14_TO_FIXED( x )  ( (FT_Long)(x) << 2  )
-#define FLOAT_TO_FIXED( x )    ( (FT_Long)( x * 65536.0 ) )
-
-#define ROUND_F26DOT6( x )     ( x >= 0 ? (    ( (x) + 32 ) & -64 )     \
-                                        : ( -( ( 32 - (x) ) & -64 ) ) )
-
-
-FT_END_HEADER
-
-#endif /* __FTCALC_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftdebug.h b/nx-X11/extras/freetype2/include/freetype/internal/ftdebug.h
deleted file mode 100644
index ce142c54c..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftdebug.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftdebug.h                                                              */
-/*                                                                         */
-/*    Debugging and logging component (specification).                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*                                                                         */
-/*  IMPORTANT: A description of FreeType's debugging support can be        */
-/*             found in "docs/DEBUG.TXT".  Read it if you need to use or   */
-/*             understand this code.                                       */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTDEBUG_H__
-#define __FTDEBUG_H__
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_FREETYPE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */
-  /* is already defined; this simplifies the following #ifdefs            */
-  /*                                                                      */
-#ifdef FT_DEBUG_LEVEL_TRACE
-#undef  FT_DEBUG_LEVEL_ERROR
-#define FT_DEBUG_LEVEL_ERROR
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define the trace enums as well as the trace levels array when they    */
-  /* are needed.                                                           */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifdef FT_DEBUG_LEVEL_TRACE
-
-#define FT_TRACE_DEF( x )  trace_ ## x ,
-
-  /* defining the enumeration */
-  typedef enum
-  {
-#include FT_INTERNAL_TRACE_H
-    trace_count
-
-  } FT_Trace;
-
-
-  /* defining the array of trace levels, provided by `src/base/ftdebug.c' */
-  extern int  ft_trace_levels[trace_count];
-
-#undef FT_TRACE_DEF
-
-#endif /* FT_DEBUG_LEVEL_TRACE */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define the FT_TRACE macro                                             */
-  /*                                                                       */
-  /* IMPORTANT!                                                            */
-  /*                                                                       */
-  /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */
-  /* value before using any TRACE macro.                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifdef FT_DEBUG_LEVEL_TRACE
-
-#define FT_TRACE( level, varformat )                      \
-          do                                              \
-          {                                               \
-            if ( ft_trace_levels[FT_COMPONENT] >= level ) \
-              FT_Message varformat;                       \
-          } while ( 0 )
-
-#else /* !FT_DEBUG_LEVEL_TRACE */
-
-#define FT_TRACE( level, varformat )  do ; while ( 0 )      /* nothing */
-
-#endif /* !FT_DEBUG_LEVEL_TRACE */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Trace_Get_Count                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Return the number of available trace components.                   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The number of trace components.  0 if FreeType 2 is not built with */
-  /*    FT_DEBUG_LEVEL_TRACE definition.                                   */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function may be useful if you want to access elements of      */
-  /*    the internal `ft_trace_levels' array by an index.                  */
-  /*                                                                       */
-  FT_EXPORT( FT_Int )
-  FT_Trace_Get_Count( void );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Trace_Get_Name                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Return the name of a trace component.                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    The index of the trace component.                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The name of the trace component.  This is a statically allocated   */
-  /*    C string, so do not free it after use.  NULL if FreeType 2 is not  */
-  /*    built with FT_DEBUG_LEVEL_TRACE definition.                        */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Use @FT_Trace_Get_Count to get the number of available trace       */
-  /*    components.                                                        */
-  /*                                                                       */
-  /*    This function may be useful if you want to control FreeType 2's    */
-  /*    debug level in your appliaciton.                                   */
-  /*                                                                       */
-  FT_EXPORT( const char * )
-  FT_Trace_Get_Name( FT_Int  idx );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* You need two opening resp. closing parentheses!                       */
-  /*                                                                       */
-  /* Example: FT_TRACE0(( "Value is %i", foo ))                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#define FT_TRACE0( varformat )  FT_TRACE( 0, varformat )
-#define FT_TRACE1( varformat )  FT_TRACE( 1, varformat )
-#define FT_TRACE2( varformat )  FT_TRACE( 2, varformat )
-#define FT_TRACE3( varformat )  FT_TRACE( 3, varformat )
-#define FT_TRACE4( varformat )  FT_TRACE( 4, varformat )
-#define FT_TRACE5( varformat )  FT_TRACE( 5, varformat )
-#define FT_TRACE6( varformat )  FT_TRACE( 6, varformat )
-#define FT_TRACE7( varformat )  FT_TRACE( 7, varformat )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Define the FT_ERROR macro                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifdef FT_DEBUG_LEVEL_ERROR
-
-#define FT_ERROR( varformat )  FT_Message  varformat
-
-#else  /* !FT_DEBUG_LEVEL_ERROR */
-
-#define FT_ERROR( varformat )  do ; while ( 0 )      /* nothing */
-
-#endif /* !FT_DEBUG_LEVEL_ERROR */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define the FT_ASSERT macro                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifdef FT_DEBUG_LEVEL_ERROR
-
-#define FT_ASSERT( condition )                                      \
-          do                                                        \
-          {                                                         \
-            if ( !( condition ) )                                   \
-              FT_Panic( "assertion failed on line %d of file %s\n", \
-                        __LINE__, __FILE__ );                       \
-          } while ( 0 )
-
-#else /* !FT_DEBUG_LEVEL_ERROR */
-
-#define FT_ASSERT( condition )  do ; while ( 0 )
-
-#endif /* !FT_DEBUG_LEVEL_ERROR */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Define 'FT_Message' and 'FT_Panic' when needed                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifdef FT_DEBUG_LEVEL_ERROR
-
-#include "stdio.h"  /* for vprintf() */
-
-  /* print a message */
-  FT_EXPORT( void )
-  FT_Message( const char*  fmt, ... );
-
-  /* print a message and exit */
-  FT_EXPORT( void )
-  FT_Panic( const char*  fmt, ... );
-
-#endif /* FT_DEBUG_LEVEL_ERROR */
-
-
-  FT_BASE( void )
-  ft_debug_init( void );
-
-
-#if defined( _MSC_VER )      /* Visual C++ (and Intel C++) */
-
-  /* we disable the warning `conditional expression is constant' here */
-  /* in order to compile cleanly with the maximum level of warnings   */
-#pragma warning( disable : 4127 )
-
-#endif /* _MSC_VER */
-
-
-FT_END_HEADER
-
-#endif /* __FTDEBUG_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftdriver.h b/nx-X11/extras/freetype2/include/freetype/internal/ftdriver.h
deleted file mode 100644
index 02f585d6b..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftdriver.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftdriver.h                                                             */
-/*                                                                         */
-/*    FreeType font driver interface (specification).                      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTDRIVER_H__
-#define __FTDRIVER_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-
-  typedef FT_Error
-  (*FT_Face_InitFunc)( FT_Stream      stream,
-                       FT_Face        face,
-                       FT_Int         typeface_index,
-                       FT_Int         num_params,
-                       FT_Parameter*  parameters );
-
-  typedef void
-  (*FT_Face_DoneFunc)( FT_Face  face );
-
-
-  typedef FT_Error
-  (*FT_Size_InitFunc)( FT_Size  size );
-
-  typedef void
-  (*FT_Size_DoneFunc)( FT_Size  size );
-
-
-  typedef FT_Error
-  (*FT_Slot_InitFunc)( FT_GlyphSlot  slot );
-
-  typedef void
-  (*FT_Slot_DoneFunc)( FT_GlyphSlot  slot );
-
-
-  typedef FT_Error
-  (*FT_Size_ResetPointsFunc)( FT_Size     size,
-                              FT_F26Dot6  char_width,
-                              FT_F26Dot6  char_height,
-                              FT_UInt     horz_resolution,
-                              FT_UInt     vert_resolution );
-
-  typedef FT_Error
-  (*FT_Size_ResetPixelsFunc)( FT_Size  size,
-                              FT_UInt  pixel_width,
-                              FT_UInt  pixel_height );
-
-  typedef FT_Error
-  (*FT_Slot_LoadFunc)( FT_GlyphSlot  slot,
-                       FT_Size       size,
-                       FT_UInt       glyph_index,
-                       FT_Int32      load_flags );
-
-
-  typedef FT_UInt
-  (*FT_CharMap_CharIndexFunc)( FT_CharMap  charmap,
-                               FT_Long     charcode );
-
-  typedef FT_Long
-  (*FT_CharMap_CharNextFunc)( FT_CharMap  charmap,
-                              FT_Long     charcode );
-
-  typedef FT_Error
-  (*FT_Face_GetKerningFunc)( FT_Face     face,
-                             FT_UInt     left_glyph,
-                             FT_UInt     right_glyph,
-                             FT_Vector*  kerning );
-
-
-  typedef FT_Error
-  (*FT_Face_AttachFunc)( FT_Face    face,
-                         FT_Stream  stream );
-
-
-  typedef FT_Error
-  (*FT_Face_GetAdvancesFunc)( FT_Face     face,
-                              FT_UInt     first,
-                              FT_UInt     count,
-                              FT_Bool     vertical,
-                              FT_UShort*  advances );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Driver_ClassRec                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The font driver class.  This structure mostly contains pointers to */
-  /*    driver methods.                                                    */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root             :: The parent module.                             */
-  /*                                                                       */
-  /*    face_object_size :: The size of a face object in bytes.            */
-  /*                                                                       */
-  /*    size_object_size :: The size of a size object in bytes.            */
-  /*                                                                       */
-  /*    slot_object_size :: The size of a glyph object in bytes.           */
-  /*                                                                       */
-  /*    init_face        :: The format-specific face constructor.          */
-  /*                                                                       */
-  /*    done_face        :: The format-specific face destructor.           */
-  /*                                                                       */
-  /*    init_size        :: The format-specific size constructor.          */
-  /*                                                                       */
-  /*    done_size        :: The format-specific size destructor.           */
-  /*                                                                       */
-  /*    init_slot        :: The format-specific slot constructor.          */
-  /*                                                                       */
-  /*    done_slot        :: The format-specific slot destructor.           */
-  /*                                                                       */
-  /*    set_char_sizes   :: A handle to a function used to set the new     */
-  /*                        character size in points + resolution.  Can be */
-  /*                        set to 0 to indicate default behaviour.        */
-  /*                                                                       */
-  /*    set_pixel_sizes  :: A handle to a function used to set the new     */
-  /*                        character size in pixels.  Can be set to 0 to  */
-  /*                        indicate default behaviour.                    */
-  /*                                                                       */
-  /*    load_glyph       :: A function handle to load a given glyph image  */
-  /*                        in a slot.  This field is mandatory!           */
-  /*                                                                       */
-  /*    get_char_index   :: A function handle to return the glyph index of */
-  /*                        a given character for a given charmap.  This   */
-  /*                        field is mandatory!                            */
-  /*                                                                       */
-  /*    get_kerning      :: A function handle to return the unscaled       */
-  /*                        kerning for a given pair of glyphs.  Can be    */
-  /*                        set to 0 if the format doesn't support         */
-  /*                        kerning.                                       */
-  /*                                                                       */
-  /*    attach_file      :: This function handle is used to read           */
-  /*                        additional data for a face from another        */
-  /*                        file/stream.  For example, this can be used to */
-  /*                        add data from AFM or PFM files on a Type 1     */
-  /*                        face, or a CIDMap on a CID-keyed face.         */
-  /*                                                                       */
-  /*    get_advances     :: A function handle used to return advance       */
-  /*                        widths of 'count' glyphs (in font units),      */
-  /*                        starting at `first'.  The `vertical' flag must */
-  /*                        be set to get vertical advance heights.  The   */
-  /*                        `advances' buffer is caller-allocated.         */
-  /*                        Currently not implemented.  The idea of this   */
-  /*                        function is to be able to perform              */
-  /*                        device-independent text layout without loading */
-  /*                        a single glyph image.                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Most function pointers, with the exception of `load_glyph' and     */
-  /*    `get_char_index' can be set to 0 to indicate a default behaviour.  */
-  /*                                                                       */
-  typedef struct  FT_Driver_ClassRec_
-  {
-    FT_Module_Class           root;
-
-    FT_Long                   face_object_size;
-    FT_Long                   size_object_size;
-    FT_Long                   slot_object_size;
-
-    FT_Face_InitFunc          init_face;
-    FT_Face_DoneFunc          done_face;
-
-    FT_Size_InitFunc          init_size;
-    FT_Size_DoneFunc          done_size;
-
-    FT_Slot_InitFunc          init_slot;
-    FT_Slot_DoneFunc          done_slot;
-
-    FT_Size_ResetPointsFunc   set_char_sizes;
-    FT_Size_ResetPixelsFunc   set_pixel_sizes;
-
-    FT_Slot_LoadFunc          load_glyph;
-
-    FT_Face_GetKerningFunc    get_kerning;
-    FT_Face_AttachFunc        attach_file;
-    FT_Face_GetAdvancesFunc   get_advances;
-
-  } FT_Driver_ClassRec, *FT_Driver_Class;
-
-
-FT_END_HEADER
-
-#endif /* __FTDRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftgloadr.h b/nx-X11/extras/freetype2/include/freetype/internal/ftgloadr.h
deleted file mode 100644
index abc56e256..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftgloadr.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftgloadr.h                                                             */
-/*                                                                         */
-/*    The FreeType glyph loader (specification).                           */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg                       */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTGLOADR_H__
-#define __FTGLOADR_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_GlyphLoader                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The glyph loader is an internal object used to load several glyphs */
-  /*    together (for example, in the case of composites).                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The glyph loader implementation is not part of the high-level API, */
-  /*    hence the forward structure declaration.                           */
-  /*                                                                       */
-  typedef struct FT_GlyphLoaderRec_*  FT_GlyphLoader ;
-
-
-#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS          1
-#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES      2
-#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID        4
-#define FT_SUBGLYPH_FLAG_SCALE                   8
-#define FT_SUBGLYPH_FLAG_XY_SCALE             0x40
-#define FT_SUBGLYPH_FLAG_2X2                  0x80
-#define FT_SUBGLYPH_FLAG_USE_MY_METRICS      0x200
-
-
-  typedef struct  FT_SubGlyphRec_
-  {
-    FT_Int     index;
-    FT_UShort  flags;
-    FT_Int     arg1;
-    FT_Int     arg2;
-    FT_Matrix  transform;
-    
-  } FT_SubGlyphRec;
-
-
-  typedef struct  FT_GlyphLoadRec_
-  {
-    FT_Outline   outline;       /* outline             */
-    FT_Vector*   extra_points;  /* extra points table  */
-    FT_UInt      num_subglyphs; /* number of subglyphs */
-    FT_SubGlyph  subglyphs;     /* subglyphs           */
-
-  } FT_GlyphLoadRec, *FT_GlyphLoad;
-
-
-  typedef struct  FT_GlyphLoaderRec_
-  {
-    FT_Memory        memory;
-    FT_UInt          max_points;
-    FT_UInt          max_contours;
-    FT_UInt          max_subglyphs;
-    FT_Bool          use_extra;
-
-    FT_GlyphLoadRec  base;
-    FT_GlyphLoadRec  current;
-
-    void*            other;            /* for possible future extension? */
-
-  } FT_GlyphLoaderRec;
-
-
-  /* create new empty glyph loader */
-  FT_BASE( FT_Error )
-  FT_GlyphLoader_New( FT_Memory        memory,
-                      FT_GlyphLoader  *aloader );
-
-  /* add an extra points table to a glyph loader */
-  FT_BASE( FT_Error )
-  FT_GlyphLoader_CreateExtra( FT_GlyphLoader  loader );
-
-  /* destroy a glyph loader */
-  FT_BASE( void )
-  FT_GlyphLoader_Done( FT_GlyphLoader  loader );
-
-  /* reset a glyph loader (frees everything int it) */
-  FT_BASE( void )
-  FT_GlyphLoader_Reset( FT_GlyphLoader  loader );
-
-  /* rewind a glyph loader */
-  FT_BASE( void )
-  FT_GlyphLoader_Rewind( FT_GlyphLoader  loader );
-
-  /* check that there is enough space to add `n_points' and `n_contours' */
-  /* to the glyph loader                                                 */
-  FT_BASE( FT_Error )
-  FT_GlyphLoader_CheckPoints( FT_GlyphLoader  loader,
-                              FT_UInt         n_points,
-                              FT_UInt         n_contours );
-
-  /* check that there is enough space to add `n_subs' sub-glyphs to */
-  /* a glyph loader                                                 */
-  FT_BASE( FT_Error )
-  FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader  loader,
-                                 FT_UInt         n_subs );
-
-  /* prepare a glyph loader, i.e. empty the current glyph */
-  FT_BASE( void )
-  FT_GlyphLoader_Prepare( FT_GlyphLoader  loader );
-
-  /* add the current glyph to the base glyph */
-  FT_BASE( void )
-  FT_GlyphLoader_Add( FT_GlyphLoader  loader );
-
-  /* copy points from one glyph loader to another */
-  FT_BASE( FT_Error )
-  FT_GlyphLoader_CopyPoints( FT_GlyphLoader  target,
-                             FT_GlyphLoader  source );
-
- /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTGLOADR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftmemory.h b/nx-X11/extras/freetype2/include/freetype/internal/ftmemory.h
deleted file mode 100644
index ea9870f47..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftmemory.h
+++ /dev/null
@@ -1,367 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmemory.h                                                             */
-/*                                                                         */
-/*    The FreeType memory management macros (specification).               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg                       */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTMEMORY_H__
-#define __FTMEMORY_H__
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Macro>                                                               */
-  /*    FT_SET_ERROR                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This macro is used to set an implicit `error' variable to a given  */
-  /*    expression's value (usually a function call), and convert it to a  */
-  /*    boolean which is set whenever the value is != 0.                   */
-  /*                                                                       */
-#undef  FT_SET_ERROR
-#define FT_SET_ERROR( expression ) \
-          ( ( error = (expression) ) != 0 )
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                           M E M O R Y                           ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#ifdef FT_DEBUG_MEMORY
-
-  FT_BASE( FT_Error )
-  FT_Alloc_Debug( FT_Memory    memory,
-                  FT_Long      size,
-                  void*       *P,
-                  const char*  file_name,
-                  FT_Long      line_no );
-
-  FT_BASE( FT_Error )
-  FT_QAlloc_Debug( FT_Memory    memory,
-                   FT_Long      size,
-                   void*       *P,
-                   const char*  file_name,
-                   FT_Long      line_no );
-
-  FT_BASE( FT_Error )
-  FT_Realloc_Debug( FT_Memory    memory,
-                    FT_Long      current,
-                    FT_Long      size,
-                    void*       *P,
-                    const char*  file_name,
-                    FT_Long      line_no );
-
-  FT_BASE( FT_Error )
-  FT_QRealloc_Debug( FT_Memory    memory,
-                     FT_Long      current,
-                     FT_Long      size,
-                     void*       *P,
-                     const char*  file_name,
-                     FT_Long      line_no );
-
-  FT_BASE( void )
-  FT_Free_Debug( FT_Memory    memory,
-                 FT_Pointer   block,
-                 const char*  file_name,
-                 FT_Long      line_no );
-
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Alloc                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Allocates a new block of memory.  The returned area is always      */
-  /*    zero-filled; this is a strong convention in many FreeType parts.   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A handle to a given `memory object' which handles        */
-  /*              allocation.                                              */
-  /*                                                                       */
-  /*    size   :: The size in bytes of the block to allocate.              */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    P      :: A pointer to the fresh new block.  It should be set to   */
-  /*              NULL if `size' is 0, or in case of error.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_BASE( FT_Error )
-  FT_Alloc( FT_Memory  memory,
-            FT_Long    size,
-            void*     *P );
-
-
-  FT_BASE( FT_Error )
-  FT_QAlloc( FT_Memory  memory,
-             FT_Long    size,
-             void*     *p );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Realloc                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Reallocates a block of memory pointed to by `*P' to `Size' bytes   */
-  /*    from the heap, possibly changing `*P'.                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory  :: A handle to a given `memory object' which handles       */
-  /*               reallocation.                                           */
-  /*                                                                       */
-  /*    current :: The current block size in bytes.                        */
-  /*                                                                       */
-  /*    size    :: The new block size in bytes.                            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    P       :: A pointer to the fresh new block.  It should be set to  */
-  /*               NULL if `size' is 0, or in case of error.               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    All callers of FT_Realloc() _must_ provide the current block size  */
-  /*    as well as the new one.                                            */
-  /*                                                                       */
-  FT_BASE( FT_Error )
-  FT_Realloc( FT_Memory  memory,
-              FT_Long    current,
-              FT_Long    size,
-              void*     *P );
-
-
-  FT_BASE( FT_Error )
-  FT_QRealloc( FT_Memory  memory,
-               FT_Long    current,
-               FT_Long    size,
-               void*     *p );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Free                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Releases a given block of memory allocated through FT_Alloc().     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A handle to a given `memory object' which handles        */
-  /*              memory deallocation                                      */
-  /*                                                                       */
-  /*    P      :: This is the _address_ of a _pointer_ which points to the */
-  /*              allocated block.  It is always set to NULL on exit.      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    If P or *P is NULL, this function should return successfully.      */
-  /*    This is a strong convention within all of FreeType and its         */
-  /*    drivers.                                                           */
-  /*                                                                       */
-  FT_BASE( void )
-  FT_Free( FT_Memory  memory,
-           void*     *P );
-
-
-#define FT_MEM_SET( dest, byte, count )     ft_memset( dest, byte, count )
-
-#define FT_MEM_COPY( dest, source, count )  ft_memcpy( dest, source, count )
-
-#define FT_MEM_MOVE( dest, source, count )  ft_memmove( dest, source, count )
-
-
-#define FT_MEM_ZERO( dest, count )  FT_MEM_SET( dest, 0, count )
-
-#define FT_ZERO( p )                FT_MEM_ZERO( p, sizeof ( *(p) ) )
-
-#define FT_ARRAY_COPY( dest, source, count )                       \
-          FT_MEM_COPY( dest, source, (count) * sizeof( *(dest) ) )
-
-#define FT_ARRAY_MOVE( dest, source, count )                       \
-          FT_MEM_MOVE( dest, source, (count) * sizeof( *(dest) ) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* We first define FT_MEM_ALLOC, FT_MEM_REALLOC, and FT_MEM_FREE.  All   */
-  /* macros use an _implicit_ `memory' parameter to access the current     */
-  /* memory allocator.                                                     */
-  /*                                                                       */
-
-#ifdef FT_DEBUG_MEMORY
-
-#define FT_MEM_ALLOC( _pointer_, _size_ )                            \
-          FT_Alloc_Debug( memory, _size_,                            \
-                          (void**)&(_pointer_), __FILE__, __LINE__ )
-
-#define FT_MEM_REALLOC( _pointer_, _current_, _size_ )                 \
-          FT_Realloc_Debug( memory, _current_, _size_,                 \
-                            (void**)&(_pointer_), __FILE__, __LINE__ )
-
-#define FT_MEM_QALLOC( _pointer_, _size_ )                            \
-          FT_QAlloc_Debug( memory, _size_,                            \
-                           (void**)&(_pointer_), __FILE__, __LINE__ )
-
-#define FT_MEM_QREALLOC( _pointer_, _current_, _size_ )                 \
-          FT_QRealloc_Debug( memory, _current_, _size_,                 \
-                             (void**)&(_pointer_), __FILE__, __LINE__ )
-
-#define FT_MEM_FREE( _pointer_ )                                            \
-          FT_Free_Debug( memory, (void**)&(_pointer_), __FILE__, __LINE__ )
-
-
-#else  /* !FT_DEBUG_MEMORY */
-
-
-#define FT_MEM_ALLOC( _pointer_, _size_ )                  \
-          FT_Alloc( memory, _size_, (void**)&(_pointer_) )
-
-#define FT_MEM_FREE( _pointer_ )                  \
-          FT_Free( memory, (void**)&(_pointer_) )
-
-#define FT_MEM_REALLOC( _pointer_, _current_, _size_ )                  \
-          FT_Realloc( memory, _current_, _size_, (void**)&(_pointer_) )
-
-#define FT_MEM_QALLOC( _pointer_, _size_ )                  \
-          FT_QAlloc( memory, _size_, (void**)&(_pointer_) )
-
-#define FT_MEM_QREALLOC( _pointer_, _current_, _size_ )                  \
-          FT_QRealloc( memory, _current_, _size_, (void**)&(_pointer_) )
-
-#endif /* !FT_DEBUG_MEMORY */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The following functions macros expect that their pointer argument is  */
-  /* _typed_ in order to automatically compute array element sizes.        */
-  /*                                                                       */
-
-#define FT_MEM_NEW( _pointer_ )                               \
-          FT_MEM_ALLOC( _pointer_, sizeof ( *(_pointer_) ) )
-
-#define FT_MEM_NEW_ARRAY( _pointer_, _count_ )                           \
-          FT_MEM_ALLOC( _pointer_, (_count_) * sizeof ( *(_pointer_) ) )
-
-#define FT_MEM_RENEW_ARRAY( _pointer_, _old_, _new_ )                    \
-          FT_MEM_REALLOC( _pointer_, (_old_) * sizeof ( *(_pointer_) ),  \
-                                     (_new_) * sizeof ( *(_pointer_) ) )
-
-#define FT_MEM_QNEW( _pointer_ )                               \
-          FT_MEM_QALLOC( _pointer_, sizeof ( *(_pointer_) ) )
-
-#define FT_MEM_QNEW_ARRAY( _pointer_, _count_ )                           \
-          FT_MEM_QALLOC( _pointer_, (_count_) * sizeof ( *(_pointer_) ) )
-
-#define FT_MEM_QRENEW_ARRAY( _pointer_, _old_, _new_ )                    \
-          FT_MEM_QREALLOC( _pointer_, (_old_) * sizeof ( *(_pointer_) ),  \
-                                      (_new_) * sizeof ( *(_pointer_) ) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* the following macros are obsolete but kept for compatibility reasons  */
-  /*                                                                       */
-
-#define FT_MEM_ALLOC_ARRAY( _pointer_, _count_, _type_ )           \
-          FT_MEM_ALLOC( _pointer_, (_count_) * sizeof ( _type_ ) )
-
-#define FT_MEM_REALLOC_ARRAY( _pointer_, _old_, _new_, _type_ )    \
-          FT_MEM_REALLOC( _pointer_, (_old_) * sizeof ( _type ),   \
-                                     (_new_) * sizeof ( _type_ ) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The following macros are variants of their FT_MEM_XXXX equivalents;   */
-  /* they are used to set an _implicit_ `error' variable and return TRUE   */
-  /* if an error occured (i.e. if 'error != 0').                           */
-  /*                                                                       */
-
-#define FT_ALLOC( _pointer_, _size_ )                       \
-          FT_SET_ERROR( FT_MEM_ALLOC( _pointer_, _size_ ) )
-
-#define FT_REALLOC( _pointer_, _current_, _size_ )                       \
-          FT_SET_ERROR( FT_MEM_REALLOC( _pointer_, _current_, _size_ ) )
-
-#define FT_FREE( _pointer_ )       \
-          FT_MEM_FREE( _pointer_ )
-
-#define FT_QALLOC( _pointer_, _size_ )                       \
-          FT_SET_ERROR( FT_MEM_QALLOC( _pointer_, _size_ ) )
-
-#define FT_QREALLOC( _pointer_, _current_, _size_ )                       \
-          FT_SET_ERROR( FT_MEM_QREALLOC( _pointer_, _current_, _size_ ) )
-
-
-#define FT_NEW( _pointer_ )  \
-          FT_SET_ERROR( FT_MEM_NEW( _pointer_ ) )
-
-#define FT_NEW_ARRAY( _pointer_, _count_ )  \
-          FT_SET_ERROR( FT_MEM_NEW_ARRAY( _pointer_, _count_ ) )
-
-#define FT_RENEW_ARRAY( _pointer_, _old_, _new_ )   \
-          FT_SET_ERROR( FT_MEM_RENEW_ARRAY( _pointer_, _old_, _new_ ) )
-
-#define FT_QNEW( _pointer_ )  \
-          FT_SET_ERROR( FT_MEM_QNEW( _pointer_ ) )
-
-#define FT_QNEW_ARRAY( _pointer_, _count_ )  \
-          FT_SET_ERROR( FT_MEM_QNEW_ARRAY( _pointer_, _count_ ) )
-
-#define FT_QRENEW_ARRAY( _pointer_, _old_, _new_ )   \
-          FT_SET_ERROR( FT_MEM_QRENEW_ARRAY( _pointer_, _old_, _new_ ) )
-
-
-#define FT_ALLOC_ARRAY( _pointer_, _count_, _type_ )                    \
-          FT_SET_ERROR( FT_MEM_ALLOC( _pointer_,                        \
-                                      (_count_) * sizeof ( _type_ ) ) )
-
-#define FT_REALLOC_ARRAY( _pointer_, _old_, _new_, _type_ )             \
-          FT_SET_ERROR( FT_MEM_REALLOC( _pointer_,                      \
-                                        (_old_) * sizeof ( _type_ ),    \
-                                        (_new_) * sizeof ( _type_ ) ) )
-
- /* */
-
-
-FT_END_HEADER
-
-#endif /* __FTMEMORY_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftobjs.h b/nx-X11/extras/freetype2/include/freetype/internal/ftobjs.h
deleted file mode 100644
index 3a28119af..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftobjs.h
+++ /dev/null
@@ -1,847 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftobjs.h                                                               */
-/*                                                                         */
-/*    The FreeType private base classes (specification).                   */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  This file contains the definition of all internal FreeType classes.  */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTOBJS_H__
-#define __FTOBJS_H__
-
-#include <ft2build.h>
-#include FT_CONFIG_STANDARD_LIBRARY_H   /* for ft_setjmp and ft_longjmp */
-#include FT_RENDER_H
-#include FT_SIZES_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_GLYPH_LOADER_H
-#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_AUTOHINT_H
-#include FT_INTERNAL_SERVICE_H
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-#include FT_INCREMENTAL_H
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Some generic definitions.                                             */
-  /*                                                                       */
-#ifndef TRUE
-#define TRUE  1
-#endif
-
-#ifndef FALSE
-#define FALSE  0
-#endif
-
-#ifndef NULL
-#define NULL  (void*)0
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The min and max functions missing in C.  As usual, be careful not to  */
-  /* write things like FT_MIN( a++, b++ ) to avoid side effects.           */
-  /*                                                                       */
-#define FT_MIN( a, b )  ( (a) < (b) ? (a) : (b) )
-#define FT_MAX( a, b )  ( (a) > (b) ? (a) : (b) )
-
-#define FT_ABS( a )     ( (a) < 0 ? -(a) : (a) )
-
-
-#define FT_PAD_FLOOR( x, n )  ( (x) & ~((n)-1) )
-#define FT_PAD_ROUND( x, n )  FT_PAD_FLOOR( (x) + ((n)/2), n )
-#define FT_PAD_CEIL( x, n )   FT_PAD_FLOOR( (x) + ((n)-1), n )
-
-#define FT_PIX_FLOOR( x )     ( (x) & ~63 )
-#define FT_PIX_ROUND( x )     FT_PIX_FLOOR( (x) + 32 )
-#define FT_PIX_CEIL( x )      FT_PIX_FLOOR( (x) + 63 )
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                    V A L I D A T I O N                          ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* handle to a validation object */
-  typedef struct FT_ValidatorRec_*  FT_Validator;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* There are three distinct validation levels defined here:              */
-  /*                                                                       */
-  /* FT_VALIDATE_DEFAULT ::                                                */
-  /*   A table that passes this validation level can be used reliably by   */
-  /*   FreeType.  It generally means that all offsets have been checked to */
-  /*   prevent out-of-bound reads, array counts are correct, etc.          */
-  /*                                                                       */
-  /* FT_VALIDATE_TIGHT ::                                                  */
-  /*   A table that passes this validation level can be used reliably and  */
-  /*   doesn't contain invalid data.  For example, a charmap table that    */
-  /*   returns invalid glyph indices will not pass, even though it can     */
-  /*   be used with FreeType in default mode (the library will simply      */
-  /*   return an error later when trying to load the glyph).               */
-  /*                                                                       */
-  /*   It also check that fields that must be a multiple of 2, 4, or 8     */
-  /*   don't have incorrect values, etc.                                   */
-  /*                                                                       */
-  /* FT_VALIDATE_PARANOID ::                                               */
-  /*   Only for font debugging.  Checks that a table follows the           */
-  /*   specification by 100%.  Very few fonts will be able to pass this    */
-  /*   level anyway but it can be useful for certain tools like font       */
-  /*   editors/converters.                                                 */
-  /*                                                                       */
-  typedef enum  FT_ValidationLevel_
-  {
-    FT_VALIDATE_DEFAULT = 0,
-    FT_VALIDATE_TIGHT,
-    FT_VALIDATE_PARANOID
-
-  } FT_ValidationLevel;
-
-
-  /* validator structure */
-  typedef struct  FT_ValidatorRec_
-  {
-    const FT_Byte*      base;        /* address of table in memory       */
-    const FT_Byte*      limit;       /* `base' + sizeof(table) in memory */
-    FT_ValidationLevel  level;       /* validation level                 */
-    FT_Error            error;       /* error returned. 0 means success  */
-
-    ft_jmp_buf          jump_buffer; /* used for exception handling      */
-
-  } FT_ValidatorRec;
-
-
-#define FT_VALIDATOR( x )  ((FT_Validator)( x ))
-
-
-  FT_BASE( void )
-  ft_validator_init( FT_Validator        valid,
-                     const FT_Byte*      base,
-                     const FT_Byte*      limit,
-                     FT_ValidationLevel  level );
-
-  FT_BASE( FT_Int )
-  ft_validator_run( FT_Validator  valid );
-
-  /* Sets the error field in a validator, then calls `longjmp' to return */
-  /* to high-level caller.  Using `setjmp/longjmp' avoids many stupid    */
-  /* error checks within the validation routines.                        */
-  /*                                                                     */
-  FT_BASE( void )
-  ft_validator_error( FT_Validator  valid,
-                      FT_Error      error );
-
-
-  /* Calls ft_validate_error.  Assumes that the `valid' local variable */
-  /* holds a pointer to the current validator object.                  */
-  /*                                                                   */
-#define FT_INVALID( _error )  ft_validator_error( valid, _error )
-
-  /* called when a broken table is detected */
-#define FT_INVALID_TOO_SHORT  FT_INVALID( FT_Err_Invalid_Table )
-
-  /* called when an invalid offset is detected */
-#define FT_INVALID_OFFSET     FT_INVALID( FT_Err_Invalid_Offset )
-
-  /* called when an invalid format/value is detected */
-#define FT_INVALID_FORMAT     FT_INVALID( FT_Err_Invalid_Table )
-
-  /* called when an invalid glyph index is detected */
-#define FT_INVALID_GLYPH_ID   FT_INVALID( FT_Err_Invalid_Glyph_Index )
-
-  /* called when an invalid field value is detected */
-#define FT_INVALID_DATA       FT_INVALID( FT_Err_Invalid_Table )
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                       C H A R M A P S                           ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* handle to internal charmap object */
-  typedef struct FT_CMapRec_*              FT_CMap;
-
-  /* handle to charmap class structure */
-  typedef const struct FT_CMap_ClassRec_*  FT_CMap_Class;
-
-  /* internal charmap object structure */
-  typedef struct  FT_CMapRec_
-  {
-    FT_CharMapRec  charmap;
-    FT_CMap_Class  clazz;
-
-  } FT_CMapRec;
-
-  /* typecase any pointer to a charmap handle */
-#define FT_CMAP( x )              ((FT_CMap)( x ))
-
-  /* obvious macros */
-#define FT_CMAP_PLATFORM_ID( x )  FT_CMAP( x )->charmap.platform_id
-#define FT_CMAP_ENCODING_ID( x )  FT_CMAP( x )->charmap.encoding_id
-#define FT_CMAP_ENCODING( x )     FT_CMAP( x )->charmap.encoding
-#define FT_CMAP_FACE( x )         FT_CMAP( x )->charmap.face
-
-
-  /* class method definitions */
-  typedef FT_Error
-  (*FT_CMap_InitFunc)( FT_CMap     cmap,
-                       FT_Pointer  init_data );
-
-  typedef void
-  (*FT_CMap_DoneFunc)( FT_CMap  cmap );
-
-  typedef FT_UInt
-  (*FT_CMap_CharIndexFunc)( FT_CMap    cmap,
-                            FT_UInt32  char_code );
-
-  typedef FT_UInt
-  (*FT_CMap_CharNextFunc)( FT_CMap     cmap,
-                           FT_UInt32  *achar_code );
-
-
-  typedef struct  FT_CMap_ClassRec_
-  {
-    FT_ULong               size;
-    FT_CMap_InitFunc       init;
-    FT_CMap_DoneFunc       done;
-    FT_CMap_CharIndexFunc  char_index;
-    FT_CMap_CharNextFunc   char_next;
-
-  } FT_CMap_ClassRec;
-
-
-  /* create a new charmap and add it to charmap->face */
-  FT_BASE( FT_Error )
-  FT_CMap_New( FT_CMap_Class  clazz,
-               FT_Pointer     init_data,
-               FT_CharMap     charmap,
-               FT_CMap       *acmap );
-
-  /* destroy a charmap (don't remove it from face's list though) */
-  FT_BASE( void )
-  FT_CMap_Done( FT_CMap  cmap );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Face_InternalRec                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This structure contains the internal fields of each FT_Face        */
-  /*    object.  These fields may change between different releases of     */
-  /*    FreeType.                                                          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    max_points ::                                                      */
-  /*      The maximal number of points used to store the vectorial outline */
-  /*      of any glyph in this face.  If this value cannot be known in     */
-  /*      advance, or if the face isn't scalable, this should be set to 0. */
-  /*      Only relevant for scalable formats.                              */
-  /*                                                                       */
-  /*    max_contours ::                                                    */
-  /*      The maximal number of contours used to store the vectorial       */
-  /*      outline of any glyph in this face.  If this value cannot be      */
-  /*      known in advance, or if the face isn't scalable, this should be  */
-  /*      set to 0.  Only relevant for scalable formats.                   */
-  /*                                                                       */
-  /*    transform_matrix ::                                                */
-  /*      A 2x2 matrix of 16.16 coefficients used to transform glyph       */
-  /*      outlines after they are loaded from the font.  Only used by the  */
-  /*      convenience functions.                                           */
-  /*                                                                       */
-  /*    transform_delta ::                                                 */
-  /*      A translation vector used to transform glyph outlines after they */
-  /*      are loaded from the font.  Only used by the convenience          */
-  /*      functions.                                                       */
-  /*                                                                       */
-  /*    transform_flags ::                                                 */
-  /*      Some flags used to classify the transform.  Only used by the     */
-  /*      convenience functions.                                           */
-  /*                                                                       */
-  /*    services ::                                                        */
-  /*      A cache for frequently used services.  It should be only         */
-  /*      accessed with the macro `FT_FACE_LOOKUP_SERVICE'.                */
-  /*                                                                       */
-  /*    incremental_interface ::                                           */
-  /*      If non-null, the interface through which glyph data and metrics  */
-  /*      are loaded incrementally for faces that do not provide all of    */
-  /*      this data when first opened.  This field exists only if          */
-  /*      @FT_CONFIG_OPTION_INCREMENTAL is defined.                        */
-  /*                                                                       */
-  typedef struct  FT_Face_InternalRec_
-  {
-    FT_UShort           max_points;
-    FT_Short            max_contours;
-
-    FT_Matrix           transform_matrix;
-    FT_Vector           transform_delta;
-    FT_Int              transform_flags;
-
-    FT_ServiceCacheRec  services;
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    FT_Incremental_InterfaceRec*  incremental_interface;
-#endif
-
-  } FT_Face_InternalRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_Slot_InternalRec                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This structure contains the internal fields of each FT_GlyphSlot   */
-  /*    object.  These fields may change between different releases of     */
-  /*    FreeType.                                                          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    loader            :: The glyph loader object used to load outlines */
-  /*                         into the glyph slot.                          */
-  /*                                                                       */
-  /*    flags             :: Possible values are zero or                   */
-  /*                         FT_GLYPH_OWN_BITMAP.  The latter indicates    */
-  /*                         that the FT_GlyphSlot structure owns the      */
-  /*                         bitmap buffer.                                */
-  /*                                                                       */
-  /*    glyph_transformed :: Boolean.  Set to TRUE when the loaded glyph   */
-  /*                         must be transformed through a specific        */
-  /*                         font transformation.  This is _not_ the same  */
-  /*                         as the face transform set through             */
-  /*                         FT_Set_Transform().                           */
-  /*                                                                       */
-  /*    glyph_matrix      :: The 2x2 matrix corresponding to the glyph     */
-  /*                         transformation, if necessary.                 */
-  /*                                                                       */
-  /*    glyph_delta       :: The 2d translation vector corresponding to    */
-  /*                         the glyph transformation, if necessary.       */
-  /*                                                                       */
-  /*    glyph_hints       :: Format-specific glyph hints management.       */
-  /*                                                                       */
-
-#define FT_GLYPH_OWN_BITMAP  0x1
-
-  typedef struct  FT_Slot_InternalRec_
-  {
-    FT_GlyphLoader  loader;
-    FT_UInt         flags;
-    FT_Bool         glyph_transformed;
-    FT_Matrix       glyph_matrix;
-    FT_Vector       glyph_delta;
-    void*           glyph_hints;
-
-  } FT_GlyphSlot_InternalRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                         M O D U L E S                           ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_ModuleRec                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A module object instance.                                          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    clazz   :: A pointer to the module's class.                        */
-  /*                                                                       */
-  /*    library :: A handle to the parent library object.                  */
-  /*                                                                       */
-  /*    memory  :: A handle to the memory manager.                         */
-  /*                                                                       */
-  /*    generic :: A generic structure for user-level extensibility (?).   */
-  /*                                                                       */
-  typedef struct  FT_ModuleRec_
-  {
-    FT_Module_Class*  clazz;
-    FT_Library        library;
-    FT_Memory         memory;
-    FT_Generic        generic;
-
-  } FT_ModuleRec;
-
-
-  /* typecast an object to a FT_Module */
-#define FT_MODULE( x )          ((FT_Module)( x ))
-#define FT_MODULE_CLASS( x )    FT_MODULE( x )->clazz
-#define FT_MODULE_LIBRARY( x )  FT_MODULE( x )->library
-#define FT_MODULE_MEMORY( x )   FT_MODULE( x )->memory
-
-
-#define FT_MODULE_IS_DRIVER( x )  ( FT_MODULE_CLASS( x )->module_flags & \
-                                    FT_MODULE_FONT_DRIVER )
-
-#define FT_MODULE_IS_RENDERER( x )  ( FT_MODULE_CLASS( x )->module_flags & \
-                                      FT_MODULE_RENDERER )
-
-#define FT_MODULE_IS_HINTER( x )  ( FT_MODULE_CLASS( x )->module_flags & \
-                                    FT_MODULE_HINTER )
-
-#define FT_MODULE_IS_STYLER( x )  ( FT_MODULE_CLASS( x )->module_flags & \
-                                    FT_MODULE_STYLER )
-
-#define FT_DRIVER_IS_SCALABLE( x )  ( FT_MODULE_CLASS( x )->module_flags & \
-                                      FT_MODULE_DRIVER_SCALABLE )
-
-#define FT_DRIVER_USES_OUTLINES( x )  !( FT_MODULE_CLASS( x )->module_flags & \
-                                         FT_MODULE_DRIVER_NO_OUTLINES )
-
-#define FT_DRIVER_HAS_HINTER( x )  ( FT_MODULE_CLASS( x )->module_flags & \
-                                     FT_MODULE_DRIVER_HAS_HINTER )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Module_Interface                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finds a module and returns its specific interface as a typeless    */
-  /*    pointer.                                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library     :: A handle to the library object.                     */
-  /*                                                                       */
-  /*    module_name :: The module's name (as an ASCII string).             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A module-specific interface if available, 0 otherwise.             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    You should better be familiar with FreeType internals to know      */
-  /*    which module to look for, and what its interface is :-)            */
-  /*                                                                       */
-  FT_BASE( const void* )
-  FT_Get_Module_Interface( FT_Library   library,
-                           const char*  mod_name );
-
-  FT_BASE( FT_Pointer )
-  ft_module_get_service( FT_Module    module,
-                         const char*  service_id );
-
- /* */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****               FACE, SIZE & GLYPH SLOT OBJECTS                   ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* a few macros used to perform easy typecasts with minimal brain damage */
-
-#define FT_FACE( x )          ((FT_Face)(x))
-#define FT_SIZE( x )          ((FT_Size)(x))
-#define FT_SLOT( x )          ((FT_GlyphSlot)(x))
-
-#define FT_FACE_DRIVER( x )   FT_FACE( x )->driver
-#define FT_FACE_LIBRARY( x )  FT_FACE_DRIVER( x )->root.library
-#define FT_FACE_MEMORY( x )   FT_FACE( x )->memory
-#define FT_FACE_STREAM( x )   FT_FACE( x )->stream
-
-#define FT_SIZE_FACE( x )     FT_SIZE( x )->face
-#define FT_SLOT_FACE( x )     FT_SLOT( x )->face
-
-#define FT_FACE_SLOT( x )     FT_FACE( x )->glyph
-#define FT_FACE_SIZE( x )     FT_FACE( x )->size
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_GlyphSlot                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    It is sometimes useful to have more than one glyph slot for a      */
-  /*    given face object.  This function is used to create additional     */
-  /*    slots.  All of them are automatically discarded when the face is   */
-  /*    destroyed.                                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face  :: A handle to a parent face object.                         */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    aslot :: A handle to a new glyph slot object.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_BASE( FT_Error )
-  FT_New_GlyphSlot( FT_Face        face,
-                    FT_GlyphSlot  *aslot );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_GlyphSlot                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given glyph slot.  Remember however that all slots are  */
-  /*    automatically destroyed with its parent.  Using this function is   */
-  /*    not always mandatory.                                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    slot :: A handle to a target glyph slot.                           */
-  /*                                                                       */
-  FT_BASE( void )
-  FT_Done_GlyphSlot( FT_GlyphSlot  slot );
-
- /* */
-
- /*
-  * Free the bitmap of a given glyphslot when needed
-  * (i.e., only when it was allocated with ft_glyphslot_alloc_bitmap).
-  */
-  FT_BASE( void )
-  ft_glyphslot_free_bitmap( FT_GlyphSlot  slot );
-
-
- /*
-  * Allocate a new bitmap buffer in a glyph slot.
-  */
-  FT_BASE( FT_Error )
-  ft_glyphslot_alloc_bitmap( FT_GlyphSlot  slot,
-                             FT_ULong      size );
-
-
- /*
-  * Set the bitmap buffer in a glyph slot to a given pointer.
-  * The buffer will not be freed by a later call to ft_glyphslot_free_bitmap.
-  */
-  FT_BASE( void )
-  ft_glyphslot_set_bitmap( FT_GlyphSlot  slot,
-                           FT_Byte*      buffer );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                        R E N D E R E R S                        ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#define FT_RENDERER( x )      ((FT_Renderer)( x ))
-#define FT_GLYPH( x )         ((FT_Glyph)( x ))
-#define FT_BITMAP_GLYPH( x )  ((FT_BitmapGlyph)( x ))
-#define FT_OUTLINE_GLYPH( x ) ((FT_OutlineGlyph)( x ))
-
-
-  typedef struct  FT_RendererRec_
-  {
-    FT_ModuleRec            root;
-    FT_Renderer_Class*      clazz;
-    FT_Glyph_Format         glyph_format;
-    FT_Glyph_Class          glyph_class;
-
-    FT_Raster               raster;
-    FT_Raster_Render_Func   raster_render;
-    FT_Renderer_RenderFunc  render;
-
-  } FT_RendererRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                    F O N T   D R I V E R S                      ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* typecast a module into a driver easily */
-#define FT_DRIVER( x )        ((FT_Driver)(x))
-
-  /* typecast a module as a driver, and get its driver class */
-#define FT_DRIVER_CLASS( x )  FT_DRIVER( x )->clazz
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_DriverRec                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The root font driver class.  A font driver is responsible for      */
-  /*    managing and loading font files of a given format.                 */
-  /*                                                                       */
-  /*  <Fields>                                                             */
-  /*     root         :: Contains the fields of the root module class.     */
-  /*                                                                       */
-  /*     clazz        :: A pointer to the font driver's class.  Note that  */
-  /*                     this is NOT root.clazz.  `class' wasn't used      */
-  /*                     as it is a reserved word in C++.                  */
-  /*                                                                       */
-  /*     faces_list   :: The list of faces currently opened by this        */
-  /*                     driver.                                           */
-  /*                                                                       */
-  /*     extensions   :: A typeless pointer to the driver's extensions     */
-  /*                     registry, if they are supported through the       */
-  /*                     configuration macro FT_CONFIG_OPTION_EXTENSIONS.  */
-  /*                                                                       */
-  /*     glyph_loader :: The glyph loader for all faces managed by this    */
-  /*                     driver.  This object isn't defined for unscalable */
-  /*                     formats.                                          */
-  /*                                                                       */
-  typedef struct  FT_DriverRec_
-  {
-    FT_ModuleRec     root;
-    FT_Driver_Class  clazz;
-
-    FT_ListRec       faces_list;
-    void*            extensions;
-
-    FT_GlyphLoader   glyph_loader;
-
-  } FT_DriverRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                       L I B R A R I E S                         ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-/* this hook is used by the TrueType debugger. It must be set to an alternate
- * truetype bytecode interpreter function
- */
-#define FT_DEBUG_HOOK_TRUETYPE            0
-
-
-/* set this debug hook to a non-null pointer to force unpatented hinting
- * for all faces when both TT_CONFIG_OPTION_BYTECODE_INTERPRETER and
- * TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. this is only used
- * during debugging
- */
-#define FT_DEBUG_HOOK_UNPATENTED_HINTING  1
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    FT_LibraryRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The FreeType library class.  This is the root of all FreeType      */
-  /*    data.  Use FT_New_Library() to create a library object, and        */
-  /*    FT_Done_Library() to discard it and all child objects.             */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    memory           :: The library's memory object.  Manages memory   */
-  /*                        allocation.                                    */
-  /*                                                                       */
-  /*    generic          :: Client data variable.  Used to extend the      */
-  /*                        Library class by higher levels and clients.    */
-  /*                                                                       */
-  /*    version_major    :: The major version number of the library.       */
-  /*                                                                       */
-  /*    version_minor    :: The minor version number of the library.       */
-  /*                                                                       */
-  /*    version_patch    :: The current patch level of the library.        */
-  /*                                                                       */
-  /*    num_modules      :: The number of modules currently registered     */
-  /*                        within this library.  This is set to 0 for new */
-  /*                        libraries.  New modules are added through the  */
-  /*                        FT_Add_Module() API function.                  */
-  /*                                                                       */
-  /*    modules          :: A table used to store handles to the currently */
-  /*                        registered modules. Note that each font driver */
-  /*                        contains a list of its opened faces.           */
-  /*                                                                       */
-  /*    renderers        :: The list of renderers currently registered     */
-  /*                        within the library.                            */
-  /*                                                                       */
-  /*    cur_renderer     :: The current outline renderer.  This is a       */
-  /*                        shortcut used to avoid parsing the list on     */
-  /*                        each call to FT_Outline_Render().  It is a     */
-  /*                        handle to the current renderer for the         */
-  /*                        FT_GLYPH_FORMAT_OUTLINE format.                */
-  /*                                                                       */
-  /*    auto_hinter      :: XXX                                            */
-  /*                                                                       */
-  /*    raster_pool      :: The raster object's render pool.  This can     */
-  /*                        ideally be changed dynamically at run-time.    */
-  /*                                                                       */
-  /*    raster_pool_size :: The size of the render pool in bytes.          */
-  /*                                                                       */
-  /*    debug_hooks      :: XXX                                            */
-  /*                                                                       */
-  typedef struct  FT_LibraryRec_
-  {
-    FT_Memory          memory;           /* library's memory manager */
-
-    FT_Generic         generic;
-
-    FT_Int             version_major;
-    FT_Int             version_minor;
-    FT_Int             version_patch;
-
-    FT_UInt            num_modules;
-    FT_Module          modules[FT_MAX_MODULES];  /* module objects  */
-
-    FT_ListRec         renderers;        /* list of renderers        */
-    FT_Renderer        cur_renderer;     /* current outline renderer */
-    FT_Module          auto_hinter;
-
-    FT_Byte*           raster_pool;      /* scan-line conversion */
-                                         /* render pool          */
-    FT_ULong           raster_pool_size; /* size of render pool in bytes */
-
-    FT_DebugHook_Func  debug_hooks[4];
-
-  } FT_LibraryRec;
-
-
-  FT_BASE( FT_Renderer )
-  FT_Lookup_Renderer( FT_Library       library,
-                      FT_Glyph_Format  format,
-                      FT_ListNode*     node );
-
-  FT_BASE( FT_Error )
-  FT_Render_Glyph_Internal( FT_Library      library,
-                            FT_GlyphSlot    slot,
-                            FT_Render_Mode  render_mode );
-
-  typedef const char*
-  (*FT_Face_GetPostscriptNameFunc)( FT_Face  face );
-
-  typedef FT_Error
-  (*FT_Face_GetGlyphNameFunc)( FT_Face     face,
-                               FT_UInt     glyph_index,
-                               FT_Pointer  buffer,
-                               FT_UInt     buffer_max );
-
-  typedef FT_UInt
-  (*FT_Face_GetGlyphNameIndexFunc)( FT_Face     face,
-                                    FT_String*  glyph_name );
-
-
-#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Memory                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new memory object.                                       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A pointer to the new memory object.  0 in case of error.           */
-  /*                                                                       */
-  FT_EXPORT( FT_Memory )
-  FT_New_Memory( void );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Done_Memory                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Discards memory manager.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A handle to the memory manager.                          */
-  /*                                                                       */
-  FT_EXPORT( void )
-  FT_Done_Memory( FT_Memory  memory );
-
-#endif /* !FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */
-
-
-  /* Define default raster's interface.  The default raster is located in  */
-  /* `src/base/ftraster.c'.                                                */
-  /*                                                                       */
-  /* Client applications can register new rasters through the              */
-  /* FT_Set_Raster() API.                                                  */
-
-#ifndef FT_NO_DEFAULT_RASTER
-  FT_EXPORT_VAR( FT_Raster_Funcs )  ft_default_raster;
-#endif
-
-
-FT_END_HEADER
-
-#endif /* __FTOBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftrfork.h b/nx-X11/extras/freetype2/include/freetype/internal/ftrfork.h
deleted file mode 100644
index e7b10024a..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftrfork.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftrfork.h                                                              */
-/*                                                                         */
-/*    Embedded resource forks accessor (specification).                    */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  Masatake YAMATO and Redhat K.K.                                        */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-/***************************************************************************/
-/* Development of the code in this file is support of                      */
-/* Information-technology Promotion Agency, Japan.                         */
-/***************************************************************************/
-
-
-#ifndef __FTRFORK_H__
-#define __FTRFORK_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* Number of guessing rules supported in `FT_Raccess_Guess'.            */
-  /* Don't forget to increment the number if you add a new guessing rule. */
-#define FT_RACCESS_N_RULES  8
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Raccess_Guess                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Guess a file name and offset where the actual resource fork is     */
-  /*    stored.  The macro FT_RACCESS_N_RULES holds the number of          */
-  /*    guessing rules;  the guessed result for the Nth rule is            */
-  /*    represented as a triplet: a new file name (new_names[N]), a file   */
-  /*    offset (offsets[N]), and an error code (errors[N]).                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library ::                                                         */
-  /*      A FreeType library instance.                                     */
-  /*                                                                       */
-  /*    stream ::                                                          */
-  /*      A file stream containing the resource fork.                      */
-  /*                                                                       */
-  /*    base_name ::                                                       */
-  /*      The (base) file name of the resource fork used for some          */
-  /*      guessing rules.                                                  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    new_names ::                                                       */
-  /*      An array of guessed file names in which the resource forks may   */
-  /*      exist.  If `new_names[N]' is NULL, the guessed file name is      */
-  /*      equal to `base_name'.                                            */
-  /*                                                                       */
-  /*    offsets ::                                                         */
-  /*      An array of guessed file offsets.  `offsets[N]' holds the file   */
-  /*      offset of the possible start of the resource fork in file        */
-  /*      `new_names[N]'.                                                  */
-  /*                                                                       */
-  /*    errors ::                                                          */
-  /*      An array of FreeType error codes.  `errors[N]' is the error      */
-  /*      code of Nth guessing rule function.  If `errors[N]' is not       */
-  /*      FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless.      */
-  /*                                                                       */
-  FT_BASE( void )
-  FT_Raccess_Guess( FT_Library  library,
-                    FT_Stream   stream,
-                    char*       base_name,
-                    char**      new_names,
-                    FT_Long*    offsets,
-                    FT_Error*   errors );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Raccess_Get_HeaderInfo                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Get the information from the header of resource fork.  The         */
-  /*    information includes the file offset where the resource map        */
-  /*    starts, and the file offset where the resource data starts.        */
-  /*    `FT_Raccess_Get_DataOffsets' requires these two data.              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library ::                                                         */
-  /*      A FreeType library instance.                                     */
-  /*                                                                       */
-  /*    stream ::                                                          */
-  /*      A file stream containing the resource fork.                      */
-  /*                                                                       */
-  /*    rfork_offset ::                                                    */
-  /*      The file offset where the resource fork starts.                  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    map_offset ::                                                      */
-  /*      The file offset where the resource map starts.                   */
-  /*                                                                       */
-  /*    rdata_pos ::                                                       */
-  /*      The file offset where the resource data starts.                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  FT_Err_Ok means success.                     */
-  /*                                                                       */
-  FT_BASE( FT_Error )
-  FT_Raccess_Get_HeaderInfo( FT_Library  library,
-                             FT_Stream   stream,
-                             FT_Long     rfork_offset,
-                             FT_Long    *map_offset,
-                             FT_Long    *rdata_pos );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Raccess_Get_DataOffsets                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Get the data offsets for a tag in a resource fork.  Offsets are    */
-  /*    stored in an array because, in some cases, resources in a resource */
-  /*    fork have the same tag.                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    library ::                                                         */
-  /*      A FreeType library instance.                                     */
-  /*                                                                       */
-  /*    stream ::                                                          */
-  /*      A file stream containing the resource fork.                      */
-  /*                                                                       */
-  /*    map_offset ::                                                      */
-  /*      The file offset where the resource map starts.                   */
-  /*                                                                       */
-  /*    rdata_pos ::                                                       */
-  /*      The file offset where the resource data starts.                  */
-  /*                                                                       */
-  /*    tag ::                                                             */
-  /*      The resource tag.                                                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    offsets ::                                                         */
-  /*      The stream offsets for the resource data specified by `tag'.     */
-  /*      This array is allocated by the function, so you have to call     */
-  /*      @FT_Free after use.                                              */
-  /*                                                                       */
-  /*    count ::                                                           */
-  /*      The length of offsets array.                                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  FT_Err_Ok means success.                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Normally you should use `FT_Raccess_Get_HeaderInfo' to get the     */
-  /*    value for `map_offset' and `rdata_pos'.                            */
-  /*                                                                       */
-  FT_BASE( FT_Error )
-  FT_Raccess_Get_DataOffsets( FT_Library  library,
-                              FT_Stream   stream,
-                              FT_Long     map_offset,
-                              FT_Long     rdata_pos,
-                              FT_Long     tag,
-                              FT_Long   **offsets,
-                              FT_Long    *count );
-
-
-FT_END_HEADER
-
-#endif /* __FTRFORK_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftserv.h b/nx-X11/extras/freetype2/include/freetype/internal/ftserv.h
deleted file mode 100644
index e5ed8895b..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftserv.h
+++ /dev/null
@@ -1,260 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftserv.h                                                               */
-/*                                                                         */
-/*    The FreeType services (specification only).                          */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Each module can export one or more `services'.  Each service is      */
-  /*  identified by a constant string and modeled by a pointer; the latter */
-  /*  generally corresponds to a structure containing function pointers.   */
-  /*                                                                       */
-  /*  Note that a service's data cannot be a mere function pointer because */
-  /*  in C it is possible that function pointers might be implemented      */
-  /*  differently than data pointers (e.g. 48 bits instead of 32).         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FTSERV_H__
-#define __FTSERV_H__
-
-
-FT_BEGIN_HEADER
-
-
-  /*
-   * @macro:
-   *   FT_FACE_FIND_SERVICE
-   *
-   * @description:
-   *   This macro is used to look up a service from a face's driver module.
-   *
-   * @input:
-   *   face ::
-   *     The source face handle.
-   *
-   *   id ::
-   *     A string describing the service as defined in the service's
-   *     header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to
-   *     `multi-masters').  It is automatically prefixed with
-   *     `FT_SERVICE_ID_'.
-   *
-   * @output:
-   *   ptr ::
-   *     A variable that receives the service pointer.  Will be NULL
-   *     if not found.
-   */
-#define FT_FACE_FIND_SERVICE( face, ptr, id )                               \
-  FT_BEGIN_STMNT                                                            \
-    FT_Module    module = FT_MODULE( FT_FACE(face)->driver );               \
-    /* the strange cast is to allow C++ compilation */                      \
-    FT_Pointer*  Pptr   = (FT_Pointer*) &(ptr);                             \
-                                                                            \
-                                                                            \
-    *Pptr = NULL;                                                           \
-    if ( module->clazz->get_interface )                                     \
-      *Pptr = module->clazz->get_interface( module, FT_SERVICE_ID_ ## id ); \
-  FT_END_STMNT
-
-
-  /*
-   * @macro:
-   *   FT_FACE_FIND_GLOBAL_SERVICE
-   *
-   * @description:
-   *   This macro is used to look up a service from all modules.
-   *
-   * @input:
-   *   face ::
-   *     The source face handle.
-   *
-   *   id ::
-   *     A string describing the service as defined in the service's
-   *     header files (e.g. FT_SERVICE_ID_MULTI_MASTERS which expands to
-   *     `multi-masters').  It is automatically prefixed with
-   *     `FT_SERVICE_ID_'.
-   *
-   * @output:
-   *   ptr ::
-   *     A variable that receives the service pointer.  Will be NULL
-   *     if not found.
-   */
-#define FT_FACE_FIND_GLOBAL_SERVICE( face, ptr, id )               \
-  FT_BEGIN_STMNT                                                   \
-    FT_Module    module = FT_MODULE( FT_FACE(face)->driver );      \
-    /* the strange cast is to allow C++ compilation */             \
-    FT_Pointer*  Pptr   = (FT_Pointer*) &(ptr);                    \
-                                                                   \
-                                                                   \
-    *Pptr = ft_module_get_service( module, FT_SERVICE_ID_ ## id ); \
-  FT_END_STMNT
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****         S E R V I C E   D E S C R I P T O R S                 *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*
-   *  The following structure is used to _describe_ a given service
-   *  to the library.  This is useful to build simple static service lists.
-   */
-  typedef struct  FT_ServiceDescRec_
-  {
-    const char*  serv_id;     /* service name         */
-    const void*  serv_data;   /* service pointer/data */
-
-  } FT_ServiceDescRec;
-
-  typedef const FT_ServiceDescRec*  FT_ServiceDesc;
-
-
-  /*
-   *  Parse a list of FT_ServiceDescRec descriptors and look for
-   *  a specific service by ID.  Note that the last element in the
-   *  array must be { NULL, NULL }, and that the function should
-   *  return NULL if the service isn't available.
-   *
-   *  This function can be used by modules to implement their
-   *  `get_service' method.
-   */
-  FT_BASE( FT_Pointer )
-  ft_service_list_lookup( FT_ServiceDesc  service_descriptors,
-                          const char*     service_id );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****             S E R V I C E S   C A C H E                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*
-   *  This structure is used to store a cache for several frequently used
-   *  services.  It is the type of `face->internal->services'.  You
-   *  should only use FT_FACE_LOOKUP_SERVICE to access it.
-   *
-   *  All fields should have the type FT_Pointer to relax compilation
-   *  dependencies.  We assume the developer isn't completely stupid.
-   *
-   *  Each field must be named `service_XXXX' where `XXX' corresponds to
-   *  the correct FT_SERVICE_ID_XXXX macro.  See the definition of
-   *  FT_FACE_LOOKUP_SERVICE below how this is implemented.
-   *
-   */
-  typedef struct  FT_ServiceCacheRec_
-  {
-    FT_Pointer  service_POSTSCRIPT_FONT_NAME;
-    FT_Pointer  service_MULTI_MASTERS;
-    FT_Pointer  service_GLYPH_DICT;
-    FT_Pointer  service_PFR_METRICS;
-    FT_Pointer  service_WINFNT;
-
-  } FT_ServiceCacheRec, *FT_ServiceCache;
-
-
-  /*
-   *  A magic number used within the services cache.
-   */
-#define FT_SERVICE_UNAVAILABLE  ((FT_Pointer)-2)  /* magic number */
-
-
-  /*
-   * @macro:
-   *   FT_FACE_LOOKUP_SERVICE
-   *
-   * @description:
-   *   This macro is used to lookup a service from a face's driver module
-   *   using its cache.
-   *
-   * @input:
-   *   face::
-   *     The source face handle containing the cache.
-   *
-   *   field ::
-   *     The field name in the cache.
-   *
-   *   id ::
-   *     The service ID.
-   *
-   * @output:
-   *   ptr ::
-   *     A variable receiving the service data.  NULL if not available.
-   */
-#define FT_FACE_LOOKUP_SERVICE( face, ptr, id )                  \
-  FT_BEGIN_STMNT                                                 \
-    /* the strange cast is to allow C++ compilation */           \
-    FT_Pointer*  pptr = (FT_Pointer*)&(ptr);                     \
-    FT_Pointer   svc;                                            \
-                                                                 \
-                                                                 \
-    svc = FT_FACE(face)->internal->services. service_ ## id ;    \
-    if ( svc == FT_SERVICE_UNAVAILABLE )                         \
-      svc = NULL;                                                \
-    else if ( svc == NULL )                                      \
-    {                                                            \
-      FT_FACE_FIND_SERVICE( face, svc, id );                     \
-                                                                 \
-      FT_FACE(face)->internal->services. service_ ## id =        \
-        (FT_Pointer)( svc != NULL ? svc                          \
-                                  : FT_SERVICE_UNAVAILABLE );    \
-    }                                                            \
-    *pptr = svc;                                                 \
-  FT_END_STMNT
-
-
-  /*
-   *  A macro used to define new service structure types.
-   */
-
-#define FT_DEFINE_SERVICE( name )            \
-  typedef struct FT_Service_ ## name ## Rec_ \
-    FT_Service_ ## name ## Rec ;             \
-  typedef struct FT_Service_ ## name ## Rec_ \
-    const * FT_Service_ ## name ;            \
-  struct FT_Service_ ## name ## Rec_
-
-  /* */
-
-  /*
-   *  The header files containing the services.
-   */
-
-#define FT_SERVICE_MULTIPLE_MASTERS_H  <freetype/internal/services/svmm.h>
-#define FT_SERVICE_POSTSCRIPT_NAME_H   <freetype/internal/services/svpostnm.h>
-#define FT_SERVICE_POSTSCRIPT_CMAPS_H  <freetype/internal/services/svpscmap.h>
-#define FT_SERVICE_POSTSCRIPT_INFO_H   <freetype/internal/services/svpsinfo.h>
-#define FT_SERVICE_GLYPH_DICT_H        <freetype/internal/services/svgldict.h>
-#define FT_SERVICE_BDF_H               <freetype/internal/services/svbdf.h>
-#define FT_SERVICE_XFREE86_NAME_H      <freetype/internal/services/svxf86nm.h>
-#define FT_SERVICE_SFNT_H              <freetype/internal/services/svsfnt.h>
-#define FT_SERVICE_PFR_H               <freetype/internal/services/svpfr.h>
-#define FT_SERVICE_WINFNT_H            <freetype/internal/services/svwinfnt.h>
-#define FT_SERVICE_TT_CMAP_H           <freetype/internal/services/svttcmap.h>
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __FTSERV_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/ftstream.h b/nx-X11/extras/freetype2/include/freetype/internal/ftstream.h
deleted file mode 100644
index 9833cd092..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/ftstream.h
+++ /dev/null
@@ -1,529 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftstream.h                                                             */
-/*                                                                         */
-/*    Stream handling (specification).                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTSTREAM_H__
-#define __FTSTREAM_H__
-
-
-#include <ft2build.h>
-#include FT_SYSTEM_H
-#include FT_INTERNAL_OBJECTS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* format of an 8-bit frame_op value:           */
-  /*                                              */
-  /* bit  76543210                                */
-  /*      xxxxxxes                                */
-  /*                                              */
-  /* s is set to 1 if the value is signed.        */
-  /* e is set to 1 if the value is little-endian. */
-  /* xxx is a command.                            */
-
-#define FT_FRAME_OP_SHIFT         2
-#define FT_FRAME_OP_SIGNED        1
-#define FT_FRAME_OP_LITTLE        2
-#define FT_FRAME_OP_COMMAND( x )  ( x >> FT_FRAME_OP_SHIFT )
-
-#define FT_MAKE_FRAME_OP( command, little, sign ) \
-          ( ( command << FT_FRAME_OP_SHIFT ) | ( little << 1 ) | sign )
-
-#define FT_FRAME_OP_END    0
-#define FT_FRAME_OP_START  1  /* start a new frame     */
-#define FT_FRAME_OP_BYTE   2  /* read 1-byte value     */
-#define FT_FRAME_OP_SHORT  3  /* read 2-byte value     */
-#define FT_FRAME_OP_LONG   4  /* read 4-byte value     */
-#define FT_FRAME_OP_OFF3   5  /* read 3-byte value     */
-#define FT_FRAME_OP_BYTES  6  /* read a bytes sequence */
-
-
-  typedef enum  FT_Frame_Op_
-  {
-    ft_frame_end       = 0,
-    ft_frame_start     = FT_MAKE_FRAME_OP( FT_FRAME_OP_START, 0, 0 ),
-
-    ft_frame_byte      = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE,  0, 0 ),
-    ft_frame_schar     = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTE,  0, 1 ),
-
-    ft_frame_ushort_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 0 ),
-    ft_frame_short_be  = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 0, 1 ),
-    ft_frame_ushort_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 0 ),
-    ft_frame_short_le  = FT_MAKE_FRAME_OP( FT_FRAME_OP_SHORT, 1, 1 ),
-
-    ft_frame_ulong_be  = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 0 ),
-    ft_frame_long_be   = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 0, 1 ),
-    ft_frame_ulong_le  = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 0 ),
-    ft_frame_long_le   = FT_MAKE_FRAME_OP( FT_FRAME_OP_LONG, 1, 1 ),
-
-    ft_frame_uoff3_be  = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 0 ),
-    ft_frame_off3_be   = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 1 ),
-    ft_frame_uoff3_le  = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 0 ),
-    ft_frame_off3_le   = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 ),
-
-    ft_frame_bytes     = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 0 ),
-    ft_frame_skip      = FT_MAKE_FRAME_OP( FT_FRAME_OP_BYTES, 0, 1 )
-
-  } FT_Frame_Op;
-
-
-  typedef struct  FT_Frame_Field_
-  {
-    FT_Byte    value;
-    FT_Byte    size;
-    FT_UShort  offset;
-
-  } FT_Frame_Field;
-
-
-  /* Construct an FT_Frame_Field out of a structure type and a field name. */
-  /* The structure type must be set in the FT_STRUCTURE macro before       */
-  /* calling the FT_FRAME_START() macro.                                   */
-  /*                                                                       */
-#define FT_FIELD_SIZE( f ) \
-          (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f )
-
-#define FT_FIELD_SIZE_DELTA( f ) \
-          (FT_Byte)sizeof ( ((FT_STRUCTURE*)0)->f[0] )
-
-#define FT_FIELD_OFFSET( f ) \
-          (FT_UShort)( offsetof( FT_STRUCTURE, f ) )
-
-#define FT_FRAME_FIELD( frame_op, field ) \
-          {                               \
-            frame_op,                     \
-            FT_FIELD_SIZE( field ),       \
-            FT_FIELD_OFFSET( field )      \
-          }
-
-#define FT_MAKE_EMPTY_FIELD( frame_op )  { frame_op, 0, 0 }
-
-#define FT_FRAME_START( size )   { ft_frame_start, 0, size }
-#define FT_FRAME_END             { ft_frame_end, 0, 0 }
-
-#define FT_FRAME_LONG( f )       FT_FRAME_FIELD( ft_frame_long_be, f )
-#define FT_FRAME_ULONG( f )      FT_FRAME_FIELD( ft_frame_ulong_be, f )
-#define FT_FRAME_SHORT( f )      FT_FRAME_FIELD( ft_frame_short_be, f )
-#define FT_FRAME_USHORT( f )     FT_FRAME_FIELD( ft_frame_ushort_be, f )
-#define FT_FRAME_OFF3( f )       FT_FRAME_FIELD( ft_frame_off3_be, f )
-#define FT_FRAME_UOFF3( f )      FT_FRAME_FIELD( ft_frame_uoff3_be, f )
-#define FT_FRAME_BYTE( f )       FT_FRAME_FIELD( ft_frame_byte, f )
-#define FT_FRAME_CHAR( f )       FT_FRAME_FIELD( ft_frame_schar, f )
-
-#define FT_FRAME_LONG_LE( f )    FT_FRAME_FIELD( ft_frame_long_le, f )
-#define FT_FRAME_ULONG_LE( f )   FT_FRAME_FIELD( ft_frame_ulong_le, f )
-#define FT_FRAME_SHORT_LE( f )   FT_FRAME_FIELD( ft_frame_short_le, f )
-#define FT_FRAME_USHORT_LE( f )  FT_FRAME_FIELD( ft_frame_ushort_le, f )
-#define FT_FRAME_OFF3_LE( f )    FT_FRAME_FIELD( ft_frame_off3_le, f )
-#define FT_FRAME_UOFF3_LE( f )   FT_FRAME_FIELD( ft_frame_uoff3_le, f )
-
-#define FT_FRAME_SKIP_LONG       { ft_frame_long_be, 0, 0 }
-#define FT_FRAME_SKIP_SHORT      { ft_frame_short_be, 0, 0 }
-#define FT_FRAME_SKIP_BYTE       { ft_frame_byte, 0, 0 }
-
-#define FT_FRAME_BYTES( field, count ) \
-          {                            \
-            ft_frame_bytes,            \
-            count,                     \
-            FT_FIELD_OFFSET( field )   \
-          }
-
-#define FT_FRAME_SKIP_BYTES( count )  { ft_frame_skip, count, 0 }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Integer extraction macros -- the `buffer' parameter must ALWAYS be of */
-  /* type `char*' or equivalent (1-byte elements).                         */
-  /*                                                                       */
-
-#define FT_BYTE_( p, i )  ( ((const FT_Byte*)(p))[(i)] )
-#define FT_INT8_( p, i )  ( ((const FT_Char*)(p))[(i)] )
-
-#define FT_INT16( x )   ( (FT_Int16)(x)  )
-#define FT_UINT16( x )  ( (FT_UInt16)(x) )
-#define FT_INT32( x )   ( (FT_Int32)(x)  )
-#define FT_UINT32( x )  ( (FT_UInt32)(x) )
-
-#define FT_BYTE_I16( p, i, s )  ( FT_INT16(  FT_BYTE_( p, i ) ) << (s) )
-#define FT_BYTE_U16( p, i, s )  ( FT_UINT16( FT_BYTE_( p, i ) ) << (s) )
-#define FT_BYTE_I32( p, i, s )  ( FT_INT32(  FT_BYTE_( p, i ) ) << (s) )
-#define FT_BYTE_U32( p, i, s )  ( FT_UINT32( FT_BYTE_( p, i ) ) << (s) )
-
-#define FT_INT8_I16( p, i, s )  ( FT_INT16(  FT_INT8_( p, i ) ) << (s) )
-#define FT_INT8_U16( p, i, s )  ( FT_UINT16( FT_INT8_( p, i ) ) << (s) )
-#define FT_INT8_I32( p, i, s )  ( FT_INT32(  FT_INT8_( p, i ) ) << (s) )
-#define FT_INT8_U32( p, i, s )  ( FT_UINT32( FT_INT8_( p, i ) ) << (s) )
-
-
-#define FT_PEEK_SHORT( p )  FT_INT16( FT_INT8_I16( p, 0, 8) | \
-                                      FT_BYTE_I16( p, 1, 0) )
-
-#define FT_PEEK_USHORT( p )  FT_UINT16( FT_BYTE_U16( p, 0, 8 ) | \
-                                        FT_BYTE_U16( p, 1, 0 ) )
-
-#define FT_PEEK_LONG( p )  FT_INT32( FT_INT8_I32( p, 0, 24 ) | \
-                                     FT_BYTE_I32( p, 1, 16 ) | \
-                                     FT_BYTE_I32( p, 2,  8 ) | \
-                                     FT_BYTE_I32( p, 3,  0 ) )
-
-#define FT_PEEK_ULONG( p )  FT_UINT32( FT_BYTE_U32( p, 0, 24 ) | \
-                                       FT_BYTE_U32( p, 1, 16 ) | \
-                                       FT_BYTE_U32( p, 2,  8 ) | \
-                                       FT_BYTE_U32( p, 3,  0 ) )
-
-#define FT_PEEK_OFF3( p )  FT_INT32( FT_INT8_I32( p, 0, 16 ) | \
-                                     FT_BYTE_I32( p, 1,  8 ) | \
-                                     FT_BYTE_I32( p, 2,  0 ) )
-
-#define FT_PEEK_UOFF3( p )  FT_UINT32( FT_BYTE_U32( p, 0, 16 ) | \
-                                       FT_BYTE_U32( p, 1,  8 ) | \
-                                       FT_BYTE_U32( p, 2,  0 ) )
-
-#define FT_PEEK_SHORT_LE( p )  FT_INT16( FT_INT8_I16( p, 1, 8 ) | \
-                                         FT_BYTE_I16( p, 0, 0 ) )
-
-#define FT_PEEK_USHORT_LE( p )  FT_UINT16( FT_BYTE_U16( p, 1, 8 ) |  \
-                                           FT_BYTE_U16( p, 0, 0 ) )
-
-#define FT_PEEK_LONG_LE( p )  FT_INT32( FT_INT8_I32( p, 3, 24 ) | \
-                                        FT_BYTE_I32( p, 2, 16 ) | \
-                                        FT_BYTE_I32( p, 1,  8 ) | \
-                                        FT_BYTE_I32( p, 0,  0 ) )
-
-#define FT_PEEK_ULONG_LE( p )  FT_UINT32( FT_BYTE_U32( p, 3, 24 ) | \
-                                          FT_BYTE_U32( p, 2, 16 ) | \
-                                          FT_BYTE_U32( p, 1,  8 ) | \
-                                          FT_BYTE_U32( p, 0,  0 ) )
-
-#define FT_PEEK_OFF3_LE( p )  FT_INT32( FT_INT8_I32( p, 2, 16 ) | \
-                                        FT_BYTE_I32( p, 1,  8 ) | \
-                                        FT_BYTE_I32( p, 0,  0 ) )
-
-#define FT_PEEK_UOFF3_LE( p )  FT_UINT32( FT_BYTE_U32( p, 2, 16 ) | \
-                                          FT_BYTE_U32( p, 1,  8 ) | \
-                                          FT_BYTE_U32( p, 0,  0 ) )
-
-
-#define FT_NEXT_CHAR( buffer )       \
-          ( (signed char)*buffer++ )
-
-#define FT_NEXT_BYTE( buffer )         \
-          ( (unsigned char)*buffer++ )
-
-#define FT_NEXT_SHORT( buffer )                                   \
-          ( (short)( buffer += 2, FT_PEEK_SHORT( buffer - 2 ) ) )
-
-#define FT_NEXT_USHORT( buffer )                                            \
-          ( (unsigned short)( buffer += 2, FT_PEEK_USHORT( buffer - 2 ) ) )
-
-#define FT_NEXT_OFF3( buffer )                                  \
-          ( (long)( buffer += 3, FT_PEEK_OFF3( buffer - 3 ) ) )
-
-#define FT_NEXT_UOFF3( buffer )                                           \
-          ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3( buffer - 3 ) ) )
-
-#define FT_NEXT_LONG( buffer )                                  \
-          ( (long)( buffer += 4, FT_PEEK_LONG( buffer - 4 ) ) )
-
-#define FT_NEXT_ULONG( buffer )                                           \
-          ( (unsigned long)( buffer += 4, FT_PEEK_ULONG( buffer - 4 ) ) )
-
-
-#define FT_NEXT_SHORT_LE( buffer )                                   \
-          ( (short)( buffer += 2, FT_PEEK_SHORT_LE( buffer - 2 ) ) )
-
-#define FT_NEXT_USHORT_LE( buffer )                                            \
-          ( (unsigned short)( buffer += 2, FT_PEEK_USHORT_LE( buffer - 2 ) ) )
-
-#define FT_NEXT_OFF3_LE( buffer )                                  \
-          ( (long)( buffer += 3, FT_PEEK_OFF3_LE( buffer - 3 ) ) )
-
-#define FT_NEXT_UOFF3_LE( buffer )                                           \
-          ( (unsigned long)( buffer += 3, FT_PEEK_UOFF3_LE( buffer - 3 ) ) )
-
-#define FT_NEXT_LONG_LE( buffer )                                  \
-          ( (long)( buffer += 4, FT_PEEK_LONG_LE( buffer - 4 ) ) )
-
-#define FT_NEXT_ULONG_LE( buffer )                                           \
-          ( (unsigned long)( buffer += 4, FT_PEEK_ULONG_LE( buffer - 4 ) ) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Each GET_xxxx() macro uses an implicit `stream' variable.             */
-  /*                                                                       */
-#if 0
-#define FT_GET_MACRO( type )    FT_NEXT_ ## type ( stream->cursor )
-
-#define FT_GET_CHAR()       FT_GET_MACRO( CHAR )
-#define FT_GET_BYTE()       FT_GET_MACRO( BYTE )
-#define FT_GET_SHORT()      FT_GET_MACRO( SHORT )
-#define FT_GET_USHORT()     FT_GET_MACRO( USHORT )
-#define FT_GET_OFF3()       FT_GET_MACRO( OFF3 )
-#define FT_GET_UOFF3()      FT_GET_MACRO( UOFF3 )
-#define FT_GET_LONG()       FT_GET_MACRO( LONG )
-#define FT_GET_ULONG()      FT_GET_MACRO( ULONG )
-#define FT_GET_TAG4()       FT_GET_MACRO( ULONG )
-
-#define FT_GET_SHORT_LE()   FT_GET_MACRO( SHORT_LE )
-#define FT_GET_USHORT_LE()  FT_GET_MACRO( USHORT_LE )
-#define FT_GET_LONG_LE()    FT_GET_MACRO( LONG_LE )
-#define FT_GET_ULONG_LE()   FT_GET_MACRO( ULONG_LE )
-
-#else
-#define FT_GET_MACRO( func, type )        ( (type)func( stream ) )
-
-#define FT_GET_CHAR()       FT_GET_MACRO( FT_Stream_GetChar, FT_Char )
-#define FT_GET_BYTE()       FT_GET_MACRO( FT_Stream_GetChar, FT_Byte )
-#define FT_GET_SHORT()      FT_GET_MACRO( FT_Stream_GetShort, FT_Short )
-#define FT_GET_USHORT()     FT_GET_MACRO( FT_Stream_GetShort, FT_UShort )
-#define FT_GET_OFF3()       FT_GET_MACRO( FT_Stream_GetOffset, FT_Long )
-#define FT_GET_UOFF3()      FT_GET_MACRO( FT_Stream_GetOffset, FT_ULong )
-#define FT_GET_LONG()       FT_GET_MACRO( FT_Stream_GetLong, FT_Long )
-#define FT_GET_ULONG()      FT_GET_MACRO( FT_Stream_GetLong, FT_ULong )
-#define FT_GET_TAG4()       FT_GET_MACRO( FT_Stream_GetLong, FT_ULong )
-
-#define FT_GET_SHORT_LE()   FT_GET_MACRO( FT_Stream_GetShortLE, FT_Short )
-#define FT_GET_USHORT_LE()  FT_GET_MACRO( FT_Stream_GetShortLE, FT_UShort )
-#define FT_GET_LONG_LE()    FT_GET_MACRO( FT_Stream_GetLongLE, FT_Long )
-#define FT_GET_ULONG_LE()   FT_GET_MACRO( FT_Stream_GetLongLE, FT_ULong )
-#endif
-
-#define FT_READ_MACRO( func, type, var )        \
-          ( var = (type)func( stream, &error ), \
-            error != FT_Err_Ok )
-
-#define FT_READ_BYTE( var )       FT_READ_MACRO( FT_Stream_ReadChar, FT_Byte, var )
-#define FT_READ_CHAR( var )       FT_READ_MACRO( FT_Stream_ReadChar, FT_Char, var )
-#define FT_READ_SHORT( var )      FT_READ_MACRO( FT_Stream_ReadShort, FT_Short, var )
-#define FT_READ_USHORT( var )     FT_READ_MACRO( FT_Stream_ReadShort, FT_UShort, var )
-#define FT_READ_OFF3( var )       FT_READ_MACRO( FT_Stream_ReadOffset, FT_Long, var )
-#define FT_READ_UOFF3( var )      FT_READ_MACRO( FT_Stream_ReadOffset, FT_ULong, var )
-#define FT_READ_LONG( var )       FT_READ_MACRO( FT_Stream_ReadLong, FT_Long, var )
-#define FT_READ_ULONG( var )      FT_READ_MACRO( FT_Stream_ReadLong, FT_ULong, var )
-
-#define FT_READ_SHORT_LE( var )   FT_READ_MACRO( FT_Stream_ReadShortLE, FT_Short, var )
-#define FT_READ_USHORT_LE( var )  FT_READ_MACRO( FT_Stream_ReadShortLE, FT_UShort, var )
-#define FT_READ_LONG_LE( var )    FT_READ_MACRO( FT_Stream_ReadLongLE, FT_Long, var )
-#define FT_READ_ULONG_LE( var )   FT_READ_MACRO( FT_Stream_ReadLongLE, FT_ULong, var )
-
-
-#ifndef FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM
-
-  /* initialize a stream for reading a regular system stream */
-  FT_EXPORT( FT_Error )
-  FT_Stream_Open( FT_Stream    stream,
-                  const char*  filepathname );
-
-#endif /* FT_CONFIG_OPTION_NO_DEFAULT_SYSTEM */
-
-
-  /* create a new (input) stream from an FT_Open_Args structure */
-  FT_BASE( FT_Error )
-  FT_Stream_New( FT_Library           library,
-                 const FT_Open_Args*  args,
-                 FT_Stream           *astream );
-
-  /* free a stream */
-  FT_BASE( void )
-  FT_Stream_Free( FT_Stream  stream,                    
-                  FT_Int     external );
-
-  /* initialize a stream for reading in-memory data */
-  FT_BASE( void )
-  FT_Stream_OpenMemory( FT_Stream       stream,
-                        const FT_Byte*  base,
-                        FT_ULong        size );
-
-  /* close a stream (does not destroy the stream structure) */
-  FT_BASE( void )
-  FT_Stream_Close( FT_Stream  stream );
-
-
-  /* seek within a stream. position is relative to start of stream */
-  FT_BASE( FT_Error )
-  FT_Stream_Seek( FT_Stream  stream,
-                  FT_ULong   pos );
-
-  /* skip bytes in a stream */
-  FT_BASE( FT_Error )
-  FT_Stream_Skip( FT_Stream  stream,
-                  FT_Long    distance );
-
-  /* return current stream position */
-  FT_BASE( FT_Long )
-  FT_Stream_Pos( FT_Stream  stream );
-
-  /* read bytes from a stream into a user-allocated buffer, returns an */
-  /* error if not all bytes could be read.                             */
-  FT_BASE( FT_Error )
-  FT_Stream_Read( FT_Stream  stream,
-                  FT_Byte*   buffer,
-                  FT_ULong   count );
-
-  /* read bytes from a stream at a given position */
-  FT_BASE( FT_Error )
-  FT_Stream_ReadAt( FT_Stream  stream,
-                    FT_ULong   pos,
-                    FT_Byte*   buffer,
-                    FT_ULong   count );
-
-  /* Enter a frame of `count' consecutive bytes in a stream.  Returns an */
-  /* error if the frame could not be read/accessed.  The caller can use  */
-  /* the FT_Stream_Get_XXX functions to retrieve frame data without      */
-  /* error checks.                                                       */
-  /*                                                                     */
-  /* You must _always_ call FT_Stream_ExitFrame() once you have entered  */
-  /* a stream frame!                                                     */
-  /*                                                                     */
-  FT_BASE( FT_Error )
-  FT_Stream_EnterFrame( FT_Stream  stream,
-                        FT_ULong   count );
-
-  /* exit a stream frame */
-  FT_BASE( void )
-  FT_Stream_ExitFrame( FT_Stream  stream );
-
-  /* Extract a stream frame.  If the stream is disk-based, a heap block */
-  /* is allocated and the frame bytes are read into it.  If the stream  */
-  /* is memory-based, this function simply set a pointer to the data.   */
-  /*                                                                    */
-  /* Useful to optimize access to memory-based streams transparently.   */
-  /*                                                                    */
-  /* All extracted frames must be `freed` with a call to the function   */
-  /* FT_Stream_ReleaseFrame().                                          */
-  /*                                                                    */
-  FT_BASE( FT_Error )
-  FT_Stream_ExtractFrame( FT_Stream  stream,
-                          FT_ULong   count,
-                          FT_Byte**  pbytes );
-
-  /* release an extract frame (see FT_Stream_ExtractFrame) */
-  FT_BASE( void )
-  FT_Stream_ReleaseFrame( FT_Stream  stream,
-                          FT_Byte**  pbytes );
-
-  /* read a byte from an entered frame */
-  FT_BASE( FT_Char )
-  FT_Stream_GetChar( FT_Stream  stream );
-
-  /* read a 16-bit big-endian integer from an entered frame */
-  FT_BASE( FT_Short )
-  FT_Stream_GetShort( FT_Stream  stream );
-
-  /* read a 24-bit big-endian integer from an entered frame */
-  FT_BASE( FT_Long )
-  FT_Stream_GetOffset( FT_Stream  stream );
-
-  /* read a 32-bit big-endian integer from an entered frame */
-  FT_BASE( FT_Long )
-  FT_Stream_GetLong( FT_Stream  stream );
-
-  /* read a 16-bit little-endian integer from an entered frame */
-  FT_BASE( FT_Short )
-  FT_Stream_GetShortLE( FT_Stream  stream );
-
-  /* read a 32-bit little-endian integer from an entered frame */
-  FT_BASE( FT_Long )
-  FT_Stream_GetLongLE( FT_Stream  stream );
-
-
-  /* read a byte from a stream */
-  FT_BASE( FT_Char )
-  FT_Stream_ReadChar( FT_Stream  stream,
-                      FT_Error*  error );
-
-  /* read a 16-bit big-endian integer from a stream */
-  FT_BASE( FT_Short )
-  FT_Stream_ReadShort( FT_Stream  stream,
-                       FT_Error*  error );
-
-  /* read a 24-bit big-endian integer from a stream */
-  FT_BASE( FT_Long )
-  FT_Stream_ReadOffset( FT_Stream  stream,
-                        FT_Error*  error );
-
-  /* read a 32-bit big-endian integer from a stream */
-  FT_BASE( FT_Long )
-  FT_Stream_ReadLong( FT_Stream  stream,
-                      FT_Error*  error );
-
-  /* read a 16-bit little-endian integer from a stream */
-  FT_BASE( FT_Short )
-  FT_Stream_ReadShortLE( FT_Stream  stream,
-                         FT_Error*  error );
-
-  /* read a 32-bit little-endian integer from a stream */
-  FT_BASE( FT_Long )
-  FT_Stream_ReadLongLE( FT_Stream  stream,
-                        FT_Error*  error );
-
-  /* Read a structure from a stream.  The structure must be described */
-  /* by an array of FT_Frame_Field records.                           */
-  FT_BASE( FT_Error )
-  FT_Stream_ReadFields( FT_Stream              stream,
-                        const FT_Frame_Field*  fields,
-                        void*                  structure );
-
-
-#define FT_STREAM_POS()           \
-          FT_Stream_Pos( stream )
-
-#define FT_STREAM_SEEK( position )                           \
-          FT_SET_ERROR( FT_Stream_Seek( stream, position ) )
-
-#define FT_STREAM_SKIP( distance )                           \
-          FT_SET_ERROR( FT_Stream_Skip( stream, distance ) )
-
-#define FT_STREAM_READ( buffer, count )                   \
-          FT_SET_ERROR( FT_Stream_Read( stream,           \
-                                        (FT_Byte*)buffer, \
-                                        count ) )
-
-#define FT_STREAM_READ_AT( position, buffer, count )         \
-          FT_SET_ERROR( FT_Stream_ReadAt( stream,            \
-                                           position,         \
-                                           (FT_Byte*)buffer, \
-                                           count ) )
-
-#define FT_STREAM_READ_FIELDS( fields, object )                          \
-          FT_SET_ERROR( FT_Stream_ReadFields( stream, fields, object ) )
-
-
-#define FT_FRAME_ENTER( size )                                 \
-          FT_SET_ERROR( FT_Stream_EnterFrame( stream, size ) )
-
-#define FT_FRAME_EXIT()                 \
-          FT_Stream_ExitFrame( stream )
-
-#define FT_FRAME_EXTRACT( size, bytes )                                 \
-          FT_SET_ERROR( FT_Stream_ExtractFrame( stream, size,           \
-                                                (FT_Byte**)&(bytes) ) )
-
-#define FT_FRAME_RELEASE( bytes )                               \
-          FT_Stream_ReleaseFrame( stream, (FT_Byte**)&(bytes) )
-
-
-FT_END_HEADER
-
-#endif /* __FTSTREAM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/fttrace.h b/nx-X11/extras/freetype2/include/freetype/internal/fttrace.h
deleted file mode 100644
index a9a15a286..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/fttrace.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fttrace.h                                                              */
-/*                                                                         */
-/*    Tracing handling (specification only).                               */
-/*                                                                         */
-/*  Copyright 2002, 2004 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /* definitions of trace levels for FreeType 2 */
-
-  /* the first level must always be `trace_any' */
-FT_TRACE_DEF( any )
-
-  /* base components */
-FT_TRACE_DEF( calc )      /* calculations            (ftcalc.c)   */
-FT_TRACE_DEF( memory )    /* memory manager          (ftobjs.c)   */
-FT_TRACE_DEF( stream )    /* stream manager          (ftstream.c) */
-FT_TRACE_DEF( io )        /* i/o interface           (ftsystem.c) */
-FT_TRACE_DEF( list )      /* list management         (ftlist.c)   */
-FT_TRACE_DEF( init )      /* initialization          (ftinit.c)   */
-FT_TRACE_DEF( objs )      /* base objects            (ftobjs.c)   */
-FT_TRACE_DEF( outline )   /* outline management      (ftoutln.c)  */
-FT_TRACE_DEF( glyph )     /* glyph management        (ftglyph.c)  */
-
-FT_TRACE_DEF( raster )    /* monochrome rasterizer   (ftraster.c) */
-FT_TRACE_DEF( smooth )    /* anti-aliasing raster    (ftgrays.c)  */
-FT_TRACE_DEF( mm )        /* MM interface            (ftmm.c)     */
-FT_TRACE_DEF( raccess )   /* resource fork accessor  (ftrfork.c)  */
-
-/* Cache sub-system */
-FT_TRACE_DEF( cache )     /* cache sub-system        (ftcache.c, etc.) */
-
-/* SFNT driver components */
-FT_TRACE_DEF( sfobjs )    /* SFNT object handler     (sfobjs.c)   */
-FT_TRACE_DEF( ttcmap )    /* charmap handler         (ttcmap.c)   */
-FT_TRACE_DEF( ttload )    /* basic TrueType tables   (ttload.c)   */
-FT_TRACE_DEF( ttpost )    /* PS table processing     (ttpost.c)   */
-FT_TRACE_DEF( ttsbit )    /* TrueType sbit handling  (ttsbit.c)   */
-
-/* TrueType driver components */
-FT_TRACE_DEF( ttdriver )  /* TT font driver          (ttdriver.c) */
-FT_TRACE_DEF( ttgload )   /* TT glyph loader         (ttgload.c)  */
-FT_TRACE_DEF( ttinterp )  /* bytecode interpreter    (ttinterp.c) */
-FT_TRACE_DEF( ttobjs )    /* TT objects manager      (ttobjs.c)   */
-FT_TRACE_DEF( ttpload )   /* TT data/program loader  (ttpload.c)  */
-FT_TRACE_DEF( ttgxvar )   /* TrueType GX var handler (ttgxvar.c)  */
-
-/* Type 1 driver components */
-FT_TRACE_DEF( t1driver )
-FT_TRACE_DEF( t1gload )
-FT_TRACE_DEF( t1hint )
-FT_TRACE_DEF( t1load )
-FT_TRACE_DEF( t1objs )
-FT_TRACE_DEF( t1parse )
-
-/* PostScript helper module `psaux' */
-FT_TRACE_DEF( t1decode )
-FT_TRACE_DEF( psobjs )
-
-/* PostScript hinting module `pshinter' */
-FT_TRACE_DEF( pshrec )
-FT_TRACE_DEF( pshalgo1 )
-FT_TRACE_DEF( pshalgo2 )
-
-/* Type 2 driver components */
-FT_TRACE_DEF( cffdriver )
-FT_TRACE_DEF( cffgload )
-FT_TRACE_DEF( cffload )
-FT_TRACE_DEF( cffobjs )
-FT_TRACE_DEF( cffparse )
-
-/* Type 42 driver component */
-FT_TRACE_DEF( t42 )
-
-/* CID driver components */
-FT_TRACE_DEF( cidafm )
-FT_TRACE_DEF( ciddriver )
-FT_TRACE_DEF( cidgload )
-FT_TRACE_DEF( cidload )
-FT_TRACE_DEF( cidobjs )
-FT_TRACE_DEF( cidparse )
-
-/* Windows fonts component */
-FT_TRACE_DEF( winfnt )
-
-/* PCF fonts components */
-FT_TRACE_DEF( pcfdriver )
-FT_TRACE_DEF( pcfread )
-
-/* BDF fonts component */
-FT_TRACE_DEF( bdfdriver )
-FT_TRACE_DEF( bdflib )
-
-/* PFR fonts component */
-FT_TRACE_DEF( pfr )
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/internal.h b/nx-X11/extras/freetype2/include/freetype/internal/internal.h
deleted file mode 100644
index 1e5ac44d5..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/internal.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  internal.h                                                             */
-/*                                                                         */
-/*    Internal header files (specification only).                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is automatically included by `ft2build.h'.                  */
-  /* Do not include it manually!                                           */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define FT_INTERNAL_OBJECTS_H             <freetype/internal/ftobjs.h>
-#define FT_INTERNAL_STREAM_H              <freetype/internal/ftstream.h>
-#define FT_INTERNAL_MEMORY_H              <freetype/internal/ftmemory.h>
-#define FT_INTERNAL_DEBUG_H               <freetype/internal/ftdebug.h>
-#define FT_INTERNAL_CALC_H                <freetype/internal/ftcalc.h>
-#define FT_INTERNAL_DRIVER_H              <freetype/internal/ftdriver.h>
-#define FT_INTERNAL_TRACE_H               <freetype/internal/fttrace.h>
-#define FT_INTERNAL_GLYPH_LOADER_H        <freetype/internal/ftgloadr.h>
-#define FT_INTERNAL_SFNT_H                <freetype/internal/sfnt.h>
-#define FT_INTERNAL_SERVICE_H             <freetype/internal/ftserv.h>
-#define FT_INTERNAL_RFORK_H               <freetype/internal/ftrfork.h>
-
-#define FT_INTERNAL_TRUETYPE_TYPES_H      <freetype/internal/tttypes.h>
-#define FT_INTERNAL_TYPE1_TYPES_H         <freetype/internal/t1types.h>
-
-#define FT_INTERNAL_POSTSCRIPT_AUX_H      <freetype/internal/psaux.h>
-#define FT_INTERNAL_POSTSCRIPT_HINTS_H    <freetype/internal/pshints.h>
-#define FT_INTERNAL_POSTSCRIPT_GLOBALS_H  <freetype/internal/psglobal.h>
-
-#define FT_INTERNAL_AUTOHINT_H            <freetype/internal/autohint.h>
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/pcftypes.h b/nx-X11/extras/freetype2/include/freetype/internal/pcftypes.h
deleted file mode 100644
index 382796ffb..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/pcftypes.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*  pcftypes.h
-
-  FreeType font driver for pcf fonts
-
-  Copyright (C) 2000, 2001, 2002 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#ifndef __PCFTYPES_H__
-#define __PCFTYPES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct  PCF_Public_FaceRec_
-  {
-    FT_FaceRec    root;
-    FT_StreamRec  gzip_stream;
-    FT_Stream     gzip_source;
-
-    char*         charset_encoding;
-    char*         charset_registry;
-
-  } PCF_Public_FaceRec, *PCF_Public_Face;
-
-
-FT_END_HEADER
-
-#endif  /* __PCFTYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/psaux.h b/nx-X11/extras/freetype2/include/freetype/internal/psaux.h
deleted file mode 100644
index cf1abf4c9..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/psaux.h
+++ /dev/null
@@ -1,741 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psaux.h                                                                */
-/*                                                                         */
-/*    Auxiliary functions and data structures related to PostScript fonts  */
-/*    (specification).                                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSAUX_H__
-#define __PSAUX_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                             T1_TABLE                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  typedef struct PS_TableRec_*              PS_Table;
-  typedef const struct PS_Table_FuncsRec_*  PS_Table_Funcs;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    PS_Table_FuncsRec                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A set of function pointers to manage PS_Table objects.             */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    table_init    :: Used to initialize a table.                       */
-  /*                                                                       */
-  /*    table_done    :: Finalizes resp. destroy a given table.            */
-  /*                                                                       */
-  /*    table_add     :: Adds a new object to a table.                     */
-  /*                                                                       */
-  /*    table_release :: Releases table data, then finalizes it.           */
-  /*                                                                       */
-  typedef struct  PS_Table_FuncsRec_
-  {
-    FT_Error
-    (*init)( PS_Table   table,
-             FT_Int     count,
-             FT_Memory  memory );
-
-    void
-    (*done)( PS_Table  table );
-
-    FT_Error
-    (*add)( PS_Table    table,
-            FT_Int      idx,
-            void*       object,
-            FT_PtrDist  length );
-
-    void
-    (*release)( PS_Table  table );
-
-  } PS_Table_FuncsRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    PS_TableRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A PS_Table is a simple object used to store an array of objects in */
-  /*    a single memory block.                                             */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    block     :: The address in memory of the growheap's block.  This  */
-  /*                 can change between two object adds, due to            */
-  /*                 reallocation.                                         */
-  /*                                                                       */
-  /*    cursor    :: The current top of the grow heap within its block.    */
-  /*                                                                       */
-  /*    capacity  :: The current size of the heap block.  Increments by    */
-  /*                 1kByte chunks.                                        */
-  /*                                                                       */
-  /*    max_elems :: The maximum number of elements in table.              */
-  /*                                                                       */
-  /*    num_elems :: The current number of elements in table.              */
-  /*                                                                       */
-  /*    elements  :: A table of element addresses within the block.        */
-  /*                                                                       */
-  /*    lengths   :: A table of element sizes within the block.            */
-  /*                                                                       */
-  /*    memory    :: The object used for memory operations                 */
-  /*                 (alloc/realloc).                                      */
-  /*                                                                       */
-  /*    funcs     :: A table of method pointers for this object.           */
-  /*                                                                       */
-  typedef struct  PS_TableRec_
-  {
-    FT_Byte*           block;          /* current memory block           */
-    FT_Offset          cursor;         /* current cursor in memory block */
-    FT_Offset          capacity;       /* current size of memory block   */
-    FT_Long            init;
-
-    FT_Int             max_elems;
-    FT_Int             num_elems;
-    FT_Byte**          elements;       /* addresses of table elements */
-    FT_PtrDist*        lengths;        /* lengths of table elements   */
-
-    FT_Memory          memory;
-    PS_Table_FuncsRec  funcs;
-
-  } PS_TableRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       T1 FIELDS & TOKENS                      *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct PS_ParserRec_*  PS_Parser;
-
-  typedef struct T1_TokenRec_*   T1_Token;
-
-  typedef struct T1_FieldRec_*   T1_Field;
-
-
-  /* simple enumeration type used to identify token types */
-  typedef enum  T1_TokenType_
-  {
-    T1_TOKEN_TYPE_NONE = 0,
-    T1_TOKEN_TYPE_ANY,
-    T1_TOKEN_TYPE_STRING,
-    T1_TOKEN_TYPE_ARRAY,
-
-    /* do not remove */
-    T1_TOKEN_TYPE_MAX
-
-  } T1_TokenType;
-
-
-  /* a simple structure used to identify tokens */
-  typedef struct  T1_TokenRec_
-  {
-    FT_Byte*      start;   /* first character of token in input stream */
-    FT_Byte*      limit;   /* first character after the token          */
-    T1_TokenType  type;    /* type of token                            */
-
-  } T1_TokenRec;
-
-
-  /* enumeration type used to identify object fields */
-  typedef enum  T1_FieldType_
-  {
-    T1_FIELD_TYPE_NONE = 0,
-    T1_FIELD_TYPE_BOOL,
-    T1_FIELD_TYPE_INTEGER,
-    T1_FIELD_TYPE_FIXED,
-    T1_FIELD_TYPE_FIXED_1000,
-    T1_FIELD_TYPE_STRING,
-    T1_FIELD_TYPE_KEY,
-    T1_FIELD_TYPE_BBOX,
-    T1_FIELD_TYPE_INTEGER_ARRAY,
-    T1_FIELD_TYPE_FIXED_ARRAY,
-    T1_FIELD_TYPE_CALLBACK,
-
-    /* do not remove */
-    T1_FIELD_TYPE_MAX
-
-  } T1_FieldType;
-
-
-  typedef enum  T1_FieldLocation_
-  {
-    T1_FIELD_LOCATION_CID_INFO,
-    T1_FIELD_LOCATION_FONT_DICT,
-    T1_FIELD_LOCATION_FONT_INFO,
-    T1_FIELD_LOCATION_PRIVATE,
-    T1_FIELD_LOCATION_BBOX,
-
-    /* do not remove */
-    T1_FIELD_LOCATION_MAX
-
-  } T1_FieldLocation;
-
-
-  typedef void
-  (*T1_Field_ParseFunc)( FT_Face     face,
-                         FT_Pointer  parser );
-
-
-  /* structure type used to model object fields */
-  typedef struct  T1_FieldRec_
-  {
-    const char*         ident;        /* field identifier               */
-    T1_FieldLocation    location;
-    T1_FieldType        type;         /* type of field                  */
-    T1_Field_ParseFunc  reader;
-    FT_UInt             offset;       /* offset of field in object      */
-    FT_Byte             size;         /* size of field in bytes         */
-    FT_UInt             array_max;    /* maximal number of elements for */
-                                      /* array                          */
-    FT_UInt             count_offset; /* offset of element count for    */
-                                      /* arrays                         */
-  } T1_FieldRec;
-
-
-#define T1_NEW_SIMPLE_FIELD( _ident, _type, _fname ) \
-          {                                          \
-            _ident, T1CODE, _type,                   \
-            0,                                       \
-            FT_FIELD_OFFSET( _fname ),               \
-            FT_FIELD_SIZE( _fname ),                 \
-            0, 0                                     \
-          },
-
-#define T1_NEW_CALLBACK_FIELD( _ident, _reader )    \
-          {                                         \
-            _ident, T1CODE, T1_FIELD_TYPE_CALLBACK, \
-            (T1_Field_ParseFunc)_reader,            \
-            0, 0,                                   \
-            0, 0                                    \
-          },
-
-#define T1_NEW_TABLE_FIELD( _ident, _type, _fname, _max ) \
-          {                                               \
-            _ident, T1CODE, _type,                        \
-            0,                                            \
-            FT_FIELD_OFFSET( _fname ),                    \
-            FT_FIELD_SIZE_DELTA( _fname ),                \
-            _max,                                         \
-            FT_FIELD_OFFSET( num_ ## _fname )             \
-          },
-
-#define T1_NEW_TABLE_FIELD2( _ident, _type, _fname, _max ) \
-          {                                                \
-            _ident, T1CODE, _type,                         \
-            0,                                             \
-            FT_FIELD_OFFSET( _fname ),                     \
-            FT_FIELD_SIZE_DELTA( _fname ),                 \
-            _max, 0                                        \
-          },
-
-
-#define T1_FIELD_BOOL( _ident, _fname )                             \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BOOL, _fname )
-
-#define T1_FIELD_NUM( _ident, _fname )                                 \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER, _fname )
-
-#define T1_FIELD_FIXED( _ident, _fname )                             \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED, _fname )
-
-#define T1_FIELD_FIXED_1000( _ident, _fname )                             \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_1000, _fname )
-
-#define T1_FIELD_STRING( _ident, _fname )                             \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_STRING, _fname )
-
-#define T1_FIELD_KEY( _ident, _fname )                             \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_KEY, _fname )
-
-#define T1_FIELD_BBOX( _ident, _fname )                             \
-          T1_NEW_SIMPLE_FIELD( _ident, T1_FIELD_TYPE_BBOX, _fname )
-
-
-#define T1_FIELD_NUM_TABLE( _ident, _fname, _fmax )                \
-          T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \
-                              _fname, _fmax )
-
-#define T1_FIELD_FIXED_TABLE( _ident, _fname, _fmax )            \
-          T1_NEW_TABLE_FIELD( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \
-                              _fname, _fmax )
-
-#define T1_FIELD_NUM_TABLE2( _ident, _fname, _fmax )                \
-          T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_INTEGER_ARRAY, \
-                               _fname, _fmax )
-
-#define T1_FIELD_FIXED_TABLE2( _ident, _fname, _fmax )            \
-          T1_NEW_TABLE_FIELD2( _ident, T1_FIELD_TYPE_FIXED_ARRAY, \
-                               _fname, _fmax )
-
-#define T1_FIELD_CALLBACK( _ident, _name )       \
-          T1_NEW_CALLBACK_FIELD( _ident, _name )
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            T1 PARSER                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef const struct PS_Parser_FuncsRec_*  PS_Parser_Funcs;
-
-  typedef struct  PS_Parser_FuncsRec_
-  {
-    void
-    (*init)( PS_Parser  parser,
-             FT_Byte*   base,
-             FT_Byte*   limit,
-             FT_Memory  memory );
-
-    void
-    (*done)( PS_Parser  parser );
-
-    void
-    (*skip_spaces)( PS_Parser  parser );
-    void
-    (*skip_PS_token)( PS_Parser  parser );
-
-    FT_Long
-    (*to_int)( PS_Parser  parser );
-    FT_Fixed
-    (*to_fixed)( PS_Parser  parser,
-                 FT_Int     power_ten );
-
-    FT_Error
-    (*to_bytes)( PS_Parser  parser,
-                 FT_Byte*   bytes,
-                 FT_Long    max_bytes,
-                 FT_Long*   pnum_bytes,
-                 FT_Bool    delimiters );
-
-    FT_Int
-    (*to_coord_array)( PS_Parser  parser,
-                       FT_Int     max_coords,
-                       FT_Short*  coords );
-    FT_Int
-    (*to_fixed_array)( PS_Parser  parser,
-                       FT_Int     max_values,
-                       FT_Fixed*  values,
-                       FT_Int     power_ten );
-
-    void
-    (*to_token)( PS_Parser  parser,
-                 T1_Token   token );
-    void
-    (*to_token_array)( PS_Parser  parser,
-                       T1_Token   tokens,
-                       FT_UInt    max_tokens,
-                       FT_Int*    pnum_tokens );
-
-    FT_Error
-    (*load_field)( PS_Parser       parser,
-                   const T1_Field  field,
-                   void**          objects,
-                   FT_UInt         max_objects,
-                   FT_ULong*       pflags );
-
-    FT_Error
-    (*load_field_table)( PS_Parser       parser,
-                         const T1_Field  field,
-                         void**          objects,
-                         FT_UInt         max_objects,
-                         FT_ULong*       pflags );
-
-  } PS_Parser_FuncsRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    PS_ParserRec                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A PS_Parser is an object used to parse a Type 1 font very quickly. */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    cursor :: The current position in the text.                        */
-  /*                                                                       */
-  /*    base   :: Start of the processed text.                             */
-  /*                                                                       */
-  /*    limit  :: End of the processed text.                               */
-  /*                                                                       */
-  /*    error  :: The last error returned.                                 */
-  /*                                                                       */
-  /*    memory :: The object used for memory operations (alloc/realloc).   */
-  /*                                                                       */
-  /*    funcs  :: A table of functions for the parser.                     */
-  /*                                                                       */
-  typedef struct  PS_ParserRec_
-  {
-    FT_Byte*   cursor;
-    FT_Byte*   base;
-    FT_Byte*   limit;
-    FT_Error   error;
-    FT_Memory  memory;
-
-    PS_Parser_FuncsRec  funcs;
-
-  } PS_ParserRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                         T1 BUILDER                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  typedef struct T1_BuilderRec_*  T1_Builder;
-
-
-  typedef FT_Error
-  (*T1_Builder_Check_Points_Func)( T1_Builder  builder,
-                                   FT_Int      count );
-
-  typedef void
-  (*T1_Builder_Add_Point_Func)( T1_Builder  builder,
-                                FT_Pos      x,
-                                FT_Pos      y,
-                                FT_Byte     flag );
-
-  typedef FT_Error
-  (*T1_Builder_Add_Point1_Func)( T1_Builder  builder,
-                                 FT_Pos      x,
-                                 FT_Pos      y );
-
-  typedef FT_Error
-  (*T1_Builder_Add_Contour_Func)( T1_Builder  builder );
-
-  typedef FT_Error
-  (*T1_Builder_Start_Point_Func)( T1_Builder  builder,
-                                  FT_Pos      x,
-                                  FT_Pos      y );
-
-  typedef void
-  (*T1_Builder_Close_Contour_Func)( T1_Builder  builder );
-
-
-  typedef const struct T1_Builder_FuncsRec_*  T1_Builder_Funcs;
-
-  typedef struct  T1_Builder_FuncsRec_
-  {
-    void
-    (*init)( T1_Builder    builder,
-             FT_Face       face,
-             FT_Size       size,
-             FT_GlyphSlot  slot,
-             FT_Bool       hinting );
-
-    void
-    (*done)( T1_Builder   builder );
-
-    T1_Builder_Check_Points_Func   check_points;
-    T1_Builder_Add_Point_Func      add_point;
-    T1_Builder_Add_Point1_Func     add_point1;
-    T1_Builder_Add_Contour_Func    add_contour;
-    T1_Builder_Start_Point_Func    start_point;
-    T1_Builder_Close_Contour_Func  close_contour;
-
-  } T1_Builder_FuncsRec;
-
-
-  /* an enumeration type to handle charstring parsing states */
-  typedef enum  T1_ParseState_
-  {
-    T1_Parse_Start,
-    T1_Parse_Have_Width,
-    T1_Parse_Have_Moveto,
-    T1_Parse_Have_Path
-
-  } T1_ParseState;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Structure>                                                           */
-  /*    T1_BuilderRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*     A structure used during glyph loading to store its outline.       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    memory       :: The current memory object.                         */
-  /*                                                                       */
-  /*    face         :: The current face object.                           */
-  /*                                                                       */
-  /*    glyph        :: The current glyph slot.                            */
-  /*                                                                       */
-  /*    loader       :: XXX                                                */
-  /*                                                                       */
-  /*    base         :: The base glyph outline.                            */
-  /*                                                                       */
-  /*    current      :: The current glyph outline.                         */
-  /*                                                                       */
-  /*    max_points   :: maximum points in builder outline                  */
-  /*                                                                       */
-  /*    max_contours :: Maximal number of contours in builder outline.     */
-  /*                                                                       */
-  /*    last         :: The last point position.                           */
-  /*                                                                       */
-  /*    scale_x      :: The horizontal scale (FUnits to sub-pixels).       */
-  /*                                                                       */
-  /*    scale_y      :: The vertical scale (FUnits to sub-pixels).         */
-  /*                                                                       */
-  /*    pos_x        :: The horizontal translation (if composite glyph).   */
-  /*                                                                       */
-  /*    pos_y        :: The vertical translation (if composite glyph).     */
-  /*                                                                       */
-  /*    left_bearing :: The left side bearing point.                       */
-  /*                                                                       */
-  /*    advance      :: The horizontal advance vector.                     */
-  /*                                                                       */
-  /*    bbox         :: Unused.                                            */
-  /*                                                                       */
-  /*    parse_state  :: An enumeration which controls the charstring       */
-  /*                    parsing state.                                     */
-  /*                                                                       */
-  /*    load_points  :: If this flag is not set, no points are loaded.     */
-  /*                                                                       */
-  /*    no_recurse   :: Set but not used.                                  */
-  /*                                                                       */
-  /*    metrics_only :: A boolean indicating that we only want to compute  */
-  /*                    the metrics of a given glyph, not load all of its  */
-  /*                    points.                                            */
-  /*                                                                       */
-  /*    funcs        :: An array of function pointers for the builder.     */
-  /*                                                                       */
-  typedef struct  T1_BuilderRec_
-  {
-    FT_Memory       memory;
-    FT_Face         face;
-    FT_GlyphSlot    glyph;
-    FT_GlyphLoader  loader;
-    FT_Outline*     base;
-    FT_Outline*     current;
-
-    FT_Vector       last;
-
-    FT_Fixed        scale_x;
-    FT_Fixed        scale_y;
-
-    FT_Pos          pos_x;
-    FT_Pos          pos_y;
-
-    FT_Vector       left_bearing;
-    FT_Vector       advance;
-
-    FT_BBox         bbox;          /* bounding box */
-    T1_ParseState   parse_state;
-    FT_Bool         load_points;
-    FT_Bool         no_recurse;
-    FT_Bool         shift;
-
-    FT_Bool         metrics_only;
-
-    void*           hints_funcs;    /* hinter-specific */
-    void*           hints_globals;  /* hinter-specific */
-
-    T1_Builder_FuncsRec  funcs;
-
-  } T1_BuilderRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                         T1 DECODER                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#if 0
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine   */
-  /* calls during glyph loading.                                           */
-  /*                                                                       */
-#define T1_MAX_SUBRS_CALLS  8
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity.  A     */
-  /* minimum of 16 is required.                                            */
-  /*                                                                       */
-#define T1_MAX_CHARSTRINGS_OPERANDS  32
-
-#endif /* 0 */
-
-
-  typedef struct  T1_Decoder_ZoneRec_
-  {
-    FT_Byte*  cursor;
-    FT_Byte*  base;
-    FT_Byte*  limit;
-
-  } T1_Decoder_ZoneRec, *T1_Decoder_Zone;
-
-
-  typedef struct T1_DecoderRec_*              T1_Decoder;
-  typedef const struct T1_Decoder_FuncsRec_*  T1_Decoder_Funcs;
-
-
-  typedef FT_Error
-  (*T1_Decoder_Callback)( T1_Decoder  decoder,
-                          FT_UInt     glyph_index );
-
-
-  typedef struct  T1_Decoder_FuncsRec_
-  {
-    FT_Error
-    (*init)( T1_Decoder           decoder,
-             FT_Face              face,
-             FT_Size              size,
-             FT_GlyphSlot         slot,
-             FT_Byte**            glyph_names,
-             PS_Blend             blend,
-             FT_Bool              hinting,
-             FT_Render_Mode       hint_mode,
-             T1_Decoder_Callback  callback );
-
-    void
-    (*done)( T1_Decoder  decoder );
-
-    FT_Error
-    (*parse_charstrings)( T1_Decoder  decoder,
-                          FT_Byte*    base,
-                          FT_UInt     len );
-
-  } T1_Decoder_FuncsRec;
-
-
-  typedef struct  T1_DecoderRec_
-  {
-    T1_BuilderRec        builder;
-
-    FT_Long              stack[T1_MAX_CHARSTRINGS_OPERANDS];
-    FT_Long*             top;
-
-    T1_Decoder_ZoneRec   zones[T1_MAX_SUBRS_CALLS + 1];
-    T1_Decoder_Zone      zone;
-
-    FT_Service_PsCMaps   psnames;      /* for seac */
-    FT_UInt              num_glyphs;
-    FT_Byte**            glyph_names;
-
-    FT_Int               lenIV;        /* internal for sub routine calls */
-    FT_UInt              num_subrs;
-    FT_Byte**            subrs;
-    FT_PtrDist*          subrs_len;    /* array of subrs length (optional) */
-
-    FT_Matrix            font_matrix;
-    FT_Vector            font_offset;
-
-    FT_Int               flex_state;
-    FT_Int               num_flex_vectors;
-    FT_Vector            flex_vectors[7];
-
-    PS_Blend             blend;       /* for multiple master support */
-
-    FT_Render_Mode       hint_mode;
-
-    T1_Decoder_Callback  parse_callback;
-    T1_Decoder_FuncsRec  funcs;
-
-  } T1_DecoderRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                     TYPE1 CHARMAPS                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef const struct T1_CMap_ClassesRec_*  T1_CMap_Classes;
-
-  typedef struct T1_CMap_ClassesRec_
-  {
-    FT_CMap_Class  standard;
-    FT_CMap_Class  expert;
-    FT_CMap_Class  custom;
-    FT_CMap_Class  unicode;
-
-  } T1_CMap_ClassesRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        PSAux Module Interface                 *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct  PSAux_ServiceRec_
-  {
-    /* don't use `PS_Table_Funcs' and friends to avoid compiler warnings */
-    const PS_Table_FuncsRec*    ps_table_funcs;
-    const PS_Parser_FuncsRec*   ps_parser_funcs;
-    const T1_Builder_FuncsRec*  t1_builder_funcs;
-    const T1_Decoder_FuncsRec*  t1_decoder_funcs;
-
-    void
-    (*t1_decrypt)( FT_Byte*   buffer,
-                   FT_Offset  length,
-                   FT_UShort  seed );
-
-    T1_CMap_Classes  t1_cmap_classes;
-
-  } PSAux_ServiceRec, *PSAux_Service;
-
-  /* backwards-compatible type definition */
-  typedef PSAux_ServiceRec   PSAux_Interface;
-
-FT_END_HEADER
-
-#endif /* __PSAUX_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/pshints.h b/nx-X11/extras/freetype2/include/freetype/internal/pshints.h
deleted file mode 100644
index cd48f6cf3..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/pshints.h
+++ /dev/null
@@ -1,626 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshints.h                                                              */
-/*                                                                         */
-/*    Interface to Postscript-specific (Type 1 and Type 2) hints           */
-/*    recorders (specification only).  These are used to support native    */
-/*    T1/T2 hints in the "type1", "cid" and "cff" font drivers.            */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSHINTS_H__
-#define __PSHINTS_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****               INTERNAL REPRESENTATION OF GLOBALS              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct PSH_GlobalsRec_*  PSH_Globals;
-
-  typedef FT_Error
-  (*PSH_Globals_NewFunc)( FT_Memory     memory,
-                          T1_Private*   private_dict,
-                          PSH_Globals*  aglobals );
-
-  typedef FT_Error
-  (*PSH_Globals_SetScaleFunc)( PSH_Globals  globals,
-                               FT_Fixed     x_scale,
-                               FT_Fixed     y_scale,
-                               FT_Fixed     x_delta,
-                               FT_Fixed     y_delta );
-
-  typedef void
-  (*PSH_Globals_DestroyFunc)( PSH_Globals  globals );
-
-
-  typedef struct  PSH_Globals_FuncsRec_
-  {
-    PSH_Globals_NewFunc       create;
-    PSH_Globals_SetScaleFunc  set_scale;
-    PSH_Globals_DestroyFunc   destroy;
-
-  } PSH_Globals_FuncsRec, *PSH_Globals_Funcs;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  PUBLIC TYPE 1 HINTS RECORDER                 *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    T1_Hints                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    This is a handle to an opaque structure used to record glyph hints */
-  /*    from a Type 1 character glyph character string.                    */
-  /*                                                                       */
-  /*    The methods used to operate on this object are defined by the      */
-  /*    @T1_Hints_FuncsRec structure.  Recording glyph hints is normally   */
-  /*    achieved through the following scheme:                             */
-  /*                                                                       */
-  /*    - Open a new hint recording session by calling the "open" method.  */
-  /*      This will rewind the recorder and prepare it for new input.      */
-  /*                                                                       */
-  /*    - For each hint found in the glyph charstring, call the            */
-  /*      corresponding method ("stem", "stem3", or "reset").  Note that   */
-  /*      these functions do not return an error code.                     */
-  /*                                                                       */
-  /*    - Close the recording session by calling the "close" method.  It   */
-  /*      will return an error code if the hints were invalid or something */
-  /*      strange happened (e.g. memory shortage).                         */
-  /*                                                                       */
-  /*    The hints accumulated in the object can later be used by the       */
-  /*    PostScript hinter.                                                 */
-  /*                                                                       */
-  typedef struct T1_HintsRec_*  T1_Hints;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    T1_Hints_Funcs                                                     */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A pointer to the @T1_Hints_FuncsRec structure that defines the     */
-  /*    API of a given @T1_Hints object.                                   */
-  /*                                                                       */
-  typedef const struct T1_Hints_FuncsRec_*  T1_Hints_Funcs;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T1_Hints_OpenFunc                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T1_Hints class used to prepare it for a new       */
-  /*    Type 1 hints recording session.                                    */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints :: A handle to the Type 1 hints recorder.                    */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    You should always call the @T1_Hints_CloseFunc method in order to  */
-  /*    close an opened recording session.                                 */
-  /*                                                                       */
-  typedef void
-  (*T1_Hints_OpenFunc)( T1_Hints  hints );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T1_Hints_SetStemFunc                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T1_Hints class used to record a new horizontal or */
-  /*    vertical stem.  This corresponds to the Type 1 "hstem" and "vstem" */
-  /*    operators.                                                         */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 1 hints recorder.                */
-  /*                                                                       */
-  /*    dimension :: 0 for horizontal stems (hstem), 1 for vertical ones   */
-  /*                 (vstem).                                              */
-  /*                                                                       */
-  /*    coords    :: Array of 2 integers, used as (position,length) stem   */
-  /*                 descriptor.                                           */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    Use vertical coordinates (y) for horizontal stems (dim=0).  Use    */
-  /*    horizontal coordinates (x) for vertical stems (dim=1).             */
-  /*                                                                       */
-  /*    "coords[0]" is the absolute stem position (lowest coordinate);     */
-  /*    "coords[1]" is the length.                                         */
-  /*                                                                       */
-  /*    The length can be negative, in which case it must be either -20 or */
-  /*    -21.  It will be interpreted as a "ghost" stem, according to       */
-  /*    Type 1 specification.                                              */
-  /*                                                                       */
-  /*    If the length is -21 (corresponding to a bottom ghost stem), then  */
-  /*    the real stem position is "coords[0]+coords[1]".                   */
-  /*                                                                       */
-  typedef void
-  (*T1_Hints_SetStemFunc)( T1_Hints  hints,
-                           FT_UInt   dimension,
-                           FT_Long*  coords );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T1_Hints_SetStem3Func                                              */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T1_Hints class used to record three               */
-  /*    counter-controlled horizontal or vertical stems at once.           */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 1 hints recorder.                */
-  /*                                                                       */
-  /*    dimension :: 0 for horizontal stems, 1 for vertical ones.          */
-  /*                                                                       */
-  /*    coords    :: An array of 6 integers, holding 3 (position,length)   */
-  /*                 pairs for the counter-controlled stems.               */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    Use vertical coordinates (y) for horizontal stems (dim=0).  Use    */
-  /*    horizontal coordinates (x) for vertical stems (dim=1).             */
-  /*                                                                       */
-  /*    The lengths cannot be negative (ghost stems are never              */
-  /*    counter-controlled).                                               */
-  /*                                                                       */
-  typedef void
-  (*T1_Hints_SetStem3Func)( T1_Hints  hints,
-                            FT_UInt   dimension,
-                            FT_Long*  coords );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T1_Hints_ResetFunc                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T1_Hints class used to reset the stems hints in a */
-  /*    recording session.                                                 */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 1 hints recorder.                */
-  /*                                                                       */
-  /*    end_point :: The index of the last point in the input glyph in     */
-  /*                 which the previously defined hints apply.             */
-  /*                                                                       */
-  typedef void
-  (*T1_Hints_ResetFunc)( T1_Hints  hints,
-                         FT_UInt   end_point );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T1_Hints_CloseFunc                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T1_Hints class used to close a hint recording     */
-  /*    session.                                                           */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 1 hints recorder.                */
-  /*                                                                       */
-  /*    end_point :: The index of the last point in the input glyph.       */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    The error code will be set to indicate that an error occured       */
-  /*    during the recording session.                                      */
-  /*                                                                       */
-  typedef FT_Error
-  (*T1_Hints_CloseFunc)( T1_Hints  hints,
-                         FT_UInt   end_point );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T1_Hints_ApplyFunc                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T1_Hints class used to apply hints to the         */
-  /*    corresponding glyph outline.  Must be called once all hints have   */
-  /*    been recorded.                                                     */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*   hints     :: A handle to the Type 1 hints recorder.                 */
-  /*                                                                       */
-  /*   outline   :: A pointer to the target outline descriptor.            */
-  /*                                                                       */
-  /*   globals   :: The hinter globals for this font.                      */
-  /*                                                                       */
-  /*   hint_mode :: Hinting information.                                   */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*   FreeType error code.  0 means success.                              */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    On input, all points within the outline are in font coordinates.   */
-  /*    On output, they are in 1/64th of pixels.                           */
-  /*                                                                       */
-  /*    The scaling transformation is taken from the "globals" object      */
-  /*    which must correspond to the same font as the glyph.               */
-  /*                                                                       */
-  typedef FT_Error
-  (*T1_Hints_ApplyFunc)( T1_Hints        hints,
-                         FT_Outline*     outline,
-                         PSH_Globals     globals,
-                         FT_Render_Mode  hint_mode );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    T1_Hints_FuncsRec                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The structure used to provide the API to @T1_Hints objects.        */
-  /*                                                                       */
-  /* @fields:                                                              */
-  /*    hints :: A handle to the T1 Hints recorder.                        */
-  /*                                                                       */
-  /*    open  :: The function to open a recording session.                 */
-  /*                                                                       */
-  /*    close :: The function to close a recording session.                */
-  /*                                                                       */
-  /*    stem  :: The function to set a simple stem.                        */
-  /*                                                                       */
-  /*    stem3 :: The function to set counter-controlled stems.             */
-  /*                                                                       */
-  /*    reset :: The function to reset stem hints.                         */
-  /*                                                                       */
-  /*    apply :: The function to apply the hints to the corresponding      */
-  /*             glyph outline.                                            */
-  /*                                                                       */
-  typedef struct  T1_Hints_FuncsRec_
-  {
-    T1_Hints               hints;
-    T1_Hints_OpenFunc      open;
-    T1_Hints_CloseFunc     close;
-    T1_Hints_SetStemFunc   stem;
-    T1_Hints_SetStem3Func  stem3;
-    T1_Hints_ResetFunc     reset;
-    T1_Hints_ApplyFunc     apply;
-
-  } T1_Hints_FuncsRec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  PUBLIC TYPE 2 HINTS RECORDER                 *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    T2_Hints                                                           */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    This is a handle to an opaque structure used to record glyph hints */
-  /*    from a Type 2 character glyph character string.                    */
-  /*                                                                       */
-  /*    The methods used to operate on this object are defined by the      */
-  /*    @T2_Hints_FuncsRec structure.  Recording glyph hints is normally   */
-  /*    achieved through the following scheme:                             */
-  /*                                                                       */
-  /*    - Open a new hint recording session by calling the "open" method.  */
-  /*      This will rewind the recorder and prepare it for new input.      */
-  /*                                                                       */
-  /*    - For each hint found in the glyph charstring, call the            */
-  /*      corresponding method ("stems", "hintmask", "counters").  Note    */
-  /*      that these functions do not return an error code.                */
-  /*                                                                       */
-  /*    - Close the recording session by calling the "close" method.  It   */
-  /*      will return an error code if the hints were invalid or something */
-  /*      strange happened (e.g. memory shortage).                         */
-  /*                                                                       */
-  /*    The hints accumulated in the object can later be used by the       */
-  /*    Postscript hinter.                                                 */
-  /*                                                                       */
-  typedef struct T2_HintsRec_*  T2_Hints;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @type:                                                                */
-  /*    T2_Hints_Funcs                                                     */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A pointer to the @T2_Hints_FuncsRec structure that defines the API */
-  /*    of a given @T2_Hints object.                                       */
-  /*                                                                       */
-  typedef const struct T2_Hints_FuncsRec_*  T2_Hints_Funcs;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T2_Hints_OpenFunc                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T2_Hints class used to prepare it for a new       */
-  /*    Type 2 hints recording session.                                    */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints :: A handle to the Type 2 hints recorder.                    */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    You should always call the @T2_Hints_CloseFunc method in order to  */
-  /*    close an opened recording session.                                 */
-  /*                                                                       */
-  typedef void
-  (*T2_Hints_OpenFunc)( T2_Hints  hints );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T2_Hints_StemsFunc                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T2_Hints class used to set the table of stems in  */
-  /*    either the vertical or horizontal dimension.  Equivalent to the    */
-  /*    "hstem", "vstem", "hstemhm", and "vstemhm" Type 2 operators.       */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 2 hints recorder.                */
-  /*                                                                       */
-  /*    dimension :: 0 for horizontal stems (hstem), 1 for vertical ones   */
-  /*                 (vstem).                                              */
-  /*                                                                       */
-  /*    count     :: The number of stems.                                  */
-  /*                                                                       */
-  /*    coords    :: An array of "count" (position,length) pairs.          */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    Use vertical coordinates (y) for horizontal stems (dim=0).  Use    */
-  /*    horizontal coordinates (x) for vertical stems (dim=1).             */
-  /*                                                                       */
-  /*    There are "2*count" elements in the "coords" aray.  Each even      */
-  /*    element is an absolute position in font units, each odd element is */
-  /*    a length in font units.                                            */
-  /*                                                                       */
-  /*    A length can be negative, in which case it must be either -20 or   */
-  /*    -21.  It will be interpreted as a "ghost" stem, according to the   */
-  /*    Type 1 specification.                                              */
-  /*                                                                       */
-  typedef void
-  (*T2_Hints_StemsFunc)( T2_Hints   hints,
-                         FT_UInt    dimension,
-                         FT_UInt    count,
-                         FT_Fixed*  coordinates );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T2_Hints_MaskFunc                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T2_Hints class used to set a given hintmask       */
-  /*    (this corresponds to the "hintmask" Type 2 operator).              */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 2 hints recorder.                */
-  /*                                                                       */
-  /*    end_point :: The glyph index of the last point to which the        */
-  /*                 previously defined/activated hints apply.             */
-  /*                                                                       */
-  /*    bit_count :: The number of bits in the hint mask.                  */
-  /*                                                                       */
-  /*    bytes     :: An array of bytes modelling the hint mask.            */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    If the hintmask starts the charstring (before any glyph point      */
-  /*    definition), the value of "end_point" should be 0.                 */
-  /*                                                                       */
-  /*    "bit_count" is the number of meaningful bits in the "bytes" array; */
-  /*    it must be equal to the total number of hints defined so far       */
-  /*    (i.e. horizontal+verticals).                                       */
-  /*                                                                       */
-  /*    The "bytes" array can come directly from the Type 2 charstring and */
-  /*    respects the same format.                                          */
-  /*                                                                       */
-  typedef void
-  (*T2_Hints_MaskFunc)( T2_Hints        hints,
-                        FT_UInt         end_point,
-                        FT_UInt         bit_count,
-                        const FT_Byte*  bytes );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T2_Hints_CounterFunc                                               */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T2_Hints class used to set a given counter mask   */
-  /*    (this corresponds to the "hintmask" Type 2 operator).              */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 2 hints recorder.                */
-  /*                                                                       */
-  /*    end_point :: A glyph index of the last point to which the          */
-  /*                 previously defined/active hints apply.                */
-  /*                                                                       */
-  /*    bit_count :: The number of bits in the hint mask.                  */
-  /*                                                                       */
-  /*    bytes     :: An array of bytes modelling the hint mask.            */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    If the hintmask starts the charstring (before any glyph point      */
-  /*    definition), the value of "end_point" should be 0.                 */
-  /*                                                                       */
-  /*    "bit_count" is the number of meaningful bits in the "bytes" array; */
-  /*    it must be equal to the total number of hints defined so far       */
-  /*    (i.e. horizontal+verticals).                                       */
-  /*                                                                       */
-  /*    The "bytes" array can come directly from the Type 2 charstring and */
-  /*    respects the same format.                                          */
-  /*                                                                       */
-  typedef void
-  (*T2_Hints_CounterFunc)( T2_Hints        hints,
-                           FT_UInt         bit_count,
-                           const FT_Byte*  bytes );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T2_Hints_CloseFunc                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T2_Hints class used to close a hint recording     */
-  /*    session.                                                           */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 2 hints recorder.                */
-  /*                                                                       */
-  /*    end_point :: The index of the last point in the input glyph.       */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    The error code will be set to indicate that an error occured       */
-  /*    during the recording session.                                      */
-  /*                                                                       */
-  typedef FT_Error
-  (*T2_Hints_CloseFunc)( T2_Hints  hints,
-                         FT_UInt   end_point );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @functype:                                                            */
-  /*    T2_Hints_ApplyFunc                                                 */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    A method of the @T2_Hints class used to apply hints to the         */
-  /*    corresponding glyph outline.  Must be called after the "close"     */
-  /*    method.                                                            */
-  /*                                                                       */
-  /* @input:                                                               */
-  /*    hints     :: A handle to the Type 2 hints recorder.                */
-  /*                                                                       */
-  /*    outline   :: A pointer to the target outline descriptor.           */
-  /*                                                                       */
-  /*    globals   :: The hinter globals for this font.                     */
-  /*                                                                       */
-  /*    hint_mode :: Hinting information.                                  */
-  /*                                                                       */
-  /* @return:                                                              */
-  /*   FreeType error code.  0 means success.                              */
-  /*                                                                       */
-  /* @note:                                                                */
-  /*    On input, all points within the outline are in font coordinates.   */
-  /*    On output, they are in 1/64th of pixels.                           */
-  /*                                                                       */
-  /*    The scaling transformation is taken from the "globals" object      */
-  /*    which must correspond to the same font than the glyph.             */
-  /*                                                                       */
-  typedef FT_Error
-  (*T2_Hints_ApplyFunc)( T2_Hints        hints,
-                         FT_Outline*     outline,
-                         PSH_Globals     globals,
-                         FT_Render_Mode  hint_mode );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @struct:                                                              */
-  /*    T2_Hints_FuncsRec                                                  */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The structure used to provide the API to @T2_Hints objects.        */
-  /*                                                                       */
-  /* @fields:                                                              */
-  /*    hints    :: A handle to the T2 hints recorder object.              */
-  /*                                                                       */
-  /*    open     :: The function to open a recording session.              */
-  /*                                                                       */
-  /*    close    :: The function to close a recording session.             */
-  /*                                                                       */
-  /*    stems    :: The function to set the dimension's stems table.       */
-  /*                                                                       */
-  /*    hintmask :: The function to set hint masks.                        */
-  /*                                                                       */
-  /*    counter  :: The function to set counter masks.                     */
-  /*                                                                       */
-  /*    apply    :: The function to apply the hints on the corresponding   */
-  /*                glyph outline.                                         */
-  /*                                                                       */
-  typedef struct  T2_Hints_FuncsRec_
-  {
-    T2_Hints              hints;
-    T2_Hints_OpenFunc     open;
-    T2_Hints_CloseFunc    close;
-    T2_Hints_StemsFunc    stems;
-    T2_Hints_MaskFunc     hintmask;
-    T2_Hints_CounterFunc  counter;
-    T2_Hints_ApplyFunc    apply;
-
-  } T2_Hints_FuncsRec;
-
-
-  /* */
-
-
-  typedef struct  PSHinter_Interface_
-  {
-    PSH_Globals_Funcs  (*get_globals_funcs)( FT_Module  module );
-    T1_Hints_Funcs     (*get_t1_funcs)     ( FT_Module  module );
-    T2_Hints_Funcs     (*get_t2_funcs)     ( FT_Module  module );
-
-  } PSHinter_Interface;
-
-  typedef PSHinter_Interface*  PSHinter_Service;
-
-
-FT_END_HEADER
-
-#endif /* __PSHINTS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svbdf.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svbdf.h
deleted file mode 100644
index 0f7fc6115..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svbdf.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svbdf.h                                                                */
-/*                                                                         */
-/*    The FreeType BDF services (specification).                           */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVBDF_H__
-#define __SVBDF_H__
-
-#include FT_BDF_H
-#include FT_INTERNAL_SERVICE_H
-
-
-FT_BEGIN_HEADER
-
-
-#define FT_SERVICE_ID_BDF  "bdf"
-
-  typedef FT_Error
-  (*FT_BDF_GetCharsetIdFunc)( FT_Face       face,
-                              const char*  *acharset_encoding,
-                              const char*  *acharset_registry );
-
-  typedef FT_Error
-  (*FT_BDF_GetPropertyFunc)( FT_Face           face,
-                             const char*       prop_name,
-                             BDF_PropertyRec  *aproperty );
-
-
-  FT_DEFINE_SERVICE( BDF )
-  {
-    FT_BDF_GetCharsetIdFunc  get_charset_id;
-    FT_BDF_GetPropertyFunc   get_property;
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __SVBDF_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svgldict.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svgldict.h
deleted file mode 100644
index e5e56b253..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svgldict.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svgldict.h                                                             */
-/*                                                                         */
-/*    The FreeType glyph dictionary services (specification).              */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVGLDICT_H__
-#define __SVGLDICT_H__
-
-#include FT_INTERNAL_SERVICE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*
-   *  A service used to retrieve glyph names, as well as to find the
-   *  index of a given glyph name in a font.
-   *
-   */
-
-#define FT_SERVICE_ID_GLYPH_DICT  "glyph-dict"
-
-
-  typedef FT_Error
-  (*FT_GlyphDict_GetNameFunc)( FT_Face     face,
-                               FT_UInt     glyph_index,
-                               FT_Pointer  buffer,
-                               FT_UInt     buffer_max );
-
-  typedef FT_UInt
-  (*FT_GlyphDict_NameIndexFunc)( FT_Face     face,
-                                 FT_String*  glyph_name );
-
-
-  FT_DEFINE_SERVICE( GlyphDict )
-  {
-    FT_GlyphDict_GetNameFunc    get_name;
-    FT_GlyphDict_NameIndexFunc  name_index;  /* optional */
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __SVGLDICT_H__ */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svmm.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svmm.h
deleted file mode 100644
index 8a99ec4b1..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svmm.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svmm.h                                                                 */
-/*                                                                         */
-/*    The FreeType Multiple Masters and GX var services (specification).   */
-/*                                                                         */
-/*  Copyright 2003, 2004 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVMM_H__
-#define __SVMM_H__
-
-#include FT_INTERNAL_SERVICE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*
-   *  A service used to manage multiple-masters data in a given face.
-   *
-   *  See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
-   *
-   */
-
-#define FT_SERVICE_ID_MULTI_MASTERS  "multi-masters"
-
-
-  typedef FT_Error
-  (*FT_Get_MM_Func)( FT_Face           face,
-                     FT_Multi_Master*  master );
-
-  typedef FT_Error
-  (*FT_Get_MM_Var_Func)( FT_Face      face,
-                         FT_MM_Var*  *master );
-
-  typedef FT_Error
-  (*FT_Set_MM_Design_Func)( FT_Face   face,
-                            FT_UInt   num_coords,
-                            FT_Long*  coords );
-
-  typedef FT_Error
-  (*FT_Set_Var_Design_Func)( FT_Face    face,
-                             FT_UInt    num_coords,
-                             FT_Fixed*  coords );
-
-  typedef FT_Error
-  (*FT_Set_MM_Blend_Func)( FT_Face   face,
-                           FT_UInt   num_coords,
-                           FT_Long*  coords );
-
-
-  FT_DEFINE_SERVICE( MultiMasters )
-  {
-    FT_Get_MM_Func          get_mm;
-    FT_Set_MM_Design_Func   set_mm_design;
-    FT_Set_MM_Blend_Func    set_mm_blend;
-    FT_Get_MM_Var_Func      get_mm_var;
-    FT_Set_Var_Design_Func  set_var_design;
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __SVMM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svpfr.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svpfr.h
deleted file mode 100644
index b61050543..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svpfr.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svpfr.h                                                                */
-/*                                                                         */
-/*    Internal PFR service functions (specification).                      */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVPFR_H__
-#define __SVPFR_H__
-
-#include FT_INTERNAL_SERVICE_H
-
-
-FT_BEGIN_HEADER
-
-
-#define FT_SERVICE_ID_PFR_METRICS  "pfr-metrics"
-
-
-  typedef FT_Error
-  (*FT_PFR_GetMetricsFunc)( FT_Face    face,
-                            FT_UInt   *aoutline,
-                            FT_UInt   *ametrics,
-                            FT_Fixed  *ax_scale,
-                            FT_Fixed  *ay_scale );
-
-  typedef FT_Error
-  (*FT_PFR_GetKerningFunc)( FT_Face     face,
-                            FT_UInt     left,
-                            FT_UInt     right,
-                            FT_Vector  *avector );
-
-  typedef FT_Error
-  (*FT_PFR_GetAdvanceFunc)( FT_Face   face,
-                            FT_UInt   gindex,
-                            FT_Pos   *aadvance );
-
-
-  FT_DEFINE_SERVICE( PfrMetrics )
-  {
-    FT_PFR_GetMetricsFunc  get_metrics;
-    FT_PFR_GetKerningFunc  get_kerning;
-    FT_PFR_GetAdvanceFunc  get_advance;
-
-  };
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __SVPFR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svpostnm.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svpostnm.h
deleted file mode 100644
index 7f1700adb..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svpostnm.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svpostnm.h                                                             */
-/*                                                                         */
-/*    The FreeType PostScript name services (specification).               */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVPOSTNM_H__
-#define __SVPOSTNM_H__
-
-#include FT_INTERNAL_SERVICE_H
-
-
-FT_BEGIN_HEADER
-
-  /*
-   *  A trivial service used to retrieve the PostScript name of a given
-   *  font when available.  The `get_name' field should never be NULL.
-   *
-   *  The correponding function can return NULL to indicate that the
-   *  PostScript name is not available.
-   *
-   *  The name is owned by the face and will be destroyed with it.
-   */
-
-#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME  "postscript-font-name"
-
-
-  typedef const char*
-  (*FT_PsName_GetFunc)( FT_Face  face );
-
-
-  FT_DEFINE_SERVICE( PsFontName )
-  {
-    FT_PsName_GetFunc  get_ps_font_name;
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __SVPOSTNM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svpscmap.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svpscmap.h
deleted file mode 100644
index ade96ef8f..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svpscmap.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svpscmap.h                                                             */
-/*                                                                         */
-/*    The FreeType PostScript charmap service (specification).             */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVPSCMAP_H__
-#define __SVPSCMAP_H__
-
-
-FT_BEGIN_HEADER
-
-
-#define FT_SERVICE_ID_POSTSCRIPT_CMAPS  "postscript-cmaps"
-
-
-  /*
-   *  Adobe glyph name to unicode value
-   */
-  typedef FT_UInt32
-  (*PS_Unicode_ValueFunc)( const char*  glyph_name );
-
-  /*
-   *  Unicode value to Adobe glyph name index.  0xFFFF if not found.
-   */
-  typedef FT_UInt
-  (*PS_Unicode_Index_Func)( FT_UInt       num_glyphs,
-                            const char**  glyph_names,
-                            FT_ULong      unicode );
-
-  /*
-   *  Macintosh name id to glyph name.  NULL if invalid index.
-   */
-  typedef const char*
-  (*PS_Macintosh_Name_Func)( FT_UInt  name_index );
-
-  /*
-   *  Adobe standard string ID to glyph name.  NULL if invalid index.
-   */
-  typedef const char*
-  (*PS_Adobe_Std_Strings_Func)( FT_UInt  string_index );
-
-  /*
-   *  Simple unicode -> glyph index charmap built from font glyph names
-   *  table.
-   */
-  typedef struct  PS_UniMap_
-  {
-    FT_UInt  unicode;
-    FT_UInt  glyph_index;
-
-  } PS_UniMap;
-
-
-  typedef struct  PS_Unicodes_
-  {
-    FT_UInt     num_maps;
-    PS_UniMap*  maps;
-
-  } PS_Unicodes;
-
-
-  typedef FT_Error
-  (*PS_Unicodes_InitFunc)( FT_Memory     memory,
-                           FT_UInt       num_glyphs,
-                           const char**  glyph_names,
-                           PS_Unicodes*  unicodes );
-
-  typedef FT_UInt
-  (*PS_Unicodes_CharIndexFunc)( PS_Unicodes*  unicodes,
-                                FT_UInt       unicode );
-
-  typedef FT_ULong
-  (*PS_Unicodes_CharNextFunc)( PS_Unicodes*  unicodes,
-                               FT_ULong      unicode );
-
-
-  FT_DEFINE_SERVICE( PsCMaps )
-  {
-    PS_Unicode_ValueFunc       unicode_value;
-
-    PS_Unicodes_InitFunc       unicodes_init;
-    PS_Unicodes_CharIndexFunc  unicodes_char_index;
-    PS_Unicodes_CharNextFunc   unicodes_char_next;
-
-    PS_Macintosh_Name_Func     macintosh_name;
-    PS_Adobe_Std_Strings_Func  adobe_std_strings;
-    const unsigned short*      adobe_std_encoding;
-    const unsigned short*      adobe_expert_encoding;
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __SVPSCMAP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svpsinfo.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svpsinfo.h
deleted file mode 100644
index 73c02cdb7..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svpsinfo.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svpsinfo.h                                                             */
-/*                                                                         */
-/*    The FreeType PostScript info service (specification).                */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVPSINFO_H__
-#define __SVPSINFO_H__
-
-#include FT_INTERNAL_SERVICE_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-#define FT_SERVICE_ID_POSTSCRIPT_INFO  "postscript-info"
-
-
-  typedef FT_Error
-  (*PS_GetFontInfoFunc)( FT_Face          face,
-                         PS_FontInfoRec*  afont_info );
-
-  typedef FT_Int
-  (*PS_HasGlyphNamesFunc)( FT_Face   face );
-
-
-  FT_DEFINE_SERVICE( PsInfo )
-  {
-    PS_GetFontInfoFunc    ps_get_font_info;
-    PS_HasGlyphNamesFunc  ps_has_glyph_names;
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __SVPSINFO_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svsfnt.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svsfnt.h
deleted file mode 100644
index 06a5b1c23..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svsfnt.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svsfnt.h                                                               */
-/*                                                                         */
-/*    The FreeType PostScript name services (specification).               */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVSFNT_H__
-#define __SVSFNT_H__
-
-#include FT_INTERNAL_SERVICE_H
-#include FT_TRUETYPE_TABLES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*
-   *  SFNT table loading service.
-   */
-
-#define FT_SERVICE_ID_SFNT_TABLE  "sfnt-table"
-
-
-  /*
-   * Used to implement FT_Load_Sfnt_Table().
-   */
-  typedef FT_Error
-  (*FT_SFNT_TableLoadFunc)( FT_Face    face,
-                            FT_ULong   tag,
-                            FT_Long    offset,
-                            FT_Byte*   buffer,
-                            FT_ULong*  length );
-
-  /*
-   * Used to implement FT_Get_Sfnt_Table().
-   */
-  typedef void*
-  (*FT_SFNT_TableGetFunc)( FT_Face      face,
-                           FT_Sfnt_Tag  tag );
-
- 
-  FT_DEFINE_SERVICE( SFNT_Table )
-  {
-    FT_SFNT_TableLoadFunc  load_table;
-    FT_SFNT_TableGetFunc   get_table;
-  };
-
-  /* */
-
- 
-FT_END_HEADER
-
-
-#endif /* __SVSFNT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svttcmap.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svttcmap.h
deleted file mode 100644
index f92fcd0e2..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svttcmap.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svsttcmap.h                                                            */
-/*                                                                         */
-/*    The FreeType TrueType/sfnt cmap extra information service.           */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  Masatake YAMATO, Redhat K.K.                                           */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-/* Development of this service is support of 
-   Information-technology Promotion Agency, Japan. */
-
-#ifndef __SVTTCMAP_H__
-#define __SVTTCMAP_H__ 
-
-#include FT_INTERNAL_SERVICE_H
-#include FT_TRUETYPE_TABLES_H
-
-
-FT_BEGIN_HEADER
-
-
-#define FT_SERVICE_ID_TT_CMAP "tt-cmaps"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_CMapInfo                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to store TrueType/sfnt specific cmap information  */
-  /*    which is not covered by the generic @FT_CharMap structure.  This   */
-  /*    structure can be accessed with the @FT_Get_TT_CMap_Info function.  */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    language ::                                                        */
-  /*      The language ID used in Mac fonts.  Definitions of values are in */
-  /*      freetype/ttnameid.h.                                             */
-  /*                                                                       */
-  typedef struct  TT_CMapInfo_
-  {
-    FT_ULong language;
-
-  } TT_CMapInfo;
-
-
-  typedef FT_Error
-  (*TT_CMap_Info_GetFunc)( FT_CharMap    charmap,
-                           TT_CMapInfo  *cmap_info );
-
-
-  FT_DEFINE_SERVICE( TTCMaps )
-  {
-    TT_CMap_Info_GetFunc  get_cmap_info;
-  }; 
-  
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __SVTTCMAP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svwinfnt.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svwinfnt.h
deleted file mode 100644
index 57f7765d9..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svwinfnt.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svwinfnt.h                                                             */
-/*                                                                         */
-/*    The FreeType Windows FNT/FONT service (specification).               */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVWINFNT_H__
-#define __SVWINFNT_H__
-
-#include FT_INTERNAL_SERVICE_H
-#include FT_WINFONTS_H
-
-
-FT_BEGIN_HEADER
-
-
-#define FT_SERVICE_ID_WINFNT  "winfonts"
-
-  typedef FT_Error
-  (*FT_WinFnt_GetHeaderFunc)( FT_Face               face,
-                              FT_WinFNT_HeaderRec  *aheader );
-
-
-  FT_DEFINE_SERVICE( WinFnt )
-  {
-    FT_WinFnt_GetHeaderFunc  get_header;
-  };
-
-  /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __SVWINFNT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/services/svxf86nm.h b/nx-X11/extras/freetype2/include/freetype/internal/services/svxf86nm.h
deleted file mode 100644
index 3a33abcd8..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/services/svxf86nm.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  svxf86nm.h                                                             */
-/*                                                                         */
-/*    The FreeType XFree86 services (specification only).                  */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SVXF86NM_H__
-#define __SVXF86NM_H__
-
-#include FT_INTERNAL_SERVICE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*
-   *  A trivial service used to return the name of a face's font driver,
-   *  according to the XFree86 nomenclature.  Note that the service data
-   *  is a simple constant string pointer.
-   */
-
-#define FT_SERVICE_ID_XF86_NAME  "xf86-driver-name"
-
-#define FT_XF86_FORMAT_TRUETYPE  "TrueType"
-#define FT_XF86_FORMAT_TYPE_1    "Type 1"
-#define FT_XF86_FORMAT_BDF       "BDF"
-#define FT_XF86_FORMAT_PCF       "PCF"
-#define FT_XF86_FORMAT_TYPE_42   "Type 42"
-#define FT_XF86_FORMAT_CID       "CID Type 1"
-#define FT_XF86_FORMAT_CFF       "CFF"
-#define FT_XF86_FORMAT_PFR       "PFR"
-#define FT_XF86_FORMAT_WINFNT    "Windows FNT"
-
-  /* */
-
- 
-FT_END_HEADER
-
-
-#endif /* __SVXF86NM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/sfnt.h b/nx-X11/extras/freetype2/include/freetype/internal/sfnt.h
deleted file mode 100644
index 9a23b1f82..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/sfnt.h
+++ /dev/null
@@ -1,553 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfnt.h                                                                 */
-/*                                                                         */
-/*    High-level `sfnt' driver interface (specification).                  */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SFNT_H__
-#define __SFNT_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Init_Face_Func                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    First part of the SFNT face object initialization.  This will find */
-  /*    the face in a SFNT file or collection, and load its format tag in  */
-  /*    face->format_tag.                                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream     :: The input stream.                                    */
-  /*                                                                       */
-  /*    face       :: A handle to the target face object.                  */
-  /*                                                                       */
-  /*    face_index :: The index of the TrueType font, if we are opening a  */
-  /*                  collection.                                          */
-  /*                                                                       */
-  /*    num_params :: The number of additional parameters.                 */
-  /*                                                                       */
-  /*    params     :: Optional additional parameters.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be at the font file's origin.               */
-  /*                                                                       */
-  /*    This function recognizes fonts embedded in a `TrueType             */
-  /*    collection'.                                                       */
-  /*                                                                       */
-  /*    Once the format tag has been validated by the font driver, it      */
-  /*    should then call the TT_Load_Face_Func() callback to read the rest */
-  /*    of the SFNT tables in the object.                                  */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Init_Face_Func)( FT_Stream      stream,
-                        TT_Face        face,
-                        FT_Int         face_index,
-                        FT_Int         num_params,
-                        FT_Parameter*  params );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_Face_Func                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Second part of the SFNT face object initialization.  This will     */
-  /*    load the common SFNT tables (head, OS/2, maxp, metrics, etc.) in   */
-  /*    the face object.                                                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream     :: The input stream.                                    */
-  /*                                                                       */
-  /*    face       :: A handle to the target face object.                  */
-  /*                                                                       */
-  /*    face_index :: The index of the TrueType font, if we are opening a  */
-  /*                  collection.                                          */
-  /*                                                                       */
-  /*    num_params :: The number of additional parameters.                 */
-  /*                                                                       */
-  /*    params     :: Optional additional parameters.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function must be called after TT_Init_Face_Func().            */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_Face_Func)( FT_Stream      stream,
-                        TT_Face        face,
-                        FT_Int         face_index,
-                        FT_Int         num_params,
-                        FT_Parameter*  params );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Done_Face_Func                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A callback used to delete the common SFNT data from a face.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the target face object.                        */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function does NOT destroy the face object.                    */
-  /*                                                                       */
-  typedef void
-  (*TT_Done_Face_Func)( TT_Face  face );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_SFNT_HeaderRec_Func                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the header of a SFNT font file.  Supports collections.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face       :: A handle to the target face object.                  */
-  /*                                                                       */
-  /*    stream     :: The input stream.                                    */
-  /*                                                                       */
-  /*    face_index :: The index of the TrueType font, if we are opening a  */
-  /*                  collection.                                          */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    sfnt       :: The SFNT header.                                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be at the font file's origin.               */
-  /*                                                                       */
-  /*    This function recognizes fonts embedded in a `TrueType             */
-  /*    collection'.                                                       */
-  /*                                                                       */
-  /*    This function checks that the header is valid by looking at the    */
-  /*    values of `search_range', `entry_selector', and `range_shift'.     */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_SFNT_HeaderRec_Func)( TT_Face      face,
-                                  FT_Stream    stream,
-                                  FT_Long      face_index,
-                                  SFNT_Header  sfnt );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_Directory_Func                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the table directory into a face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face      :: A handle to the target face object.                   */
-  /*                                                                       */
-  /*    stream    :: The input stream.                                     */
-  /*                                                                       */
-  /*    sfnt      :: The SFNT header.                                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be on the first byte after the 4-byte font  */
-  /*    format tag.  This is the case just after a call to                 */
-  /*    TT_Load_Format_Tag().                                              */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_Directory_Func)( TT_Face      face,
-                             FT_Stream    stream,
-                             SFNT_Header  sfnt );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_Any_Func                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads any font table into client memory.                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: The face object to look for.                             */
-  /*                                                                       */
-  /*    tag    :: The tag of table to load.  Use the value 0 if you want   */
-  /*              to access the whole font file, else set this parameter   */
-  /*              to a valid TrueType table tag that you can forge with    */
-  /*              the MAKE_TT_TAG macro.                                   */
-  /*                                                                       */
-  /*    offset :: The starting offset in the table (or the file if         */
-  /*              tag == 0).                                               */
-  /*                                                                       */
-  /*    length :: The address of the decision variable:                    */
-  /*                                                                       */
-  /*                If length == NULL:                                     */
-  /*                  Loads the whole table.  Returns an error if          */
-  /*                  `offset' == 0!                                       */
-  /*                                                                       */
-  /*                If *length == 0:                                       */
-  /*                  Exits immediately; returning the length of the given */
-  /*                  table or of the font file, depending on the value of */
-  /*                  `tag'.                                               */
-  /*                                                                       */
-  /*                If *length != 0:                                       */
-  /*                  Loads the next `length' bytes of table or font,      */
-  /*                  starting at offset `offset' (in table or font too).  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    buffer :: The address of target buffer.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    TrueType error code.  0 means success.                             */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_Any_Func)( TT_Face    face,
-                       FT_ULong   tag,
-                       FT_Long    offset,
-                       FT_Byte   *buffer,
-                       FT_ULong*  length );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Find_SBit_Image_Func                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Checks whether an embedded bitmap (an `sbit') exists for a given   */
-  /*    glyph, at a given strike.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face          :: The target face object.                           */
-  /*                                                                       */
-  /*    glyph_index   :: The glyph index.                                  */
-  /*                                                                       */
-  /*    strike_index  :: The current strike index.                         */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    arange        :: The SBit range containing the glyph index.        */
-  /*                                                                       */
-  /*    astrike       :: The SBit strike containing the glyph index.       */
-  /*                                                                       */
-  /*    aglyph_offset :: The offset of the glyph data in `EBDT' table.     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.  Returns                    */
-  /*    SFNT_Err_Invalid_Argument if no sbit exists for the requested      */
-  /*    glyph.                                                             */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Find_SBit_Image_Func)( TT_Face          face,
-                              FT_UInt          glyph_index,
-                              FT_ULong         strike_index,
-                              TT_SBit_Range   *arange,
-                              TT_SBit_Strike  *astrike,
-                              FT_ULong        *aglyph_offset );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_SBit_Metrics_Func                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Gets the big metrics for a given embedded bitmap.                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream      :: The input stream.                                   */
-  /*                                                                       */
-  /*    range       :: The SBit range containing the glyph.                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    big_metrics :: A big SBit metrics structure for the glyph.         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be positioned at the glyph's offset within  */
-  /*    the `EBDT' table before the call.                                  */
-  /*                                                                       */
-  /*    If the image format uses variable metrics, the stream cursor is    */
-  /*    positioned just after the metrics header in the `EBDT' table on    */
-  /*    function exit.                                                     */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_SBit_Metrics_Func)( FT_Stream        stream,
-                                TT_SBit_Range    range,
-                                TT_SBit_Metrics  metrics );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_SBit_Image_Func                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads a given glyph sbit image from the font resource.  This also  */
-  /*    returns its metrics.                                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face ::                                                            */
-  /*      The target face object.                                          */
-  /*                                                                       */
-  /*    strike_index ::                                                    */
-  /*      The strike index.                                                */
-  /*                                                                       */
-  /*    glyph_index ::                                                     */
-  /*      The current glyph index.                                         */
-  /*                                                                       */
-  /*    load_flags ::                                                      */
-  /*      The current load flags.                                          */
-  /*                                                                       */
-  /*    stream ::                                                          */
-  /*      The input stream.                                                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    amap ::                                                            */
-  /*      The target pixmap.                                               */
-  /*                                                                       */
-  /*    ametrics ::                                                        */
-  /*      A big sbit metrics structure for the glyph image.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.  Returns an error if no     */
-  /*    glyph sbit exists for the index.                                   */
-  /*                                                                       */
-  /*  <Note>                                                               */
-  /*    The `map.buffer' field is always freed before the glyph is loaded. */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_SBit_Image_Func)( TT_Face              face,
-                              FT_ULong             strike_index,
-                              FT_UInt              glyph_index,
-                              FT_UInt              load_flags,
-                              FT_Stream            stream,
-                              FT_Bitmap           *amap,
-                              TT_SBit_MetricsRec  *ametrics );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Set_SBit_Strike_Func                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Selects an sbit strike for given horizontal and vertical ppem      */
-  /*    values.                                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face          :: The target face object.                           */
-  /*                                                                       */
-  /*    x_ppem        :: The horizontal resolution in points per EM.       */
-  /*                                                                       */
-  /*    y_ppem        :: The vertical resolution in points per EM.         */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    astrike_index :: The index of the sbit strike.                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.  Returns an error if no     */
-  /*    sbit strike exists for the selected ppem values.                   */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Set_SBit_Strike_Func)( TT_Face    face,
-                              FT_UInt    x_ppem,
-                              FT_UInt    y_ppem,
-                              FT_ULong  *astrike_index );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Get_PS_Name_Func                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Gets the PostScript glyph name of a glyph.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    idx  :: The glyph index.                                           */
-  /*                                                                       */
-  /*    PSname :: The address of a string pointer.  Will be NULL in case   */
-  /*              of error, otherwise it is a pointer to the glyph name.   */
-  /*                                                                       */
-  /*              You must not modify the returned string!                 */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Get_PS_Name_Func)( TT_Face      face,
-                          FT_UInt      idx,
-                          FT_String**  PSname );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_Metrics_Func                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the horizontal or vertical header in a face object.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face     :: A handle to the target face object.                    */
-  /*                                                                       */
-  /*    stream   :: The input stream.                                      */
-  /*                                                                       */
-  /*    vertical :: A boolean flag.  If set, load vertical metrics.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_Metrics_Func)( TT_Face    face,
-                           FT_Stream  stream,
-                           FT_Bool    vertical );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Load_Table_Func                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads a given TrueType table.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The function will use `face->goto_table' to seek the stream to     */
-  /*    the start of the table.                                            */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Load_Table_Func)( TT_Face    face,
-                         FT_Stream  stream );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Free_Table_Func                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Frees a given TrueType table.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the target face object.                        */
-  /*                                                                       */
-  typedef void
-  (*TT_Free_Table_Func)( TT_Face  face );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    SFNT_Interface                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This structure holds pointers to the functions used to load and    */
-  /*    free the basic tables that are required in a `sfnt' font file.     */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    Check the various xxx_Func() descriptions for details.             */
-  /*                                                                       */
-  typedef struct  SFNT_Interface_
-  {
-    TT_Loader_GotoTableFunc      goto_table;
-
-    TT_Init_Face_Func            init_face;
-    TT_Load_Face_Func            load_face;
-    TT_Done_Face_Func            done_face;
-    FT_Module_Requester          get_interface;
-
-    TT_Load_Any_Func             load_any;
-    TT_Load_SFNT_HeaderRec_Func  load_sfnt_header;
-    TT_Load_Directory_Func       load_directory;
-
-    /* these functions are called by `load_face' but they can also  */
-    /* be called from external modules, if there is a need to do so */
-    TT_Load_Table_Func           load_header;
-    TT_Load_Metrics_Func         load_metrics;
-    TT_Load_Table_Func           load_charmaps;
-    TT_Load_Table_Func           load_max_profile;
-    TT_Load_Table_Func           load_os2;
-    TT_Load_Table_Func           load_psnames;
-
-    TT_Load_Table_Func           load_names;
-    TT_Free_Table_Func           free_names;
-
-    /* optional tables */
-    TT_Load_Table_Func           load_hdmx;
-    TT_Free_Table_Func           free_hdmx;
-
-    TT_Load_Table_Func           load_kerning;
-    TT_Load_Table_Func           load_gasp;
-    TT_Load_Table_Func           load_pclt;
-
-    /* see `ttload.h' */
-    TT_Load_Table_Func           load_bitmap_header;
-
-    /* see `ttsbit.h' */
-    TT_Set_SBit_Strike_Func      set_sbit_strike;
-    TT_Load_Table_Func           load_sbits;
-    TT_Find_SBit_Image_Func      find_sbit_image;
-    TT_Load_SBit_Metrics_Func    load_sbit_metrics;
-    TT_Load_SBit_Image_Func      load_sbit_image;
-    TT_Free_Table_Func           free_sbits;
-
-    /* see `ttpost.h' */
-    TT_Get_PS_Name_Func          get_psname;
-    TT_Free_Table_Func           free_psnames;
-
-  } SFNT_Interface;
-
-
-  /* transitional */
-  typedef SFNT_Interface*   SFNT_Service;
-
-
-FT_END_HEADER
-
-#endif /* __SFNT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/t1types.h b/nx-X11/extras/freetype2/include/freetype/internal/t1types.h
deleted file mode 100644
index 702bb1e4c..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/t1types.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1types.h                                                              */
-/*                                                                         */
-/*    Basic Type1/Type2 type definitions and interface (specification      */
-/*    only).                                                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1TYPES_H__
-#define __T1TYPES_H__
-
-
-#include <ft2build.h>
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-#include FT_INTERNAL_SERVICE_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***              REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS              ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    T1_EncodingRec                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure modeling a custom encoding.                            */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_chars  :: The number of character codes in the encoding.       */
-  /*                  Usually 256.                                         */
-  /*                                                                       */
-  /*    code_first :: The lowest valid character code in the encoding.     */
-  /*                                                                       */
-  /*    code_last  :: The highest valid character code in the encoding.    */
-  /*                                                                       */
-  /*    char_index :: An array of corresponding glyph indices.             */
-  /*                                                                       */
-  /*    char_name  :: An array of corresponding glyph names.               */
-  /*                                                                       */
-  typedef struct  T1_EncodingRecRec_
-  {
-    FT_Int       num_chars;
-    FT_Int       code_first;
-    FT_Int       code_last;
-
-    FT_UShort*   char_index;
-    FT_String**  char_name;
-
-  } T1_EncodingRec, *T1_Encoding;
-
-
-  typedef enum  T1_EncodingType_
-  {
-    T1_ENCODING_TYPE_NONE = 0,
-    T1_ENCODING_TYPE_ARRAY,
-    T1_ENCODING_TYPE_STANDARD,
-    T1_ENCODING_TYPE_ISOLATIN1,
-    T1_ENCODING_TYPE_EXPERT
-
-  } T1_EncodingType;
-
-
-  typedef struct  T1_FontRec_
-  {
-    PS_FontInfoRec   font_info;         /* font info dictionary */
-    PS_PrivateRec    private_dict;      /* private dictionary   */
-    FT_String*       font_name;         /* top-level dictionary */
-
-    T1_EncodingType  encoding_type;
-    T1_EncodingRec   encoding;
-
-    FT_Byte*         subrs_block;
-    FT_Byte*         charstrings_block;
-    FT_Byte*         glyph_names_block;
-
-    FT_Int           num_subrs;
-    FT_Byte**        subrs;
-    FT_PtrDist*      subrs_len;
-
-    FT_Int           num_glyphs;
-    FT_String**      glyph_names;       /* array of glyph names       */
-    FT_Byte**        charstrings;       /* array of glyph charstrings */
-    FT_PtrDist*      charstrings_len;
-
-    FT_Byte          paint_type;
-    FT_Byte          font_type;
-    FT_Matrix        font_matrix;
-    FT_Vector        font_offset;
-    FT_BBox          font_bbox;
-    FT_Long          font_id;
-
-    FT_Fixed         stroke_width;
-
-  } T1_FontRec, *T1_Font;
-
-
-  typedef struct  CID_SubrsRec_
-  {
-    FT_UInt    num_subrs;
-    FT_Byte**  code;
-
-  } CID_SubrsRec, *CID_Subrs;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***                ORIGINAL T1_FACE CLASS DEFINITION                  ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  typedef struct T1_FaceRec_*   T1_Face;
-  typedef struct CID_FaceRec_*  CID_Face;
-
-
-  typedef struct  T1_FaceRec_
-  {
-    FT_FaceRec     root;
-    T1_FontRec     type1;
-    const void*    psnames;
-    const void*    psaux;
-    const void*    afm_data;
-    FT_CharMapRec  charmaprecs[2];
-    FT_CharMap     charmaps[2];
-    PS_Unicodes    unicode_map;
-
-    /* support for Multiple Masters fonts */
-    PS_Blend       blend;
-
-    /* since FT 2.1 - interface to PostScript hinter */
-    const void*    pshinter;
-
-  } T1_FaceRec;
-
-
-  typedef struct  CID_FaceRec_
-  {
-    FT_FaceRec       root;
-    void*            psnames;
-    void*            psaux;
-    CID_FaceInfoRec  cid;
-    void*            afm_data;
-    FT_Byte*         binary_data; /* used if hex data has been converted */
-    FT_Stream        cid_stream;
-    CID_Subrs        subrs;
-
-    /* since FT 2.1 - interface to PostScript hinter */
-    void*            pshinter;
-
-  } CID_FaceRec;
-
-
-FT_END_HEADER
-
-#endif /* __T1TYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/internal/tttypes.h b/nx-X11/extras/freetype2/include/freetype/internal/tttypes.h
deleted file mode 100644
index 4a3aab1aa..000000000
--- a/nx-X11/extras/freetype2/include/freetype/internal/tttypes.h
+++ /dev/null
@@ -1,1413 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  tttypes.h                                                              */
-/*                                                                         */
-/*    Basic SFNT/TrueType type definitions and interface (specification    */
-/*    only).                                                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTTYPES_H__
-#define __TTTYPES_H__
-
-
-#include <ft2build.h>
-#include FT_TRUETYPE_TABLES_H
-#include FT_INTERNAL_OBJECTS_H
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include FT_MULTIPLE_MASTERS_H
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***             REQUIRED TRUETYPE/OPENTYPE TABLES DEFINITIONS         ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TTC_HeaderRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    TrueType collection header.  This table contains the offsets of    */
-  /*    the font headers of each distinct TrueType face in the file.       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    tag     :: Must be `ttc ' to indicate a TrueType collection.       */
-  /*                                                                       */
-  /*    version :: The version number.                                     */
-  /*                                                                       */
-  /*    count   :: The number of faces in the collection.  The             */
-  /*               specification says this should be an unsigned long, but */
-  /*               we use a signed long since we need the value -1 for     */
-  /*               specific purposes.                                      */
-  /*                                                                       */
-  /*    offsets :: The offsets of the font headers, one per face.          */
-  /*                                                                       */
-  typedef struct  TTC_HeaderRec_
-  {
-    FT_ULong   tag;
-    FT_Fixed   version;
-    FT_Long    count;
-    FT_ULong*  offsets;
-
-  } TTC_HeaderRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    SFNT_HeaderRec                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    SFNT file format header.                                           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    format_tag     :: The font format tag.                             */
-  /*                                                                       */
-  /*    num_tables     :: The number of tables in file.                    */
-  /*                                                                       */
-  /*    search_range   :: Must be `16 * (max power of 2 <= num_tables)'.   */
-  /*                                                                       */
-  /*    entry_selector :: Must be log2 of `search_range / 16'.             */
-  /*                                                                       */
-  /*    range_shift    :: Must be `num_tables * 16 - search_range'.        */
-  /*                                                                       */
-  typedef struct  SFNT_HeaderRec_
-  {
-    FT_ULong   format_tag;
-    FT_UShort  num_tables;
-    FT_UShort  search_range;
-    FT_UShort  entry_selector;
-    FT_UShort  range_shift;
-
-    FT_ULong   offset;  /* not in file */
-
-  } SFNT_HeaderRec, *SFNT_Header;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_TableRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This structure describes a given table of a TrueType font.         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    Tag      :: A four-bytes tag describing the table.                 */
-  /*                                                                       */
-  /*    CheckSum :: The table checksum.  This value can be ignored.        */
-  /*                                                                       */
-  /*    Offset   :: The offset of the table from the start of the TrueType */
-  /*                font in its resource.                                  */
-  /*                                                                       */
-  /*    Length   :: The table length (in bytes).                           */
-  /*                                                                       */
-  typedef struct  TT_TableRec_
-  {
-    FT_ULong  Tag;        /*        table type */
-    FT_ULong  CheckSum;   /*    table checksum */
-    FT_ULong  Offset;     /* table file offset */
-    FT_ULong  Length;     /*      table length */
-
-  } TT_TableRec, *TT_Table;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_LongMetricsRec                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure modeling the long metrics of the `hmtx' and `vmtx'     */
-  /*    TrueType tables.  The values are expressed in font units.          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    advance :: The advance width or height for the glyph.              */
-  /*                                                                       */
-  /*    bearing :: The left-side or top-side bearing for the glyph.        */
-  /*                                                                       */
-  typedef struct  TT_LongMetricsRec_
-  {
-    FT_UShort  advance;
-    FT_Short   bearing;
-
-  } TT_LongMetricsRec, *TT_LongMetrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    TT_ShortMetrics                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple type to model the short metrics of the `hmtx' and `vmtx'  */
-  /*    tables.                                                            */
-  /*                                                                       */
-  typedef FT_Short  TT_ShortMetrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_NameEntryRec                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure modeling TrueType name records.  Name records are used */
-  /*    to store important strings like family name, style name,           */
-  /*    copyright, etc. in _localized_ versions (i.e., language, encoding, */
-  /*    etc).                                                              */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    platformID   :: The ID of the name's encoding platform.            */
-  /*                                                                       */
-  /*    encodingID   :: The platform-specific ID for the name's encoding.  */
-  /*                                                                       */
-  /*    languageID   :: The platform-specific ID for the name's language.  */
-  /*                                                                       */
-  /*    nameID       :: The ID specifying what kind of name this is.       */
-  /*                                                                       */
-  /*    stringLength :: The length of the string in bytes.                 */
-  /*                                                                       */
-  /*    stringOffset :: The offset to the string in the `name' table.      */
-  /*                                                                       */
-  /*    string       :: A pointer to the string's bytes.  Note that these  */
-  /*                    are usually UTF-16 encoded characters.             */
-  /*                                                                       */
-  typedef struct  TT_NameEntryRec_
-  {
-    FT_UShort  platformID;
-    FT_UShort  encodingID;
-    FT_UShort  languageID;
-    FT_UShort  nameID;
-    FT_UShort  stringLength;
-    FT_ULong   stringOffset;
-
-    /* this last field is not defined in the spec */
-    /* but used by the FreeType engine            */
-
-    FT_Byte*   string;
-
-  } TT_NameEntryRec, *TT_NameEntry;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_NameTableRec                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure modeling the TrueType name table.                      */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    format         :: The format of the name table.                    */
-  /*                                                                       */
-  /*    numNameRecords :: The number of names in table.                    */
-  /*                                                                       */
-  /*    storageOffset  :: The offset of the name table in the `name'       */
-  /*                      TrueType table.                                  */
-  /*                                                                       */
-  /*    names          :: An array of name records.                        */
-  /*                                                                       */
-  /*    stream         :: the file's input stream.                         */
-  /*                                                                       */
-  typedef struct  TT_NameTableRec_
-  {
-    FT_UShort         format;
-    FT_UInt           numNameRecords;
-    FT_UInt           storageOffset;
-    TT_NameEntryRec*  names;
-    FT_Stream         stream;
-
-  } TT_NameTableRec, *TT_NameTable;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***             OPTIONAL TRUETYPE/OPENTYPE TABLES DEFINITIONS         ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_GaspRangeRec                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A tiny structure used to model a gasp range according to the       */
-  /*    TrueType specification.                                            */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    maxPPEM  :: The maximum ppem value to which `gaspFlag' applies.    */
-  /*                                                                       */
-  /*    gaspFlag :: A flag describing the grid-fitting and anti-aliasing   */
-  /*                modes to be used.                                      */
-  /*                                                                       */
-  typedef struct  TT_GaspRangeRec_
-  {
-    FT_UShort  maxPPEM;
-    FT_UShort  gaspFlag;
-
-  } TT_GaspRangeRec, *TT_GaspRange;
-
-
-#define TT_GASP_GRIDFIT  0x01
-#define TT_GASP_DOGRAY   0x02
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_GaspRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure modeling the TrueType `gasp' table used to specify     */
-  /*    grid-fitting and anti-aliasing behaviour.                          */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    version    :: The version number.                                  */
-  /*                                                                       */
-  /*    numRanges  :: The number of gasp ranges in table.                  */
-  /*                                                                       */
-  /*    gaspRanges :: An array of gasp ranges.                             */
-  /*                                                                       */
-  typedef struct  TT_Gasp_
-  {
-    FT_UShort     version;
-    FT_UShort     numRanges;
-    TT_GaspRange  gaspRanges;
-
-  } TT_GaspRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_HdmxEntryRec                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A small structure used to model the pre-computed widths of a given */
-  /*    size.  They are found in the `hdmx' table.                         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    ppem      :: The pixels per EM value at which these metrics apply. */
-  /*                                                                       */
-  /*    max_width :: The maximum advance width for this metric.            */
-  /*                                                                       */
-  /*    widths    :: An array of widths.  Note: These are 8-bit bytes.     */
-  /*                                                                       */
-  typedef struct  TT_HdmxEntryRec_
-  {
-    FT_Byte   ppem;
-    FT_Byte   max_width;
-    FT_Byte*  widths;
-
-  } TT_HdmxEntryRec, *TT_HdmxEntry;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_HdmxRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model the `hdmx' table, which contains         */
-  /*    pre-computed widths for a set of given sizes/dimensions.           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    version     :: The version number.                                 */
-  /*                                                                       */
-  /*    num_records :: The number of hdmx records.                         */
-  /*                                                                       */
-  /*    records     :: An array of hdmx records.                           */
-  /*                                                                       */
-  typedef struct  TT_HdmxRec_
-  {
-    FT_UShort     version;
-    FT_Short      num_records;
-    TT_HdmxEntry  records;
-
-  } TT_HdmxRec, *TT_Hdmx;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Kern0_PairRec                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a kerning pair for the kerning table     */
-  /*    format 0.  The engine now loads this table if it finds one in the  */
-  /*    font file.                                                         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    left  :: The index of the left glyph in pair.                      */
-  /*                                                                       */
-  /*    right :: The index of the right glyph in pair.                     */
-  /*                                                                       */
-  /*    value :: The kerning distance.  A positive value spaces the        */
-  /*             glyphs, a negative one makes them closer.                 */
-  /*                                                                       */
-  typedef struct  TT_Kern0_PairRec_
-  {
-    FT_UShort  left;   /* index of left  glyph in pair */
-    FT_UShort  right;  /* index of right glyph in pair */
-    FT_FWord   value;  /* kerning value                */
-
-  } TT_Kern0_PairRec, *TT_Kern0_Pair;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***                    EMBEDDED BITMAPS SUPPORT                       ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_MetricsRec                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to hold the big metrics of a given glyph bitmap   */
-  /*    in a TrueType or OpenType font.  These are usually found in the    */
-  /*    `EBDT' (Microsoft) or `bloc' (Apple) table.                        */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    height       :: The glyph height in pixels.                        */
-  /*                                                                       */
-  /*    width        :: The glyph width in pixels.                         */
-  /*                                                                       */
-  /*    horiBearingX :: The horizontal left bearing.                       */
-  /*                                                                       */
-  /*    horiBearingY :: The horizontal top bearing.                        */
-  /*                                                                       */
-  /*    horiAdvance  :: The horizontal advance.                            */
-  /*                                                                       */
-  /*    vertBearingX :: The vertical left bearing.                         */
-  /*                                                                       */
-  /*    vertBearingY :: The vertical top bearing.                          */
-  /*                                                                       */
-  /*    vertAdvance  :: The vertical advance.                              */
-  /*                                                                       */
-  typedef struct  TT_SBit_MetricsRec_
-  {
-    FT_Byte  height;
-    FT_Byte  width;
-
-    FT_Char  horiBearingX;
-    FT_Char  horiBearingY;
-    FT_Byte  horiAdvance;
-
-    FT_Char  vertBearingX;
-    FT_Char  vertBearingY;
-    FT_Byte  vertAdvance;
-
-  } TT_SBit_MetricsRec, *TT_SBit_Metrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_SmallMetricsRec                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to hold the small metrics of a given glyph bitmap */
-  /*    in a TrueType or OpenType font.  These are usually found in the    */
-  /*    `EBDT' (Microsoft) or the `bdat' (Apple) table.                    */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    height   :: The glyph height in pixels.                            */
-  /*                                                                       */
-  /*    width    :: The glyph width in pixels.                             */
-  /*                                                                       */
-  /*    bearingX :: The left-side bearing.                                 */
-  /*                                                                       */
-  /*    bearingY :: The top-side bearing.                                  */
-  /*                                                                       */
-  /*    advance  :: The advance width or height.                           */
-  /*                                                                       */
-  typedef struct  TT_SBit_Small_Metrics_
-  {
-    FT_Byte  height;
-    FT_Byte  width;
-
-    FT_Char  bearingX;
-    FT_Char  bearingY;
-    FT_Byte  advance;
-
-  } TT_SBit_SmallMetricsRec, *TT_SBit_SmallMetrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_LineMetricsRec                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to describe the text line metrics of a given      */
-  /*    bitmap strike, for either a horizontal or vertical layout.         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    ascender                :: The ascender in pixels.                 */
-  /*                                                                       */
-  /*    descender               :: The descender in pixels.                */
-  /*                                                                       */
-  /*    max_width               :: The maximum glyph width in pixels.      */
-  /*                                                                       */
-  /*    caret_slope_enumerator  :: Rise of the caret slope, typically set  */
-  /*                               to 1 for non-italic fonts.              */
-  /*                                                                       */
-  /*    caret_slope_denominator :: Rise of the caret slope, typically set  */
-  /*                               to 0 for non-italic fonts.              */
-  /*                                                                       */
-  /*    caret_offset            :: Offset in pixels to move the caret for  */
-  /*                               proper positioning.                     */
-  /*                                                                       */
-  /*    min_origin_SB           :: Minimum of horiBearingX (resp.          */
-  /*                               vertBearingY).                          */
-  /*    min_advance_SB          :: Minimum of                              */
-  /*                                                                       */
-  /*                                 horizontal advance -                  */
-  /*                                   ( horiBearingX + width )            */
-  /*                                                                       */
-  /*                               resp.                                   */
-  /*                                                                       */
-  /*                                 vertical advance -                    */
-  /*                                   ( vertBearingY + height )           */
-  /*                                                                       */
-  /*    max_before_BL           :: Maximum of horiBearingY (resp.          */
-  /*                               vertBearingY).                          */
-  /*                                                                       */
-  /*    min_after_BL            :: Minimum of                              */
-  /*                                                                       */
-  /*                                 horiBearingY - height                 */
-  /*                                                                       */
-  /*                               resp.                                   */
-  /*                                                                       */
-  /*                                 vertBearingX - width                  */
-  /*                                                                       */
-  /*    pads                    :: Unused (to make the size of the record  */
-  /*                               a multiple of 32 bits.                  */
-  /*                                                                       */
-  typedef struct  TT_SBit_LineMetricsRec_
-  {
-    FT_Char  ascender;
-    FT_Char  descender;
-    FT_Byte  max_width;
-    FT_Char  caret_slope_numerator;
-    FT_Char  caret_slope_denominator;
-    FT_Char  caret_offset;
-    FT_Char  min_origin_SB;
-    FT_Char  min_advance_SB;
-    FT_Char  max_before_BL;
-    FT_Char  min_after_BL;
-    FT_Char  pads[2];
-
-  } TT_SBit_LineMetricsRec, *TT_SBit_LineMetrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_RangeRec                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A TrueType/OpenType subIndexTable as defined in the `EBLC'         */
-  /*    (Microsoft) or `bloc' (Apple) tables.                              */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    first_glyph   :: The first glyph index in the range.               */
-  /*                                                                       */
-  /*    last_glyph    :: The last glyph index in the range.                */
-  /*                                                                       */
-  /*    index_format  :: The format of index table.  Valid values are 1    */
-  /*                     to 5.                                             */
-  /*                                                                       */
-  /*    image_format  :: The format of `EBDT' image data.                  */
-  /*                                                                       */
-  /*    image_offset  :: The offset to image data in `EBDT'.               */
-  /*                                                                       */
-  /*    image_size    :: For index formats 2 and 5.  This is the size in   */
-  /*                     bytes of each glyph bitmap.                       */
-  /*                                                                       */
-  /*    big_metrics   :: For index formats 2 and 5.  This is the big       */
-  /*                     metrics for each glyph bitmap.                    */
-  /*                                                                       */
-  /*    num_glyphs    :: For index formats 4 and 5.  This is the number of */
-  /*                     glyphs in the code array.                         */
-  /*                                                                       */
-  /*    glyph_offsets :: For index formats 1 and 3.                        */
-  /*                                                                       */
-  /*    glyph_codes   :: For index formats 4 and 5.                        */
-  /*                                                                       */
-  /*    table_offset  :: The offset of the index table in the `EBLC'       */
-  /*                     table.  Only used during strike loading.          */
-  /*                                                                       */
-  typedef struct  TT_SBit_RangeRec
-  {
-    FT_UShort           first_glyph;
-    FT_UShort           last_glyph;
-
-    FT_UShort           index_format;
-    FT_UShort           image_format;
-    FT_ULong            image_offset;
-
-    FT_ULong            image_size;
-    TT_SBit_MetricsRec  metrics;
-    FT_ULong            num_glyphs;
-
-    FT_ULong*           glyph_offsets;
-    FT_UShort*          glyph_codes;
-
-    FT_ULong            table_offset;
-
-  } TT_SBit_RangeRec, *TT_SBit_Range;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_StrikeRec                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used describe a given bitmap strike in the `EBLC'      */
-  /*    (Microsoft) or `bloc' (Apple) tables.                              */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*   num_index_ranges :: The number of index ranges.                     */
-  /*                                                                       */
-  /*   index_ranges     :: An array of glyph index ranges.                 */
-  /*                                                                       */
-  /*   color_ref        :: Unused.  `color_ref' is put in for future       */
-  /*                       enhancements, but these fields are already      */
-  /*                       in use by other platforms (e.g. Newton).        */
-  /*                       For details, please see                         */
-  /*                                                                       */
-  /*                         http://fonts.apple.com/                       */
-  /*                                TTRefMan/RM06/Chap6bloc.html           */
-  /*                                                                       */
-  /*   hori             :: The line metrics for horizontal layouts.        */
-  /*                                                                       */
-  /*   vert             :: The line metrics for vertical layouts.          */
-  /*                                                                       */
-  /*   start_glyph      :: The lowest glyph index for this strike.         */
-  /*                                                                       */
-  /*   end_glyph        :: The highest glyph index for this strike.        */
-  /*                                                                       */
-  /*   x_ppem           :: The number of horizontal pixels per EM.         */
-  /*                                                                       */
-  /*   y_ppem           :: The number of vertical pixels per EM.           */
-  /*                                                                       */
-  /*   bit_depth        :: The bit depth.  Valid values are 1, 2, 4,       */
-  /*                       and 8.                                          */
-  /*                                                                       */
-  /*   flags            :: Is this a vertical or horizontal strike?  For   */
-  /*                       details, please see                             */
-  /*                                                                       */
-  /*                         http://fonts.apple.com/                       */
-  /*                                TTRefMan/RM06/Chap6bloc.html           */
-  /*                                                                       */
-  typedef struct  TT_SBit_StrikeRec_
-  {
-    FT_Int                  num_ranges;
-    TT_SBit_Range           sbit_ranges;
-    FT_ULong                ranges_offset;
-
-    FT_ULong                color_ref;
-
-    TT_SBit_LineMetricsRec  hori;
-    TT_SBit_LineMetricsRec  vert;
-
-    FT_UShort               start_glyph;
-    FT_UShort               end_glyph;
-
-    FT_Byte                 x_ppem;
-    FT_Byte                 y_ppem;
-
-    FT_Byte                 bit_depth;
-    FT_Char                 flags;
-
-  } TT_SBit_StrikeRec, *TT_SBit_Strike;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_ComponentRec                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A simple structure to describe a compound sbit element.            */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    glyph_code :: The element's glyph index.                           */
-  /*                                                                       */
-  /*    x_offset   :: The element's left bearing.                          */
-  /*                                                                       */
-  /*    y_offset   :: The element's top bearing.                           */
-  /*                                                                       */
-  typedef struct  TT_SBit_ComponentRec_
-  {
-    FT_UShort  glyph_code;
-    FT_Char    x_offset;
-    FT_Char    y_offset;
-
-  } TT_SBit_ComponentRec, *TT_SBit_Component;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_SBit_ScaleRec                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used describe a given bitmap scaling table, as defined */
-  /*    in the `EBSC' table.                                               */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    hori              :: The horizontal line metrics.                  */
-  /*                                                                       */
-  /*    vert              :: The vertical line metrics.                    */
-  /*                                                                       */
-  /*    x_ppem            :: The number of horizontal pixels per EM.       */
-  /*                                                                       */
-  /*    y_ppem            :: The number of vertical pixels per EM.         */
-  /*                                                                       */
-  /*    x_ppem_substitute :: Substitution x_ppem value.                    */
-  /*                                                                       */
-  /*    y_ppem_substitute :: Substitution y_ppem value.                    */
-  /*                                                                       */
-  typedef struct  TT_SBit_ScaleRec_
-  {
-    TT_SBit_LineMetricsRec  hori;
-    TT_SBit_LineMetricsRec  vert;
-
-    FT_Byte                 x_ppem;
-    FT_Byte                 y_ppem;
-
-    FT_Byte                 x_ppem_substitute;
-    FT_Byte                 y_ppem_substitute;
-
-  } TT_SBit_ScaleRec, *TT_SBit_Scale;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***                  POSTSCRIPT GLYPH NAMES SUPPORT                   ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Post_20Rec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Postscript names sub-table, format 2.0.  Stores the PS name of     */
-  /*    each glyph in the font face.                                       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_glyphs    :: The number of named glyphs in the table.          */
-  /*                                                                       */
-  /*    num_names     :: The number of PS names stored in the table.       */
-  /*                                                                       */
-  /*    glyph_indices :: The indices of the glyphs in the names arrays.    */
-  /*                                                                       */
-  /*    glyph_names   :: The PS names not in Mac Encoding.                 */
-  /*                                                                       */
-  typedef struct  TT_Post_20Rec_
-  {
-    FT_UShort   num_glyphs;
-    FT_UShort   num_names;
-    FT_UShort*  glyph_indices;
-    FT_Char**   glyph_names;
-
-  } TT_Post_20Rec, *TT_Post_20;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Post_25Rec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Postscript names sub-table, format 2.5.  Stores the PS name of     */
-  /*    each glyph in the font face.                                       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_glyphs :: The number of glyphs in the table.                   */
-  /*                                                                       */
-  /*    offsets    :: An array of signed offsets in a normal Mac           */
-  /*                  Postscript name encoding.                            */
-  /*                                                                       */
-  typedef struct  TT_Post_25_
-  {
-    FT_UShort  num_glyphs;
-    FT_Char*   offsets;
-
-  } TT_Post_25Rec, *TT_Post_25;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Post_NamesRec                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Postscript names table, either format 2.0 or 2.5.                  */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    loaded    :: A flag to indicate whether the PS names are loaded.   */
-  /*                                                                       */
-  /*    format_20 :: The sub-table used for format 2.0.                    */
-  /*                                                                       */
-  /*    format_25 :: The sub-table used for format 2.5.                    */
-  /*                                                                       */
-  typedef struct  TT_Post_NamesRec_
-  {
-    FT_Bool  loaded;
-
-    union
-    {
-      TT_Post_20Rec  format_20;
-      TT_Post_25Rec  format_25;
-
-    } names;
-
-  } TT_Post_NamesRec, *TT_Post_Names;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***                    GX VARIATION TABLE SUPPORT                     ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-  typedef struct GX_BlendRec_  *GX_Blend;
-#endif
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /***                  ORIGINAL TT_FACE CLASS DEFINITION                ***/
-  /***                                                                   ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This structure/class is defined here because it is common to the      */
-  /* following formats: TTF, OpenType-TT, and OpenType-CFF.                */
-  /*                                                                       */
-  /* Note, however, that the classes TT_Size and TT_GlyphSlot are not      */
-  /* shared between font drivers, and are thus defined in `ttobjs.h'.      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    TT_Face                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a TrueType face/font object.  A TT_Face encapsulates   */
-  /*    the resolution and scaling independent parts of a TrueType font    */
-  /*    resource.                                                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The TT_Face structure is also used as a `parent class' for the     */
-  /*    OpenType-CFF class (T2_Face).                                      */
-  /*                                                                       */
-  typedef struct TT_FaceRec_*  TT_Face;
-
-
-  /* a function type used for the truetype bytecode interpreter hooks */
-  typedef FT_Error
-  (*TT_Interpreter)( void*  exec_context );
-
-  /* forward declaration */
-  typedef struct TT_LoaderRec_*  TT_Loader;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Loader_GotoTableFunc                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Seeks a stream to the start of a given TrueType table.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    tag    :: A 4-byte tag used to name the table.                     */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    length :: The length of the table in bytes.  Set to 0 if not       */
-  /*              needed.                                                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be at the font file's origin.               */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Loader_GotoTableFunc)( TT_Face    face,
-                              FT_ULong   tag,
-                              FT_Stream  stream,
-                              FT_ULong*  length );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Loader_StartGlyphFunc                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Seeks a stream to the start of a given glyph element, and opens a  */
-  /*    frame for it.                                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    loader      :: The current TrueType glyph loader object.           */
-  /*                                                                       */
-  /*    glyph index :: The index of the glyph to access.                   */
-  /*                                                                       */
-  /*    offset      :: The offset of the glyph according to the            */
-  /*                   `locations' table.                                  */
-  /*                                                                       */
-  /*    byte_count  :: The size of the frame in bytes.                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function is normally equivalent to FT_STREAM_SEEK(offset)     */
-  /*    followed by FT_FRAME_ENTER(byte_count) with the loader's stream,   */
-  /*    but alternative formats (e.g. compressed ones) might use something */
-  /*    different.                                                         */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Loader_StartGlyphFunc)( TT_Loader  loader,
-                               FT_UInt    glyph_index,
-                               FT_ULong   offset,
-                               FT_UInt    byte_count );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Loader_ReadGlyphFunc                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Reads one glyph element (its header, a simple glyph, or a          */
-  /*    composite) from the loader's current stream frame.                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    loader :: The current TrueType glyph loader object.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  typedef FT_Error
-  (*TT_Loader_ReadGlyphFunc)( TT_Loader  loader );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <FuncType>                                                            */
-  /*    TT_Loader_EndGlyphFunc                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Closes the current loader stream frame for the glyph.              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    loader :: The current TrueType glyph loader object.                */
-  /*                                                                       */
-  typedef void
-  (*TT_Loader_EndGlyphFunc)( TT_Loader  loader );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                         TrueType Face Type                            */
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Face                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The TrueType face class.  These objects model the resolution and   */
-  /*    point-size independent data found in a TrueType font file.         */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root                 :: The base FT_Face structure, managed by the */
-  /*                            base layer.                                */
-  /*                                                                       */
-  /*    ttc_header           :: The TrueType collection header, used when  */
-  /*                            the file is a `ttc' rather than a `ttf'.   */
-  /*                            For ordinary font files, the field         */
-  /*                            `ttc_header.count' is set to 0.            */
-  /*                                                                       */
-  /*    format_tag           :: The font format tag.                       */
-  /*                                                                       */
-  /*    num_tables           :: The number of TrueType tables in this font */
-  /*                            file.                                      */
-  /*                                                                       */
-  /*    dir_tables           :: The directory of TrueType tables for this  */
-  /*                            font file.                                 */
-  /*                                                                       */
-  /*    header               :: The font's font header (`head' table).     */
-  /*                            Read on font opening.                      */
-  /*                                                                       */
-  /*    horizontal           :: The font's horizontal header (`hhea'       */
-  /*                            table).  This field also contains the      */
-  /*                            associated horizontal metrics table        */
-  /*                            (`hmtx').                                  */
-  /*                                                                       */
-  /*    max_profile          :: The font's maximum profile table.  Read on */
-  /*                            font opening.  Note that some maximum      */
-  /*                            values cannot be taken directly from this  */
-  /*                            table.  We thus define additional fields   */
-  /*                            below to hold the computed maxima.         */
-  /*                                                                       */
-  /*    max_components       :: The maximum number of glyph components     */
-  /*                            required to load any composite glyph from  */
-  /*                            this font.  Used to size the load stack.   */
-  /*                                                                       */
-  /*    vertical_info        :: A boolean which is set when the font file  */
-  /*                            contains vertical metrics.  If not, the    */
-  /*                            value of the `vertical' field is           */
-  /*                            undefined.                                 */
-  /*                                                                       */
-  /*    vertical             :: The font's vertical header (`vhea' table). */
-  /*                            This field also contains the associated    */
-  /*                            vertical metrics table (`vmtx'), if found. */
-  /*                            IMPORTANT: The contents of this field is   */
-  /*                            undefined if the `verticalInfo' field is   */
-  /*                            unset.                                     */
-  /*                                                                       */
-  /*    num_names            :: The number of name records within this     */
-  /*                            TrueType font.                             */
-  /*                                                                       */
-  /*    name_table           :: The table of name records (`name').        */
-  /*                                                                       */
-  /*    os2                  :: The font's OS/2 table (`OS/2').            */
-  /*                                                                       */
-  /*    postscript           :: The font's PostScript table (`post'        */
-  /*                            table).  The PostScript glyph names are    */
-  /*                            not loaded by the driver on face opening.  */
-  /*                            See the `ttpost' module for more details.  */
-  /*                                                                       */
-  /*    cmap_table           :: Address of the face's `cmap' SFNT table    */
-  /*                            in memory (it's an extracted frame).       */
-  /*                                                                       */
-  /*    cmap_size            :: The size in bytes of the `cmap_table'      */
-  /*                            described above.                           */
-  /*                                                                       */
-  /*    goto_table           :: A function called by each TrueType table   */
-  /*                            loader to position a stream's cursor to    */
-  /*                            the start of a given table according to    */
-  /*                            its tag.  It defaults to TT_Goto_Face but  */
-  /*                            can be different for strange formats (e.g. */
-  /*                            Type 42).                                  */
-  /*                                                                       */
-  /*    access_glyph_frame   :: A function used to access the frame of a   */
-  /*                            given glyph within the face's font file.   */
-  /*                                                                       */
-  /*    forget_glyph_frame   :: A function used to forget the frame of a   */
-  /*                            given glyph when all data has been loaded. */
-  /*                                                                       */
-  /*    read_glyph_header    :: A function used to read a glyph header.    */
-  /*                            It must be called between an `access' and  */
-  /*                            `forget'.                                  */
-  /*                                                                       */
-  /*    read_simple_glyph    :: A function used to read a simple glyph.    */
-  /*                            It must be called after the header was     */
-  /*                            read, and before the `forget'.             */
-  /*                                                                       */
-  /*    read_composite_glyph :: A function used to read a composite glyph. */
-  /*                            It must be called after the header was     */
-  /*                            read, and before the `forget'.             */
-  /*                                                                       */
-  /*    sfnt                 :: A pointer to the SFNT service.             */
-  /*                                                                       */
-  /*    psnames              :: A pointer to the PostScript names service. */
-  /*                                                                       */
-  /*    hdmx                 :: The face's horizontal device metrics       */
-  /*                            (`hdmx' table).  This table is optional in */
-  /*                            TrueType/OpenType fonts.                   */
-  /*                                                                       */
-  /*    gasp                 :: The grid-fitting and scaling properties    */
-  /*                            table (`gasp').  This table is optional in */
-  /*                            TrueType/OpenType fonts.                   */
-  /*                                                                       */
-  /*    pclt                 :: The `pclt' SFNT table.                     */
-  /*                                                                       */
-  /*    num_sbit_strikes     :: The number of sbit strikes, i.e., bitmap   */
-  /*                            sizes, embedded in this font.              */
-  /*                                                                       */
-  /*    sbit_strikes         :: An array of sbit strikes embedded in this  */
-  /*                            font.  This table is optional in a         */
-  /*                            TrueType/OpenType font.                    */
-  /*                                                                       */
-  /*    num_sbit_scales      :: The number of sbit scales for this font.   */
-  /*                                                                       */
-  /*    sbit_scales          :: Array of sbit scales embedded in this      */
-  /*                            font.  This table is optional in a         */
-  /*                            TrueType/OpenType font.                    */
-  /*                                                                       */
-  /*    postscript_names     :: A table used to store the Postscript names */
-  /*                            of  the glyphs for this font.  See the     */
-  /*                            file  `ttconfig.h' for comments on the     */
-  /*                            TT_CONFIG_OPTION_POSTSCRIPT_NAMES option.  */
-  /*                                                                       */
-  /*    num_locations        :: The number of glyph locations in this      */
-  /*                            TrueType file.  This should be             */
-  /*                            identical to the number of glyphs.         */
-  /*                            Ignored for Type 2 fonts.                  */
-  /*                                                                       */
-  /*    glyph_locations      :: An array of longs.  These are offsets to   */
-  /*                            glyph data within the `glyf' table.        */
-  /*                            Ignored for Type 2 font faces.             */
-  /*                                                                       */
-  /*    font_program_size    :: Size in bytecodes of the face's font       */
-  /*                            program.  0 if none defined.  Ignored for  */
-  /*                            Type 2 fonts.                              */
-  /*                                                                       */
-  /*    font_program         :: The face's font program (bytecode stream)  */
-  /*                            executed at load time, also used during    */
-  /*                            glyph rendering.  Comes from the `fpgm'    */
-  /*                            table.  Ignored for Type 2 font fonts.     */
-  /*                                                                       */
-  /*    cvt_program_size     :: The size in bytecodes of the face's cvt    */
-  /*                            program.  Ignored for Type 2 fonts.        */
-  /*                                                                       */
-  /*    cvt_program          :: The face's cvt program (bytecode stream)   */
-  /*                            executed each time an instance/size is     */
-  /*                            changed/reset.  Comes from the `prep'      */
-  /*                            table.  Ignored for Type 2 fonts.          */
-  /*                                                                       */
-  /*    cvt_size             :: Size of the control value table (in        */
-  /*                            entries).   Ignored for Type 2 fonts.      */
-  /*                                                                       */
-  /*    cvt                  :: The face's original control value table.   */
-  /*                            Coordinates are expressed in unscaled font */
-  /*                            units.  Comes from the `cvt ' table.       */
-  /*                            Ignored for Type 2 fonts.                  */
-  /*                                                                       */
-  /*    num_kern_pairs       :: The number of kerning pairs present in the */
-  /*                            font file.  The engine only loads the      */
-  /*                            first horizontal format 0 kern table it    */
-  /*                            finds in the font file.  Ignored for       */
-  /*                            Type 2 fonts.                              */
-  /*                                                                       */
-  /*    kern_table_index     :: The index of the kerning table in the font */
-  /*                            kerning directory.  Ignored for Type 2     */
-  /*                            fonts.                                     */
-  /*                                                                       */
-  /*    interpreter          :: A pointer to the TrueType bytecode         */
-  /*                            interpreters field is also used to hook    */
-  /*                            the debugger in `ttdebug'.                 */
-  /*                                                                       */
-  /*    unpatented_hinting   :: If true, use only unpatented methods in    */
-  /*                            the bytecode interpreter.                  */
-  /*                                                                       */
-  /*    doblend              :: A boolean which is set if the font should  */
-  /*                            be blended (this is for GX var).           */
-  /*                                                                       */
-  /*    blend                :: Contains the data needed to control GX     */
-  /*                            variation tables (rather like Multiple     */
-  /*                            Master data).                              */
-  /*                                                                       */
-  /*    extra                :: Reserved for third-party font drivers.     */
-  /*                                                                       */
-  /*    postscript_name      :: The PS name of the font.  Used by the      */
-  /*                            postscript name service.                   */
-  /*                                                                       */
-  typedef struct  TT_FaceRec_
-  {
-    FT_FaceRec            root;
-
-    TTC_HeaderRec         ttc_header;
-
-    FT_ULong              format_tag;
-    FT_UShort             num_tables;
-    TT_Table              dir_tables;
-
-    TT_Header             header;       /* TrueType header table          */
-    TT_HoriHeader         horizontal;   /* TrueType horizontal header     */
-
-    TT_MaxProfile         max_profile;
-    FT_ULong              max_components;
-
-    FT_Bool               vertical_info;
-    TT_VertHeader         vertical;     /* TT Vertical header, if present */
-
-    FT_UShort             num_names;    /* number of name records  */
-    TT_NameTableRec       name_table;   /* name table              */
-
-    TT_OS2                os2;          /* TrueType OS/2 table            */
-    TT_Postscript         postscript;   /* TrueType Postscript table      */
-
-    FT_Byte*              cmap_table;   /* extracted 'cmap' table */
-    FT_ULong              cmap_size;
-
-    TT_Loader_GotoTableFunc   goto_table;
-
-    TT_Loader_StartGlyphFunc  access_glyph_frame;
-    TT_Loader_EndGlyphFunc    forget_glyph_frame;
-    TT_Loader_ReadGlyphFunc   read_glyph_header;
-    TT_Loader_ReadGlyphFunc   read_simple_glyph;
-    TT_Loader_ReadGlyphFunc   read_composite_glyph;
-
-    /* a typeless pointer to the SFNT_Interface table used to load */
-    /* the basic TrueType tables in the face object                */
-    void*                 sfnt;
-
-    /* a typeless pointer to the FT_Service_PsCMapsRec table used to */
-    /* handle glyph names <-> unicode & Mac values                   */
-    void*                 psnames;
-
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* Optional TrueType/OpenType tables                                   */
-    /*                                                                     */
-    /***********************************************************************/
-
-    /* horizontal device metrics */
-    TT_HdmxRec            hdmx;
-
-    /* grid-fitting and scaling table */
-    TT_GaspRec            gasp;                 /* the `gasp' table */
-
-    /* PCL 5 table */
-    TT_PCLT               pclt;
-
-    /* embedded bitmaps support */
-    FT_ULong              num_sbit_strikes;
-    TT_SBit_Strike        sbit_strikes;
-
-    FT_ULong              num_sbit_scales;
-    TT_SBit_Scale         sbit_scales;
-
-    /* postscript names table */
-    TT_Post_NamesRec      postscript_names;
-
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* TrueType-specific fields (ignored by the OTF-Type2 driver)          */
-    /*                                                                     */
-    /***********************************************************************/
-
-    /* the glyph locations */
-    FT_UShort             num_locations;
-    FT_Long*              glyph_locations;
-
-    /* the font program, if any */
-    FT_ULong              font_program_size;
-    FT_Byte*              font_program;
-
-    /* the cvt program, if any */
-    FT_ULong              cvt_program_size;
-    FT_Byte*              cvt_program;
-
-    /* the original, unscaled, control value table */
-    FT_ULong              cvt_size;
-    FT_Short*             cvt;
-
-    /* the format 0 kerning table, if any */
-    FT_Int                num_kern_pairs;
-    FT_Int                kern_table_index;
-    TT_Kern0_Pair         kern_pairs;
-
-    /* A pointer to the bytecode interpreter to use.  This is also */
-    /* used to hook the debugger for the `ttdebug' utility.        */
-    TT_Interpreter        interpreter;
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    /* Use unpatented hinting only. */
-    FT_Bool               unpatented_hinting;
-#endif
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-    FT_Bool               doblend;
-    GX_Blend              blend;
-#endif
-    
-    /***********************************************************************/
-    /*                                                                     */
-    /* Other tables or fields. This is used by derivative formats like     */
-    /* OpenType.                                                           */
-    /*                                                                     */
-    /***********************************************************************/
-
-    FT_Generic            extra;
-
-    const char*           postscript_name;
-
-  } TT_FaceRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  <Struct>                                                             */
-  /*     TT_GlyphZoneRec                                                   */
-  /*                                                                       */
-  /*  <Description>                                                        */
-  /*     A glyph zone is used to load, scale and hint glyph outline        */
-  /*     coordinates.                                                      */
-  /*                                                                       */
-  /*  <Fields>                                                             */
-  /*     memory       :: A handle to the memory manager.                   */
-  /*                                                                       */
-  /*     max_points   :: The maximal size in points of the zone.           */
-  /*                                                                       */
-  /*     max_contours :: Max size in links contours of thez one.           */
-  /*                                                                       */
-  /*     n_points     :: The current number of points in the zone.         */
-  /*                                                                       */
-  /*     n_contours   :: The current number of contours in the zone.       */
-  /*                                                                       */
-  /*     org          :: The original glyph coordinates (font              */
-  /*                     units/scaled).                                    */
-  /*                                                                       */
-  /*     cur          :: The current glyph coordinates (scaled/hinted).    */
-  /*                                                                       */
-  /*     tags         :: The point control tags.                           */
-  /*                                                                       */
-  /*     contours     :: The contours end points.                          */
-  /*                                                                       */
-  typedef struct  TT_GlyphZoneRec_
-  {
-    FT_Memory   memory;
-    FT_UShort   max_points;
-    FT_UShort   max_contours;
-    FT_UShort   n_points;   /* number of points in zone    */
-    FT_Short    n_contours; /* number of contours          */
-
-    FT_Vector*  org;        /* original point coordinates  */
-    FT_Vector*  cur;        /* current point coordinates   */
-
-    FT_Byte*    tags;       /* current touch flags         */
-    FT_UShort*  contours;   /* contour end points          */
-
-  } TT_GlyphZoneRec, *TT_GlyphZone;
-
-
-  /* handle to execution context */
-  typedef struct TT_ExecContextRec_*  TT_ExecContext;
-
-  /* glyph loader structure */
-  typedef struct  TT_LoaderRec_
-  {
-    FT_Face          face;
-    FT_Size          size;
-    FT_GlyphSlot     glyph;
-    FT_GlyphLoader   gloader;
-
-    FT_ULong         load_flags;
-    FT_UInt          glyph_index;
-
-    FT_Stream        stream;
-    FT_Int           byte_len;
-
-    FT_Short         n_contours;
-    FT_BBox          bbox;
-    FT_Int           left_bearing;
-    FT_Int           advance;
-    FT_Int           top_bearing;
-    FT_Int           vadvance;
-    FT_Int           linear;
-    FT_Bool          linear_def;
-    FT_Bool          preserve_pps;
-    FT_Vector        pp1;
-    FT_Vector        pp2;
-    FT_Vector        pp3;
-    FT_Vector        pp4;
-
-    FT_ULong         glyf_offset;
-
-    /* the zone where we load our glyphs */
-    TT_GlyphZoneRec  base;
-    TT_GlyphZoneRec  zone;
-
-    TT_ExecContext   exec;
-    FT_Byte*         instructions;
-    FT_ULong         ins_pos;
-
-    /* for possible extensibility in other formats */
-    void*            other;
-
-  } TT_LoaderRec;
-
-
-FT_END_HEADER
-
-#endif /* __TTTYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/t1tables.h b/nx-X11/extras/freetype2/include/freetype/t1tables.h
deleted file mode 100644
index 60938aa83..000000000
--- a/nx-X11/extras/freetype2/include/freetype/t1tables.h
+++ /dev/null
@@ -1,399 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1tables.h                                                             */
-/*                                                                         */
-/*    Basic Type 1/Type 2 tables definitions and interface (specification  */
-/*    only).                                                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1TABLES_H__
-#define __T1TABLES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    type1_tables                                                       */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    Type 1 Tables                                                      */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    Type 1 (PostScript) specific font tables.                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the definition of Type 1-specific tables,    */
-  /*    including structures related to other PostScript font formats.     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* Note that we separate font data in PS_FontInfoRec and PS_PrivateRec */
-  /* structures in order to support Multiple Master fonts.               */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    PS_FontInfoRec                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a Type1/Type2 FontInfo dictionary.  Note */
-  /*    that for Multiple Master fonts, each instance has its own          */
-  /*    FontInfo.                                                          */
-  /*                                                                       */
-  typedef struct  PS_FontInfoRec
-  {
-    FT_String*  version;
-    FT_String*  notice;
-    FT_String*  full_name;
-    FT_String*  family_name;
-    FT_String*  weight;
-    FT_Long     italic_angle;
-    FT_Bool     is_fixed_pitch;
-    FT_Short    underline_position;
-    FT_UShort   underline_thickness;
-
-  } PS_FontInfoRec, *PS_FontInfo;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    T1_FontInfo                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This type is equivalent to @PS_FontInfoRec.  It is deprecated but  */
-  /*    kept to maintain source compatibility between various versions of  */
-  /*    FreeType.                                                          */
-  /*                                                                       */
-  typedef PS_FontInfoRec  T1_FontInfo;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    PS_PrivateRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a Type1/Type2 private dictionary.  Note  */
-  /*    that for Multiple Master fonts, each instance has its own Private  */
-  /*    dictionary.                                                        */
-  /*                                                                       */
-  typedef struct  PS_PrivateRec_
-  {
-    FT_Int     unique_id;
-    FT_Int     lenIV;
-
-    FT_Byte    num_blue_values;
-    FT_Byte    num_other_blues;
-    FT_Byte    num_family_blues;
-    FT_Byte    num_family_other_blues;
-
-    FT_Short   blue_values[14];
-    FT_Short   other_blues[10];
-
-    FT_Short   family_blues      [14];
-    FT_Short   family_other_blues[10];
-
-    FT_Fixed   blue_scale;
-    FT_Int     blue_shift;
-    FT_Int     blue_fuzz;
-
-    FT_UShort  standard_width[1];
-    FT_UShort  standard_height[1];
-
-    FT_Byte    num_snap_widths;
-    FT_Byte    num_snap_heights;
-    FT_Bool    force_bold;
-    FT_Bool    round_stem_up;
-
-    FT_Short   snap_widths [13];  /* including std width  */
-    FT_Short   snap_heights[13];  /* including std height */
-
-    FT_Fixed   expansion_factor;
-
-    FT_Long    language_group;
-    FT_Long    password;
-
-    FT_Short   min_feature[2];
-
-  } PS_PrivateRec, *PS_Private;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    T1_Private                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*   This type is equivalent to @PS_PrivateRec.  It is deprecated but    */
-  /*   kept to maintain source compatibility between various versions of   */
-  /*   FreeType.                                                           */
-  /*                                                                       */
-  typedef PS_PrivateRec  T1_Private;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    T1_Blend_Flags                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A set of flags used to indicate which fields are present in a      */
-  /*    given blend dictionary (font info or private).  Used to support    */
-  /*    Multiple Masters fonts.                                            */
-  /*                                                                       */
-  typedef enum
-  {
-    /*# required fields in a FontInfo blend dictionary */
-    T1_BLEND_UNDERLINE_POSITION = 0,
-    T1_BLEND_UNDERLINE_THICKNESS,
-    T1_BLEND_ITALIC_ANGLE,
-
-    /*# required fields in a Private blend dictionary */
-    T1_BLEND_BLUE_VALUES,
-    T1_BLEND_OTHER_BLUES,
-    T1_BLEND_STANDARD_WIDTH,
-    T1_BLEND_STANDARD_HEIGHT,
-    T1_BLEND_STEM_SNAP_WIDTHS,
-    T1_BLEND_STEM_SNAP_HEIGHTS,
-    T1_BLEND_BLUE_SCALE,
-    T1_BLEND_BLUE_SHIFT,
-    T1_BLEND_FAMILY_BLUES,
-    T1_BLEND_FAMILY_OTHER_BLUES,
-    T1_BLEND_FORCE_BOLD,
-
-    /*# never remove */
-    T1_BLEND_MAX
-
-  } T1_Blend_Flags;
-
-
-  /*# backwards compatible definitions */
-#define t1_blend_underline_position   T1_BLEND_UNDERLINE_POSITION
-#define t1_blend_underline_thickness  T1_BLEND_UNDERLINE_THICKNESS
-#define t1_blend_italic_angle         T1_BLEND_ITALIC_ANGLE
-#define t1_blend_blue_values          T1_BLEND_BLUE_VALUES
-#define t1_blend_other_blues          T1_BLEND_OTHER_BLUES
-#define t1_blend_standard_widths      T1_BLEND_STANDARD_WIDTH
-#define t1_blend_standard_height      T1_BLEND_STANDARD_HEIGHT
-#define t1_blend_stem_snap_widths     T1_BLEND_STEM_SNAP_WIDTHS
-#define t1_blend_stem_snap_heights    T1_BLEND_STEM_SNAP_HEIGHTS
-#define t1_blend_blue_scale           T1_BLEND_BLUE_SCALE
-#define t1_blend_blue_shift           T1_BLEND_BLUE_SHIFT
-#define t1_blend_family_blues         T1_BLEND_FAMILY_BLUES
-#define t1_blend_family_other_blues   T1_BLEND_FAMILY_OTHER_BLUES
-#define t1_blend_force_bold           T1_BLEND_FORCE_BOLD
-#define t1_blend_max                  T1_BLEND_MAX
-
-
-  /* maximum number of Multiple Masters designs, as defined in the spec */
-#define T1_MAX_MM_DESIGNS     16
-
-  /* maximum number of Multiple Masters axes, as defined in the spec */
-#define T1_MAX_MM_AXIS        4
-
-  /* maximum number of elements in a design map */
-#define T1_MAX_MM_MAP_POINTS  20
-
-
-  /* this structure is used to store the BlendDesignMap entry for an axis */
-  typedef struct  PS_DesignMap_
-  {
-    FT_Byte    num_points;
-    FT_Long*   design_points;
-    FT_Fixed*  blend_points;
-
-  } PS_DesignMapRec, *PS_DesignMap;
-
-  /* backwards-compatible definition */
-  typedef PS_DesignMapRec  T1_DesignMap;
-
-
-  typedef struct  PS_BlendRec_
-  {
-    FT_UInt          num_designs;
-    FT_UInt          num_axis;
-
-    FT_String*       axis_names[T1_MAX_MM_AXIS];
-    FT_Fixed*        design_pos[T1_MAX_MM_DESIGNS];
-    PS_DesignMapRec  design_map[T1_MAX_MM_AXIS];
-
-    FT_Fixed*        weight_vector;
-    FT_Fixed*        default_weight_vector;
-
-    PS_FontInfo      font_infos[T1_MAX_MM_DESIGNS + 1];
-    PS_Private       privates  [T1_MAX_MM_DESIGNS + 1];
-
-    FT_ULong         blend_bitflags;
-
-    FT_BBox*         bboxes    [T1_MAX_MM_DESIGNS + 1];
-
-  } PS_BlendRec, *PS_Blend;
-
-
-  /* backwards-compatible definition */
-  typedef PS_BlendRec  T1_Blend;
-
-
-  typedef struct  CID_FaceDictRec_
-  {
-    PS_PrivateRec  private_dict;
-
-    FT_UInt        len_buildchar;
-    FT_Fixed       forcebold_threshold;
-    FT_Pos         stroke_width;
-    FT_Fixed       expansion_factor;
-
-    FT_Byte        paint_type;
-    FT_Byte        font_type;
-    FT_Matrix      font_matrix;
-    FT_Vector      font_offset;
-
-    FT_UInt        num_subrs;
-    FT_ULong       subrmap_offset;
-    FT_Int         sd_bytes;
-
-  } CID_FaceDictRec, *CID_FaceDict;
-
-
-  /* backwards-compatible definition */
-  typedef CID_FaceDictRec  CID_FontDict;
-
-
-  typedef struct  CID_FaceInfoRec_
-  {
-    FT_String*      cid_font_name;
-    FT_Fixed        cid_version;
-    FT_Int          cid_font_type;
-
-    FT_String*      registry;
-    FT_String*      ordering;
-    FT_Int          supplement;
-
-    PS_FontInfoRec  font_info;
-    FT_BBox         font_bbox;
-    FT_ULong        uid_base;
-
-    FT_Int          num_xuid;
-    FT_ULong        xuid[16];
-
-    FT_ULong        cidmap_offset;
-    FT_Int          fd_bytes;
-    FT_Int          gd_bytes;
-    FT_ULong        cid_count;
-
-    FT_Int          num_dicts;
-    CID_FaceDict    font_dicts;
-
-    FT_ULong        data_offset;
-
-  } CID_FaceInfoRec, *CID_FaceInfo;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    CID_Info                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*   This type is equivalent to CID_FaceInfoRec.  It is deprecated but   */
-  /*   kept to maintain source compatibility between various versions of   */
-  /*   FreeType.                                                           */
-  /*                                                                       */
-  typedef CID_FaceInfoRec  CID_Info;
-
-  /* */
-
-
- /************************************************************************
-  *
-  * @function:
-  *    FT_Has_PS_Glyph_Names
-  *
-  * @description:
-  *    Return true if a given face provides reliable Postscript glyph
-  *    names.  This is similar to using the @FT_HAS_GLYPH_NAMES macro,
-  *    except that certain fonts (mostly TrueType) contain incorrect
-  *    glyph name tables.
-  *
-  *    When this function returns true, the caller is sure that the glyph
-  *    names returned by @FT_Get_Glyph_Name are reliable.
-  *
-  * @input:
-  *    face ::
-  *       face handle
-  *
-  * @return:
-  *    Boolean.  True if glyph names are reliable.
-  */
-  FT_EXPORT( FT_Int )
-  FT_Has_PS_Glyph_Names( FT_Face  face );
-
-
- /************************************************************************
-  *
-  * @function:
-  *    FT_Get_PS_Font_Info
-  *
-  * @description:
-  *    Retrieve the @PS_FontInfoRec structure corresponding to a given
-  *    Postscript font.
-  *
-  * @input:
-  *    face ::
-  *       Postscript face handle.
-  *
-  * @output:
-  *    afont_info ::
-  *       Output font info structure pointer.
-  *
-  * @return:
-  *    FreeType error code.  0 means success.
-  *
-  * @note:
-  *    The string pointers within the font info structure are owned by
-  *    the face and don't need to be freed by the caller.
-  *
-  *    If the font's format is not Postscript-based, this function will
-  *    return the FT_Err_Invalid_Argument error code.
-  */
-  FT_EXPORT( FT_Error )
-  FT_Get_PS_Font_Info( FT_Face          face,
-                       PS_FontInfoRec  *afont_info );
-
- /* */
-
-
-
-FT_END_HEADER
-
-#endif /* __T1TABLES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ttnameid.h b/nx-X11/extras/freetype2/include/freetype/ttnameid.h
deleted file mode 100644
index 848374fe2..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ttnameid.h
+++ /dev/null
@@ -1,1076 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttnameid.h                                                             */
-/*                                                                         */
-/*    TrueType name ID definitions (specification only).                   */
-/*                                                                         */
-/*  Copyright 1996-2002, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTNAMEID_H__
-#define __TTNAMEID_H__
-
-
-#include <ft2build.h>
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Possible values for the `platform' identifier code in the name        */
-  /* records of the TTF `name' table.                                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /***********************************************************************
-   *
-   * @enum:
-   *   TT_PLATFORM_XXX
-   *
-   * @description:
-   *   A list of valid values for the `platform_id' identifier code in
-   *   @FT_CharMapRec and @FT_SfntName structures.
-   *
-   * @values:
-   *   TT_PLATFORM_APPLE_UNICODE ::
-   *     Used by Apple to indicate a Unicode character map and/or name entry.
-   *     See @TT_APPLE_ID_XXX for corresponding `encoding_id' values.  Note
-   *     that name entries in this format are coded as big-endian UCS-2
-   *     character codes _only_.
-   *
-   *   TT_PLATFORM_MACINTOSH ::
-   *     Used by Apple to indicate a MacOS-specific charmap and/or name entry.
-   *     See @TT_MAC_ID_XXX for corresponding `encoding_id' values.  Note that
-   *     most TrueType fonts contain an Apple roman charmap to be usable on
-   *     MacOS systems (even if they contain a Microsoft charmap as well).
-   *
-   *   TT_PLATFORM_ISO ::
-   *     This value was used to specify Unicode charmaps.  It is however
-   *     now deprecated.  See @TT_ISO_ID_XXX for a list of corresponding
-   *     `encoding_id' values.
-   *
-   *   TT_PLATFORM_MICROSOFT ::
-   *     Used by Microsoft to indicate Windows-specific charmaps.  See
-   *     @TT_MS_ID_XXX for a list of corresponding `encoding_id' values.
-   *     Note that most fonts contain a Unicode charmap using
-   *     (@TT_PLATFORM_MICROSOFT, @TT_MS_ID_UNICODE_CS).
-   *
-   *   TT_PLATFORM_CUSTOM ::
-   *     Used to indicate application-specific charmaps.
-   *
-   *   TT_PLATFORM_ADOBE ::
-   *     This value isn't part of any font format specification, but is used
-   *     by FreeType to report Adobe-specific charmaps in an @FT_CharMapRec
-   *     structure.  See @TT_ADOBE_ID_XXX.
-   */
-
-#define TT_PLATFORM_APPLE_UNICODE  0
-#define TT_PLATFORM_MACINTOSH      1
-#define TT_PLATFORM_ISO            2 /* deprecated */
-#define TT_PLATFORM_MICROSOFT      3
-#define TT_PLATFORM_CUSTOM         4
-#define TT_PLATFORM_ADOBE          7 /* artificial */
-
-
-  /***********************************************************************
-   *
-   * @enum:
-   *   TT_APPLE_ID_XXX
-   *
-   * @description:
-   *   A list of valid values for the `encoding_id' for
-   *   @TT_PLATFORM_APPLE_UNICODE charmaps and name entries.
-   *
-   * @values:
-   *   TT_APPLE_ID_DEFAULT ::
-   *     Unicode version 1.0.
-   *   TT_APPLE_ID_UNICODE_1_1 ::
-   *     Unicode 1.1; specifies Hangul characters starting at U+34xx.
-   *   TT_APPLE_ID_ISO_10646 ::
-   *     Deprecated (identical to preceding.)
-   *   TT_APPLE_ID_UNICODE_2_0 ::
-   *     Unicode 2.0 and beyond (UTF-16 BMP only.)
-   *   TT_APPLE_ID_UNICODE_32 ::
-   *     Unicode 3.1 and beyond, using UTF-32
-   */
-
-#define TT_APPLE_ID_DEFAULT      0 /* Unicode 1.0 */
-#define TT_APPLE_ID_UNICODE_1_1  1 /* specify Hangul at U+34xx */
-#define TT_APPLE_ID_ISO_10646    2 /* deprecated */
-#define TT_APPLE_ID_UNICODE_2_0  3 /* or later */
-#define TT_APPLE_ID_UNICODE_32   4 /* 2.0 or later, full repertoire */
-
-
-  /***********************************************************************
-   *
-   * @enum:
-   *   TT_MAC_ID_XXX
-   *
-   * @description:
-   *   A list of valid values for the `encoding_id' for
-   *   @TT_PLATFORM_MACINTOSH charmaps and name entries.
-   *
-   * @values:
-   *   TT_MAC_ID_ROMAN ::
-   *   TT_MAC_ID_JAPANESE ::
-   *   TT_MAC_ID_TRADITIONAL_CHINESE ::
-   *   TT_MAC_ID_KOREAN ::
-   *   TT_MAC_ID_ARABIC ::
-   *   TT_MAC_ID_HEBREW ::
-   *   TT_MAC_ID_GREEK ::
-   *   TT_MAC_ID_RUSSIAN ::
-   *   TT_MAC_ID_RSYMBOL ::
-   *   TT_MAC_ID_DEVANAGARI ::
-   *   TT_MAC_ID_GURMUKHI ::
-   *   TT_MAC_ID_GUJARATI ::
-   *   TT_MAC_ID_ORIYA ::
-   *   TT_MAC_ID_BENGALI ::
-   *   TT_MAC_ID_TAMIL ::
-   *   TT_MAC_ID_TELUGU ::
-   *   TT_MAC_ID_KANNADA ::
-   *   TT_MAC_ID_MALAYALAM ::
-   *   TT_MAC_ID_SINHALESE ::
-   *   TT_MAC_ID_BURMESE ::
-   *   TT_MAC_ID_KHMER ::
-   *   TT_MAC_ID_THAI ::
-   *   TT_MAC_ID_LAOTIAN ::
-   *   TT_MAC_ID_GEORGIAN ::
-   *   TT_MAC_ID_ARMENIAN ::
-   *   TT_MAC_ID_MALDIVIAN ::
-   *   TT_MAC_ID_SIMPLIFIED_CHINESE ::
-   *   TT_MAC_ID_TIBETAN ::
-   *   TT_MAC_ID_MONGOLIAN ::
-   *   TT_MAC_ID_GEEZ ::
-   *   TT_MAC_ID_SLAVIC ::
-   *   TT_MAC_ID_VIETNAMESE ::
-   *   TT_MAC_ID_SINDHI ::
-   *   TT_MAC_ID_UNINTERP ::
-   */
-
-#define TT_MAC_ID_ROMAN                 0
-#define TT_MAC_ID_JAPANESE              1
-#define TT_MAC_ID_TRADITIONAL_CHINESE   2
-#define TT_MAC_ID_KOREAN                3
-#define TT_MAC_ID_ARABIC                4
-#define TT_MAC_ID_HEBREW                5
-#define TT_MAC_ID_GREEK                 6
-#define TT_MAC_ID_RUSSIAN               7
-#define TT_MAC_ID_RSYMBOL               8
-#define TT_MAC_ID_DEVANAGARI            9
-#define TT_MAC_ID_GURMUKHI             10
-#define TT_MAC_ID_GUJARATI             11
-#define TT_MAC_ID_ORIYA                12
-#define TT_MAC_ID_BENGALI              13
-#define TT_MAC_ID_TAMIL                14
-#define TT_MAC_ID_TELUGU               15
-#define TT_MAC_ID_KANNADA              16
-#define TT_MAC_ID_MALAYALAM            17
-#define TT_MAC_ID_SINHALESE            18
-#define TT_MAC_ID_BURMESE              19
-#define TT_MAC_ID_KHMER                20
-#define TT_MAC_ID_THAI                 21
-#define TT_MAC_ID_LAOTIAN              22
-#define TT_MAC_ID_GEORGIAN             23
-#define TT_MAC_ID_ARMENIAN             24
-#define TT_MAC_ID_MALDIVIAN            25
-#define TT_MAC_ID_SIMPLIFIED_CHINESE   25
-#define TT_MAC_ID_TIBETAN              26
-#define TT_MAC_ID_MONGOLIAN            27
-#define TT_MAC_ID_GEEZ                 28
-#define TT_MAC_ID_SLAVIC               29
-#define TT_MAC_ID_VIETNAMESE           30
-#define TT_MAC_ID_SINDHI               31
-#define TT_MAC_ID_UNINTERP             32
-
-
-  /***********************************************************************
-   *
-   * @enum:
-   *   TT_ISO_ID_XXX
-   *
-   * @description:
-   *   A list of valid values for the `encoding_id' for
-   *   @TT_PLATFORM_ISO charmaps and name entries.
-   *
-   *   Their use is now deprecated.
-   *
-   * @values:
-   *   TT_ISO_ID_7BIT_ASCII ::
-   *     ASCII.
-   *   TT_ISO_ID_10646 ::
-   *     ISO/10646.
-   *   TT_ISO_ID_8859_1 ::
-   *     Also known as Latin-1.
-   */
-
-#define TT_ISO_ID_7BIT_ASCII  0
-#define TT_ISO_ID_10646       1
-#define TT_ISO_ID_8859_1      2
-
-
-  /***********************************************************************
-   *
-   * @enum:
-   *   TT_MS_ID_XXX
-   *
-   * @description:
-   *   A list of valid values for the `encoding_id' for
-   *   @TT_PLATFORM_MICROSOFT charmaps and name entries.
-   *
-   * @values:
-   *   TT_MS_ID_SYMBOL_CS ::
-   *     Corresponds to Microsoft symbol encoding. See
-   *     @FT_ENCODING_MS_SYMBOL.
-   *
-   *   TT_MS_ID_UNICODE_CS ::
-   *     Corresponds to a Microsoft WGL4 charmap, matching Unicode.  See
-   *     @FT_ENCODING_UNICODE.
-   *
-   *   TT_MS_ID_SJIS ::
-   *     Corresponds to SJIS Japanese encoding.  See @FT_ENCODING_SJIS.
-   *
-   *   TT_MS_ID_GB2312 ::
-   *     Corresponds to Simplified Chinese as used in Mainland China.  See
-   *     @FT_ENCODING_GB2312.
-   *
-   *   TT_MS_ID_BIG_5 ::
-   *     Corresponds to Traditional Chinese as used in Taiwan and Hong Kong.
-   *     See @FT_ENCODING_BIG5.
-   *
-   *   TT_MS_ID_WANSUNG ::
-   *     Corresponds to Korean Wansung encoding.  See @FT_ENCODING_WANSUNG.
-   *
-   *   TT_MS_ID_JOHAB ::
-   *     Corresponds to Johab encoding.  See @FT_ENCODING_JOHAB.
-   *
-   *   TT_MS_ID_UCS_4 ::
-   *     Corresponds to UCS-4 or UTF-32 charmaps.  This has been added to
-   *     the OpenType specification version 1.4 (mid-2001.)
-   */
-
-#define TT_MS_ID_SYMBOL_CS    0
-#define TT_MS_ID_UNICODE_CS   1
-#define TT_MS_ID_SJIS         2
-#define TT_MS_ID_GB2312       3
-#define TT_MS_ID_BIG_5        4
-#define TT_MS_ID_WANSUNG      5
-#define TT_MS_ID_JOHAB        6
-#define TT_MS_ID_UCS_4       10
-
-
-  /***********************************************************************
-   *
-   * @enum:
-   *   TT_ADOBE_ID_XXX
-   *
-   * @description:
-   *   A list of valid values for the `encoding_id' for
-   *   @TT_PLATFORM_ADOBE charmaps.  This is a FreeType-specific extension!
-   *
-   * @values:
-   *   TT_ADOBE_ID_STANDARD ::
-   *     Adobe standard encoding.
-   *   TT_ADOBE_ID_EXPERT ::
-   *     Adobe expert encoding.
-   *   TT_ADOBE_ID_CUSTOM ::
-   *     Adobe custom encoding.
-   */
-
-#define TT_ADOBE_ID_STANDARD  0
-#define TT_ADOBE_ID_EXPERT    1
-#define TT_ADOBE_ID_CUSTOM    2
-#define TT_ADOBE_ID_LATIN_1   3
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Possible values of the language identifier field in the name records  */
-  /* of the TTF `name' table if the `platform' identifier code is          */
-  /* TT_PLATFORM_MACINTOSH.                                                */
-  /*                                                                       */
-  /* The canonical source for the Apple assigned Language ID's is at       */
-  /*                                                                       */
-  /*   http://fonts.apple.com/TTRefMan/RM06/Chap6name.html                 */
-  /*                                                                       */
-#define TT_MAC_LANGID_ENGLISH                       0
-#define TT_MAC_LANGID_FRENCH                        1
-#define TT_MAC_LANGID_GERMAN                        2
-#define TT_MAC_LANGID_ITALIAN                       3
-#define TT_MAC_LANGID_DUTCH                         4
-#define TT_MAC_LANGID_SWEDISH                       5
-#define TT_MAC_LANGID_SPANISH                       6
-#define TT_MAC_LANGID_DANISH                        7
-#define TT_MAC_LANGID_PORTUGUESE                    8
-#define TT_MAC_LANGID_NORWEGIAN                     9
-#define TT_MAC_LANGID_HEBREW                       10
-#define TT_MAC_LANGID_JAPANESE                     11
-#define TT_MAC_LANGID_ARABIC                       12
-#define TT_MAC_LANGID_FINNISH                      13
-#define TT_MAC_LANGID_GREEK                        14
-#define TT_MAC_LANGID_ICELANDIC                    15
-#define TT_MAC_LANGID_MALTESE                      16
-#define TT_MAC_LANGID_TURKISH                      17
-#define TT_MAC_LANGID_CROATIAN                     18
-#define TT_MAC_LANGID_CHINESE_TRADITIONAL          19
-#define TT_MAC_LANGID_URDU                         20
-#define TT_MAC_LANGID_HINDI                        21
-#define TT_MAC_LANGID_THAI                         22
-#define TT_MAC_LANGID_KOREAN                       23
-#define TT_MAC_LANGID_LITHUANIAN                   24
-#define TT_MAC_LANGID_POLISH                       25
-#define TT_MAC_LANGID_HUNGARIAN                    26
-#define TT_MAC_LANGID_ESTONIAN                     27
-#define TT_MAC_LANGID_LETTISH                      28
-#define TT_MAC_LANGID_SAAMISK                      29
-#define TT_MAC_LANGID_FAEROESE                     30
-#define TT_MAC_LANGID_FARSI                        31
-#define TT_MAC_LANGID_RUSSIAN                      32
-#define TT_MAC_LANGID_CHINESE_SIMPLIFIED           33
-#define TT_MAC_LANGID_FLEMISH                      34
-#define TT_MAC_LANGID_IRISH                        35
-#define TT_MAC_LANGID_ALBANIAN                     36
-#define TT_MAC_LANGID_ROMANIAN                     37
-#define TT_MAC_LANGID_CZECH                        38
-#define TT_MAC_LANGID_SLOVAK                       39
-#define TT_MAC_LANGID_SLOVENIAN                    40
-#define TT_MAC_LANGID_YIDDISH                      41
-#define TT_MAC_LANGID_SERBIAN                      42
-#define TT_MAC_LANGID_MACEDONIAN                   43
-#define TT_MAC_LANGID_BULGARIAN                    44
-#define TT_MAC_LANGID_UKRAINIAN                    45
-#define TT_MAC_LANGID_BYELORUSSIAN                 46
-#define TT_MAC_LANGID_UZBEK                        47
-#define TT_MAC_LANGID_KAZAKH                       48
-#define TT_MAC_LANGID_AZERBAIJANI                  49
-#define TT_MAC_LANGID_AZERBAIJANI_CYRILLIC_SCRIPT  49
-#define TT_MAC_LANGID_AZERBAIJANI_ARABIC_SCRIPT    50
-#define TT_MAC_LANGID_ARMENIAN                     51
-#define TT_MAC_LANGID_GEORGIAN                     52
-#define TT_MAC_LANGID_MOLDAVIAN                    53
-#define TT_MAC_LANGID_KIRGHIZ                      54
-#define TT_MAC_LANGID_TAJIKI                       55
-#define TT_MAC_LANGID_TURKMEN                      56
-#define TT_MAC_LANGID_MONGOLIAN                    57
-#define TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT   57
-#define TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT    58
-#define TT_MAC_LANGID_PASHTO                       59
-#define TT_MAC_LANGID_KURDISH                      60
-#define TT_MAC_LANGID_KASHMIRI                     61
-#define TT_MAC_LANGID_SINDHI                       62
-#define TT_MAC_LANGID_TIBETAN                      63
-#define TT_MAC_LANGID_NEPALI                       64
-#define TT_MAC_LANGID_SANSKRIT                     65
-#define TT_MAC_LANGID_MARATHI                      66
-#define TT_MAC_LANGID_BENGALI                      67
-#define TT_MAC_LANGID_ASSAMESE                     68
-#define TT_MAC_LANGID_GUJARATI                     69
-#define TT_MAC_LANGID_PUNJABI                      70
-#define TT_MAC_LANGID_ORIYA                        71
-#define TT_MAC_LANGID_MALAYALAM                    72
-#define TT_MAC_LANGID_KANNADA                      73
-#define TT_MAC_LANGID_TAMIL                        74
-#define TT_MAC_LANGID_TELUGU                       75
-#define TT_MAC_LANGID_SINHALESE                    76
-#define TT_MAC_LANGID_BURMESE                      77
-#define TT_MAC_LANGID_KHMER                        78
-#define TT_MAC_LANGID_LAO                          79
-#define TT_MAC_LANGID_VIETNAMESE                   80
-#define TT_MAC_LANGID_INDONESIAN                   81
-#define TT_MAC_LANGID_TAGALOG                      82
-#define TT_MAC_LANGID_MALAY_ROMAN_SCRIPT           83
-#define TT_MAC_LANGID_MALAY_ARABIC_SCRIPT          84
-#define TT_MAC_LANGID_AMHARIC                      85
-#define TT_MAC_LANGID_TIGRINYA                     86
-#define TT_MAC_LANGID_GALLA                        87
-#define TT_MAC_LANGID_SOMALI                       88
-#define TT_MAC_LANGID_SWAHILI                      89
-#define TT_MAC_LANGID_RUANDA                       90
-#define TT_MAC_LANGID_RUNDI                        91
-#define TT_MAC_LANGID_CHEWA                        92
-#define TT_MAC_LANGID_MALAGASY                     93
-#define TT_MAC_LANGID_ESPERANTO                    94
-#define TT_MAC_LANGID_WELSH                       128
-#define TT_MAC_LANGID_BASQUE                      129
-#define TT_MAC_LANGID_CATALAN                     130
-#define TT_MAC_LANGID_LATIN                       131
-#define TT_MAC_LANGID_QUECHUA                     132
-#define TT_MAC_LANGID_GUARANI                     133
-#define TT_MAC_LANGID_AYMARA                      134
-#define TT_MAC_LANGID_TATAR                       135
-#define TT_MAC_LANGID_UIGHUR                      136
-#define TT_MAC_LANGID_DZONGKHA                    137
-#define TT_MAC_LANGID_JAVANESE                    138
-#define TT_MAC_LANGID_SUNDANESE                   139
-
-
-#if 0  /* these seem to be errors that have been dropped */
-
-#define TT_MAC_LANGID_SCOTTISH_GAELIC             140
-#define TT_MAC_LANGID_IRISH_GAELIC                141
-
-#endif
-
-
-  /* The following codes are new as of 2000-03-10 */
-#define TT_MAC_LANGID_GALICIAN                    140
-#define TT_MAC_LANGID_AFRIKAANS                   141
-#define TT_MAC_LANGID_BRETON                      142
-#define TT_MAC_LANGID_INUKTITUT                   143
-#define TT_MAC_LANGID_SCOTTISH_GAELIC             144
-#define TT_MAC_LANGID_MANX_GAELIC                 145
-#define TT_MAC_LANGID_IRISH_GAELIC                146
-#define TT_MAC_LANGID_TONGAN                      147
-#define TT_MAC_LANGID_GREEK_POLYTONIC             148
-#define TT_MAC_LANGID_GREELANDIC                  149
-#define TT_MAC_LANGID_AZERBAIJANI_ROMAN_SCRIPT    150
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Possible values of the language identifier field in the name records  */
-  /* of the TTF `name' table if the `platform' identifier code is          */
-  /* TT_PLATFORM_MICROSOFT.                                                */
-  /*                                                                       */
-  /* The canonical source for the MS assigned LCID's used to be at         */
-  /*                                                                       */
-  /*   http://www.microsoft.com/typography/OTSPEC/lcid-cp.txt              */
-  /*                                                                       */
-  /* Now (2002-11-15), the Microsoft site directs to                       */
-  /*                                                                       */
-  /*   http://www.microsoft.com/globaldev/reference/loclanghome.asp        */
-  /*   http://support.microsoft.com/support/kb/articles/Q224/8/04.ASP      */
-  /*                                                                       */
-#define TT_MS_LANGID_ARABIC_SAUDI_ARABIA               0x0401
-#define TT_MS_LANGID_ARABIC_IRAQ                       0x0801
-#define TT_MS_LANGID_ARABIC_EGYPT                      0x0c01
-#define TT_MS_LANGID_ARABIC_LIBYA                      0x1001
-#define TT_MS_LANGID_ARABIC_ALGERIA                    0x1401
-#define TT_MS_LANGID_ARABIC_MOROCCO                    0x1801
-#define TT_MS_LANGID_ARABIC_TUNISIA                    0x1c01
-#define TT_MS_LANGID_ARABIC_OMAN                       0x2001
-#define TT_MS_LANGID_ARABIC_YEMEN                      0x2401
-#define TT_MS_LANGID_ARABIC_SYRIA                      0x2801
-#define TT_MS_LANGID_ARABIC_JORDAN                     0x2c01
-#define TT_MS_LANGID_ARABIC_LEBANON                    0x3001
-#define TT_MS_LANGID_ARABIC_KUWAIT                     0x3401
-#define TT_MS_LANGID_ARABIC_UAE                        0x3801
-#define TT_MS_LANGID_ARABIC_BAHRAIN                    0x3c01
-#define TT_MS_LANGID_ARABIC_QATAR                      0x4001
-#define TT_MS_LANGID_BULGARIAN_BULGARIA                0x0402
-#define TT_MS_LANGID_CATALAN_SPAIN                     0x0403
-#define TT_MS_LANGID_CHINESE_TAIWAN                    0x0404
-#define TT_MS_LANGID_CHINESE_PRC                       0x0804
-#define TT_MS_LANGID_CHINESE_HONG_KONG                 0x0c04
-#define TT_MS_LANGID_CHINESE_SINGAPORE                 0x1004
-
-#if 1  /* this used to be this value (and it still is in many places) */
-#define TT_MS_LANGID_CHINESE_MACAU                     0x1404
-#else  /* but beware, Microsoft may change its mind...
-          the most recent Word reference has the following: */
-#define TT_MS_LANGID_CHINESE_MACAU  TT_MS_LANGID_CHINESE_HONG_KONG
-#endif
-
-#define TT_MS_LANGID_CZECH_CZECH_REPUBLIC              0x0405
-#define TT_MS_LANGID_DANISH_DENMARK                    0x0406
-#define TT_MS_LANGID_GERMAN_GERMANY                    0x0407
-#define TT_MS_LANGID_GERMAN_SWITZERLAND                0x0807
-#define TT_MS_LANGID_GERMAN_AUSTRIA                    0x0c07
-#define TT_MS_LANGID_GERMAN_LUXEMBOURG                 0x1007
-#define TT_MS_LANGID_GERMAN_LIECHTENSTEI               0x1407
-#define TT_MS_LANGID_GREEK_GREECE                      0x0408
-#define TT_MS_LANGID_ENGLISH_UNITED_STATES             0x0409
-#define TT_MS_LANGID_ENGLISH_UNITED_KINGDOM            0x0809
-#define TT_MS_LANGID_ENGLISH_AUSTRALIA                 0x0c09
-#define TT_MS_LANGID_ENGLISH_CANADA                    0x1009
-#define TT_MS_LANGID_ENGLISH_NEW_ZEALAND               0x1409
-#define TT_MS_LANGID_ENGLISH_IRELAND                   0x1809
-#define TT_MS_LANGID_ENGLISH_SOUTH_AFRICA              0x1c09
-#define TT_MS_LANGID_ENGLISH_JAMAICA                   0x2009
-#define TT_MS_LANGID_ENGLISH_CARIBBEAN                 0x2409
-#define TT_MS_LANGID_ENGLISH_BELIZE                    0x2809
-#define TT_MS_LANGID_ENGLISH_TRINIDAD                  0x2c09
-#define TT_MS_LANGID_ENGLISH_ZIMBABWE                  0x3009
-#define TT_MS_LANGID_ENGLISH_PHILIPPINES               0x3409
-#define TT_MS_LANGID_SPANISH_SPAIN_TRADITIONAL_SORT    0x040a
-#define TT_MS_LANGID_SPANISH_MEXICO                    0x080a
-#define TT_MS_LANGID_SPANISH_SPAIN_INTERNATIONAL_SORT  0x0c0a
-#define TT_MS_LANGID_SPANISH_GUATEMALA                 0x100a
-#define TT_MS_LANGID_SPANISH_COSTA_RICA                0x140a
-#define TT_MS_LANGID_SPANISH_PANAMA                    0x180a
-#define TT_MS_LANGID_SPANISH_DOMINICAN_REPUBLIC        0x1c0a
-#define TT_MS_LANGID_SPANISH_VENEZUELA                 0x200a
-#define TT_MS_LANGID_SPANISH_COLOMBIA                  0x240a
-#define TT_MS_LANGID_SPANISH_PERU                      0x280a
-#define TT_MS_LANGID_SPANISH_ARGENTINA                 0x2c0a
-#define TT_MS_LANGID_SPANISH_ECUADOR                   0x300a
-#define TT_MS_LANGID_SPANISH_CHILE                     0x340a
-#define TT_MS_LANGID_SPANISH_URUGUAY                   0x380a
-#define TT_MS_LANGID_SPANISH_PARAGUAY                  0x3c0a
-#define TT_MS_LANGID_SPANISH_BOLIVIA                   0x400a
-#define TT_MS_LANGID_SPANISH_EL_SALVADOR               0x440a
-#define TT_MS_LANGID_SPANISH_HONDURAS                  0x480a
-#define TT_MS_LANGID_SPANISH_NICARAGUA                 0x4c0a
-#define TT_MS_LANGID_SPANISH_PUERTO_RICO               0x500a
-#define TT_MS_LANGID_FINNISH_FINLAND                   0x040b
-#define TT_MS_LANGID_FRENCH_FRANCE                     0x040c
-#define TT_MS_LANGID_FRENCH_BELGIUM                    0x080c
-#define TT_MS_LANGID_FRENCH_CANADA                     0x0c0c
-#define TT_MS_LANGID_FRENCH_SWITZERLAND                0x100c
-#define TT_MS_LANGID_FRENCH_LUXEMBOURG                 0x140c
-#define TT_MS_LANGID_FRENCH_MONACO                     0x180c
-#define TT_MS_LANGID_HEBREW_ISRAEL                     0x040d
-#define TT_MS_LANGID_HUNGARIAN_HUNGARY                 0x040e
-#define TT_MS_LANGID_ICELANDIC_ICELAND                 0x040f
-#define TT_MS_LANGID_ITALIAN_ITALY                     0x0410
-#define TT_MS_LANGID_ITALIAN_SWITZERLAND               0x0810
-#define TT_MS_LANGID_JAPANESE_JAPAN                    0x0411
-#define TT_MS_LANGID_KOREAN_EXTENDED_WANSUNG_KOREA     0x0412
-#define TT_MS_LANGID_KOREAN_JOHAB_KOREA                0x0812
-#define TT_MS_LANGID_DUTCH_NETHERLANDS                 0x0413
-#define TT_MS_LANGID_DUTCH_BELGIUM                     0x0813
-#define TT_MS_LANGID_NORWEGIAN_NORWAY_BOKMAL           0x0414
-#define TT_MS_LANGID_NORWEGIAN_NORWAY_NYNORSK          0x0814
-#define TT_MS_LANGID_POLISH_POLAND                     0x0415
-#define TT_MS_LANGID_PORTUGUESE_BRAZIL                 0x0416
-#define TT_MS_LANGID_PORTUGUESE_PORTUGAL               0x0816
-#define TT_MS_LANGID_RHAETO_ROMANIC_SWITZERLAND        0x0417
-#define TT_MS_LANGID_ROMANIAN_ROMANIA                  0x0418
-#define TT_MS_LANGID_MOLDAVIAN_MOLDAVIA                0x0818
-#define TT_MS_LANGID_RUSSIAN_RUSSIA                    0x0419
-#define TT_MS_LANGID_RUSSIAN_MOLDAVIA                  0x0819
-#define TT_MS_LANGID_CROATIAN_CROATIA                  0x041a
-#define TT_MS_LANGID_SERBIAN_SERBIA_LATIN              0x081a
-#define TT_MS_LANGID_SERBIAN_SERBIA_CYRILLIC           0x0c1a
-#define TT_MS_LANGID_SLOVAK_SLOVAKIA                   0x041b
-#define TT_MS_LANGID_ALBANIAN_ALBANIA                  0x041c
-#define TT_MS_LANGID_SWEDISH_SWEDEN                    0x041d
-#define TT_MS_LANGID_SWEDISH_FINLAND                   0x081d
-#define TT_MS_LANGID_THAI_THAILAND                     0x041e
-#define TT_MS_LANGID_TURKISH_TURKEY                    0x041f
-#define TT_MS_LANGID_URDU_PAKISTAN                     0x0420
-#define TT_MS_LANGID_INDONESIAN_INDONESIA              0x0421
-#define TT_MS_LANGID_UKRAINIAN_UKRAINE                 0x0422
-#define TT_MS_LANGID_BELARUSIAN_BELARUS                0x0423
-#define TT_MS_LANGID_SLOVENE_SLOVENIA                  0x0424
-#define TT_MS_LANGID_ESTONIAN_ESTONIA                  0x0425
-#define TT_MS_LANGID_LATVIAN_LATVIA                    0x0426
-#define TT_MS_LANGID_LITHUANIAN_LITHUANIA              0x0427
-#define TT_MS_LANGID_CLASSIC_LITHUANIAN_LITHUANIA      0x0827
-
-#if 0  /* this seems to be an error that have been dropped */
-#define TT_MS_LANGID_MAORI_NEW_ZEALAND                 0x0428
-#endif
-
-#define TT_MS_LANGID_FARSI_IRAN                        0x0429
-#define TT_MS_LANGID_VIETNAMESE_VIET_NAM               0x042a
-#define TT_MS_LANGID_ARMENIAN_ARMENIA                  0x042b
-#define TT_MS_LANGID_AZERI_AZERBAIJAN_LATIN            0x042c
-#define TT_MS_LANGID_AZERI_AZERBAIJAN_CYRILLIC         0x082c
-#define TT_MS_LANGID_BASQUE_SPAIN                      0x042d
-#define TT_MS_LANGID_SORBIAN_GERMANY                   0x042e
-#define TT_MS_LANGID_MACEDONIAN_MACEDONIA              0x042f
-#define TT_MS_LANGID_SUTU_SOUTH_AFRICA                 0x0430
-#define TT_MS_LANGID_TSONGA_SOUTH_AFRICA               0x0431
-#define TT_MS_LANGID_TSWANA_SOUTH_AFRICA               0x0432
-#define TT_MS_LANGID_VENDA_SOUTH_AFRICA                0x0433
-#define TT_MS_LANGID_XHOSA_SOUTH_AFRICA                0x0434
-#define TT_MS_LANGID_ZULU_SOUTH_AFRICA                 0x0435
-#define TT_MS_LANGID_AFRIKAANS_SOUTH_AFRICA            0x0436
-#define TT_MS_LANGID_GEORGIAN_GEORGIA                  0x0437
-#define TT_MS_LANGID_FAEROESE_FAEROE_ISLANDS           0x0438
-#define TT_MS_LANGID_HINDI_INDIA                       0x0439
-#define TT_MS_LANGID_MALTESE_MALTA                     0x043a
-#define TT_MS_LANGID_SAAMI_LAPONIA                     0x043b
-
-#if 0 /* this seems to be a previous invertion */
-#define TT_MS_LANGID_IRISH_GAELIC_IRELAND              0x043c
-#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM    0x083c
-#else
-#define TT_MS_LANGID_SCOTTISH_GAELIC_UNITED_KINGDOM    0x083c
-#define TT_MS_LANGID_IRISH_GAELIC_IRELAND              0x043c
-#endif
-
-#define TT_MS_LANGID_MALAY_MALAYSIA                    0x043e
-#define TT_MS_LANGID_MALAY_BRUNEI_DARUSSALAM           0x083e
-#define TT_MS_LANGID_KAZAK_KAZAKSTAN                   0x043f
-#define TT_MS_LANGID_SWAHILI_KENYA                     0x0441
-#define TT_MS_LANGID_UZBEK_UZBEKISTAN_LATIN            0x0443
-#define TT_MS_LANGID_UZBEK_UZBEKISTAN_CYRILLIC         0x0843
-#define TT_MS_LANGID_TATAR_TATARSTAN                   0x0444
-#define TT_MS_LANGID_BENGALI_INDIA                     0x0445
-#define TT_MS_LANGID_PUNJABI_INDIA                     0x0446
-#define TT_MS_LANGID_GUJARATI_INDIA                    0x0447
-#define TT_MS_LANGID_ORIYA_INDIA                       0x0448
-#define TT_MS_LANGID_TAMIL_INDIA                       0x0449
-#define TT_MS_LANGID_TELUGU_INDIA                      0x044a
-#define TT_MS_LANGID_KANNADA_INDIA                     0x044b
-#define TT_MS_LANGID_MALAYALAM_INDIA                   0x044c
-#define TT_MS_LANGID_ASSAMESE_INDIA                    0x044d
-#define TT_MS_LANGID_MARATHI_INDIA                     0x044e
-#define TT_MS_LANGID_SANSKRIT_INDIA                    0x044f
-#define TT_MS_LANGID_KONKANI_INDIA                     0x0457
-
-  /* new as of 2001-01-01 */
-#define TT_MS_LANGID_ARABIC_GENERAL                    0x0001
-#define TT_MS_LANGID_CHINESE_GENERAL                   0x0004
-#define TT_MS_LANGID_ENGLISH_GENERAL                   0x0009
-#define TT_MS_LANGID_FRENCH_WEST_INDIES                0x1c0c
-#define TT_MS_LANGID_FRENCH_REUNION                    0x200c
-#define TT_MS_LANGID_FRENCH_CONGO                      0x240c
-  /* which was formerly: */
-#define TT_MS_LANGID_FRENCH_ZAIRE  TT_MS_LANGID_FRENCH_CONGO
-
-#define TT_MS_LANGID_FRENCH_SENEGAL                    0x280c
-#define TT_MS_LANGID_FRENCH_CAMEROON                   0x2c0c
-#define TT_MS_LANGID_FRENCH_COTE_D_IVOIRE              0x300c
-#define TT_MS_LANGID_FRENCH_MALI                       0x340c
-#define TT_MS_LANGID_BOSNIAN_BOSNIA_HERZEGOVINA        0x101a
-#define TT_MS_LANGID_URDU_INDIA                        0x0820
-#define TT_MS_LANGID_TAJIK_TAJIKISTAN                  0x0428
-#define TT_MS_LANGID_YIDDISH_GERMANY                   0x043d
-#define TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN               0x0440
-  /* alias declared in Windows 2000 */
-#define TT_MS_LANGID_KIRGHIZ_KIRGHIZ_REPUBLIC \
-          TT_MS_LANGID_KIRGHIZ_KIRGHIZSTAN
-
-#define TT_MS_LANGID_TURKMEN_TURKMENISTAN              0x0442
-#define TT_MS_LANGID_MONGOLIAN_MONGOLIA /* Cyrillic */ 0x0450
-
-  /* the following seems to be inconsistent;
-     here is the current "official" way: */
-#define TT_MS_LANGID_TIBETAN_BHUTAN                    0x0451
-  /* and here is what is used by Passport SDK */
-#define TT_MS_LANGID_TIBETAN_CHINA                     0x0451
-#define TT_MS_LANGID_DZONGHKA_BHUTAN                   0x0851
-  /* end of inconsistency */
-
-#define TT_MS_LANGID_WELSH_WALES                       0x0452
-#define TT_MS_LANGID_KHMER_CAMBODIA                    0x0453
-#define TT_MS_LANGID_LAO_LAOS                          0x0454
-#define TT_MS_LANGID_BURMESE_MYANMAR                   0x0455
-#define TT_MS_LANGID_GALICIAN_SPAIN                    0x0456
-#define TT_MS_LANGID_MANIPURI_INDIA                    0x0458
-#define TT_MS_LANGID_SINDHI_INDIA                      0x0459
-  /* the following one is only encountered in Microsoft RTF specification */
-#define TT_MS_LANGID_KASHMIRI_PAKISTAN                 0x0460
-  /* the following one is not in the Passport list, looks like an omission */
-#define TT_MS_LANGID_KASHMIRI_INDIA                    0x0860
-#define TT_MS_LANGID_NEPALI_NEPAL                      0x0461
-#define TT_MS_LANGID_NEPALI_INDIA                      0x0861
-#define TT_MS_LANGID_FRISIAN_NETHERLANDS               0x0462
-
-  /* new as of 2001-03-01 (from Office Xp) */
-#define TT_MS_LANGID_ENGLISH_HONG_KONG                 0x3c09
-#define TT_MS_LANGID_ENGLISH_INDIA                     0x4009
-#define TT_MS_LANGID_ENGLISH_MALAYSIA                  0x4409
-#define TT_MS_LANGID_ENGLISH_SINGAPORE                 0x4809
-#define TT_MS_LANGID_SYRIAC_SYRIA                      0x045a
-#define TT_MS_LANGID_SINHALESE_SRI_LANKA               0x045b
-#define TT_MS_LANGID_CHEROKEE_UNITED_STATES            0x045c
-#define TT_MS_LANGID_INUKTITUT_CANADA                  0x045d
-#define TT_MS_LANGID_AMHARIC_ETHIOPIA                  0x045e
-#define TT_MS_LANGID_TAMAZIGHT_MOROCCO                 0x045f
-#define TT_MS_LANGID_TAMAZIGHT_MOROCCO_LATIN           0x085f
-#define TT_MS_LANGID_PASHTO_AFGHANISTAN                0x0463
-#define TT_MS_LANGID_FILIPINO_PHILIPPINES              0x0464
-#define TT_MS_LANGID_DHIVEHI_MALDIVES                  0x0465
-  /* alias declared in Windows 2000 */
-#define TT_MS_LANGID_DIVEHI_MALDIVES  TT_MS_LANGID_DHIVEHI_MALDIVES
-  /* for language codes from 0x0466 to 0x0471 see below */
-#define TT_MS_LANGID_OROMO_ETHIOPIA                    0x0472
-#define TT_MS_LANGID_TIGRIGNA_ETHIOPIA                 0x0473
-#define TT_MS_LANGID_TIGRIGNA_ERYTHREA                 0x0873
-  /* also spelled in the `Passport SDK' list as: */
-#define TT_MS_LANGID_TIGRIGNA_ERYTREA  TT_MS_LANGID_TIGRIGNA_ERYTHREA
-
-  /* New additions from Windows Xp/Passport SDK 2001-11-10. */
-
-  /* don't ask what this one means... It is commented out currently. */
-#if 0
-#define TT_MS_LANGID_GREEK_GREECE2                     0x2008
-#endif
-
-#define TT_MS_LANGID_SPANISH_UNITED_STATES             0x540a
-  /* The following two IDs blatantly violate MS specs by using a */
-  /* sublanguage > 0x1F.                                         */
-#define TT_MS_LANGID_SPANISH_LATIN_AMERICA             0xE40aU
-#define TT_MS_LANGID_FRENCH_NORTH_AFRICA               0xE40cU
-
-#define TT_MS_LANGID_FRENCH_MOROCCO                    0x380c
-#define TT_MS_LANGID_FRENCH_HAITI                      0x3c0c
-#define TT_MS_LANGID_BENGALI_BANGLADESH                0x0845
-#define TT_MS_LANGID_PUNJABI_ARABIC_PAKISTAN           0x0846
-#define TT_MS_LANGID_MONGOLIAN_MONGOLIA_MONGOLIAN      0x0850
-#define TT_MS_LANGID_EDO_NIGERIA                       0x0466
-#define TT_MS_LANGID_FULFULDE_NIGERIA                  0x0467
-#define TT_MS_LANGID_HAUSA_NIGERIA                     0x0468
-#define TT_MS_LANGID_IBIBIO_NIGERIA                    0x0469
-#define TT_MS_LANGID_YORUBA_NIGERIA                    0x046a
-  /* language codes from 0x046b to 0x046f are (still) unknown. */
-#define TT_MS_LANGID_IGBO_NIGERIA                      0x0470
-#define TT_MS_LANGID_KANURI_NIGERIA                    0x0471
-#define TT_MS_LANGID_GUARANI_PARAGUAY                  0x0474
-#define TT_MS_LANGID_HAWAIIAN_UNITED_STATES            0x0475
-#define TT_MS_LANGID_LATIN                             0x0476
-#define TT_MS_LANGID_SOMALI_SOMALIA                    0x0477
-  /* Note: Yi does not have a (proper) ISO 639-2 code, since it is mostly */
-  /*       not written (but OTOH the peculiar writing system is worth     */
-  /*       studying).                                                     */
-#define TT_MS_LANGID_YI_CHINA                          0x0478
-#define TT_MS_LANGID_PAPIAMENTU_NETHERLANDS_ANTILLES   0x0479
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Possible values of the `name' identifier field in the name records of */
-  /* the TTF `name' table.  These values are platform independent.         */
-  /*                                                                       */
-#define TT_NAME_ID_COPYRIGHT            0
-#define TT_NAME_ID_FONT_FAMILY          1
-#define TT_NAME_ID_FONT_SUBFAMILY       2
-#define TT_NAME_ID_UNIQUE_ID            3
-#define TT_NAME_ID_FULL_NAME            4
-#define TT_NAME_ID_VERSION_STRING       5
-#define TT_NAME_ID_PS_NAME              6
-#define TT_NAME_ID_TRADEMARK            7
-
-  /* the following values are from the OpenType spec */
-#define TT_NAME_ID_MANUFACTURER         8
-#define TT_NAME_ID_DESIGNER             9
-#define TT_NAME_ID_DESCRIPTION          10
-#define TT_NAME_ID_VENDOR_URL           11
-#define TT_NAME_ID_DESIGNER_URL         12
-#define TT_NAME_ID_LICENSE              13
-#define TT_NAME_ID_LICENSE_URL          14
-  /* number 15 is reserved */
-#define TT_NAME_ID_PREFERRED_FAMILY     16
-#define TT_NAME_ID_PREFERRED_SUBFAMILY  17
-#define TT_NAME_ID_MAC_FULL_NAME        18
-
-  /* The following code is new as of 2000-01-21 */
-#define TT_NAME_ID_SAMPLE_TEXT          19
-
-  /* This is new in OpenType 1.3 */
-#define TT_NAME_ID_CID_FINDFONT_NAME    20
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Bit mask values for the Unicode Ranges from the TTF `OS2 ' table.     */
-  /*                                                                       */
-  /* Updated 02-Jul-2000.                                                  */
-  /*                                                                       */
-
-  /* General Scripts Area */
-
-  /* Bit  0   Basic Latin */
-#define TT_UCR_BASIC_LATIN                     (1L <<  0) /* U+0020-U+007E */
-  /* Bit  1   C1 Controls and Latin-1 Supplement */
-#define TT_UCR_LATIN1_SUPPLEMENT               (1L <<  1) /* U+0080-U+00FF */
-  /* Bit  2   Latin Extended-A */
-#define TT_UCR_LATIN_EXTENDED_A                (1L <<  2) /* U+0100-U+017F */
-  /* Bit  3   Latin Extended-B */
-#define TT_UCR_LATIN_EXTENDED_B                (1L <<  3) /* U+0180-U+024F */
-  /* Bit  4   IPA Extensions */
-#define TT_UCR_IPA_EXTENSIONS                  (1L <<  4) /* U+0250-U+02AF */
-  /* Bit  5   Spacing Modifier Letters */
-#define TT_UCR_SPACING_MODIFIER                (1L <<  5) /* U+02B0-U+02FF */
-  /* Bit  6   Combining Diacritical Marks */
-#define TT_UCR_COMBINING_DIACRITICS            (1L <<  6) /* U+0300-U+036F */
-  /* Bit  7   Greek and Coptic */
-#define TT_UCR_GREEK                           (1L <<  7) /* U+0370-U+03FF */
-  /* Bit  8 is reserved (was: Greek Symbols and Coptic) */
-  /* Bit  9   Cyrillic               + */
-  /*          Cyrillic Supplementary   */
-#define TT_UCR_CYRILLIC                        (1L <<  9) /* U+0400-U+04FF */
-                                                          /* U+0500-U+052F */
-  /* Bit 10   Armenian */
-#define TT_UCR_ARMENIAN                        (1L << 10) /* U+0530-U+058F */
-  /* Bit 11   Hebrew */
-#define TT_UCR_HEBREW                          (1L << 11) /* U+0590-U+05FF */
-  /* Bit 12 is reserved (was: Hebrew Extended) */
-  /* Bit 13   Arabic */
-#define TT_UCR_ARABIC                          (1L << 13) /* U+0600-U+06FF */
-  /* Bit 14 is reserved (was: Arabic Extended) */
-  /* Bit 15   Devanagari */
-#define TT_UCR_DEVANAGARI                      (1L << 15) /* U+0900-U+097F */
-  /* Bit 16   Bengali */
-#define TT_UCR_BENGALI                         (1L << 16) /* U+0980-U+09FF */
-  /* Bit 17   Gurmukhi */
-#define TT_UCR_GURMUKHI                        (1L << 17) /* U+0A00-U+0A7F */
-  /* Bit 18   Gujarati */
-#define TT_UCR_GUJARATI                        (1L << 18) /* U+0A80-U+0AFF */
-  /* Bit 19   Oriya */
-#define TT_UCR_ORIYA                           (1L << 19) /* U+0B00-U+0B7F */
-  /* Bit 20   Tamil */
-#define TT_UCR_TAMIL                           (1L << 20) /* U+0B80-U+0BFF */
-  /* Bit 21   Telugu */
-#define TT_UCR_TELUGU                          (1L << 21) /* U+0C00-U+0C7F */
-  /* Bit 22   Kannada */
-#define TT_UCR_KANNADA                         (1L << 22) /* U+0C80-U+0CFF */
-  /* Bit 23   Malayalam */
-#define TT_UCR_MALAYALAM                       (1L << 23) /* U+0D00-U+0D7F */
-  /* Bit 24   Thai */
-#define TT_UCR_THAI                            (1L << 24) /* U+0E00-U+0E7F */
-  /* Bit 25   Lao */
-#define TT_UCR_LAO                             (1L << 25) /* U+0E80-U+0EFF */
-  /* Bit 26   Georgian */
-#define TT_UCR_GEORGIAN                        (1L << 26) /* U+10A0-U+10FF */
-  /* Bit 27 is reserved (was Georgian Extended) */
-  /* Bit 28   Hangul Jamo */
-#define TT_UCR_HANGUL_JAMO                     (1L << 28) /* U+1100-U+11FF */
-  /* Bit 29   Latin Extended Additional */
-#define TT_UCR_LATIN_EXTENDED_ADDITIONAL       (1L << 29) /* U+1E00-U+1EFF */
-  /* Bit 30   Greek Extended */
-#define TT_UCR_GREEK_EXTENDED                  (1L << 30) /* U+1F00-U+1FFF */
-
-  /* Symbols Area */
-
-  /* Bit 31   General Punctuation */
-#define TT_UCR_GENERAL_PUNCTUATION             (1L << 31) /* U+2000-U+206F */
-  /* Bit 32   Superscripts And Subscripts */
-#define TT_UCR_SUPERSCRIPTS_SUBSCRIPTS         (1L <<  0) /* U+2070-U+209F */
-  /* Bit 33   Currency Symbols */
-#define TT_UCR_CURRENCY_SYMBOLS                (1L <<  1) /* U+20A0-U+20CF */
-  /* Bit 34   Combining Diacritical Marks For Symbols */
-#define TT_UCR_COMBINING_DIACRITICS_SYMB       (1L <<  2) /* U+20D0-U+20FF */
-  /* Bit 35   Letterlike Symbols */
-#define TT_UCR_LETTERLIKE_SYMBOLS              (1L <<  3) /* U+2100-U+214F */
-  /* Bit 36   Number Forms */
-#define TT_UCR_NUMBER_FORMS                    (1L <<  4) /* U+2150-U+218F */
-  /* Bit 37   Arrows                + */
-  /*          Supplemental Arrows-A + */
-  /*          Supplemental Arrows-B   */
-#define TT_UCR_ARROWS                          (1L <<  5) /* U+2190-U+21FF */
-                                                          /* U+27F0-U+27FF */
-                                                          /* U+2900-U+297F */
-  /* Bit 38   Mathematical Operators               + */
-  /*          Supplemental Mathematical Operators  + */
-  /*          Miscellaneous Mathematical Symbols-A + */
-  /*          Miscellaneous Mathematical Symbols-B   */
-#define TT_UCR_MATHEMATICAL_OPERATORS          (1L <<  6) /* U+2200-U+22FF */
-                                                          /* U+2A00-U+2AFF */
-                                                          /* U+27C0-U+27EF */
-                                                          /* U+2980-U+29FF */
-  /* Bit 39 Miscellaneous Technical */
-#define TT_UCR_MISCELLANEOUS_TECHNICAL         (1L <<  7) /* U+2300-U+23FF */
-  /* Bit 40   Control Pictures */
-#define TT_UCR_CONTROL_PICTURES                (1L <<  8) /* U+2400-U+243F */
-  /* Bit 41   Optical Character Recognition */
-#define TT_UCR_OCR                             (1L <<  9) /* U+2440-U+245F */
-  /* Bit 42   Enclosed Alphanumerics */
-#define TT_UCR_ENCLOSED_ALPHANUMERICS          (1L << 10) /* U+2460-U+24FF */
-  /* Bit 43   Box Drawing */
-#define TT_UCR_BOX_DRAWING                     (1L << 11) /* U+2500-U+257F */
-  /* Bit 44   Block Elements */
-#define TT_UCR_BLOCK_ELEMENTS                  (1L << 12) /* U+2580-U+259F */
-  /* Bit 45   Geometric Shapes */
-#define TT_UCR_GEOMETRIC_SHAPES                (1L << 13) /* U+25A0-U+25FF */
-  /* Bit 46   Miscellaneous Symbols */
-#define TT_UCR_MISCELLANEOUS_SYMBOLS           (1L << 14) /* U+2600-U+26FF */
-  /* Bit 47   Dingbats */
-#define TT_UCR_DINGBATS                        (1L << 15) /* U+2700-U+27BF */
-
-  /* CJK Phonetics and Symbols Area */
-
-  /* Bit 48   CJK Symbols and Punctuation */
-#define TT_UCR_CJK_SYMBOLS                     (1L << 16) /* U+3000-U+303F */
-  /* Bit 49   Hiragana */
-#define TT_UCR_HIRAGANA                        (1L << 17) /* U+3040-U+309F */
-  /* Bit 50   Katakana                     + */
-  /*          Katakana Phonetic Extensions   */
-#define TT_UCR_KATAKANA                        (1L << 18) /* U+30A0-U+30FF */
-                                                          /* U+31F0-U+31FF */
-  /* Bit 51   Bopomofo          + */
-  /*          Bopomofo Extended   */
-#define TT_UCR_BOPOMOFO                        (1L << 19) /* U+3100-U+312F */
-                                                          /* U+31A0-U+31BF */
-  /* Bit 52   Hangul Compatibility Jamo */
-#define TT_UCR_HANGUL_COMPATIBILITY_JAMO       (1L << 20) /* U+3130-U+318F */
-  /* Bit 53   Kanbun */
-#define TT_UCR_CJK_MISC                        (1L << 21) /* U+3190-U+319F */
-#define TT_UCR_KANBUN  TT_UCR_CJK_MISC
-  /* Bit 54   Enclosed CJK Letters and Months */
-#define TT_UCR_ENCLOSED_CJK_LETTERS_MONTHS     (1L << 22) /* U+3200-U+32FF */
-  /* Bit 55   CJK Compatibility */
-#define TT_UCR_CJK_COMPATIBILITY               (1L << 23) /* U+3300-U+33FF */
-
-  /* Hangul Syllables Area */
-
-  /* Bit 56   Hangul */
-#define TT_UCR_HANGUL                          (1L << 24) /* U+AC00-U+D7A3 */
-
-  /* Surrogates Area */
-
-  /* Bit 57   High Surrogates             + */
-  /*          High Private Use Surrogates + */
-  /*          Low Surrogates                */
-#define TT_UCR_SURROGATES                      (1L << 25) /* U+D800-U+DB7F */
-                                                          /* U+DB80-U+DBFF */
-                                                          /* U+DC00-U+DFFF */
-  /* According to OpenType specs v.1.3+, setting bit 57 implies that there */
-  /* is at least one codepoint beyond the Basic Multilingual Plane that is */
-  /* supported by this font.  So it really means:            >= U+10000    */
-
-  /* Bit 58 is reserved for Unicode SubRanges */
-
-  /* CJK Ideographs Area */
-
-  /* Bit 59   CJK Unified Ideographs             + */
-  /*          CJK Radicals Supplement            + */
-  /*          Kangxi Radicals                    + */
-  /*          Ideographic Description Characters + */
-  /*          CJK Unified Ideographs Extension A   */
-  /*          CJK Unified Ideographs Extension A + */
-  /*          CJK Unified Ideographs Extension B + */
-  /*          Kanbun                               */
-#define TT_UCR_CJK_UNIFIED_IDEOGRAPHS          (1L << 27) /* U+4E00-U+9FFF */
-                                                          /* U+2E80-U+2EFF */
-                                                          /* U+2F00-U+2FDF */
-                                                          /* U+2FF0-U+2FFF */
-                                                          /* U+3400-U+4DB5 */
-                                                          /*U+20000-U+2A6DF*/
-                                                          /* U+3190-U+319F */
-
-  /* Private Use Area */
-
-  /* Bit 60   Private Use */
-#define TT_UCR_PRIVATE_USE                     (1L << 28) /* U+E000-U+F8FF */
-
-  /* Compatibility Area and Specials */
-
-  /* Bit 61   CJK Compatibility Ideographs            + */
-  /*          CJK Compatibility Ideographs Supplement   */
-#define TT_UCR_CJK_COMPATIBILITY_IDEOGRAPHS    (1L << 29) /* U+F900-U+FAFF */
-                                                          /*U+2F800-U+2FA1F*/
-  /* Bit 62   Alphabetic Presentation Forms */
-#define TT_UCR_ALPHABETIC_PRESENTATION_FORMS   (1L << 30) /* U+FB00-U+FB4F */
-  /* Bit 63   Arabic Presentation Forms-A */
-#define TT_UCR_ARABIC_PRESENTATIONS_A          (1L << 31) /* U+FB50-U+FDFF */
-  /* Bit 64   Combining Half Marks */
-#define TT_UCR_COMBINING_HALF_MARKS            (1L <<  0) /* U+FE20-U+FE2F */
-  /* Bit 65   CJK Compatibility Forms */
-#define TT_UCR_CJK_COMPATIBILITY_FORMS         (1L <<  1) /* U+FE30-U+FE4F */
-  /* Bit 66   Small Form Variants */
-#define TT_UCR_SMALL_FORM_VARIANTS             (1L <<  2) /* U+FE50-U+FE6F */
-  /* Bit 67   Arabic Presentation Forms-B */
-#define TT_UCR_ARABIC_PRESENTATIONS_B          (1L <<  3) /* U+FE70-U+FEFE */
-  /* Bit 68   Halfwidth and Fullwidth Forms */
-#define TT_UCR_HALFWIDTH_FULLWIDTH_FORMS       (1L <<  4) /* U+FF00-U+FFEF */
-  /* Bit 69   Specials */
-#define TT_UCR_SPECIALS                        (1L <<  5) /* U+FFF0-U+FFFD */
-  /* Bit 70   Tibetan */
-#define TT_UCR_TIBETAN                         (1L <<  6) /* U+0F00-U+0FFF */
-  /* Bit 71   Syriac */
-#define TT_UCR_SYRIAC                          (1L <<  7) /* U+0700-U+074F */
-  /* Bit 72   Thaana */
-#define TT_UCR_THAANA                          (1L <<  8) /* U+0780-U+07BF */
-  /* Bit 73   Sinhala */
-#define TT_UCR_SINHALA                         (1L <<  9) /* U+0D80-U+0DFF */
-  /* Bit 74   Myanmar */
-#define TT_UCR_MYANMAR                         (1L << 10) /* U+1000-U+109F */
-  /* Bit 75   Ethiopic */
-#define TT_UCR_ETHIOPIC                        (1L << 11) /* U+1200-U+137F */
-  /* Bit 76   Cherokee */
-#define TT_UCR_CHEROKEE                        (1L << 12) /* U+13A0-U+13FF */
-  /* Bit 77   Unified Canadian Aboriginal Syllabics */
-#define TT_UCR_CANADIAN_ABORIGINAL_SYLLABICS   (1L << 13) /* U+1400-U+167F */
-  /* Bit 78   Ogham */
-#define TT_UCR_OGHAM                           (1L << 14) /* U+1680-U+169F */
-  /* Bit 79   Runic */
-#define TT_UCR_RUNIC                           (1L << 15) /* U+16A0-U+16FF */
-  /* Bit 80   Khmer */
-#define TT_UCR_KHMER                           (1L << 16) /* U+1780-U+17FF */
-  /* Bit 81   Mongolian */
-#define TT_UCR_MONGOLIAN                       (1L << 17) /* U+1800-U+18AF */
-  /* Bit 82   Braille Patterns */
-#define TT_UCR_BRAILLE                         (1L << 18) /* U+2800-U+28FF */
-  /* Bit 83   Yi Syllables + */
-  /*          Yi Radicals    */
-#define TT_UCR_YI                              (1L << 19) /* U+A000-U+A48F */
-                                                          /* U+A490-U+A4CF */
-  /* Bit 84   Tagalog  + */
-  /*          Hanunoo  + */
-  /*          Buhid    + */
-  /*          Tagbanwa   */
-#define TT_UCR_PHILIPPINE                      (1L << 20) /* U+1700-U+171F */
-                                                          /* U+1720-U+173F */
-                                                          /* U+1740-U+175F */
-                                                          /* U+1760-U+177F */
-  /* Bit 85   Old Italic */
-#define TT_UCR_OLD_ITALIC                      (1L << 21) /*U+10300-U+1032F*/
-  /* Bit 86   Gothic */
-#define TT_UCR_GOTHIC                          (1L << 22) /*U+10330-U+1034F*/
-  /* Bit 87   Deseret */
-#define TT_UCR_DESERET                         (1L << 23) /*U+10400-U+1044F*/
-  /* Bit 88   Byzantine Musical Symbols + */
-  /*          Musical Symbols             */
-#define TT_UCR_MUSICAL_SYMBOLS                 (1L << 24) /*U+1D000-U+1D0FF*/
-                                                          /*U+1D100-U+1D1FF*/
-  /* Bit 89   Mathematical Alphanumeric Symbols */
-#define TT_UCR_MATH_ALPHANUMERIC_SYMBOLS       (1L << 25) /*U+1D400-U+1D7FF*/
-  /* Bit 90   Private Use (plane 15) + */
-  /*          Private Use (plane 16)   */
-#define TT_UCR_PRIVATE_USE_SUPPLEMENTARY       (1L << 26) /*U+F0000-U+FFFFD*/
-                                                        /*U+100000-U+10FFFD*/
-  /* Bit 91   Variation Selectors */
-#define TT_UCR_VARIATION_SELECTORS             (1L << 27) /* U+FE00-U+FE0F */
-  /* Bit 92   Tags */
-#define TT_UCR_TAGS                            (1L << 28) /*U+E0000-U+E007F*/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Some compilers have a very limited length of identifiers.             */
-  /*                                                                       */
-#if defined( __TURBOC__ ) && __TURBOC__ < 0x0410 || defined( __PACIFIC__ )
-#define HAVE_LIMIT_ON_IDENTS
-#endif
-
-
-#ifndef HAVE_LIMIT_ON_IDENTS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Here some alias #defines in order to be clearer.                      */
-  /*                                                                       */
-  /* These are not always #defined to stay within the 31 character limit   */
-  /* which some compilers have.                                            */
-  /*                                                                       */
-  /* Credits go to Dave Hoo <dhoo@flash.net> for pointing out that modern  */
-  /* Borland compilers (read: from BC++ 3.1 on) can increase this limit.   */
-  /* If you get a warning with such a compiler, use the -i40 switch.       */
-  /*                                                                       */
-#define TT_UCR_ARABIC_PRESENTATION_FORMS_A      \
-         TT_UCR_ARABIC_PRESENTATIONS_A
-#define TT_UCR_ARABIC_PRESENTATION_FORMS_B      \
-         TT_UCR_ARABIC_PRESENTATIONS_B
-
-#define TT_UCR_COMBINING_DIACRITICAL_MARKS      \
-         TT_UCR_COMBINING_DIACRITICS
-#define TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB \
-         TT_UCR_COMBINING_DIACRITICS_SYMB
-
-
-#endif /* !HAVE_LIMIT_ON_IDENTS */
-
-
-FT_END_HEADER
-
-#endif /* __TTNAMEID_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/tttables.h b/nx-X11/extras/freetype2/include/freetype/tttables.h
deleted file mode 100644
index 26e66b977..000000000
--- a/nx-X11/extras/freetype2/include/freetype/tttables.h
+++ /dev/null
@@ -1,694 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  tttables.h                                                             */
-/*                                                                         */
-/*    Basic SFNT/TrueType tables definitions and interface                 */
-/*    (specification only).                                                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTTABLES_H__
-#define __TTTABLES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Section>                                                             */
-  /*    truetype_tables                                                    */
-  /*                                                                       */
-  /* <Title>                                                               */
-  /*    TrueType Tables                                                    */
-  /*                                                                       */
-  /* <Abstract>                                                            */
-  /*    TrueType-specific table types and functions.                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This section contains the definition of TrueType-specific tables   */
-  /*    as well as some routines used to access and process them.          */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Header                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a TrueType font header table.  All       */
-  /*    fields follow the TrueType specification.                          */
-  /*                                                                       */
-  typedef struct  TT_Header_
-  {
-    FT_Fixed   Table_Version;
-    FT_Fixed   Font_Revision;
-
-    FT_Long    CheckSum_Adjust;
-    FT_Long    Magic_Number;
-
-    FT_UShort  Flags;
-    FT_UShort  Units_Per_EM;
-
-    FT_Long    Created [2];
-    FT_Long    Modified[2];
-
-    FT_Short   xMin;
-    FT_Short   yMin;
-    FT_Short   xMax;
-    FT_Short   yMax;
-
-    FT_UShort  Mac_Style;
-    FT_UShort  Lowest_Rec_PPEM;
-
-    FT_Short   Font_Direction;
-    FT_Short   Index_To_Loc_Format;
-    FT_Short   Glyph_Data_Format;
-
-  } TT_Header;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_HoriHeader                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a TrueType horizontal header, the `hhea' */
-  /*    table, as well as the corresponding horizontal metrics table,      */
-  /*    i.e., the `hmtx' table.                                            */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    Version                :: The table version.                       */
-  /*                                                                       */
-  /*    Ascender               :: The font's ascender, i.e., the distance  */
-  /*                              from the baseline to the top-most of all */
-  /*                              glyph points found in the font.          */
-  /*                                                                       */
-  /*                              This value is invalid in many fonts, as  */
-  /*                              it is usually set by the font designer,  */
-  /*                              and often reflects only a portion of the */
-  /*                              glyphs found in the font (maybe ASCII).  */
-  /*                                                                       */
-  /*                              You should use the `sTypoAscender' field */
-  /*                              of the OS/2 table instead if you want    */
-  /*                              the correct one.                         */
-  /*                                                                       */
-  /*    Descender              :: The font's descender, i.e., the distance */
-  /*                              from the baseline to the bottom-most of  */
-  /*                              all glyph points found in the font.  It  */
-  /*                              is negative.                             */
-  /*                                                                       */
-  /*                              This value is invalid in many fonts, as  */
-  /*                              it is usually set by the font designer,  */
-  /*                              and often reflects only a portion of the */
-  /*                              glyphs found in the font (maybe ASCII).  */
-  /*                                                                       */
-  /*                              You should use the `sTypoDescender'      */
-  /*                              field of the OS/2 table instead if you   */
-  /*                              want the correct one.                    */
-  /*                                                                       */
-  /*    Line_Gap               :: The font's line gap, i.e., the distance  */
-  /*                              to add to the ascender and descender to  */
-  /*                              get the BTB, i.e., the                   */
-  /*                              baseline-to-baseline distance for the    */
-  /*                              font.                                    */
-  /*                                                                       */
-  /*    advance_Width_Max      :: This field is the maximum of all advance */
-  /*                              widths found in the font.  It can be     */
-  /*                              used to compute the maximum width of an  */
-  /*                              arbitrary string of text.                */
-  /*                                                                       */
-  /*    min_Left_Side_Bearing  :: The minimum left side bearing of all     */
-  /*                              glyphs within the font.                  */
-  /*                                                                       */
-  /*    min_Right_Side_Bearing :: The minimum right side bearing of all    */
-  /*                              glyphs within the font.                  */
-  /*                                                                       */
-  /*    xMax_Extent            :: The maximum horizontal extent (i.e., the */
-  /*                              `width' of a glyph's bounding box) for   */
-  /*                              all glyphs in the font.                  */
-  /*                                                                       */
-  /*    caret_Slope_Rise       :: The rise coefficient of the cursor's     */
-  /*                              slope of the cursor (slope=rise/run).    */
-  /*                                                                       */
-  /*    caret_Slope_Run        :: The run coefficient of the cursor's      */
-  /*                              slope.                                   */
-  /*                                                                       */
-  /*    Reserved               :: 10 reserved bytes.                       */
-  /*                                                                       */
-  /*    metric_Data_Format     :: Always 0.                                */
-  /*                                                                       */
-  /*    number_Of_HMetrics     :: Number of HMetrics entries in the `hmtx' */
-  /*                              table -- this value can be smaller than  */
-  /*                              the total number of glyphs in the font.  */
-  /*                                                                       */
-  /*    long_metrics           :: A pointer into the `hmtx' table.         */
-  /*                                                                       */
-  /*    short_metrics          :: A pointer into the `hmtx' table.         */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should   */
-  /*               be identical except for the names of their fields which */
-  /*               are different.                                          */
-  /*                                                                       */
-  /*               This ensures that a single function in the `ttload'     */
-  /*               module is able to read both the horizontal and vertical */
-  /*               headers.                                                */
-  /*                                                                       */
-  typedef struct  TT_HoriHeader_
-  {
-    FT_Fixed   Version;
-    FT_Short   Ascender;
-    FT_Short   Descender;
-    FT_Short   Line_Gap;
-
-    FT_UShort  advance_Width_Max;      /* advance width maximum */
-
-    FT_Short   min_Left_Side_Bearing;  /* minimum left-sb       */
-    FT_Short   min_Right_Side_Bearing; /* minimum right-sb      */
-    FT_Short   xMax_Extent;            /* xmax extents          */
-    FT_Short   caret_Slope_Rise;
-    FT_Short   caret_Slope_Run;
-    FT_Short   caret_Offset;
-
-    FT_Short   Reserved[4];
-
-    FT_Short   metric_Data_Format;
-    FT_UShort  number_Of_HMetrics;
-
-    /* The following fields are not defined by the TrueType specification */
-    /* but they are used to connect the metrics header to the relevant    */
-    /* `HMTX' table.                                                      */
-
-    void*      long_metrics;
-    void*      short_metrics;
-
-  } TT_HoriHeader;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_VertHeader                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a TrueType vertical header, the `vhea'   */
-  /*    table, as well as the corresponding vertical metrics table, i.e.,  */
-  /*    the `vmtx' table.                                                  */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    Version                 :: The table version.                      */
-  /*                                                                       */
-  /*    Ascender                :: The font's ascender, i.e., the distance */
-  /*                               from the baseline to the top-most of    */
-  /*                               all glyph points found in the font.     */
-  /*                                                                       */
-  /*                               This value is invalid in many fonts, as */
-  /*                               it is usually set by the font designer, */
-  /*                               and often reflects only a portion of    */
-  /*                               the glyphs found in the font (maybe     */
-  /*                               ASCII).                                 */
-  /*                                                                       */
-  /*                               You should use the `sTypoAscender'      */
-  /*                               field of the OS/2 table instead if you  */
-  /*                               want the correct one.                   */
-  /*                                                                       */
-  /*    Descender               :: The font's descender, i.e., the         */
-  /*                               distance from the baseline to the       */
-  /*                               bottom-most of all glyph points found   */
-  /*                               in the font.  It is negative.           */
-  /*                                                                       */
-  /*                               This value is invalid in many fonts, as */
-  /*                               it is usually set by the font designer, */
-  /*                               and often reflects only a portion of    */
-  /*                               the glyphs found in the font (maybe     */
-  /*                               ASCII).                                 */
-  /*                                                                       */
-  /*                               You should use the `sTypoDescender'     */
-  /*                               field of the OS/2 table instead if you  */
-  /*                               want the correct one.                   */
-  /*                                                                       */
-  /*    Line_Gap                :: The font's line gap, i.e., the distance */
-  /*                               to add to the ascender and descender to */
-  /*                               get the BTB, i.e., the                  */
-  /*                               baseline-to-baseline distance for the   */
-  /*                               font.                                   */
-  /*                                                                       */
-  /*    advance_Height_Max      :: This field is the maximum of all        */
-  /*                               advance heights found in the font.  It  */
-  /*                               can be used to compute the maximum      */
-  /*                               height of an arbitrary string of text.  */
-  /*                                                                       */
-  /*    min_Top_Side_Bearing    :: The minimum top side bearing of all     */
-  /*                               glyphs within the font.                 */
-  /*                                                                       */
-  /*    min_Bottom_Side_Bearing :: The minimum bottom side bearing of all  */
-  /*                               glyphs within the font.                 */
-  /*                                                                       */
-  /*    yMax_Extent             :: The maximum vertical extent (i.e., the  */
-  /*                               `height' of a glyph's bounding box) for */
-  /*                               all glyphs in the font.                 */
-  /*                                                                       */
-  /*    caret_Slope_Rise        :: The rise coefficient of the cursor's    */
-  /*                               slope of the cursor (slope=rise/run).   */
-  /*                                                                       */
-  /*    caret_Slope_Run         :: The run coefficient of the cursor's     */
-  /*                               slope.                                  */
-  /*                                                                       */
-  /*    caret_Offset            :: The cursor's offset for slanted fonts.  */
-  /*                               This value is `reserved' in vmtx        */
-  /*                               version 1.0.                            */
-  /*                                                                       */
-  /*    Reserved                :: 8 reserved bytes.                       */
-  /*                                                                       */
-  /*    metric_Data_Format      :: Always 0.                               */
-  /*                                                                       */
-  /*    number_Of_HMetrics      :: Number of VMetrics entries in the       */
-  /*                               `vmtx' table -- this value can be       */
-  /*                               smaller than the total number of glyphs */
-  /*                               in the font.                            */
-  /*                                                                       */
-  /*    long_metrics           :: A pointer into the `vmtx' table.         */
-  /*                                                                       */
-  /*    short_metrics          :: A pointer into the `vmtx' table.         */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should   */
-  /*               be identical except for the names of their fields which */
-  /*               are different.                                          */
-  /*                                                                       */
-  /*               This ensures that a single function in the `ttload'     */
-  /*               module is able to read both the horizontal and vertical */
-  /*               headers.                                                */
-  /*                                                                       */
-  typedef struct  TT_VertHeader_
-  {
-    FT_Fixed   Version;
-    FT_Short   Ascender;
-    FT_Short   Descender;
-    FT_Short   Line_Gap;
-
-    FT_UShort  advance_Height_Max;      /* advance height maximum */
-
-    FT_Short   min_Top_Side_Bearing;    /* minimum left-sb or top-sb       */
-    FT_Short   min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb   */
-    FT_Short   yMax_Extent;             /* xmax or ymax extents            */
-    FT_Short   caret_Slope_Rise;
-    FT_Short   caret_Slope_Run;
-    FT_Short   caret_Offset;
-
-    FT_Short   Reserved[4];
-
-    FT_Short   metric_Data_Format;
-    FT_UShort  number_Of_VMetrics;
-
-    /* The following fields are not defined by the TrueType specification */
-    /* but they're used to connect the metrics header to the relevant     */
-    /* `HMTX' or `VMTX' table.                                            */
-
-    void*      long_metrics;
-    void*      short_metrics;
-
-  } TT_VertHeader;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_OS2                                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a TrueType OS/2 table. This is the long  */
-  /*    table version.  All fields comply to the TrueType specification.   */
-  /*                                                                       */
-  /*    Note that we now support old Mac fonts which do not include an     */
-  /*    OS/2 table.  In this case, the `version' field is always set to    */
-  /*    0xFFFF.                                                            */
-  /*                                                                       */
-  typedef struct  TT_OS2_
-  {
-    FT_UShort  version;                /* 0x0001 - more or 0xFFFF */
-    FT_Short   xAvgCharWidth;
-    FT_UShort  usWeightClass;
-    FT_UShort  usWidthClass;
-    FT_Short   fsType;
-    FT_Short   ySubscriptXSize;
-    FT_Short   ySubscriptYSize;
-    FT_Short   ySubscriptXOffset;
-    FT_Short   ySubscriptYOffset;
-    FT_Short   ySuperscriptXSize;
-    FT_Short   ySuperscriptYSize;
-    FT_Short   ySuperscriptXOffset;
-    FT_Short   ySuperscriptYOffset;
-    FT_Short   yStrikeoutSize;
-    FT_Short   yStrikeoutPosition;
-    FT_Short   sFamilyClass;
-
-    FT_Byte    panose[10];
-
-    FT_ULong   ulUnicodeRange1;        /* Bits 0-31   */
-    FT_ULong   ulUnicodeRange2;        /* Bits 32-63  */
-    FT_ULong   ulUnicodeRange3;        /* Bits 64-95  */
-    FT_ULong   ulUnicodeRange4;        /* Bits 96-127 */
-
-    FT_Char    achVendID[4];
-
-    FT_UShort  fsSelection;
-    FT_UShort  usFirstCharIndex;
-    FT_UShort  usLastCharIndex;
-    FT_Short   sTypoAscender;
-    FT_Short   sTypoDescender;
-    FT_Short   sTypoLineGap;
-    FT_UShort  usWinAscent;
-    FT_UShort  usWinDescent;
-
-    /* only version 1 tables: */
-
-    FT_ULong   ulCodePageRange1;       /* Bits 0-31   */
-    FT_ULong   ulCodePageRange2;       /* Bits 32-63  */
-
-    /* only version 2 tables: */
-
-    FT_Short   sxHeight;
-    FT_Short   sCapHeight;
-    FT_UShort  usDefaultChar;
-    FT_UShort  usBreakChar;
-    FT_UShort  usMaxContext;
-
-  } TT_OS2;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_Postscript                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a TrueType Postscript table.  All fields */
-  /*    comply to the TrueType table.  This structure does not reference   */
-  /*    the Postscript glyph names, which can be nevertheless accessed     */
-  /*    with the `ttpost' module.                                          */
-  /*                                                                       */
-  typedef struct  TT_Postscript_
-  {
-    FT_Fixed  FormatType;
-    FT_Fixed  italicAngle;
-    FT_Short  underlinePosition;
-    FT_Short  underlineThickness;
-    FT_ULong  isFixedPitch;
-    FT_ULong  minMemType42;
-    FT_ULong  maxMemType42;
-    FT_ULong  minMemType1;
-    FT_ULong  maxMemType1;
-
-    /* Glyph names follow in the file, but we don't   */
-    /* load them by default.  See the ttpost.c file.  */
-
-  } TT_Postscript;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_PCLT                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a TrueType PCLT table.  All fields       */
-  /*    comply to the TrueType table.                                      */
-  /*                                                                       */
-  typedef struct  TT_PCLT_
-  {
-    FT_Fixed   Version;
-    FT_ULong   FontNumber;
-    FT_UShort  Pitch;
-    FT_UShort  xHeight;
-    FT_UShort  Style;
-    FT_UShort  TypeFamily;
-    FT_UShort  CapHeight;
-    FT_UShort  SymbolSet;
-    FT_Char    TypeFace[16];
-    FT_Char    CharacterComplement[8];
-    FT_Char    FileName[6];
-    FT_Char    StrokeWeight;
-    FT_Char    WidthType;
-    FT_Byte    SerifStyle;
-    FT_Byte    Reserved;
-
-  } TT_PCLT;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_MaxProfile                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The maximum profile is a table containing many max values which    */
-  /*    can be used to pre-allocate arrays.  This ensures that no memory   */
-  /*    allocation occurs during a glyph load.                             */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    version               :: The version number.                       */
-  /*                                                                       */
-  /*    numGlyphs             :: The number of glyphs in this TrueType     */
-  /*                             font.                                     */
-  /*                                                                       */
-  /*    maxPoints             :: The maximum number of points in a         */
-  /*                             non-composite TrueType glyph.  See also   */
-  /*                             the structure element                     */
-  /*                             `maxCompositePoints'.                     */
-  /*                                                                       */
-  /*    maxContours           :: The maximum number of contours in a       */
-  /*                             non-composite TrueType glyph.  See also   */
-  /*                             the structure element                     */
-  /*                             `maxCompositeContours'.                   */
-  /*                                                                       */
-  /*    maxCompositePoints    :: The maximum number of points in a         */
-  /*                             composite TrueType glyph.  See also the   */
-  /*                             structure element `maxPoints'.            */
-  /*                                                                       */
-  /*    maxCompositeContours  :: The maximum number of contours in a       */
-  /*                             composite TrueType glyph.  See also the   */
-  /*                             structure element `maxContours'.          */
-  /*                                                                       */
-  /*    maxZones              :: The maximum number of zones used for      */
-  /*                             glyph hinting.                            */
-  /*                                                                       */
-  /*    maxTwilightPoints     :: The maximum number of points in the       */
-  /*                             twilight zone used for glyph hinting.     */
-  /*                                                                       */
-  /*    maxStorage            :: The maximum number of elements in the     */
-  /*                             storage area used for glyph hinting.      */
-  /*                                                                       */
-  /*    maxFunctionDefs       :: The maximum number of function            */
-  /*                             definitions in the TrueType bytecode for  */
-  /*                             this font.                                */
-  /*                                                                       */
-  /*    maxInstructionDefs    :: The maximum number of instruction         */
-  /*                             definitions in the TrueType bytecode for  */
-  /*                             this font.                                */
-  /*                                                                       */
-  /*    maxStackElements      :: The maximum number of stack elements used */
-  /*                             during bytecode interpretation.           */
-  /*                                                                       */
-  /*    maxSizeOfInstructions :: The maximum number of TrueType opcodes    */
-  /*                             used for glyph hinting.                   */
-  /*                                                                       */
-  /*    maxComponentElements  :: The maximum number of simple (i.e., non-  */
-  /*                             composite) glyphs in a composite glyph.   */
-  /*                                                                       */
-  /*    maxComponentDepth     :: The maximum nesting depth of composite    */
-  /*                             glyphs.                                   */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This structure is only used during font loading.                   */
-  /*                                                                       */
-  typedef struct  TT_MaxProfile_
-  {
-    FT_Fixed   version;
-    FT_UShort  numGlyphs;
-    FT_UShort  maxPoints;
-    FT_UShort  maxContours;
-    FT_UShort  maxCompositePoints;
-    FT_UShort  maxCompositeContours;
-    FT_UShort  maxZones;
-    FT_UShort  maxTwilightPoints;
-    FT_UShort  maxStorage;
-    FT_UShort  maxFunctionDefs;
-    FT_UShort  maxInstructionDefs;
-    FT_UShort  maxStackElements;
-    FT_UShort  maxSizeOfInstructions;
-    FT_UShort  maxComponentElements;
-    FT_UShort  maxComponentDepth;
-
-  } TT_MaxProfile;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Enum>                                                                */
-  /*    FT_Sfnt_Tag                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    An enumeration used to specify the index of an SFNT table.         */
-  /*    Used in the @FT_Get_Sfnt_Table API function.                       */
-  /*                                                                       */
-  typedef enum
-  {
-    ft_sfnt_head = 0,
-    ft_sfnt_maxp = 1,
-    ft_sfnt_os2  = 2,
-    ft_sfnt_hhea = 3,
-    ft_sfnt_vhea = 4,
-    ft_sfnt_post = 5,
-    ft_sfnt_pclt = 6,
-
-    sfnt_max   /* internal end mark */
-
-  } FT_Sfnt_Tag;
-
-  /* */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_Sfnt_Table                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns a pointer to a given SFNT table within a face.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the source.                                    */
-  /*                                                                       */
-  /*    tag  :: The index of the SFNT table.                               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A type-less pointer to the table.  This will be 0 in case of       */
-  /*    error, or if the corresponding table was not found *OR* loaded     */
-  /*    from the file.                                                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The table is owned by the face object and disappears with it.      */
-  /*                                                                       */
-  /*    This function is only useful to access SFNT tables that are loaded */
-  /*    by the sfnt/truetype/opentype drivers.  See @FT_Sfnt_Tag for a     */
-  /*    list.                                                              */
-  /*                                                                       */
-  FT_EXPORT( void* )
-  FT_Get_Sfnt_Table( FT_Face      face,
-                     FT_Sfnt_Tag  tag );
-
-
- /**************************************************************************
-  *
-  * <Function>
-  *    FT_Load_Sfnt_Table
-  *
-  * <Description>
-  *   Loads any font table into client memory.
-  *
-  * <Input>
-  *   face   :: A handle to the source face.
-  *
-  *   tag    :: The 4-byte tag of the table to load.  Use the value 0 if
-  *             you want to access the whole font file.  Otherwise, you can
-  *             use one of the definitions found in the @FT_TRUETYPE_TAGS_H
-  *             file, or forge a new one with @FT_MAKE_TAG.
-  *              
-  *   offset :: The starting offset in the table (or file if tag == 0).
-  *
-  * <Output>
-  *   buffer :: The target buffer address.  The client must ensure that
-  *             the memory array is big enough to hold the data.
-  *
-  * <InOut>
-  *   length :: If the `length' parameter is NULL, then try to load the whole
-  *             table.  Return an error code if it fails.
-  *
-  *             Else, if `*length' is 0, exit immediately while returning
-  *             the table's (or file) full size in it.
-  *
-  *             Else the number of bytes to read from the table or file,
-  *             from the starting offset.
-  *
-  * <Return>
-  *   FreeType error code.  0 means success.
-  *
-  * <Note>
-  *   If you need to determine the table's length you should first call this
-  *   function with `*length' set to 0, as in the following example:
-  *
-  *   {
-  *     FT_ULong  length = 0;
-  *
-  *
-  *     error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
-  *     if ( error ) { ... table does not exist ... }
-  *
-  *     buffer = malloc( length );
-  *     if ( buffer == NULL ) { ... not enough memory ... }
-  *
-  *     error = FT_Load_Sfnt_Table( face,tag, 0, buffer, &length );
-  *     if ( error ) { ... could not load table ... }
-  *   }
-  */
-  FT_EXPORT( FT_Error )
-  FT_Load_Sfnt_Table( FT_Face    face,
-                      FT_ULong   tag,
-                      FT_Long    offset,
-                      FT_Byte*   buffer,
-                      FT_ULong*  length );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Get_CMap_Language_ID                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Return TrueType/sfnt specific cmap language ID.  Definitions of    */
-  /*    language ID values are in freetype/ttnameid.h.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    charmap ::                                                         */
-  /*      The target charmap.                                              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The language ID of `charmap'.  If `charmap' doesn't belong to a    */
-  /*    TrueType/sfnt face, just return 0 as the default value.            */
-  /*                                                                       */
-  FT_EXPORT( FT_ULong )
-  FT_Get_CMap_Language_ID( FT_CharMap  charmap );
-
-  /* */
-
-
-FT_END_HEADER
-
-#endif /* __TTTABLES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/tttags.h b/nx-X11/extras/freetype2/include/freetype/tttags.h
deleted file mode 100644
index a6876d48f..000000000
--- a/nx-X11/extras/freetype2/include/freetype/tttags.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  tttags.h                                                               */
-/*                                                                         */
-/*    Tags for TrueType tables (specification only).                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2004 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTAGS_H__
-#define __TTAGS_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-#define TTAG_avar  FT_MAKE_TAG( 'a', 'v', 'a', 'r' )
-#define TTAG_bdat  FT_MAKE_TAG( 'b', 'd', 'a', 't' )
-#define TTAG_bhed  FT_MAKE_TAG( 'b', 'h', 'e', 'd' )
-#define TTAG_bloc  FT_MAKE_TAG( 'b', 'l', 'o', 'c' )
-#define TTAG_CFF   FT_MAKE_TAG( 'C', 'F', 'F', ' ' )
-#define TTAG_cmap  FT_MAKE_TAG( 'c', 'm', 'a', 'p' )
-#define TTAG_cvar  FT_MAKE_TAG( 'c', 'v', 'a', 'r' )
-#define TTAG_cvt   FT_MAKE_TAG( 'c', 'v', 't', ' ' )
-#define TTAG_DSIG  FT_MAKE_TAG( 'D', 'S', 'I', 'G' )
-#define TTAG_EBDT  FT_MAKE_TAG( 'E', 'B', 'D', 'T' )
-#define TTAG_EBLC  FT_MAKE_TAG( 'E', 'B', 'L', 'C' )
-#define TTAG_EBSC  FT_MAKE_TAG( 'E', 'B', 'S', 'C' )
-#define TTAG_fpgm  FT_MAKE_TAG( 'f', 'p', 'g', 'm' )
-#define TTAG_fvar  FT_MAKE_TAG( 'f', 'v', 'a', 'r' )
-#define TTAG_gasp  FT_MAKE_TAG( 'g', 'a', 's', 'p' )
-#define TTAG_glyf  FT_MAKE_TAG( 'g', 'l', 'y', 'f' )
-#define TTAG_GSUB  FT_MAKE_TAG( 'G', 'S', 'U', 'B' )
-#define TTAG_gvar  FT_MAKE_TAG( 'g', 'v', 'a', 'r' )
-#define TTAG_hdmx  FT_MAKE_TAG( 'h', 'd', 'm', 'x' )
-#define TTAG_head  FT_MAKE_TAG( 'h', 'e', 'a', 'd' )
-#define TTAG_hhea  FT_MAKE_TAG( 'h', 'h', 'e', 'a' )
-#define TTAG_hmtx  FT_MAKE_TAG( 'h', 'm', 't', 'x' )
-#define TTAG_kern  FT_MAKE_TAG( 'k', 'e', 'r', 'n' )
-#define TTAG_loca  FT_MAKE_TAG( 'l', 'o', 'c', 'a' )
-#define TTAG_LTSH  FT_MAKE_TAG( 'L', 'T', 'S', 'H' )
-#define TTAG_maxp  FT_MAKE_TAG( 'm', 'a', 'x', 'p' )
-#define TTAG_MMFX  FT_MAKE_TAG( 'M', 'M', 'F', 'X' )
-#define TTAG_MMSD  FT_MAKE_TAG( 'M', 'M', 'S', 'D' )
-#define TTAG_name  FT_MAKE_TAG( 'n', 'a', 'm', 'e' )
-#define TTAG_OS2   FT_MAKE_TAG( 'O', 'S', '/', '2' )
-#define TTAG_OTTO  FT_MAKE_TAG( 'O', 'T', 'T', 'O' )
-#define TTAG_PCLT  FT_MAKE_TAG( 'P', 'C', 'L', 'T' )
-#define TTAG_post  FT_MAKE_TAG( 'p', 'o', 's', 't' )
-#define TTAG_prep  FT_MAKE_TAG( 'p', 'r', 'e', 'p' )
-#define TTAG_true  FT_MAKE_TAG( 't', 'r', 'u', 'e' )
-#define TTAG_ttc   FT_MAKE_TAG( 't', 't', 'c', ' ' )
-#define TTAG_ttcf  FT_MAKE_TAG( 't', 't', 'c', 'f' )
-#define TTAG_VDMX  FT_MAKE_TAG( 'V', 'D', 'M', 'X' )
-#define TTAG_vhea  FT_MAKE_TAG( 'v', 'h', 'e', 'a' )
-#define TTAG_vmtx  FT_MAKE_TAG( 'v', 'm', 't', 'x' )
-
-
-FT_END_HEADER
-
-#endif /* __TTAGS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/freetype/ttunpat.h b/nx-X11/extras/freetype2/include/freetype/ttunpat.h
deleted file mode 100644
index 0bc0a6fe0..000000000
--- a/nx-X11/extras/freetype2/include/freetype/ttunpat.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttunpat.h                                                              */
-/*                                                                         */
-/*    Definitions for the unpatented TrueType hinting system               */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  Written by Graham Asher <graham.asher@btinternet.com>                  */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTUNPAT_H__
-#define __TTUNPAT_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#ifdef FREETYPE_H
-#error "freetype.h of FreeType 1 has been loaded!"
-#error "Please fix the directory search order for header files"
-#error "so that freetype.h of FreeType 2 is found first."
-#endif
-
-
-FT_BEGIN_HEADER
-
-
- /***************************************************************************
-  *
-  * @constant:
-  *   FT_PARAM_TAG_UNPATENTED_HINTING
-  *
-  * @description:
-  *   A constant used as the tag of an @FT_Parameter structure to indicate
-  *   that unpatented methods only should be used by the TrueType bytecode
-  *   interpreter for a typeface opened by FT_Open_Face.
-  *
-  */
-#define FT_PARAM_TAG_UNPATENTED_HINTING  FT_MAKE_TAG( 'u', 'n', 'p', 'a' )
-
- /* */
-
-FT_END_HEADER
-
-
-#endif /* __TTUNPAT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/include/ft2build.h b/nx-X11/extras/freetype2/include/ft2build.h
deleted file mode 100644
index 2ecfdeab1..000000000
--- a/nx-X11/extras/freetype2/include/ft2build.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ft2build.h                                                             */
-/*                                                                         */
-/*    FreeType 2 build and setup macros.                                   */
-/*    (Generic version)                                                    */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file corresponds to the default "ft2build.h" file for            */
-  /* FreeType 2.  It uses the "freetype" include root.                     */
-  /*                                                                       */
-  /* Note that specific platforms might use a different configuration.     */
-  /* See builds/unix/ft2unix.h for an example.                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __FT2_BUILD_GENERIC_H__
-#define __FT2_BUILD_GENERIC_H__
-
-#include <freetype/config/ftheader.h>
-
-#endif /* __FT2_BUILD_GENERIC_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/objs/.cvsignore b/nx-X11/extras/freetype2/objs/.cvsignore
deleted file mode 100644
index 78197f370..000000000
--- a/nx-X11/extras/freetype2/objs/.cvsignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.lo
-libfreetype.la
-freetype.lib
-.libs
diff --git a/nx-X11/extras/freetype2/objs/README b/nx-X11/extras/freetype2/objs/README
deleted file mode 100644
index 91fdcbdc1..000000000
--- a/nx-X11/extras/freetype2/objs/README
+++ /dev/null
@@ -1 +0,0 @@
-This directory contains all the object files created when building the library
diff --git a/nx-X11/extras/freetype2/src/Jamfile b/nx-X11/extras/freetype2/src/Jamfile
deleted file mode 100644
index e4d357569..000000000
--- a/nx-X11/extras/freetype2/src/Jamfile
+++ /dev/null
@@ -1,17 +0,0 @@
-# FreeType 2 src Jamfile (c) 2001, 2002 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) ;
-
-# The file <freetype/internal/internal.h> is used to define macros that are
-# later used in #include statements.  It needs to be parsed in order to
-# record these definitions.
-#
-HDRMACRO  [ FT2_SubDir $(FT2_INCLUDE_DIR) internal internal.h ] ;
-
-for xx in $(FT2_COMPONENTS)
-{
-  SubInclude FT2_TOP $(FT2_SRC_DIR) $(xx) ;
-}
-
-# end of src Jamfile
diff --git a/nx-X11/extras/freetype2/src/autofit/Jamfile b/nx-X11/extras/freetype2/src/autofit/Jamfile
deleted file mode 100644
index 3063f2371..000000000
--- a/nx-X11/extras/freetype2/src/autofit/Jamfile
+++ /dev/null
@@ -1,18 +0,0 @@
-SubDir FT2_TOP src autofit ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = afangles afglobal afhints aflatin afloader afmodule afdummy ;
-  }
-  else
-  {
-    _sources = autofit ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/autofir Jamfile
diff --git a/nx-X11/extras/freetype2/src/autofit/afangles.c b/nx-X11/extras/freetype2/src/autofit/afangles.c
deleted file mode 100644
index e42c962d1..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afangles.c
+++ /dev/null
@@ -1,302 +0,0 @@
-#include "aftypes.h"
-
-/*
- * a python script used to generate the following table
- *
-
-import sys, math
-
-units  = 256
-scale  = units/math.pi
-comma  = ""
-
-print ""
-print "table of arctan( 1/2^n ) for PI = " + repr(units/65536.0) + " units"
-
-r = [-1] + range(32)
-
-for n in r:
-
-    if n >= 0:
-        x = 1.0/(2.0**n)    # tangent value
-    else:
-        x = 2.0**(-n)
-
-    angle  = math.atan(x)    # arctangent
-    angle2 = angle*scale     # arctangent in FT_Angle units
-
-    # determine which integer value for angle gives the best tangent
-    lo  = int(angle2)
-    hi  = lo + 1
-    tlo = math.tan(lo/scale)
-    thi = math.tan(hi/scale)
-
-    errlo = abs( tlo - x )
-    errhi = abs( thi - x )
-
-    angle2 = hi
-    if errlo < errhi:
-        angle2 = lo
-
-    if angle2 <= 0:
-        break
-
-    sys.stdout.write( comma + repr( int(angle2) ) )
-    comma = ", "
-
-*
-* end of python script
-*/
-
-
-  /* this table was generated for AF_ANGLE_PI = 256 */
-#define AF_ANGLE_MAX_ITERS  8
-#define AF_TRIG_MAX_ITERS   8
-
-  static const FT_Fixed
-  af_angle_arctan_table[9] =
-  {
-    90, 64, 38, 20, 10, 5, 3, 1, 1
-  };
-
-
-  static FT_Int
-  af_angle_prenorm( FT_Vector*  vec )
-  {
-    FT_Fixed  x, y, z;
-    FT_Int    shift;
-
-
-    x = vec->x;
-    y = vec->y;
-
-    z     = ( ( x >= 0 ) ? x : - x ) | ( (y >= 0) ? y : -y );
-    shift = 0;
-
-    if ( z < ( 1L << 27 ) )
-    {
-      do
-      {
-        shift++;
-        z <<= 1;
-      } while ( z < ( 1L << 27 ) );
-
-      vec->x = x << shift;
-      vec->y = y << shift;
-    }
-    else if ( z > ( 1L << 28 ) )
-    {
-      do
-      {
-        shift++;
-        z >>= 1;
-      } while ( z > ( 1L << 28 ) );
-
-      vec->x = x >> shift;
-      vec->y = y >> shift;
-      shift  = -shift;
-    }
-    return shift;
-  }
-
-
-  static void
-  af_angle_pseudo_polarize( FT_Vector*  vec )
-  {
-    FT_Fixed         theta;
-    FT_Fixed         yi, i;
-    FT_Fixed         x, y;
-    const FT_Fixed  *arctanptr;
-
-
-    x = vec->x;
-    y = vec->y;
-
-    /* Get the vector into the right half plane */
-    theta = 0;
-    if ( x < 0 )
-    {
-      x = -x;
-      y = -y;
-      theta = AF_ANGLE_PI;
-    }
-
-    if ( y > 0 )
-      theta = - theta;
-
-    arctanptr = af_angle_arctan_table;
-
-    if ( y < 0 )
-    {
-      /* Rotate positive */
-      yi     = y + ( x << 1 );
-      x      = x - ( y << 1 );
-      y      = yi;
-      theta -= *arctanptr++;  /* Subtract angle */
-    }
-    else
-    {
-      /* Rotate negative */
-      yi     = y - ( x << 1 );
-      x      = x + ( y << 1 );
-      y      = yi;
-      theta += *arctanptr++;  /* Add angle */
-    }
-
-    i = 0;
-    do
-    {
-      if ( y < 0 )
-      {
-        /* Rotate positive */
-        yi     = y + ( x >> i );
-        x      = x - ( y >> i );
-        y      = yi;
-        theta -= *arctanptr++;
-      }
-      else
-      {
-        /* Rotate negative */
-        yi     = y - ( x >> i );
-        x      = x + ( y >> i );
-        y      = yi;
-        theta += *arctanptr++;
-      }
-    } while ( ++i < AF_TRIG_MAX_ITERS );
-
-#if 0
-    /* round theta */
-    if ( theta >= 0 )
-      theta =   FT_PAD_ROUND( theta, 2 );
-    else
-      theta = - FT_PAD_ROUND( -theta, 2 );
-#endif
-
-    vec->x = x;
-    vec->y = theta;
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_LOCAL_DEF( AF_Angle )
-  af_angle_atan( FT_Fixed  dx,
-                 FT_Fixed  dy )
-  {
-    FT_Vector  v;
-
-
-    if ( dx == 0 && dy == 0 )
-      return 0;
-
-    v.x = dx;
-    v.y = dy;
-    af_angle_prenorm( &v );
-    af_angle_pseudo_polarize( &v );
-
-    return v.y;
-  }
-
-
-
-  FT_LOCAL_DEF( AF_Angle )
-  af_angle_diff( AF_Angle  angle1,
-                 AF_Angle  angle2 )
-  {
-    AF_Angle  delta = angle2 - angle1;
-
-    delta %= AF_ANGLE_2PI;
-    if ( delta < 0 )
-      delta += AF_ANGLE_2PI;
-
-    if ( delta > AF_ANGLE_PI )
-      delta -= AF_ANGLE_2PI;
-
-    return delta;
-  }
-
-
- /* well, this needs to be somewhere, right :-)
-  */
-
-  FT_LOCAL_DEF( void )
-  af_sort_pos( FT_UInt   count,
-               FT_Pos*   table )
-  {
-    FT_UInt  i, j;
-    FT_Pos   swap;
-
-
-    for ( i = 1; i < count; i++ )
-    {
-      for ( j = i; j > 0; j-- )
-      {
-        if ( table[j] > table[j - 1] )
-          break;
-
-        swap         = table[j];
-        table[j]     = table[j - 1];
-        table[j - 1] = swap;
-      }
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_sort_widths( FT_UInt   count,
-                  AF_Width  table )
-  {
-    FT_UInt      i, j;
-    AF_WidthRec  swap;
-
-
-    for ( i = 1; i < count; i++ )
-    {
-      for ( j = i; j > 0; j-- )
-      {
-        if ( table[j].org > table[j - 1].org )
-          break;
-
-        swap         = table[j];
-        table[j]     = table[j - 1];
-        table[j - 1] = swap;
-      }
-    }
-  }
-
-
-#ifdef TEST
-#include <stdio.h>
-#include <math.h>
-
-int main( void )
-{
-  int  angle;
-  int  dist;
-
-  for ( dist = 100; dist < 1000; dist++ )
-  {
-    for ( angle = AF_ANGLE_PI; angle < AF_ANGLE_2PI*4; angle++ )
-    {
-      double a = (angle*3.1415926535)/(1.0*AF_ANGLE_PI);
-      int    dx, dy, angle1, angle2, delta;
-
-      dx = dist * cos(a);
-      dy = dist * sin(a);
-
-      angle1  = ((atan2(dy,dx)*AF_ANGLE_PI)/3.1415926535);
-      angle2  = af_angle_atan( dx, dy );
-      delta   = (angle2 - angle1) % AF_ANGLE_2PI;
-      if ( delta < 0 )
-        delta = -delta;
-
-      if ( delta >= 2 )
-      {
-        printf( "dist:%4d angle:%4d => (%4d,%4d) angle1:%4d angle2:%4d\n",
-                dist, angle, dx, dy, angle1, angle2 );
-      }
-    }
-  }
-  return 0;
-}
-#endif
diff --git a/nx-X11/extras/freetype2/src/autofit/afdummy.c b/nx-X11/extras/freetype2/src/autofit/afdummy.c
deleted file mode 100644
index 2d5f89839..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afdummy.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "afdummy.h"
-#include "afhints.h"
-
-
-  static FT_Error
-  af_dummy_hints_init( AF_GlyphHints     hints,
-                       AF_ScriptMetrics  metrics )
-  {
-    af_glyph_hints_rescale( hints,
-                            metrics );
-    return 0;
-  }
-
-  static FT_Error
-  af_dummy_hints_apply( AF_GlyphHints  hints,
-                        FT_Outline*    outline )
-  {
-    FT_UNUSED( hints );
-    FT_UNUSED( outline );
-
-    return 0;
-  }
-
-
-  FT_LOCAL_DEF( const AF_ScriptClassRec )  af_dummy_script_class =
-  {
-    AF_SCRIPT_NONE,
-    NULL,
-
-    sizeof( AF_ScriptMetricsRec ),
-    (AF_Script_InitMetricsFunc)  NULL,
-    (AF_Script_ScaleMetricsFunc) NULL,
-    (AF_Script_DoneMetricsFunc)  NULL,
-
-    (AF_Script_InitHintsFunc)    af_dummy_hints_init,
-    (AF_Script_ApplyHintsFunc)   af_dummy_hints_apply
-  };
diff --git a/nx-X11/extras/freetype2/src/autofit/afdummy.h b/nx-X11/extras/freetype2/src/autofit/afdummy.h
deleted file mode 100644
index f4594c0f9..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afdummy.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef __AFDUMMY_H__
-#define __AFDUMMY_H__
-
-#include "aftypes.h"
-
-FT_BEGIN_HEADER
-
- /* a dummy script metrics class used when no hinting should
-  * be performed. This is the default for non-latin glyphs !
-  */
-
-  FT_LOCAL( const AF_ScriptClassRec )    af_dummy_script_class;
-
-/* */
-
-FT_END_HEADER
-
-#endif /* __AFDUMMY_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/afglobal.c b/nx-X11/extras/freetype2/src/autofit/afglobal.c
deleted file mode 100644
index 54852ab31..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afglobal.c
+++ /dev/null
@@ -1,236 +0,0 @@
-#include "afglobal.h"
-#include "afdummy.h"
-#include "aflatin.h"
-
- /* populate this list when you add new scripts
-  */
-  static AF_ScriptClass const   af_script_classes[] =
-  {
-    & af_dummy_script_class,
-    & af_latin_script_class,
-
-    NULL  /* do not remove */
-  };
-
-#define AF_SCRIPT_LIST_DEFAULT   1    /* index of default script in 'af_script_classes' */
-#define AF_SCRIPT_LIST_NONE      255  /* indicates an uncovered glyph                      */
-
- /*
-  *  note that glyph_scripts[] is used to map each glyph into
-  *  an index into the 'af_script_classes' array.
-  *
-  */
-  typedef struct AF_FaceGlobalsRec_
-  {
-    FT_Face            face;
-    FT_UInt            glyph_count;    /* same as face->num_glyphs     */
-    FT_Byte*           glyph_scripts;
-
-    AF_ScriptMetrics   metrics[ AF_SCRIPT_MAX ];
-
-  } AF_FaceGlobalsRec;
-
-
-
-
- /* this function is used to compute the script index of each glyph
-  * within a given face
-  */
-  static FT_Error
-  af_face_globals_compute_script_coverage( AF_FaceGlobals  globals )
-  {
-    FT_Error    error       = 0;
-    FT_Face     face        = globals->face;
-    FT_CharMap  old_charmap = face->charmap;
-    FT_Byte*    gscripts    = globals->glyph_scripts;
-    FT_UInt     ss;
-
-   /* the value 255 means "uncovered glyph"
-    */
-    FT_MEM_SET( globals->glyph_scripts,
-                AF_SCRIPT_LIST_NONE,
-                globals->glyph_count );
-
-    error = FT_Select_Charmap( face, FT_ENCODING_UNICODE );
-    if ( error )
-    {
-     /* ignore this error, we'll simply use Latin as the standard
-      * script. XXX: Shouldn't we rather disable hinting ??
-      */
-      error = 0;
-      goto Exit;
-    }
-
-   /* scan each script in a Unicode charmap
-    */
-    for ( ss = 0; af_script_classes[ss]; ss++ )
-    {
-      AF_ScriptClass      clazz = af_script_classes[ss];
-      AF_Script_UniRange  range;
-
-      if ( clazz->script_uni_ranges == NULL )
-        continue;
-
-     /* scan all unicode points in the range, and set the corresponding
-      * glyph script index
-      */
-      for ( range = clazz->script_uni_ranges; range->first != 0; range++ )
-      {
-        FT_ULong  charcode = range->first;
-        FT_UInt   gindex;
-
-        gindex = FT_Get_Char_Index( face, charcode );
-
-        if ( gindex != 0                               &&
-             gindex < globals->glyph_count             &&
-             gscripts[ gindex ] == AF_SCRIPT_LIST_NONE )
-        {
-          gscripts[ gindex ] = (FT_Byte) ss;
-        }
-        for (;;)
-        {
-          charcode = FT_Get_Next_Char( face, charcode, &gindex );
-
-          if ( gindex == 0 || charcode > range->last )
-            break;
-
-          if ( gindex < globals->glyph_count       &&
-               gscripts[ gindex ] == AF_SCRIPT_LIST_NONE )
-          {
-            gscripts[ gindex ] = (FT_Byte) ss;
-          }
-        }
-      }
-    }
-
-  Exit:
-   /* by default, all uncovered glyphs are set to the latin script
-    * XXX: shouldnt' we disable hinting or do something similar ?
-    */
-    {
-      FT_UInt  nn;
-
-      for ( nn = 0; nn < globals->glyph_count; nn++ )
-      {
-        if ( gscripts[ nn ] == AF_SCRIPT_LIST_NONE )
-          gscripts[ nn ] = AF_SCRIPT_LIST_DEFAULT;
-      }
-    }
-
-    FT_Set_Charmap( face, old_charmap );
-    return error;
-  }
-
-
-
-  FT_LOCAL_DEF( FT_Error )
-  af_face_globals_new( FT_Face          face,
-                       AF_FaceGlobals  *aglobals )
-  {
-    FT_Error        error;
-    FT_Memory       memory;
-    AF_FaceGlobals  globals;
-
-    memory = face->memory;
-
-    if ( !FT_ALLOC( globals, sizeof(*globals) +
-                             face->num_glyphs*sizeof(FT_Byte) ) )
-    {
-      globals->face          = face;
-      globals->glyph_count   = face->num_glyphs;
-      globals->glyph_scripts = (FT_Byte*)( globals+1 );
-
-      error = af_face_globals_compute_script_coverage( globals );
-      if ( error )
-      {
-        af_face_globals_free( globals );
-        globals = NULL;
-      }
-    }
-
-    *aglobals = globals;
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_face_globals_free( AF_FaceGlobals  globals )
-  {
-    if ( globals )
-    {
-      FT_Memory  memory = globals->face->memory;
-      FT_UInt    nn;
-
-      for ( nn = 0; nn < AF_SCRIPT_MAX; nn++ )
-      {
-        if ( globals->metrics[nn] )
-        {
-          AF_ScriptClass  clazz = af_script_classes[nn];
-
-          FT_ASSERT( globals->metrics[nn]->clazz == clazz );
-
-          if ( clazz->script_metrics_done )
-            clazz->script_metrics_done( globals->metrics[nn] );
-
-          FT_FREE( globals->metrics[nn] );
-        }
-      }
-
-      globals->glyph_count   = 0;
-      globals->glyph_scripts = NULL;  /* no need to free this one !! */
-      globals->face          = NULL;
-      FT_FREE( globals );
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  af_face_globals_get_metrics( AF_FaceGlobals     globals,
-                               FT_UInt            gindex,
-                               AF_ScriptMetrics  *ametrics )
-  {
-    AF_ScriptMetrics  metrics = NULL;
-    FT_UInt           index;
-    AF_ScriptClass    clazz;
-    FT_Error          error = 0;
-
-    if ( gindex >= globals->glyph_count )
-    {
-      error = FT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    index   = globals->glyph_scripts[ gindex ];
-    clazz   = af_script_classes[ index ];
-    metrics = globals->metrics[ clazz->script ];
-    if ( metrics == NULL )
-    {
-     /* create the global metrics object when needed
-      */
-      FT_Memory  memory = globals->face->memory;
-
-      if ( FT_ALLOC( metrics, clazz->script_metrics_size ) )
-        goto Exit;
-
-      metrics->clazz = clazz;
-
-      if ( clazz->script_metrics_init )
-      {
-        error = clazz->script_metrics_init( metrics, globals->face );
-        if ( error )
-        {
-          if ( clazz->script_metrics_done )
-            clazz->script_metrics_done( metrics );
-
-          FT_FREE( metrics );
-          goto Exit;
-        }
-      }
-
-      globals->metrics[ clazz->script ] = metrics;
-    }
-
-  Exit:
-    *ametrics = metrics;
-    return error;
-  }
diff --git a/nx-X11/extras/freetype2/src/autofit/afglobal.h b/nx-X11/extras/freetype2/src/autofit/afglobal.h
deleted file mode 100644
index 64f35c3ff..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afglobal.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef __AF_GLOBAL_H__
-#define __AF_GLOBAL_H__
-
-#include "aftypes.h"
-
-FT_BEGIN_HEADER
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                F A C E   G L O B A L S                         *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
-
- /*
-  *  models the global hints data for a given face, decomposed into
-  *  script-specific items..
-  *
-  */
-  typedef struct AF_FaceGlobalsRec_*   AF_FaceGlobals;
-
-
-  FT_LOCAL( FT_Error )
-  af_face_globals_new( FT_Face          face,
-                       AF_FaceGlobals  *aglobals );
-
-  FT_LOCAL( FT_Error )
-  af_face_globals_get_metrics( AF_FaceGlobals     globals,
-                               FT_UInt            gindex,
-                               AF_ScriptMetrics  *ametrics );
-
-  FT_LOCAL( void )
-  af_face_globals_free( AF_FaceGlobals  globals );
-
- /* */
-
-FT_END_HEADER
-
-#endif /* __AF_GLOBALS_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/afhints.c b/nx-X11/extras/freetype2/src/autofit/afhints.c
deleted file mode 100644
index a1a50dce3..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afhints.c
+++ /dev/null
@@ -1,989 +0,0 @@
-#include "afhints.h"
-
-#ifdef AF_DEBUG
-
-#include <stdio.h>
-
-  static const char* af_dir_str( AF_Direction  dir )
-  {
-    const char*  result;
-
-    switch (dir)
-    {
-     case AF_DIR_UP:    result = "up";    break;
-     case AF_DIR_DOWN:  result = "down";  break;
-     case AF_DIR_LEFT:  result = "left";  break;
-     case AF_DIR_RIGHT: result = "right"; break;
-     default:           result = "none";
-    }
-    return result;
-  }
-
-#define  AF_INDEX_NUM(ptr,base)  ( (ptr) ? ((ptr)-(base)) : -1 )
-
-  void
-  af_glyph_hints_dump_points( AF_GlyphHints  hints )
-  {
-    AF_Point  points = hints->points;
-    AF_Point  limit  = points + hints->num_points;
-    AF_Point  point;
-
-    printf( "Table of points:\n" );
-    printf(   "  [ index |  xorg |  yorg |  xscale |  yscale |  xfit  |  yfit  |  flags ]\n" );
-    for ( point = points; point < limit; point++ )
-    {
-      printf( "  [ %5d | %5d | %5d | %-5.2f | %-5.2f | %-5.2f | %-5.2f | %c%c%c%c%c%c ]\n",
-              point - points,
-              point->fx,
-              point->fy,
-              point->ox/64.0,
-              point->oy/64.0,
-              point->x/64.0,
-              point->y/64.0,
-              (point->flags & AF_FLAG_WEAK_INTERPOLATION) ? 'w' : ' ',
-              (point->flags & AF_FLAG_INFLECTION)         ? 'i' : ' ',
-              (point->flags & AF_FLAG_EXTREMA_X)          ? '<' : ' ',
-              (point->flags & AF_FLAG_EXTREMA_Y)          ? 'v' : ' ',
-              (point->flags & AF_FLAG_ROUND_X)            ? '(' : ' ',
-              (point->flags & AF_FLAG_ROUND_Y)            ? 'u' : ' '
-            );
-    }
-    printf( "\n" );
-  }
-
-
-  /* A function used to dump the array of linked segments */
-  void
-  af_glyph_hints_dump_segments( AF_GlyphHints  hints )
-  {
-    AF_Point    points = hints->points;
-    FT_Int      dimension;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AF_AxisHints  axis = &hints->axis[dimension];
-      AF_Segment    segments = axis->segments;
-      AF_Segment    limit    = segments + axis->num_segments;
-      AF_Segment    seg;
-
-
-      printf ( "Table of %s segments:\n",
-               dimension == AF_DIMENSION_HORZ ? "vertical" : "horizontal" );
-      printf ( "  [ index |  pos |  dir  | link | serif |"
-               " numl | first | start ]\n" );
-
-      for ( seg = segments; seg < limit; seg++ )
-      {
-        printf ( "  [ %5d | %4d | %5s | %4d | %5d | %4d | %5d | %5d ]\n",
-                 seg - segments,
-                 (int)seg->pos,
-                 af_dir_str( seg->dir ),
-                 AF_INDEX_NUM( seg->link, segments ),
-                 AF_INDEX_NUM( seg->serif, segments ),
-                 (int)seg->num_linked,
-                 seg->first - points,
-                 seg->last - points );
-      }
-      printf( "\n" );
-    }
-  }
-
-
-  void
-  af_glyph_hints_dump_edges( AF_GlyphHints  hints )
-  {
-    FT_Int      dimension;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AF_AxisHints  axis  = &hints->axis[ dimension ];
-      AF_Edge       edges = axis->edges;
-      AF_Edge       limit = edges + axis->num_edges;
-      AF_Edge       edge;
-
-     /* note: AF_DIMENSION_HORZ corresponds to _vertical_ edges
-      * since they have constant X coordinate
-      */
-      printf ( "Table of %s edges:\n",
-               dimension == AF_DIMENSION_HORZ ? "vertical" : "horizontal" );
-      printf ( "  [ index |  pos |  dir  | link |"
-               " serif | blue | opos  |  pos  ]\n" );
-
-      for ( edge = edges; edge < limit; edge++ )
-      {
-        printf ( "  [ %5d | %4d | %5s | %4d | %5d |   %c  | %5.2f | %5.2f ]\n",
-                 edge - edges,
-                 (int)edge->fpos,
-                 af_dir_str( edge->dir ),
-                 AF_INDEX_NUM( edge->link, edges ),
-                 AF_INDEX_NUM( edge->serif, edges ),
-                 edge->blue_edge ? 'y' : 'n',
-                 edge->opos / 64.0,
-                 edge->pos / 64.0 );
-      }
-
-      printf( "\n" );
-    }
-  }
-
-
-
-#endif /* AF_DEBUG */
-
-
-  /* compute the direction value of a given vector */
-  FT_LOCAL_DEF( AF_Direction )
-  af_direction_compute( FT_Pos  dx,
-                        FT_Pos  dy )
-  {
-    AF_Direction  dir;
-    FT_Pos        ax = FT_ABS( dx );
-    FT_Pos        ay = FT_ABS( dy );
-
-
-    dir = AF_DIR_NONE;
-
-    /* atan(1/12) == 4.7 degrees */
-
-    /* test for vertical direction */
-    if ( ax * 12 < ay )
-    {
-      dir = dy > 0 ? AF_DIR_UP : AF_DIR_DOWN;
-    }
-    /* test for horizontal direction */
-    else if ( ay * 12 < ax )
-    {
-      dir = dx > 0 ? AF_DIR_RIGHT : AF_DIR_LEFT;
-    }
-
-    return dir;
-  }
-
-
-  /* compute all inflex points in a given glyph */
-  static void
-  af_glyph_hints_compute_inflections( AF_GlyphHints  hints )
-  {
-    AF_Point*  contour       = hints->contours;
-    AF_Point*  contour_limit = contour + hints->num_contours;
-
-
-    /* do each contour separately */
-    for ( ; contour < contour_limit; contour++ )
-    {
-      AF_Point   point = contour[0];
-      AF_Point   first = point;
-      AF_Point   start = point;
-      AF_Point   end   = point;
-      AF_Point   before;
-      AF_Point   after;
-      AF_Angle   angle_in, angle_seg, angle_out;
-      AF_Angle   diff_in, diff_out;
-      FT_Int     finished = 0;
-
-
-      /* compute first segment in contour */
-      first = point;
-
-      start = end = first;
-      do
-      {
-        end = end->next;
-        if ( end == first )
-          goto Skip;
-
-      } while ( end->fx == first->fx && end->fy == first->fy );
-
-      angle_seg = af_angle_atan( end->fx - start->fx,
-                                 end->fy - start->fy );
-
-      /* extend the segment start whenever possible */
-      before = start;
-      do
-      {
-        do
-        {
-          start  = before;
-          before = before->prev;
-          if ( before == first )
-            goto Skip;
-
-        } while ( before->fx == start->fx && before->fy == start->fy );
-
-        angle_in = af_angle_atan( start->fx - before->fx,
-                                  start->fy - before->fy );
-
-      } while ( angle_in == angle_seg );
-
-      first   = start;
-      diff_in = af_angle_diff( angle_in, angle_seg );
-
-      /* now, process all segments in the contour */
-      do
-      {
-        /* first, extend current segment's end whenever possible */
-        after = end;
-        do
-        {
-          do
-          {
-            end   = after;
-            after = after->next;
-            if ( after == first )
-              finished = 1;
-
-          } while ( end->fx == after->fx && end->fy == after->fy );
-
-          angle_out = af_angle_atan( after->fx - end->fx,
-                                     after->fy - end->fy );
-
-        } while ( angle_out == angle_seg );
-
-        diff_out = af_angle_diff( angle_seg, angle_out );
-
-        if ( ( diff_in ^ diff_out ) < 0 )
-        {
-          /* diff_in and diff_out have different signs, we have */
-          /* inflection points here...                          */
-          do
-          {
-            start->flags |= AF_FLAG_INFLECTION;
-            start = start->next;
-
-          } while ( start != end );
-
-          start->flags |= AF_FLAG_INFLECTION;
-        }
-
-        start     = end;
-        end       = after;
-        angle_seg = angle_out;
-        diff_in   = diff_out;
-
-      } while ( !finished );
-
-    Skip:
-      ;
-    }
-  }
-
-
-
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_init( AF_GlyphHints  hints,
-                       FT_Memory      memory )
-  {
-    FT_ZERO( hints );
-    hints->memory = memory;
-  }
-
-
-
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_done( AF_GlyphHints  hints )
-  {
-    if ( hints && hints->memory )
-    {
-      FT_Memory     memory = hints->memory;
-      AF_Dimension  dim;
-
-     /* note that we don't need to free the segment and edge
-      * buffers, since they're really within the hints->points array
-      */
-      for ( dim = 0; dim < 2; dim++ )
-      {
-        AF_AxisHints  axis = &hints->axis[ dim ];
-
-        axis->num_segments = 0;
-        axis->num_edges    = 0;
-        axis->segments     = NULL;
-        axis->edges        = NULL;
-      }
-
-      FT_FREE( hints->contours );
-      hints->max_contours = 0;
-      hints->num_contours = 0;
-
-      FT_FREE( hints->points );
-      hints->num_points = 0;
-      hints->max_points = 0;
-
-      hints->memory = NULL;
-    }
-  }
-
-
-
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_rescale( AF_GlyphHints     hints,
-                          AF_ScriptMetrics  metrics )
-  {
-    hints->metrics = metrics;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  af_glyph_hints_reload( AF_GlyphHints     hints,
-                         FT_Outline*       outline )
-  {
-    FT_Error     error        = FT_Err_Ok;
-    AF_Point     points;
-    FT_UInt      old_max, new_max;
-    AF_Scaler    scaler  = &hints->metrics->scaler;
-    FT_Fixed     x_scale = hints->x_scale;
-    FT_Fixed     y_scale = hints->y_scale;
-    FT_Pos       x_delta = hints->x_delta;
-    FT_Pos       y_delta = hints->y_delta;
-    FT_Memory    memory  = hints->memory;
-
-    hints->scaler_flags  = scaler->flags;
-    hints->num_points    = 0;
-    hints->num_contours  = 0;
-
-    hints->axis[0].num_segments = 0;
-    hints->axis[0].num_edges    = 0;
-    hints->axis[1].num_segments = 0;
-    hints->axis[1].num_edges    = 0;
-
-   /* first of all, reallocate the contours array when necessary
-    */
-    new_max = (FT_UInt) outline->n_contours;
-    old_max = hints->max_contours;
-    if ( new_max > old_max )
-    {
-      new_max = (new_max + 3) & ~3;
-
-      if ( FT_RENEW_ARRAY( hints->contours, old_max, new_max ) )
-        goto Exit;
-
-      hints->max_contours = new_max;
-    }
-
-   /* then, reallocate the points, segments & edges arrays if needed --
-    * note that we reserved two additional point positions, used to
-    * hint metrics appropriately
-    */
-    new_max = (FT_UInt)( outline->n_points + 2 );
-    old_max = hints->max_points;
-    if ( new_max > old_max )
-    {
-      FT_Byte*    items;
-      FT_ULong    off1, off2, off3;
-
-     /* we store in a single buffer the following arrays:
-      *
-      *  - an array of   N  AF_PointRec   items
-      *  - an array of 2*N  AF_SegmentRec items
-      *  - an array of 2*N  AF_EdgeRec    items
-      *
-      */
-
-      new_max = ( new_max + 2 + 7 ) & ~7;
-
-#define OFF_PAD2(x,y)   (((x)+(y)-1) & ~((y)-1))
-#define OFF_PADX(x,y)   ((((x)+(y)-1)/(y))*(y))
-#define OFF_PAD(x,y)    ( ((y) & ((y)-1)) ? OFF_PADX(x,y) : OFF_PAD2(x,y) )
-
-#undef  OFF_INCREMENT
-#define OFF_INCREMENT( _off, _type, _count )   \
-     ( OFF_PAD( _off, sizeof(_type) ) + (_count)*sizeof(_type))
-
-      off1 = OFF_INCREMENT( 0, AF_PointRec, new_max );
-      off2 = OFF_INCREMENT( off1, AF_SegmentRec, new_max*2 );
-      off3 = OFF_INCREMENT( off2, AF_EdgeRec, new_max*2 );
-
-      FT_FREE( hints->points );
-
-      if ( FT_ALLOC( items, off3 ) )
-      {
-        hints->max_points       = 0;
-        hints->axis[0].segments = NULL;
-        hints->axis[0].edges    = NULL;
-        hints->axis[1].segments = NULL;
-        hints->axis[1].edges    = NULL;
-        goto Exit;
-      }
-
-     /* readjust some pointers
-      */
-      hints->max_points       = new_max;
-      hints->points           = (AF_Point) items;
-
-      hints->axis[0].segments = (AF_Segment)( items + off1 );
-      hints->axis[1].segments = hints->axis[0].segments + new_max;
-
-      hints->axis[0].edges    = (AF_Edge)   ( items + off2 );
-      hints->axis[1].edges    = hints->axis[0].edges + new_max;
-    }
-
-    hints->num_points   = outline->n_points;
-    hints->num_contours = outline->n_contours;
-
-
-    /* We can't rely on the value of `FT_Outline.flags' to know the fill  */
-    /* direction used for a glyph, given that some fonts are broken (e.g. */
-    /* the Arphic ones).  We thus recompute it each time we need to.      */
-    /*                                                                    */
-    hints->axis[ AF_DIMENSION_HORZ ].major_dir = AF_DIR_UP;
-    hints->axis[ AF_DIMENSION_VERT ].major_dir = AF_DIR_LEFT;
-
-    if ( FT_Outline_Get_Orientation( outline ) == FT_ORIENTATION_POSTSCRIPT )
-    {
-      hints->axis[ AF_DIMENSION_HORZ ].major_dir = AF_DIR_DOWN;
-      hints->axis[ AF_DIMENSION_VERT ].major_dir = AF_DIR_RIGHT;
-    }
-
-    hints->x_scale = x_scale;
-    hints->y_scale = y_scale;
-    hints->x_delta = x_delta;
-    hints->y_delta = y_delta;
-
-    points = hints->points;
-    if ( hints->num_points == 0 )
-      goto Exit;
-
-    {
-      AF_Point  point;
-      AF_Point  point_limit = points + hints->num_points;
-
-
-      /* compute coordinates & bezier flags */
-      {
-        FT_Vector*  vec = outline->points;
-        char*       tag = outline->tags;
-
-
-        for ( point = points; point < point_limit; point++, vec++, tag++ )
-        {
-          point->fx = vec->x;
-          point->fy = vec->y;
-          point->ox = point->x = FT_MulFix( vec->x, x_scale ) + x_delta;
-          point->oy = point->y = FT_MulFix( vec->y, y_scale ) + y_delta;
-
-          switch ( FT_CURVE_TAG( *tag ) )
-          {
-          case FT_CURVE_TAG_CONIC:
-            point->flags = AF_FLAG_CONIC;
-            break;
-          case FT_CURVE_TAG_CUBIC:
-            point->flags = AF_FLAG_CUBIC;
-            break;
-          default:
-            point->flags = 0;
-            ;
-          }
-        }
-      }
-
-      /* compute `next' and `prev' */
-      {
-        FT_Int    contour_index;
-        AF_Point  prev;
-        AF_Point  first;
-        AF_Point  end;
-
-
-        contour_index = 0;
-
-        first = points;
-        end   = points + outline->contours[0];
-        prev  = end;
-
-        for ( point = points; point < point_limit; point++ )
-        {
-          point->prev = prev;
-          if ( point < end )
-          {
-            point->next = point + 1;
-            prev        = point;
-          }
-          else
-          {
-            point->next = first;
-            contour_index++;
-            if ( point + 1 < point_limit )
-            {
-              end   = points + outline->contours[contour_index];
-              first = point + 1;
-              prev  = end;
-            }
-          }
-        }
-      }
-
-      /* set-up the contours array */
-      {
-        AF_Point*  contour       = hints->contours;
-        AF_Point*  contour_limit = contour + hints->num_contours;
-        short*     end           = outline->contours;
-        short      idx           = 0;
-
-
-        for ( ; contour < contour_limit; contour++, end++ )
-        {
-          contour[0] = points + idx;
-          idx        = (short)( end[0] + 1 );
-        }
-      }
-
-      /* compute directions of in & out vectors */
-      {
-        for ( point = points; point < point_limit; point++ )
-        {
-          AF_Point   prev;
-          AF_Point   next;
-          FT_Pos     in_x, in_y, out_x, out_y;
-
-
-          prev   = point->prev;
-          in_x   = point->fx - prev->fx;
-          in_y   = point->fy - prev->fy;
-
-          point->in_dir = af_direction_compute( in_x, in_y );
-
-          next   = point->next;
-          out_x  = next->fx - point->fx;
-          out_y  = next->fy - point->fy;
-
-          point->out_dir = af_direction_compute( out_x, out_y );
-
-          if ( point->flags & ( AF_FLAG_CONIC | AF_FLAG_CUBIC ) )
-          {
-          Is_Weak_Point:
-            point->flags |= AF_FLAG_WEAK_INTERPOLATION;
-          }
-          else if ( point->out_dir == point->in_dir )
-          {
-            AF_Angle  angle_in, angle_out, delta;
-
-
-            if ( point->out_dir != AF_DIR_NONE )
-              goto Is_Weak_Point;
-
-            angle_in  = af_angle_atan( in_x, in_y );
-            angle_out = af_angle_atan( out_x, out_y );
-            delta     = af_angle_diff( angle_in, angle_out );
-
-            if ( delta < 2 && delta > -2 )
-              goto Is_Weak_Point;
-          }
-          else if ( point->in_dir == -point->out_dir )
-            goto Is_Weak_Point;
-        }
-      }
-    }
-
-   /* compute inflection points
-    */
-    af_glyph_hints_compute_inflections( hints );
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_save( AF_GlyphHints   hints,
-                       FT_Outline*     outline )
-  {
-    AF_Point    point = hints->points;
-    AF_Point    limit = point + hints->num_points;
-    FT_Vector*  vec   = outline->points;
-    char*       tag   = outline->tags;
-
-    for ( ; point < limit; point++, vec++, tag++ )
-    {
-      vec->x = (FT_Pos) point->x;
-      vec->y = (FT_Pos) point->y;
-
-      if ( point->flags & AF_FLAG_CONIC )
-        tag[0] = FT_CURVE_TAG_CONIC;
-      else if ( point->flags & AF_FLAG_CUBIC )
-        tag[0] = FT_CURVE_TAG_CUBIC;
-      else
-        tag[0] = FT_CURVE_TAG_ON;
-    }
-  }
-
-
- /*
-  *
-  *  E D G E   P O I N T   G R I D - F I T T I N G
-  *
-  */
-
-
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_align_edge_points( AF_GlyphHints  hints,
-                                    AF_Dimension   dim )
-  {
-    AF_AxisHints  axis       = & hints->axis[ dim ];
-    AF_Edge       edges      = axis->edges;
-    AF_Edge       edge_limit = edges + axis->num_edges;
-    AF_Edge       edge;
-
-    for ( edge = edges; edge < edge_limit; edge++ )
-    {
-      /* move the points of each segment     */
-      /* in each edge to the edge's position */
-      AF_Segment  seg = edge->first;
-
-
-      do
-      {
-        AF_Point  point = seg->first;
-
-
-        for (;;)
-        {
-          if ( dim == AF_DIMENSION_HORZ )
-          {
-            point->x      = edge->pos;
-            point->flags |= AF_FLAG_TOUCH_X;
-          }
-          else
-          {
-            point->y      = edge->pos;
-            point->flags |= AF_FLAG_TOUCH_Y;
-          }
-
-          if ( point == seg->last )
-            break;
-
-          point = point->next;
-        }
-
-        seg = seg->edge_next;
-
-      } while ( seg != edge->first );
-    }
-  }
-
-
- /*
-  *
-  *  S T R O N G   P O I N T   I N T E R P O L A T I O N
-  *
-  */
-
-
-  /* hint the strong points -- this is equivalent to the TrueType `IP' */
-  /* hinting instruction                                               */
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_align_strong_points( AF_GlyphHints  hints,
-                                      AF_Dimension   dim )
-  {
-    AF_Point      points      = hints->points;
-    AF_Point      point_limit = points + hints->num_points;
-    AF_AxisHints  axis        = &hints->axis[dim];
-    AF_Edge       edges       = axis->edges;
-    AF_Edge       edge_limit  = edges + axis->num_edges;
-    AF_Flags      touch_flag;
-
-
-    if ( dim == AF_DIMENSION_HORZ )
-      touch_flag = AF_FLAG_TOUCH_X;
-    else
-      touch_flag  = AF_FLAG_TOUCH_Y;
-
-    if ( edges < edge_limit )
-    {
-      AF_Point  point;
-      AF_Edge   edge;
-
-      for ( point = points; point < point_limit; point++ )
-      {
-        FT_Pos  u, ou, fu;  /* point position */
-        FT_Pos  delta;
-
-
-        if ( point->flags & touch_flag )
-          continue;
-
-        /* if this point is candidate to weak interpolation, we will  */
-        /* interpolate it after all strong points have been processed */
-        if (  ( point->flags & AF_FLAG_WEAK_INTERPOLATION ) &&
-             !( point->flags & AF_FLAG_INFLECTION )         )
-          continue;
-
-        if ( dim == AF_DIMENSION_VERT )
-        {
-          u  = point->fy;
-          ou = point->oy;
-        }
-        else
-        {
-          u  = point->fx;
-          ou = point->ox;
-        }
-
-        fu = u;
-
-        /* is the point before the first edge? */
-        edge  = edges;
-        delta = edge->fpos - u;
-        if ( delta >= 0 )
-        {
-          u = edge->pos - ( edge->opos - ou );
-          goto Store_Point;
-        }
-
-        /* is the point after the last edge? */
-        edge  = edge_limit - 1;
-        delta = u - edge->fpos;
-        if ( delta >= 0 )
-        {
-          u = edge->pos + ( ou - edge->opos );
-          goto Store_Point;
-        }
-
-        {
-          FT_UInt  min, max, mid;
-          FT_Pos   fpos;
-
-
-          /* find enclosing edges */
-          min = 0;
-          max = edge_limit - edges;
-
-          while ( min < max )
-          {
-            mid  = ( max + min ) >> 1;
-            edge = edges + mid;
-            fpos = edge->fpos;
-
-            if ( u < fpos )
-              max = mid;
-            else if ( u > fpos )
-              min = mid + 1;
-            else
-            {
-              /* we are on the edge */
-              u = edge->pos;
-              goto Store_Point;
-            }
-          }
-
-          {
-            AF_Edge  before = edges + min - 1;
-            AF_Edge  after  = edges + min + 0;
-
-
-            /* assert( before && after && before != after ) */
-            if ( before->scale == 0 )
-              before->scale = FT_DivFix( after->pos - before->pos,
-                                         after->fpos - before->fpos );
-
-            u = before->pos + FT_MulFix( fu - before->fpos,
-                                         before->scale );
-          }
-        }
-
-
-      Store_Point:
-
-        /* save the point position */
-        if ( dim == AF_DIMENSION_HORZ )
-          point->x = u;
-        else
-          point->y = u;
-
-        point->flags |= touch_flag;
-      }
-    }
-  }
-
-
- /*
-  *
-  *  W E A K   P O I N T   I N T E R P O L A T I O N
-  *
-  */
-
-  static void
-  af_iup_shift( AF_Point  p1,
-                AF_Point  p2,
-                AF_Point  ref )
-  {
-    AF_Point  p;
-    FT_Pos    delta = ref->u - ref->v;
-
-
-    for ( p = p1; p < ref; p++ )
-      p->u = p->v + delta;
-
-    for ( p = ref + 1; p <= p2; p++ )
-      p->u = p->v + delta;
-  }
-
-
-  static void
-  af_iup_interp( AF_Point  p1,
-                 AF_Point  p2,
-                 AF_Point  ref1,
-                 AF_Point  ref2 )
-  {
-    AF_Point  p;
-    FT_Pos    u;
-    FT_Pos    v1 = ref1->v;
-    FT_Pos    v2 = ref2->v;
-    FT_Pos    d1 = ref1->u - v1;
-    FT_Pos    d2 = ref2->u - v2;
-
-
-    if ( p1 > p2 )
-      return;
-
-    if ( v1 == v2 )
-    {
-      for ( p = p1; p <= p2; p++ )
-      {
-        u = p->v;
-
-        if ( u <= v1 )
-          u += d1;
-        else
-          u += d2;
-
-        p->u = u;
-      }
-      return;
-    }
-
-    if ( v1 < v2 )
-    {
-      for ( p = p1; p <= p2; p++ )
-      {
-        u = p->v;
-
-        if ( u <= v1 )
-          u += d1;
-        else if ( u >= v2 )
-          u += d2;
-        else
-          u = ref1->u + FT_MulDiv( u - v1, ref2->u - ref1->u, v2 - v1 );
-
-        p->u = u;
-      }
-    }
-    else
-    {
-      for ( p = p1; p <= p2; p++ )
-      {
-        u = p->v;
-
-        if ( u <= v2 )
-          u += d2;
-        else if ( u >= v1 )
-          u += d1;
-        else
-          u = ref1->u + FT_MulDiv( u - v1, ref2->u - ref1->u, v2 - v1 );
-
-        p->u = u;
-      }
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_glyph_hints_align_weak_points( AF_GlyphHints  hints,
-                                    AF_Dimension   dim )
-  {
-    AF_Point    points        = hints->points;
-    AF_Point    point_limit   = points + hints->num_points;
-    AF_Point*   contour       = hints->contours;
-    AF_Point*   contour_limit = contour + hints->num_contours;
-    AF_Flags    touch_flag;
-    AF_Point    point;
-    AF_Point    end_point;
-    AF_Point    first_point;
-
-
-    /* PASS 1: Move segment points to edge positions */
-
-    if ( dim == AF_DIMENSION_HORZ )
-    {
-      touch_flag = AF_FLAG_TOUCH_X;
-
-      for ( point = points; point < point_limit; point++ )
-      {
-        point->u = point->x;
-        point->v = point->ox;
-      }
-    }
-    else
-    {
-      touch_flag = AF_FLAG_TOUCH_Y;
-
-      for ( point = points; point < point_limit; point++ )
-      {
-        point->u = point->y;
-        point->v = point->oy;
-      }
-    }
-
-    point   = points;
-
-    for ( ; contour < contour_limit; contour++ )
-    {
-      point       = *contour;
-      end_point   = point->prev;
-      first_point = point;
-
-      while ( point <= end_point && !( point->flags & touch_flag ) )
-        point++;
-
-      if ( point <= end_point )
-      {
-        AF_Point  first_touched = point;
-        AF_Point  cur_touched   = point;
-
-
-        point++;
-        while ( point <= end_point )
-        {
-          if ( point->flags & touch_flag )
-          {
-            /* we found two successive touched points; we interpolate */
-            /* all contour points between them                        */
-            af_iup_interp( cur_touched + 1, point - 1,
-                           cur_touched, point );
-            cur_touched = point;
-          }
-          point++;
-        }
-
-        if ( cur_touched == first_touched )
-        {
-          /* this is a special case: only one point was touched in the */
-          /* contour; we thus simply shift the whole contour           */
-          af_iup_shift( first_point, end_point, cur_touched );
-        }
-        else
-        {
-          /* now interpolate after the last touched point to the end */
-          /* of the contour                                          */
-          af_iup_interp( cur_touched + 1, end_point,
-                         cur_touched, first_touched );
-
-          /* if the first contour point isn't touched, interpolate */
-          /* from the contour start to the first touched point     */
-          if ( first_touched > points )
-            af_iup_interp( first_point, first_touched - 1,
-                           cur_touched, first_touched );
-        }
-      }
-    }
-
-    /* now save the interpolated values back to x/y */
-    if ( dim == AF_DIMENSION_HORZ )
-    {
-      for ( point = points; point < point_limit; point++ )
-        point->x = point->u;
-    }
-    else
-    {
-      for ( point = points; point < point_limit; point++ )
-        point->y = point->u;
-    }
-  }
diff --git a/nx-X11/extras/freetype2/src/autofit/afhints.h b/nx-X11/extras/freetype2/src/autofit/afhints.h
deleted file mode 100644
index 40fd613a4..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afhints.h
+++ /dev/null
@@ -1,248 +0,0 @@
-#ifndef __AFHINTS_H__
-#define __AFHINTS_H__
-
-#include "aftypes.h"
-
-FT_BEGIN_HEADER
-
- /*
-  *  The definition of outline glyph hints. These are shared by all
-  *  script analysis routines (until now)
-  *
-  */
-
-  typedef enum
-  {
-    AF_DIMENSION_HORZ = 0,  /* x coordinates, i.e. vertical segments & edges   */
-    AF_DIMENSION_VERT = 1,  /* y coordinates, i.e. horizontal segments & edges */
-
-    AF_DIMENSION_MAX  /* do not remove */
-
-  } AF_Dimension;
-
-
-  /* hint directions -- the values are computed so that two vectors are */
-  /* in opposite directions iff `dir1+dir2 == 0'                        */
-  typedef enum
-  {
-    AF_DIR_NONE  =  4,
-    AF_DIR_RIGHT =  1,
-    AF_DIR_LEFT  = -1,
-    AF_DIR_UP    =  2,
-    AF_DIR_DOWN  = -2
-
-  } AF_Direction;
-
-
-  /* point hint flags */
-  typedef enum
-  {
-    AF_FLAG_NONE    = 0,
-
-   /* point type flags */
-    AF_FLAG_CONIC   = (1 << 0),
-    AF_FLAG_CUBIC   = (1 << 1),
-    AF_FLAG_CONTROL = AF_FLAG_CONIC | AF_FLAG_CUBIC,
-
-   /* point extremum flags */
-    AF_FLAG_EXTREMA_X = (1 << 2),
-    AF_FLAG_EXTREMA_Y = (1 << 3),
-
-   /* point roundness flags */
-    AF_FLAG_ROUND_X = (1 << 4),
-    AF_FLAG_ROUND_Y = (1 << 5),
-
-   /* point touch flags */
-    AF_FLAG_TOUCH_X = (1 << 6),
-    AF_FLAG_TOUCH_Y = (1 << 7),
-
-   /* candidates for weak interpolation have this flag set */
-    AF_FLAG_WEAK_INTERPOLATION = (1 << 8),
-
-   /* all inflection points in the outline have this flag set */
-    AF_FLAG_INFLECTION         = (1 << 9)
-
-  } AF_Flags;
-
-
-  /* edge hint flags */
-  typedef enum
-  {
-    AF_EDGE_NORMAL = 0,
-    AF_EDGE_ROUND  = (1 << 0),
-    AF_EDGE_SERIF  = (1 << 1),
-    AF_EDGE_DONE   = (1 << 2)
-
-  } AF_Edge_Flags;
-
-
-
-  typedef struct AF_PointRec_*    AF_Point;
-  typedef struct AF_SegmentRec_*  AF_Segment;
-  typedef struct AF_EdgeRec_*     AF_Edge;
-
-
-  typedef struct  AF_PointRec_
-  {
-    AF_Flags      flags;    /* point flags used by hinter */
-    FT_Pos        ox, oy;   /* original, scaled position  */
-    FT_Pos        fx, fy;   /* original, unscaled position (font units) */
-    FT_Pos        x,  y;    /* current position */
-    FT_Pos        u,  v;    /* current (x,y) or (y,x) depending on context */
-
-    AF_Direction  in_dir;   /* direction of inwards vector  */
-    AF_Direction  out_dir;  /* direction of outwards vector */
-
-    AF_Point      next;     /* next point in contour     */
-    AF_Point      prev;     /* previous point in contour */
-
-  } AF_PointRec;
-
-
-  typedef struct  AF_SegmentRec_
-  {
-    AF_Edge_Flags  flags;       /* edge/segment flags for this segment */
-    AF_Direction   dir;         /* segment direction                   */
-    FT_Pos         pos;         /* position of segment                 */
-    FT_Pos         min_coord;   /* minimum coordinate of segment       */
-    FT_Pos         max_coord;   /* maximum coordinate of segment       */
-
-    AF_Edge        edge;        /* the segment's parent edge */
-    AF_Segment     edge_next;   /* link to next segment in parent edge */
-
-    AF_Segment     link;        /* (stem) link segment        */
-    AF_Segment     serif;       /* primary segment for serifs */
-    FT_Pos         num_linked;  /* number of linked segments  */
-    FT_Pos         score;       /* used during stem matching  */
-
-    AF_Point       first;       /* first point in edge segment             */
-    AF_Point       last;        /* last point in edge segment              */
-    AF_Point*      contour;     /* ptr to first point of segment's contour */
-
-  } AF_SegmentRec;
-
-
-  typedef struct  AF_EdgeRec_
-  {
-    FT_Pos         fpos;       /* original, unscaled position (font units) */
-    FT_Pos         opos;       /* original, scaled position                */
-    FT_Pos         pos;        /* current position                         */
-
-    AF_Edge_Flags  flags;      /* edge flags */
-    AF_Direction   dir;        /* edge direction */
-    FT_Fixed       scale;      /* used to speed up interpolation between edges */
-    AF_Width       blue_edge;  /* non-NULL if this is a blue edge              */
-
-    AF_Edge        link;
-    AF_Edge        serif;
-    FT_Int         num_linked;
-
-    FT_Int         score;
-
-    AF_Segment     first;
-    AF_Segment     last;
-
-  } AF_EdgeRec;
-
-
-  typedef struct AF_AxisHintsRec_
-  {
-    FT_Int        num_segments;
-    AF_Segment    segments;
-
-    FT_Int        num_edges;
-    AF_Edge       edges;
-
-    AF_Direction  major_dir;
-
-  } AF_AxisHintsRec, *AF_AxisHints;
-
-
-  typedef struct AF_GlyphHintsRec_
-  {
-    FT_Memory     memory;
-
-    FT_Fixed      x_scale;
-    FT_Pos        x_delta;
-
-    FT_Fixed      y_scale;
-    FT_Pos        y_delta;
-
-    FT_Pos        edge_distance_threshold;
-
-    FT_Int        max_points;
-    FT_Int        num_points;
-    AF_Point      points;
-
-    FT_Int        max_contours;
-    FT_Int        num_contours;
-    AF_Point*     contours;
-
-    AF_AxisHintsRec  axis[ AF_DIMENSION_MAX ];
-    
-    FT_UInt32         scaler_flags;  /* copy of scaler flags */
-    FT_UInt32         other_flags;   /* free for script-specific implementations */
-    AF_ScriptMetrics  metrics;
-
-  } AF_GlyphHintsRec;
-
-
-#define  AF_HINTS_TEST_SCALER(h,f)  ( (h)->scaler_flags & (f) )
-#define  AF_HINTS_TEST_OTHER(h,f)   ( (h)->other_flags  & (f) )
-
-#define  AF_HINTS_DO_HORIZONTAL(h)  \
-            !AF_HINTS_TEST_SCALER(h,AF_SCALER_FLAG_NO_HORIZONTAL)
-
-#define  AF_HINTS_DO_VERTICAL(h)    \
-            !AF_HINTS_TEST_SCALER(h,AF_SCALER_FLAG_NO_VERTICAL)
-
-#define  AF_HINTS_DO_ADVANCE(h)     \
-            !AF_HINTS_TEST_SCALER(h,AF_SCALER_FLAG_NO_ADVANCE)
-
-
-  FT_LOCAL( AF_Direction )
-  af_direction_compute( FT_Pos  dx,
-                        FT_Pos  dy );
-
-
-  FT_LOCAL( void )
-  af_glyph_hints_init( AF_GlyphHints  hints,
-                       FT_Memory      memory );
-
-
-
- /*  recomputes all AF_Point in a AF_GlyphHints from the definitions
-  *  in a source outline
-  */
-  FT_LOCAL( void )
-  af_glyph_hints_rescale( AF_GlyphHints     hints,
-                          AF_ScriptMetrics  metrics );
-
-  FT_LOCAL( FT_Error )
-  af_glyph_hints_reload( AF_GlyphHints     hints,
-                         FT_Outline*       outline );
-
-  FT_LOCAL( void )
-  af_glyph_hints_save( AF_GlyphHints   hints,
-                       FT_Outline*     outline );
-
-  FT_LOCAL( void )
-  af_glyph_hints_align_edge_points( AF_GlyphHints  hints,
-                                    AF_Dimension   dim );
-
-  FT_LOCAL( void )
-  af_glyph_hints_align_strong_points( AF_GlyphHints  hints,
-                                      AF_Dimension   dim );
-
-  FT_LOCAL( void )
-  af_glyph_hints_align_weak_points( AF_GlyphHints  hints,
-                                    AF_Dimension   dim );
-
-  FT_LOCAL( void )
-  af_glyph_hints_done( AF_GlyphHints  hints );
-
-/* */
-
-FT_END_HEADER
-
-#endif /* __AFHINTS_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/aflatin.c b/nx-X11/extras/freetype2/src/autofit/aflatin.c
deleted file mode 100644
index ce0f8c961..000000000
--- a/nx-X11/extras/freetype2/src/autofit/aflatin.c
+++ /dev/null
@@ -1,1871 +0,0 @@
-#include "aflatin.h"
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****       L A T I N   G L O B A L   M E T R I C S                   *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-  static void
-  af_latin_metrics_init_widths( AF_LatinMetrics  metrics,
-                                FT_Face          face )
-  {
-    /* scan the array of segments in each direction */
-    AF_GlyphHintsRec  hints[1];
-
-    af_glyph_hints_init( hints, face->memory );
-
-    metrics->axis[ AF_DIMENSION_HORZ ].width_count = 0;
-    metrics->axis[ AF_DIMENSION_VERT ].width_count = 0;
-
-    /* For now, compute the standard width and height from the `o' */
-    {
-      FT_Error      error;
-      FT_UInt       glyph_index;
-      AF_Dimension  dim;
-      AF_ScriptMetricsRec  dummy[1];
-      AF_Scaler            scaler = &dummy->scaler;
-
-      glyph_index = FT_Get_Char_Index( face, 'o' );
-      if ( glyph_index == 0 )
-        goto Exit;
-
-      error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE );
-      if ( error || face->glyph->outline.n_points <= 0 )
-        goto Exit;
-
-      FT_ZERO( dummy );
-
-      scaler->x_scale     = scaler->y_scale = 0x10000L;
-      scaler->x_delta     = scaler->y_delta = 0;
-      scaler->face        = face;
-      scaler->render_mode = 0;
-      scaler->flags       = 0;
-
-      af_glyph_hints_rescale( hints, dummy );
-
-      error = af_glyph_hints_reload( hints, &face->glyph->outline );
-      if ( error )
-        goto Exit;
-
-      for ( dim = 0; dim < AF_DIMENSION_MAX; dim++ )
-      {
-        AF_LatinAxis  axis    = & metrics->axis[ dim ];
-        AF_AxisHints  axhints = & hints->axis[ dim ];
-        AF_Segment    seg, limit, link;
-        FT_UInt       num_widths = 0;
-        FT_Pos        edge_distance_threshold = 32000;
-
-        af_latin_hints_compute_segments( hints, dim );
-        af_latin_hints_link_segments   ( hints, dim );
-
-        seg   = axhints->segments;
-        limit = seg + axhints->num_segments;
-
-        for ( ; seg < limit; seg++ )
-        {
-          link = seg->link;
-          /* we only consider stem segments there! */
-          if ( link && link->link == seg && link > seg )
-          {
-            FT_Pos  dist;
-
-
-            dist = seg->pos - link->pos;
-            if ( dist < 0 )
-              dist = -dist;
-
-            if ( num_widths < AF_LATIN_MAX_WIDTHS )
-              axis->widths[ num_widths++ ].org = dist;
-          }
-        }
-
-        af_sort_widths( num_widths, axis->widths );
-        axis->width_count = num_widths;
-
-        /* we will now try to find the smallest width */
-        if ( num_widths > 0 && axis->widths[0].org < edge_distance_threshold )
-          edge_distance_threshold = axis->widths[0].org;
-
-        /* Now, compute the edge distance threshold as a fraction of the */
-        /* smallest width in the font. Set it in `hinter->glyph' too!    */
-        if ( edge_distance_threshold == 32000 )
-          edge_distance_threshold = 50;
-
-        /* let's try 20% */
-        axis->edge_distance_threshold = edge_distance_threshold / 5;
-      }
-    }
-
-  Exit:
-    af_glyph_hints_done( hints );
-  }
-
-
-
-#define AF_LATIN_MAX_TEST_CHARACTERS  12
-
-
-  static  const char* const  af_latin_blue_chars[ AF_LATIN_MAX_BLUES ] =
-  {
-    "THEZOCQS",
-    "HEZLOCUS",
-    "fijkdbh",
-    "xzroesc",
-    "xzroesc",
-    "pqgjy"
-  };
-
-
-  static void
-  af_latin_metrics_init_blues( AF_LatinMetrics  metrics,
-                               FT_Face          face )
-  {
-    FT_Pos        flats [ AF_LATIN_MAX_TEST_CHARACTERS ];
-    FT_Pos        rounds[ AF_LATIN_MAX_TEST_CHARACTERS ];
-    FT_Int        num_flats;
-    FT_Int        num_rounds;
-    FT_Int        bb;
-    AF_LatinBlue  blue;
-    FT_Error      error;
-    AF_LatinAxis  axis  = &metrics->axis[ AF_DIMENSION_VERT ];
-    FT_GlyphSlot  glyph = face->glyph;
-
-    /* we compute the blues simply by loading each character from the    */
-    /* 'af_latin_blue_chars[blues]' string, then compute its top-most or */
-    /* bottom-most points (depending on `AF_IS_TOP_BLUE')                */
-
-    AF_LOG(( "blue zones computation\n" ));
-    AF_LOG(( "------------------------------------------------\n" ));
-
-    for ( bb = 0; bb < AF_LATIN_BLUE_MAX; bb++ )
-    {
-      const char*  p     = af_latin_blue_chars[bb];
-      const char*  limit = p + AF_LATIN_MAX_TEST_CHARACTERS;
-      FT_Pos*      blue_ref;
-      FT_Pos*      blue_shoot;
-
-      AF_LOG(( "blue %3d: ", bb ));
-
-      num_flats  = 0;
-      num_rounds = 0;
-
-      for ( ; p < limit && *p; p++ )
-      {
-        FT_UInt     glyph_index;
-        FT_Vector*  extremum;
-        FT_Vector*  points;
-        FT_Vector*  point_limit;
-        FT_Vector*  point;
-        FT_Bool     round;
-
-
-        AF_LOG(( "'%c'", *p ));
-
-        /* load the character in the face -- skip unknown or empty ones */
-        glyph_index = FT_Get_Char_Index( face, (FT_UInt)*p );
-        if ( glyph_index == 0 )
-          continue;
-
-        error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE );
-        if ( error || glyph->outline.n_points <= 0 )
-          continue;
-
-        /* now compute min or max point indices and coordinates */
-        points      = glyph->outline.points;
-        point_limit = points + glyph->outline.n_points;
-        point       = points;
-        extremum    = point;
-        point++;
-
-        if ( AF_LATIN_IS_TOP_BLUE( bb ) )
-        {
-          for ( ; point < point_limit; point++ )
-            if ( point->y > extremum->y )
-              extremum = point;
-        }
-        else
-        {
-          for ( ; point < point_limit; point++ )
-            if ( point->y < extremum->y )
-              extremum = point;
-        }
-
-        AF_LOG(( "%5d", (int)extremum->y ));
-
-        /* now, check whether the point belongs to a straight or round  */
-        /* segment; we first need to find in which contour the extremum */
-        /* lies, then see its previous and next points                  */
-        {
-          FT_Int  idx = (FT_Int)( extremum - points );
-          FT_Int  n;
-          FT_Int  first, last, prev, next, end;
-          FT_Pos  dist;
-
-
-          last  = -1;
-          first = 0;
-
-          for ( n = 0; n < glyph->outline.n_contours; n++ )
-          {
-            end = glyph->outline.contours[n];
-            if ( end >= idx )
-            {
-              last = end;
-              break;
-            }
-            first = end + 1;
-          }
-
-          /* XXX: should never happen! */
-          if ( last < 0 )
-            continue;
-
-          /* now look for the previous and next points that are not on the */
-          /* same Y coordinate.  Threshold the `closeness'...              */
-
-          prev = idx;
-          next = prev;
-
-          do
-          {
-            if ( prev > first )
-              prev--;
-            else
-              prev = last;
-
-            dist = points[prev].y - extremum->y;
-            if ( dist < -5 || dist > 5 )
-              break;
-
-          } while ( prev != idx );
-
-          do
-          {
-            if ( next < last )
-              next++;
-            else
-              next = first;
-
-            dist = points[next].y - extremum->y;
-            if ( dist < -5 || dist > 5 )
-              break;
-
-          } while ( next != idx );
-
-          /* now, set the `round' flag depending on the segment's kind */
-          round = FT_BOOL(
-            FT_CURVE_TAG( glyph->outline.tags[prev] ) != FT_CURVE_TAG_ON ||
-            FT_CURVE_TAG( glyph->outline.tags[next] ) != FT_CURVE_TAG_ON );
-
-          AF_LOG(( "%c ", round ? 'r' : 'f' ));
-        }
-
-        if ( round )
-          rounds[num_rounds++] = extremum->y;
-        else
-          flats[num_flats++] = extremum->y;
-      }
-
-      AF_LOG(( "\n" ));
-
-      if ( num_flats == 0 && num_rounds == 0 )
-      {
-       /* we couldn't find a single glyph to compute this blue zone,
-        * we will simply ignore it then
-        */
-        AF_LOG(( "empty !!\n" ));
-        continue;
-      }
-
-      /* we have computed the contents of the `rounds' and `flats' tables, */
-      /* now determine the reference and overshoot position of the blue -- */
-      /* we simply take the median value after a simple sort               */
-      af_sort_pos( num_rounds, rounds );
-      af_sort_pos( num_flats,  flats );
-
-      blue       = & axis->blues[ axis->blue_count ];
-      blue_ref   = & blue->ref.org;
-      blue_shoot = & blue->shoot.org;
-
-      axis->blue_count ++;
-
-      if ( num_flats == 0 )
-      {
-        *blue_ref    =
-        *blue_shoot = rounds[num_rounds / 2];
-      }
-      else if ( num_rounds == 0 )
-      {
-        *blue_ref   =
-        *blue_shoot = flats[num_flats / 2];
-      }
-      else
-      {
-        *blue_ref   = flats[num_flats / 2];
-        *blue_shoot = rounds[num_rounds / 2];
-      }
-
-      /* there are sometimes problems: if the overshoot position of top     */
-      /* zones is under its reference position, or the opposite for bottom  */
-      /* zones.  We must thus check everything there and correct the errors */
-      if ( *blue_shoot != *blue_ref )
-      {
-        FT_Pos   ref      = *blue_ref;
-        FT_Pos   shoot    = *blue_shoot;
-        FT_Bool  over_ref = FT_BOOL( shoot > ref );
-
-
-        if ( AF_LATIN_IS_TOP_BLUE( bb ) ^ over_ref )
-          *blue_shoot = *blue_ref = ( shoot + ref ) / 2;
-      }
-
-      blue->flags = 0;
-      if ( AF_LATIN_IS_TOP_BLUE(bb) )
-        blue->flags |= AF_LATIN_BLUE_TOP;
-
-     /* the following flags is used later to adjust the y and x scales
-      * in order to optimize the pixel grid alignment of the top of small
-      * letters.
-      */
-      if ( bb == AF_LATIN_BLUE_SMALL_TOP )
-        blue->flags |= AF_LATIN_BLUE_ADJUSTMENT;
-
-      AF_LOG(( "-- ref = %ld, shoot = %ld\n", *blue_ref, *blue_shoot ));
-    }
-
-    return;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  af_latin_metrics_init( AF_LatinMetrics  metrics,
-                         FT_Face          face )
-  {
-    FT_Error      error;
-    FT_CharMap    oldmap = face->charmap;
-
-    /* do we have a Unicode charmap in there? */
-    error = FT_Select_Charmap( face, FT_ENCODING_UNICODE );
-    if ( error ) goto Exit;
-
-    metrics->units_per_em = face->units_per_EM;
-
-    af_latin_metrics_init_widths( metrics, face );
-    af_latin_metrics_init_blues( metrics, face );
-
-  Exit:
-    FT_Set_Charmap( face, oldmap );
-    return error;
-  }
-
-
-  static void
-  af_latin_metrics_scale_dim( AF_LatinMetrics   metrics,
-                              AF_Scaler         scaler,
-                              AF_Dimension      dim )
-  {
-    FT_Fixed      scale;
-    FT_Pos        delta;
-    AF_LatinAxis  axis;
-    FT_UInt       nn;
-
-    if ( dim == AF_DIMENSION_HORZ )
-    {
-      scale = scaler->x_scale;
-      delta = scaler->x_delta;
-    }
-    else
-    {
-      scale = scaler->y_scale;
-      delta = scaler->y_delta;
-    }
-
-    axis = & metrics->axis[ dim ];
-
-    if ( axis->org_scale == scale && axis->org_delta == delta )
-      return;
-
-    axis->org_scale = scale;
-    axis->org_delta = delta;
-
-   /* correct X and Y scale to optimize the alignment of the top of small
-    * letters to the pixel grid
-    */
-    {
-      AF_LatinAxis  axis  = &metrics->axis[ AF_DIMENSION_VERT ];
-      AF_LatinBlue  blue  = NULL;
-      FT_UInt       nn;
-
-      for ( nn = 0; nn < axis->blue_count; nn++ )
-      {
-        if ( axis->blues[nn].flags & AF_LATIN_BLUE_ADJUSTMENT )
-        {
-          blue = &axis->blues[nn];
-          break;
-        }
-      }
-
-      if ( blue )
-      {
-        FT_Pos  scaled = FT_MulFix( blue->shoot.org, scaler->y_scale );
-        FT_Pos  fitted = FT_PIX_ROUND( scaled );
-
-
-        if ( scaled != fitted )
-        {
-          if ( dim == AF_DIMENSION_HORZ )
-          {
-            if ( fitted < scaled )
-              scale -= scale/50;  /* x_scale = x_scale*0.98 */
-          }
-          else
-          {
-            scale = FT_MulDiv( scale, fitted, scaled );
-          }
-        }
-      }
-    }
-
-    axis->scale = scale;
-    axis->delta = delta;
-
-    if ( dim == AF_DIMENSION_HORZ )
-    {
-      metrics->root.scaler.x_scale = scale;
-      metrics->root.scaler.x_delta = delta;
-    }
-    else
-    {
-      metrics->root.scaler.y_scale = scale;
-      metrics->root.scaler.y_delta = delta;
-    }
-
-   /* scale the standard widths
-    */
-    for ( nn = 0; nn < axis->width_count; nn++ )
-    {
-      AF_Width  width = axis->widths + nn;
-
-      width->cur = FT_MulFix( width->org, scale );
-      width->fit = width->cur;
-    }
-
-    if ( dim == AF_DIMENSION_VERT )
-    {
-     /* scale the blue zones
-      */
-      for ( nn = 0; nn < axis->blue_count; nn++ )
-      {
-        AF_LatinBlue  blue  = & axis->blues[nn];
-        FT_Pos        dist;
-
-        blue->ref.cur   = FT_MulFix( blue->ref.org, scale ) + delta;
-        blue->ref.fit   = blue->ref.cur;
-        blue->shoot.cur = FT_MulFix( blue->shoot.org, scale ) + delta;
-        blue->shoot.fit = blue->shoot.cur;
-        blue->flags    &= ~AF_LATIN_BLUE_ACTIVE;
-
-       /* a blue zone is only active when it is less than 3/4 pixels tall
-        */
-        dist = FT_MulFix( blue->ref.org - blue->shoot.org, scale );
-        if ( dist <= 48 && dist >= -48 )
-        {
-          FT_Pos  delta, delta2;
-
-          delta  = blue->shoot.org - blue->ref.org;
-          delta2 = delta;
-          if ( delta < 0 )
-            delta2 = -delta2;
-
-          delta2 = FT_MulFix( delta2, scale );
-
-          if ( delta2 < 32 )
-            delta2 = 0;
-          else if ( delta2 < 64 )
-            delta2 = 32 + ( ( ( delta2 - 32 ) + 16 ) & ~31 );
-          else
-            delta2 = FT_PIX_ROUND( delta2 );
-
-          if ( delta < 0 )
-            delta2 = -delta2;
-
-          blue->ref.fit   = FT_PIX_ROUND( blue->ref.cur );
-          blue->shoot.fit = blue->ref.fit + delta2;
-
-          blue->flags |= AF_LATIN_BLUE_ACTIVE;
-        }
-      }
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_latin_metrics_scale( AF_LatinMetrics  metrics,
-                          AF_Scaler        scaler )
-  {
-    if ( AF_SCALER_EQUAL_SCALES( scaler, &metrics->root.scaler ) )
-      return;
-
-    af_latin_metrics_scale_dim( metrics, scaler, AF_DIMENSION_HORZ );
-    af_latin_metrics_scale_dim( metrics, scaler, AF_DIMENSION_VERT );
-  }
-
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****            L A T I N   G L Y P H   A N A L Y S I S              *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-  FT_LOCAL_DEF( void )
-  af_latin_hints_compute_segments( AF_GlyphHints  hints,
-                                   AF_Dimension   dim )
-  {
-    AF_AxisHints  axis = &hints->axis[dim];
-    AF_Segment    segments = axis->segments;
-    AF_Segment    segment       =  segments;
-    FT_Int        num_segments  =  0;
-    AF_Point*     contour       =  hints->contours;
-    AF_Point*     contour_limit =  contour + hints->num_contours;
-    AF_Direction  major_dir, segment_dir;
-
-#ifdef AF_HINT_METRICS
-    AF_Point    min_point     =  0;
-    AF_Point    max_point     =  0;
-    FT_Pos      min_coord     =  32000;
-    FT_Pos      max_coord     = -32000;
-#endif
-
-    major_dir   = FT_ABS( axis->major_dir );
-    segment_dir = major_dir;
-
-    /* set up (u,v) in each point */
-    if ( dim == AF_DIMENSION_HORZ )
-    {
-      AF_Point  point = hints->points;
-      AF_Point  limit = point + hints->num_points;
-
-      for ( ; point < limit; point++ )
-      {
-        point->u = point->fx;
-        point->v = point->fy;
-      }
-    }
-    else
-    {
-      AF_Point  point = hints->points;
-      AF_Point  limit = point + hints->num_points;
-
-      for ( ; point < limit; point++ )
-      {
-        point->u = point->fy;
-        point->v = point->fx;
-      }
-    }
-
-
-    /* do each contour separately */
-    for ( ; contour < contour_limit; contour++ )
-    {
-      AF_Point  point   =  contour[0];
-      AF_Point  last    =  point->prev;
-      int       on_edge =  0;
-      FT_Pos    min_pos =  32000;  /* minimum segment pos != min_coord */
-      FT_Pos    max_pos = -32000;  /* maximum segment pos != max_coord */
-      FT_Bool   passed;
-
-
-#ifdef AF_HINT_METRICS
-      if ( point->u < min_coord )
-      {
-        min_coord = point->u;
-        min_point = point;
-      }
-      if ( point->u > max_coord )
-      {
-        max_coord = point->u;
-        max_point = point;
-      }
-#endif
-
-      if ( point == last )  /* skip singletons -- just in case */
-        continue;
-
-      if ( FT_ABS( last->out_dir )  == major_dir &&
-           FT_ABS( point->out_dir ) == major_dir )
-      {
-        /* we are already on an edge, try to locate its start */
-        last = point;
-
-        for (;;)
-        {
-          point = point->prev;
-          if ( FT_ABS( point->out_dir ) != major_dir )
-          {
-            point = point->next;
-            break;
-          }
-          if ( point == last )
-            break;
-        }
-      }
-
-      last   = point;
-      passed = 0;
-
-      for (;;)
-      {
-        FT_Pos  u, v;
-
-
-        if ( on_edge )
-        {
-          u = point->u;
-          if ( u < min_pos )
-            min_pos = u;
-          if ( u > max_pos )
-            max_pos = u;
-
-          if ( point->out_dir != segment_dir || point == last )
-          {
-            /* we are just leaving an edge; record a new segment! */
-            segment->last = point;
-            segment->pos  = ( min_pos + max_pos ) >> 1;
-
-            /* a segment is round if either its first or last point */
-            /* is a control point                                   */
-            if ( ( segment->first->flags | point->flags ) &
-                   AF_FLAG_CONTROL                        )
-              segment->flags |= AF_EDGE_ROUND;
-
-            /* compute segment size */
-            min_pos = max_pos = point->v;
-
-            v = segment->first->v;
-            if ( v < min_pos )
-              min_pos = v;
-            if ( v > max_pos )
-              max_pos = v;
-
-            segment->min_coord = min_pos;
-            segment->max_coord = max_pos;
-
-            on_edge = 0;
-            num_segments++;
-            segment++;
-            /* fallthrough */
-          }
-        }
-
-        /* now exit if we are at the start/end point */
-        if ( point == last )
-        {
-          if ( passed )
-            break;
-          passed = 1;
-        }
-
-        if ( !on_edge && FT_ABS( point->out_dir ) == major_dir )
-        {
-          /* this is the start of a new segment! */
-          segment_dir = point->out_dir;
-
-          /* clear all segment fields */
-          FT_ZERO( segment );
-
-          segment->dir      = segment_dir;
-          segment->flags    = AF_EDGE_NORMAL;
-          min_pos = max_pos = point->u;
-          segment->first    = point;
-          segment->last     = point;
-          segment->contour  = contour;
-          segment->score    = 32000;
-          segment->link     = NULL;
-          on_edge           = 1;
-
-#ifdef AF_HINT_METRICS
-          if ( point == max_point )
-            max_point = 0;
-
-          if ( point == min_point )
-            min_point = 0;
-#endif
-        }
-
-        point = point->next;
-      }
-
-    } /* contours */
-
-#ifdef AF_HINT_METRICS
-    /* we need to ensure that there are edges on the left-most and  */
-    /* right-most points of the glyph in order to hint the metrics; */
-    /* we do this by inserting fake segments when needed            */
-    if ( dim == AF_DIMENSION_HORZ )
-    {
-      AF_Point  point       = hints->points;
-      AF_Point  point_limit = point + hints->num_points;
-
-      FT_Pos    min_pos =  32000;
-      FT_Pos    max_pos = -32000;
-
-
-      min_point = 0;
-      max_point = 0;
-
-      /* compute minimum and maximum points */
-      for ( ; point < point_limit; point++ )
-      {
-        FT_Pos  x = point->fx;
-
-
-        if ( x < min_pos )
-        {
-          min_pos   = x;
-          min_point = point;
-        }
-        if ( x > max_pos )
-        {
-          max_pos   = x;
-          max_point = point;
-        }
-      }
-
-      /* insert minimum segment */
-      if ( min_point )
-      {
-        /* clear all segment fields */
-        FT_ZERO( segment );
-
-        segment->dir   = segment_dir;
-        segment->flags = AF_EDGE_NORMAL;
-        segment->first = min_point;
-        segment->last  = min_point;
-        segment->pos   = min_pos;
-        segment->score = 32000;
-        segment->link  = NULL;
-
-        num_segments++;
-        segment++;
-      }
-
-      /* insert maximum segment */
-      if ( max_point )
-      {
-        /* clear all segment fields */
-        FT_ZERO( segment );
-
-        segment->dir   = segment_dir;
-        segment->flags = AF_EDGE_NORMAL;
-        segment->first = max_point;
-        segment->last  = max_point;
-        segment->pos   = max_pos;
-        segment->score = 32000;
-        segment->link  = NULL;
-
-        num_segments++;
-        segment++;
-      }
-    }
-#endif /* AF_HINT_METRICS */
-
-    axis->num_segments = num_segments;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_latin_hints_link_segments( AF_GlyphHints  hints,
-                                AF_Dimension   dim )
-  {
-    AF_AxisHints  axis          = &hints->axis[dim];
-    AF_Segment    segments      = axis->segments;
-    AF_Segment    segment_limit = segments + axis->num_segments;
-    AF_Direction  major_dir     = axis->major_dir;
-    AF_Segment    seg1, seg2;
-
-    /* now compare each segment to the others */
-    for ( seg1 = segments; seg1 < segment_limit; seg1++ )
-    {
-      /* the fake segments are introduced to hint the metrics -- */
-      /* we must never link them to anything                     */
-      if ( seg1->first == seg1->last || seg1->dir != major_dir )
-        continue;
-
-      for ( seg2 = segments; seg2 < segment_limit; seg2++ )
-        if ( seg2 != seg1 && seg1->dir + seg2->dir == 0 )
-        {
-          FT_Pos  pos1 = seg1->pos;
-          FT_Pos  pos2 = seg2->pos;
-          FT_Pos  dist = pos2 - pos1;
-
-
-          if ( dist < 0 )
-            continue;
-
-          {
-            FT_Pos  min = seg1->min_coord;
-            FT_Pos  max = seg1->max_coord;
-            FT_Pos  len, score;
-
-
-            if ( min < seg2->min_coord )
-              min = seg2->min_coord;
-
-            if ( max > seg2->max_coord )
-              max = seg2->max_coord;
-
-            len = max - min;
-            if ( len >= 8 )
-            {
-              score = dist + 3000 / len;
-
-              if ( score < seg1->score )
-              {
-                seg1->score = score;
-                seg1->link  = seg2;
-              }
-
-              if ( score < seg2->score )
-              {
-                seg2->score = score;
-                seg2->link  = seg1;
-              }
-            }
-          }
-        }
-    }
-
-    /* now, compute the `serif' segments */
-    for ( seg1 = segments; seg1 < segment_limit; seg1++ )
-    {
-      seg2 = seg1->link;
-
-      if ( seg2 )
-      {
-        seg2->num_linked++;
-        if ( seg2->link != seg1 )
-        {
-          seg1->link  = 0;
-          seg1->serif = seg2->link;
-        }
-      }
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_latin_hints_compute_edges( AF_GlyphHints  hints,
-                                AF_Dimension   dim )
-  {
-    AF_AxisHints  axis = &hints->axis[dim];
-    AF_LatinAxis  laxis = &((AF_LatinMetrics)hints->metrics)->axis[dim];
-    AF_Edge       edges = axis->edges;
-    AF_Edge       edge, edge_limit;
-
-    AF_Segment    segments = axis->segments;
-    AF_Segment    segment_limit = segments + axis->num_segments;
-    AF_Segment    seg;
-
-    AF_Direction  up_dir;
-    FT_Fixed      scale;
-    FT_Pos        edge_distance_threshold;
-
-
-    scale = ( dim == AF_DIMENSION_HORZ ) ? hints->x_scale
-                                         : hints->y_scale;
-
-    up_dir = ( dim == AF_DIMENSION_HORZ ) ? AF_DIR_UP
-                                          : AF_DIR_RIGHT;
-
-    /*********************************************************************/
-    /*                                                                   */
-    /* We will begin by generating a sorted table of edges for the       */
-    /* current direction.  To do so, we simply scan each segment and try */
-    /* to find an edge in our table that corresponds to its position.    */
-    /*                                                                   */
-    /* If no edge is found, we create and insert a new edge in the       */
-    /* sorted table.  Otherwise, we simply add the segment to the edge's */
-    /* list which will be processed in the second step to compute the    */
-    /* edge's properties.                                                */
-    /*                                                                   */
-    /* Note that the edges table is sorted along the segment/edge        */
-    /* position.                                                         */
-    /*                                                                   */
-    /*********************************************************************/
-
-    edge_distance_threshold = FT_MulFix( laxis->edge_distance_threshold,
-                                         scale );
-    if ( edge_distance_threshold > 64 / 4 )
-      edge_distance_threshold = 64 / 4;
-
-    edge_distance_threshold = FT_DivFix( edge_distance_threshold,
-                                         scale );
-
-    edge_limit = edges;
-    for ( seg = segments; seg < segment_limit; seg++ )
-    {
-      AF_Edge  found = 0;
-
-
-      /* look for an edge corresponding to the segment */
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        FT_Pos  dist;
-
-
-        dist = seg->pos - edge->fpos;
-        if ( dist < 0 )
-          dist = -dist;
-
-        if ( dist < edge_distance_threshold )
-        {
-          found = edge;
-          break;
-        }
-      }
-
-      if ( !found )
-      {
-        /* insert a new edge in the list and */
-        /* sort according to the position    */
-        while ( edge > edges && edge[-1].fpos > seg->pos )
-        {
-          edge[0] = edge[-1];
-          edge--;
-        }
-        edge_limit++;
-
-        /* clear all edge fields */
-        FT_ZERO( edge );
-
-        /* add the segment to the new edge's list */
-        edge->first    = seg;
-        edge->last     = seg;
-        edge->fpos     = seg->pos;
-        edge->opos     = edge->pos = FT_MulFix( seg->pos, scale );
-        seg->edge_next = seg;
-      }
-      else
-      {
-        /* if an edge was found, simply add the segment to the edge's */
-        /* list                                                       */
-        seg->edge_next        = edge->first;
-        edge->last->edge_next = seg;
-        edge->last            = seg;
-      }
-    }
-    axis->num_edges = (FT_Int)( edge_limit - edges );
-
-
-    /*********************************************************************/
-    /*                                                                   */
-    /* Good, we will now compute each edge's properties according to     */
-    /* segments found on its position.  Basically, these are:            */
-    /*                                                                   */
-    /*  - edge's main direction                                          */
-    /*  - stem edge, serif edge or both (which defaults to stem then)    */
-    /*  - rounded edge, straight or both (which defaults to straight)    */
-    /*  - link for edge                                                  */
-    /*                                                                   */
-    /*********************************************************************/
-
-    /* first of all, set the `edge' field in each segment -- this is */
-    /* required in order to compute edge links                       */
-
-    /* Note that I've tried to remove this loop, setting
-     * the "edge" field of each segment directly in the
-     * code above.  For some reason, it slows down execution
-     * speed -- on a Sun.
-     */
-    for ( edge = edges; edge < edge_limit; edge++ )
-    {
-      seg = edge->first;
-      if ( seg )
-        do
-        {
-          seg->edge = edge;
-          seg       = seg->edge_next;
-        }
-        while ( seg != edge->first );
-    }
-
-    /* now, compute each edge properties */
-    for ( edge = edges; edge < edge_limit; edge++ )
-    {
-      FT_Int  is_round    = 0;  /* does it contain round segments?    */
-      FT_Int  is_straight = 0;  /* does it contain straight segments? */
-      FT_Pos  ups         = 0;  /* number of upwards segments         */
-      FT_Pos  downs       = 0;  /* number of downwards segments       */
-
-
-      seg = edge->first;
-
-      do
-      {
-        FT_Bool  is_serif;
-
-
-        /* check for roundness of segment */
-        if ( seg->flags & AF_EDGE_ROUND )
-          is_round++;
-        else
-          is_straight++;
-
-        /* check for segment direction */
-        if ( seg->dir == up_dir )
-          ups   += seg->max_coord-seg->min_coord;
-        else
-          downs += seg->max_coord-seg->min_coord;
-
-        /* check for links -- if seg->serif is set, then seg->link must */
-        /* be ignored                                                   */
-        is_serif = (FT_Bool)( seg->serif && seg->serif->edge != edge );
-
-        if ( seg->link || is_serif )
-        {
-          AF_Edge     edge2;
-          AF_Segment  seg2;
-
-
-          edge2 = edge->link;
-          seg2  = seg->link;
-
-          if ( is_serif )
-          {
-            seg2  = seg->serif;
-            edge2 = edge->serif;
-          }
-
-          if ( edge2 )
-          {
-            FT_Pos  edge_delta;
-            FT_Pos  seg_delta;
-
-
-            edge_delta = edge->fpos - edge2->fpos;
-            if ( edge_delta < 0 )
-              edge_delta = -edge_delta;
-
-            seg_delta = seg->pos - seg2->pos;
-            if ( seg_delta < 0 )
-              seg_delta = -seg_delta;
-
-            if ( seg_delta < edge_delta )
-              edge2 = seg2->edge;
-          }
-          else
-            edge2 = seg2->edge;
-
-          if ( is_serif )
-          {
-            edge->serif   = edge2;
-            edge2->flags |= AF_EDGE_SERIF;
-          }
-          else
-            edge->link  = edge2;
-        }
-
-        seg = seg->edge_next;
-
-      } while ( seg != edge->first );
-
-      /* set the round/straight flags */
-      edge->flags = AF_EDGE_NORMAL;
-
-      if ( is_round > 0 && is_round >= is_straight )
-        edge->flags |= AF_EDGE_ROUND;
-
-      /* set the edge's main direction */
-      edge->dir = AF_DIR_NONE;
-
-      if ( ups > downs )
-        edge->dir = up_dir;
-
-      else if ( ups < downs )
-        edge->dir = -up_dir;
-
-      else if ( ups == downs )
-        edge->dir = 0;  /* both up and down! */
-
-      /* gets rid of serifs if link is set                */
-      /* XXX: This gets rid of many unpleasant artefacts! */
-      /*      Example: the `c' in cour.pfa at size 13     */
-
-      if ( edge->serif && edge->link )
-        edge->serif = 0;
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_latin_hints_detect_features( AF_GlyphHints  hints,
-                                  AF_Dimension   dim )
-  {
-    af_latin_hints_compute_segments( hints, dim );
-    af_latin_hints_link_segments   ( hints, dim );
-    af_latin_hints_compute_edges   ( hints, dim );
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_latin_hints_compute_blue_edges( AF_GlyphHints    hints,
-                                     AF_LatinMetrics  metrics )
-  {
-    AF_AxisHints  axis       = &hints->axis[ AF_DIMENSION_VERT ];
-    AF_Edge       edge       = axis->edges;
-    AF_Edge       edge_limit = edge + axis->num_edges;
-    AF_LatinAxis  latin      = &metrics->axis[ AF_DIMENSION_VERT ];
-    FT_Fixed      scale      = latin->scale;
-
-
-    /* compute which blue zones are active, i.e. have their scaled */
-    /* size < 3/4 pixels                                           */
-
-   /* for each horizontal edge search the blue zone which is closest */
-    for ( ; edge < edge_limit; edge++ )
-    {
-      FT_Int     bb;
-      AF_Width   best_blue = NULL;
-      FT_Pos     best_dist;  /* initial threshold */
-
-
-      /* compute the initial threshold as a fraction of the EM size */
-      best_dist = FT_MulFix( metrics->units_per_em / 40, scale );
-
-      if ( best_dist > 64 / 2 )
-        best_dist = 64 / 2;
-
-      for ( bb = 0; bb < AF_LATIN_BLUE_MAX; bb++ )
-      {
-        AF_LatinBlue  blue = latin->blues + bb;
-        FT_Bool       is_top_blue, is_major_dir;
-
-       /* skip inactive blue zones (i.e. those that are too small
-        */
-        if ( !(blue->flags & AF_LATIN_BLUE_ACTIVE) )
-          continue;
-
-        /* if it is a top zone, check for right edges -- if it is a bottom */
-        /* zone, check for left edges                                      */
-        /*                                                                 */
-        /* of course, that's for TrueType                                  */
-        is_top_blue  = (blue->flags & AF_LATIN_BLUE_TOP) != 0;
-        is_major_dir = FT_BOOL( edge->dir == axis->major_dir );
-
-        /* if it is a top zone, the edge must be against the major    */
-        /* direction; if it is a bottom zone, it must be in the major */
-        /* direction                                                  */
-        if ( is_top_blue ^ is_major_dir )
-        {
-          FT_Pos   dist;
-
-
-          /* first of all, compare it to the reference position */
-          dist = edge->fpos - blue->ref.org;
-          if ( dist < 0 )
-            dist = -dist;
-
-          dist = FT_MulFix( dist, scale );
-          if ( dist < best_dist )
-          {
-            best_dist = dist;
-            best_blue = & blue->ref;
-          }
-
-          /* now, compare it to the overshoot position if the edge is     */
-          /* rounded, and if the edge is over the reference position of a */
-          /* top zone, or under the reference position of a bottom zone   */
-          if ( edge->flags & AF_EDGE_ROUND && dist != 0 )
-          {
-            FT_Bool  is_under_ref = FT_BOOL( edge->fpos < blue->ref.org );
-
-
-            if ( is_top_blue ^ is_under_ref )
-            {
-              blue = latin->blues + bb;
-              dist = edge->fpos - blue->shoot.org;
-              if ( dist < 0 )
-                dist = -dist;
-
-              dist = FT_MulFix( dist, scale );
-              if ( dist < best_dist )
-              {
-                best_dist = dist;
-                best_blue = & blue->shoot;
-              }
-            }
-          }
-        }
-      }
-
-      if ( best_blue )
-        edge->blue_edge = best_blue;
-    }
-  }
-
-
-  static FT_Error
-  af_latin_hints_init( AF_GlyphHints    hints,
-                       AF_LatinMetrics  metrics )
-  {
-    FT_Render_Mode  mode;
-
-    af_glyph_hints_rescale( hints, (AF_ScriptMetrics)metrics );
-
-   /* correct x_scale and y_scale when needed, since they may have
-    * been modified af_latin_scale_dim above
-    */
-    hints->x_scale = metrics->axis[ AF_DIMENSION_HORZ ].scale;
-    hints->x_delta = metrics->axis[ AF_DIMENSION_HORZ ].delta;
-    hints->y_scale = metrics->axis[ AF_DIMENSION_VERT ].scale;
-    hints->y_delta = metrics->axis[ AF_DIMENSION_VERT ].delta;
-
-   /* compute flags depending on render mode, etc...
-    */
-
-    mode = metrics->root.scaler.render_mode;
-
-   /* we snap the width of vertical stems for the monochrome and
-    * horizontal LCD rendering targets only.
-    */
-    if ( mode == FT_RENDER_MODE_MONO || mode == FT_RENDER_MODE_LCD )
-      hints->other_flags |= AF_LATIN_HINTS_HORZ_SNAP;
-
-   /* we snap the width of horizontal stems for the monochrome and
-    * vertical LCD rendering targets only.
-    */
-    if ( mode == FT_RENDER_MODE_MONO || mode == FT_RENDER_MODE_LCD_V )
-      hints->other_flags |= AF_LATIN_HINTS_VERT_SNAP;
-
-   /* XXX
-    */
-    if ( mode != FT_RENDER_MODE_LIGHT )
-      hints->other_flags |= AF_LATIN_HINTS_STEM_ADJUST;
-
-    if ( mode == FT_RENDER_MODE_MONO )
-      hints->other_flags |= AF_LATIN_HINTS_MONO;
-
-    return 0;
-  }
-
-
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****         L A T I N   G L Y P H   G R I D - F I T T I N G         *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-  /* snap a given width in scaled coordinates to one of the */
-  /* current standard widths                                */
-  static FT_Pos
-  af_latin_snap_width( AF_Width  widths,
-                       FT_Int    count,
-                       FT_Pos    width )
-  {
-    int     n;
-    FT_Pos  best      = 64 + 32 + 2;
-    FT_Pos  reference = width;
-    FT_Pos  scaled;
-
-
-    for ( n = 0; n < count; n++ )
-    {
-      FT_Pos  w;
-      FT_Pos  dist;
-
-
-      w = widths[n].cur;
-      dist = width - w;
-      if ( dist < 0 )
-        dist = -dist;
-      if ( dist < best )
-      {
-        best      = dist;
-        reference = w;
-      }
-    }
-
-    scaled = FT_PIX_ROUND( reference );
-
-    if ( width >= reference )
-    {
-      if ( width < scaled + 48 )
-        width = reference;
-    }
-    else
-    {
-      if ( width > scaled - 48 )
-        width = reference;
-    }
-
-    return width;
-  }
-
-
-  /* compute the snapped width of a given stem */
-
-  static FT_Pos
-  af_latin_compute_stem_width( AF_GlyphHints  hints,
-                               AF_Dimension   dim,
-                               FT_Pos         width,
-                               AF_Edge_Flags  base_flags,
-                               AF_Edge_Flags  stem_flags )
-  {
-    AF_LatinMetrics  metrics  = (AF_LatinMetrics) hints->metrics;
-    AF_LatinAxis     axis     = & metrics->axis[ dim ];
-    FT_Pos           dist     = width;
-    FT_Int           sign     = 0;
-    FT_Int           vertical = AF_HINTS_DO_VERTICAL( hints );
-
-
-    if ( !AF_LATIN_HINTS_DO_STEM_ADJUST( hints ) )
-      return width;
-
-    if ( dist < 0 )
-    {
-      dist = -width;
-      sign = 1;
-    }
-
-    if ( (  vertical && !AF_LATIN_HINTS_DO_VERT_SNAP( hints ) ) ||
-         ( !vertical && !AF_LATIN_HINTS_DO_HORZ_SNAP( hints ) ) )
-    {
-      /* smooth hinting process: very lightly quantize the stem width */
-      /*                                                              */
-
-      /* leave the widths of serifs alone */
-
-      if ( ( stem_flags & AF_EDGE_SERIF ) && vertical && ( dist < 3 * 64 ) )
-        goto Done_Width;
-
-      else if ( ( base_flags & AF_EDGE_ROUND ) )
-      {
-        if ( dist < 80 )
-          dist = 64;
-      }
-      else if ( dist < 56 )
-        dist = 56;
-
-      if ( axis->width_count > 0 )
-      {
-        FT_Pos  delta;
-
-       /* compare to standard width
-        */
-        if ( axis->width_count > 0 )
-        {
-          delta = dist - axis->widths[0].cur;
-
-          if ( delta < 0 )
-            delta = -delta;
-
-          if ( delta < 40 )
-          {
-            dist = axis->widths[ 0 ].cur;
-            if ( dist < 48 )
-              dist = 48;
-
-            goto Done_Width;
-          }
-        }
-
-        if ( dist < 3 * 64 )
-        {
-          delta  = dist & 63;
-          dist  &= -64;
-
-          if ( delta < 10 )
-            dist += delta;
-
-          else if ( delta < 32 )
-            dist += 10;
-
-          else if ( delta < 54 )
-            dist += 54;
-
-          else
-            dist += delta;
-        }
-        else
-          dist = ( dist + 32 ) & ~63;
-      }
-    }
-    else
-    {
-      /* strong hinting process: snap the stem width to integer pixels */
-      /*                                                               */
-      dist = af_latin_snap_width( axis->widths, axis->width_count, dist );
-
-      if ( vertical )
-      {
-        /* in the case of vertical hinting, always round */
-        /* the stem heights to integer pixels            */
-        if ( dist >= 64 )
-          dist = ( dist + 16 ) & ~63;
-        else
-          dist = 64;
-      }
-      else
-      {
-        if ( AF_LATIN_HINTS_DO_MONO( hints ) )
-        {
-          /* monochrome horizontal hinting: snap widths to integer pixels */
-          /* with a different threshold                                   */
-          if ( dist < 64 )
-            dist = 64;
-          else
-            dist = ( dist + 32 ) & ~63;
-        }
-        else
-        {
-          /* for horizontal anti-aliased hinting, we adopt a more subtle */
-          /* approach: we strengthen small stems, round stems whose size */
-          /* is between 1 and 2 pixels to an integer, otherwise nothing  */
-          if ( dist < 48 )
-            dist = ( dist + 64 ) >> 1;
-
-          else if ( dist < 128 )
-            dist = ( dist + 22 ) & ~63;
-          else
-            /* round otherwise to prevent color fringes in LCD mode */
-            dist = ( dist + 32 ) & ~63;
-        }
-      }
-    }
-
-  Done_Width:
-    if ( sign )
-      dist = -dist;
-
-    return dist;
-  }
-
-
-
-  /* align one stem edge relative to the previous stem edge */
-  static void
-  af_latin_align_linked_edge( AF_GlyphHints  hints,
-                              AF_Dimension   dim,
-                              AF_Edge        base_edge,
-                              AF_Edge        stem_edge )
-  {
-    FT_Pos  dist = stem_edge->opos - base_edge->opos;
-
-    FT_Pos  fitted_width = af_latin_compute_stem_width( hints,
-                                                        dim,
-                                                        dist,
-                                                        base_edge->flags,
-                                                        stem_edge->flags );
-
-    stem_edge->pos = base_edge->pos + fitted_width;
-  }
-
-
-  static void
-  af_latin_align_serif_edge( AF_GlyphHints  hints,
-                             AF_Edge        base,
-                             AF_Edge        serif )
-  {
-    FT_UNUSED( hints );
-
-    serif->pos = base->pos + (serif->opos - base->opos);
-  }
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****       E D G E   H I N T I N G                                   ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( void )
-  af_latin_hint_edges( AF_GlyphHints   hints,
-                       AF_Dimension    dim )
-  {
-    AF_AxisHints  axis = & hints->axis[dim];
-    AF_Edge       edges = axis->edges;
-    AF_Edge       edge_limit = edges + axis->num_edges;
-    FT_Int        n_edges;
-    AF_Edge       edge;
-    AF_Edge       anchor = 0;
-    FT_Int        has_serifs = 0;
-
-
-    /* we begin by aligning all stems relative to the blue zone */
-    /* if needed -- that's only for horizontal edges            */
-    if ( dim == AF_DIMENSION_VERT )
-    {
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        AF_Width  blue;
-        AF_Edge   edge1, edge2;
-
-
-        if ( edge->flags & AF_EDGE_DONE )
-          continue;
-
-        blue  = edge->blue_edge;
-        edge1 = NULL;
-        edge2 = edge->link;
-
-        if ( blue )
-        {
-          edge1 = edge;
-        }
-        else if ( edge2 && edge2->blue_edge )
-        {
-          blue  = edge2->blue_edge;
-          edge1 = edge2;
-          edge2 = edge;
-        }
-
-        if ( !edge1 )
-          continue;
-
-        edge1->pos    = blue->fit;
-        edge1->flags |= AF_EDGE_DONE;
-
-        if ( edge2 && !edge2->blue_edge )
-        {
-          af_latin_align_linked_edge( hints, dim, edge1, edge2 );
-          edge2->flags |= AF_EDGE_DONE;
-        }
-
-        if ( !anchor )
-          anchor = edge;
-      }
-    }
-
-    /* now we will align all stem edges, trying to maintain the */
-    /* relative order of stems in the glyph                     */
-    for ( edge = edges; edge < edge_limit; edge++ )
-    {
-      AF_Edge  edge2;
-
-
-      if ( edge->flags & AF_EDGE_DONE )
-        continue;
-
-      /* skip all non-stem edges */
-      edge2 = edge->link;
-      if ( !edge2 )
-      {
-        has_serifs++;
-        continue;
-      }
-
-      /* now align the stem */
-
-      /* this should not happen, but it's better to be safe */
-      if ( edge2->blue_edge || edge2 < edge )
-      {
-        af_latin_align_linked_edge( hints, dim, edge2, edge );
-        edge->flags |= AF_EDGE_DONE;
-        continue;
-      }
-
-      if ( !anchor )
-      {
-        FT_Pos  org_len, org_center, cur_len;
-        FT_Pos  cur_pos1, error1, error2, u_off, d_off;
-
-
-        org_len = edge2->opos - edge->opos;
-        cur_len = af_latin_compute_stem_width( hints, dim, org_len,
-                                               edge->flags, edge2->flags );
-        if ( cur_len <= 64 )
-          u_off = d_off = 32;
-        else
-        {
-          u_off = 38;
-          d_off = 26;
-        }
-
-        if ( cur_len < 96 )
-        {
-          org_center = edge->opos + ( org_len >> 1 );
-
-          cur_pos1   = FT_PIX_ROUND( org_center );
-
-          error1 = org_center - ( cur_pos1 - u_off );
-          if ( error1 < 0 )
-            error1 = -error1;
-
-          error2 = org_center - ( cur_pos1 + d_off );
-          if ( error2 < 0 )
-            error2 = -error2;
-
-          if ( error1 < error2 )
-            cur_pos1 -= u_off;
-          else
-            cur_pos1 += d_off;
-
-          edge->pos  = cur_pos1 - cur_len / 2;
-          edge2->pos = cur_pos1 + cur_len / 2;
-
-        }
-        else
-          edge->pos = FT_PIX_ROUND( edge->opos );
-
-        anchor = edge;
-
-        edge->flags |= AF_EDGE_DONE;
-
-        af_latin_align_linked_edge( hints, dim, edge, edge2 );
-      }
-      else
-      {
-        FT_Pos  org_pos, org_len, org_center, cur_len;
-        FT_Pos  cur_pos1, cur_pos2, delta1, delta2;
-
-
-        org_pos    = anchor->pos + ( edge->opos - anchor->opos );
-        org_len    = edge2->opos - edge->opos;
-        org_center = org_pos + ( org_len >> 1 );
-
-        cur_len = af_latin_compute_stem_width( hints, dim, org_len,
-                                               edge->flags, edge2->flags  );
-
-        if ( cur_len < 96 )
-        {
-          FT_Pos  u_off, d_off;
-
-
-          cur_pos1 = FT_PIX_ROUND( org_center );
-
-          if (cur_len <= 64 )
-            u_off = d_off = 32;
-          else
-          {
-            u_off = 38;
-            d_off = 26;
-          }
-
-          delta1 = org_center - ( cur_pos1 - u_off );
-          if ( delta1 < 0 )
-            delta1 = -delta1;
-
-          delta2 = org_center - ( cur_pos1 + d_off );
-          if ( delta2 < 0 )
-            delta2 = -delta2;
-
-          if ( delta1 < delta2 )
-            cur_pos1 -= u_off;
-          else
-            cur_pos1 += d_off;
-
-          edge->pos  = cur_pos1 - cur_len / 2;
-          edge2->pos = cur_pos1 + cur_len / 2;
-        }
-        else
-        {
-          org_pos    = anchor->pos + ( edge->opos - anchor->opos );
-          org_len    = edge2->opos - edge->opos;
-          org_center = org_pos + ( org_len >> 1 );
-
-          cur_len    = af_latin_compute_stem_width( hints, dim, org_len,
-                                                    edge->flags, edge2->flags );
-
-          cur_pos1   = FT_PIX_ROUND( org_pos );
-          delta1     = ( cur_pos1 + ( cur_len >> 1 ) - org_center );
-          if ( delta1 < 0 )
-            delta1 = -delta1;
-
-          cur_pos2   = FT_PIX_ROUND( org_pos + org_len ) - cur_len;
-          delta2     = ( cur_pos2 + ( cur_len >> 1 ) - org_center );
-          if ( delta2 < 0 )
-            delta2 = -delta2;
-
-          edge->pos  = ( delta1 < delta2 ) ? cur_pos1 : cur_pos2;
-          edge2->pos = edge->pos + cur_len;
-        }
-
-        edge->flags  |= AF_EDGE_DONE;
-        edge2->flags |= AF_EDGE_DONE;
-
-        if ( edge > edges && edge->pos < edge[-1].pos )
-          edge->pos = edge[-1].pos;
-      }
-    }
-
-    /* make sure that lowercase m's maintain their symmetry */
-
-    /* In general, lowercase m's have six vertical edges if they are sans */
-    /* serif, or twelve if they are avec serif.  This implementation is   */
-    /* based on that assumption, and seems to work very well with most    */
-    /* faces.  However, if for a certain face this assumption is not      */
-    /* true, the m is just rendered like before.  In addition, any stem   */
-    /* correction will only be applied to symmetrical glyphs (even if the */
-    /* glyph is not an m), so the potential for unwanted distortion is    */
-    /* relatively low.                                                    */
-
-    /* We don't handle horizontal edges since we can't easily assure that */
-    /* the third (lowest) stem aligns with the base line; it might end up */
-    /* one pixel higher or lower.                                         */
-
-    n_edges = edge_limit - edges;
-    if ( dim == AF_DIMENSION_HORZ && ( n_edges == 6 || n_edges == 12 ) )
-    {
-      AF_Edge  edge1, edge2, edge3;
-      FT_Pos   dist1, dist2, span, delta;
-
-
-      if ( n_edges == 6 )
-      {
-        edge1 = edges;
-        edge2 = edges + 2;
-        edge3 = edges + 4;
-      }
-      else
-      {
-        edge1 = edges + 1;
-        edge2 = edges + 5;
-        edge3 = edges + 9;
-      }
-
-      dist1 = edge2->opos - edge1->opos;
-      dist2 = edge3->opos - edge2->opos;
-
-      span = dist1 - dist2;
-      if ( span < 0 )
-        span = -span;
-
-      if ( span < 8 )
-      {
-        delta = edge3->pos - ( 2 * edge2->pos - edge1->pos );
-        edge3->pos -= delta;
-        if ( edge3->link )
-          edge3->link->pos -= delta;
-
-        /* move the serifs along with the stem */
-        if ( n_edges == 12 )
-        {
-          ( edges + 8 )->pos -= delta;
-          ( edges + 11 )->pos -= delta;
-        }
-
-        edge3->flags |= AF_EDGE_DONE;
-        if ( edge3->link )
-          edge3->link->flags |= AF_EDGE_DONE;
-      }
-    }
-
-    if ( has_serifs || !anchor )
-    {
-     /* now hint the remaining edges (serifs and single) in order
-      * to complete our processing
-      */
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        if ( edge->flags & AF_EDGE_DONE )
-          continue;
-
-        if ( edge->serif )
-          af_latin_align_serif_edge( hints, edge->serif, edge );
-        else if ( !anchor )
-        {
-          edge->pos = FT_PIX_ROUND( edge->opos );
-          anchor    = edge;
-        }
-        else
-          edge->pos = anchor->pos +
-                      FT_PIX_ROUND( edge->opos - anchor->opos );
-
-        edge->flags |= AF_EDGE_DONE;
-
-        if ( edge > edges && edge->pos < edge[-1].pos )
-          edge->pos = edge[-1].pos;
-
-        if ( edge + 1 < edge_limit        &&
-             edge[1].flags & AF_EDGE_DONE &&
-             edge->pos > edge[1].pos      )
-          edge->pos = edge[1].pos;
-      }
-    }
-  }
-
-
-  static FT_Error
-  af_latin_hints_apply( AF_GlyphHints    hints,
-                        FT_Outline*      outline,
-                        AF_LatinMetrics  metrics )
-  {
-    FT_Error      error;
-    AF_Dimension  dim;
-
-    error = af_glyph_hints_reload( hints, outline );
-    if ( error )
-      goto Exit;
-
-   /* analyze glyph outline
-    */
-    if ( AF_HINTS_DO_HORIZONTAL(hints) )
-      af_latin_hints_detect_features( hints, AF_DIMENSION_HORZ );
-
-    if ( AF_HINTS_DO_VERTICAL(hints) )
-    {
-      af_latin_hints_detect_features( hints, AF_DIMENSION_VERT );
-      af_latin_hints_compute_blue_edges( hints, metrics );
-    }
-
-   /* grid-fit the outline
-    */
-    for ( dim = 0; dim < AF_DIMENSION_MAX; dim++ )
-    {
-      if ( (dim == AF_DIMENSION_HORZ && AF_HINTS_DO_HORIZONTAL(hints)) ||
-           (dim == AF_DIMENSION_VERT && AF_HINTS_DO_VERTICAL(hints))   )
-      {
-        af_latin_hint_edges( hints, dim );
-        af_glyph_hints_align_edge_points( hints, dim );
-        af_glyph_hints_align_strong_points( hints, dim );
-        af_glyph_hints_align_weak_points( hints, dim );
-      }
-    }
-    af_glyph_hints_save( hints, outline );
-
-  Exit:
-    return error;
-  }
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****      L A T I N   S C R I P T   C L A S S                        *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-  static const AF_Script_UniRangeRec  af_latin_uniranges[] =
-  {
-    { 32,  127 },    /* XXX: TODO: Add new Unicode ranges here !! */
-    { 160, 255 },
-    { 0,   0 }
-  };
-
-
-  FT_LOCAL_DEF( const AF_ScriptClassRec )  af_latin_script_class =
-  {
-    AF_SCRIPT_LATIN,
-    af_latin_uniranges,
-
-    sizeof( AF_LatinMetricsRec ),
-    (AF_Script_InitMetricsFunc)  af_latin_metrics_init,
-    (AF_Script_ScaleMetricsFunc) af_latin_metrics_scale,
-    (AF_Script_DoneMetricsFunc)  NULL,
-
-    (AF_Script_InitHintsFunc)    af_latin_hints_init,
-    (AF_Script_ApplyHintsFunc)   af_latin_hints_apply
-  };
-
diff --git a/nx-X11/extras/freetype2/src/autofit/aflatin.h b/nx-X11/extras/freetype2/src/autofit/aflatin.h
deleted file mode 100644
index e7e8e4842..000000000
--- a/nx-X11/extras/freetype2/src/autofit/aflatin.h
+++ /dev/null
@@ -1,169 +0,0 @@
-#ifndef __AFLATIN_H__
-#define __AFLATIN_H__
-
-#include "afhints.h"
-
-FT_BEGIN_HEADER
-
- /*
-  * the latin-specific script class
-  *
-  */
-  FT_LOCAL( const AF_ScriptClassRec )    af_latin_script_class;
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****       L A T I N   G L O B A L   M E T R I C S                   *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
- /*
-  * the following declarations could be embedded in the file "aflatin.c"
-  * they've been made semi-public to allow alternate script hinters to
-  * re-use some of them
-  */
-
- /*
-  *  Latin (global) metrics management
-  *
-  */
-
-  enum
-  {
-    AF_LATIN_BLUE_CAPITAL_TOP,
-    AF_LATIN_BLUE_CAPITAL_BOTTOM,
-    AF_LATIN_BLUE_SMALL_F_TOP,
-    AF_LATIN_BLUE_SMALL_TOP,
-    AF_LATIN_BLUE_SMALL_BOTTOM,
-    AF_LATIN_BLUE_SMALL_MINOR,
-
-    AF_LATIN_BLUE_MAX
-  };
-
-#define AF_LATIN_IS_TOP_BLUE( b )  ( (b) == AF_LATIN_BLUE_CAPITAL_TOP || \
-                                     (b) == AF_LATIN_BLUE_SMALL_F_TOP || \
-                                     (b) == AF_LATIN_BLUE_SMALL_TOP   )
-
-#define  AF_LATIN_MAX_WIDTHS     16
-#define  AF_LATIN_MAX_BLUES      AF_LATIN_BLUE_MAX
-
-  enum
-  {
-    AF_LATIN_BLUE_ACTIVE     = (1 << 0),
-    AF_LATIN_BLUE_TOP        = (1 << 1),
-    AF_LATIN_BLUE_ADJUSTMENT = (1 << 2),  /* used for scale adjustment */
-                                          /* optimization              */
-    AF_LATIN_BLUE_FLAG_MAX
-  };
-
-
-  typedef struct AF_LatinBlueRec_
-  {
-    AF_WidthRec   ref;
-    AF_WidthRec   shoot;
-    FT_UInt       flags;
-
-  } AF_LatinBlueRec, *AF_LatinBlue;
-
-
-  typedef struct AF_LatinAxisRec_
-  {
-    FT_Fixed         scale;
-    FT_Pos           delta;
-
-    FT_UInt          width_count;
-    AF_WidthRec      widths[ AF_LATIN_MAX_WIDTHS ];
-    FT_Pos           edge_distance_threshold;
-
-   /* ignored for horizontal metrics */
-    FT_Bool          control_overshoot;
-    FT_UInt          blue_count;
-    AF_LatinBlueRec  blues[ AF_LATIN_BLUE_MAX ];
-
-    FT_Fixed         org_scale;
-    FT_Pos           org_delta;
-
-  } AF_LatinAxisRec, *AF_LatinAxis;
-
-
-  typedef struct AF_LatinMetricsRec_
-  {
-    AF_ScriptMetricsRec   root;
-    FT_UInt               units_per_em;
-    AF_LatinAxisRec       axis[ AF_DIMENSION_MAX ];
-
-  } AF_LatinMetricsRec, *AF_LatinMetrics;
-
-
-
-  FT_LOCAL( FT_Error )
-  af_latin_metrics_init( AF_LatinMetrics  metrics,
-                         FT_Face          face );
-
-  FT_LOCAL( void )
-  af_latin_metrics_scale( AF_LatinMetrics  metrics,
-                          AF_Scaler        scaler );
-
-
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****            L A T I N   G L Y P H   A N A L Y S I S              *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-  enum
-  {
-    AF_LATIN_HINTS_HORZ_SNAP   = (1 << 0),  /* enable stem width snapping  */
-    AF_LATIN_HINTS_VERT_SNAP   = (1 << 1),  /* enable stem height snapping */
-    AF_LATIN_HINTS_STEM_ADJUST = (1 << 2),  /* enable stem width/height adjustment */
-    AF_LATIN_HINTS_MONO        = (1 << 3)   /* indicate monochrome rendering */
-  };
-
-#define  AF_LATIN_HINTS_DO_HORZ_SNAP(h) \
-   AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_HORZ_SNAP)
-
-#define  AF_LATIN_HINTS_DO_VERT_SNAP(h) \
-   AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_VERT_SNAP)
-
-#define  AF_LATIN_HINTS_DO_STEM_ADJUST(h)  \
-   AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_STEM_ADJUST)
-
-#define  AF_LATIN_HINTS_DO_MONO(h)  \
-   AF_HINTS_TEST_OTHER(h,AF_LATIN_HINTS_MONO)
-
-
- /* this shouldn't normally be exported. However, other scripts might
-  * like to use this function as-is
-  */
-  FT_LOCAL( void )
-  af_latin_hints_compute_segments( AF_GlyphHints  hints,
-                                   AF_Dimension   dim );
-
- /* this shouldn't normally be exported. However, other scripts might
-  * want to use this function as-is
-  */
-  FT_LOCAL( void )
-  af_latin_hints_link_segments( AF_GlyphHints  hints,
-                                AF_Dimension   dim );
-
- /* this shouldn't normally be exported. However, other scripts might
-  * want to use this function as-is
-  */
-  FT_LOCAL( void )
-  af_latin_hints_compute_edges( AF_GlyphHints  hints,
-                                AF_Dimension   dim );
-
-  FT_LOCAL( void )
-  af_latin_hints_detect_features( AF_GlyphHints  hints,
-                                  AF_Dimension   dim );
-
-/* */
-
-FT_END_HEADER
-
-#endif /* __AFLATIN_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/afloader.c b/nx-X11/extras/freetype2/src/autofit/afloader.c
deleted file mode 100644
index 6782ee8de..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afloader.c
+++ /dev/null
@@ -1,467 +0,0 @@
-#include "afloader.h"
-#include "afhints.h"
-#include "afglobal.h"
-#include "aflatin.h"
-
-  FT_LOCAL_DEF( FT_Error )
-  af_loader_init( AF_Loader  loader,
-                  FT_Memory  memory )
-  {
-    FT_Error  error;
-
-    FT_ZERO( loader );
-
-    af_glyph_hints_init( &loader->hints, memory );
-
-    error = FT_GlyphLoader_New( memory, &loader->gloader );
-    if ( !error )
-    {
-      error = FT_GlyphLoader_CreateExtra( loader->gloader );
-      if ( error )
-      {
-        FT_GlyphLoader_Done( loader->gloader );
-        loader->gloader = NULL;
-      }
-    }
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  af_loader_reset( AF_Loader   loader,
-                   FT_Face     face )
-  {
-    FT_Error   error = 0;
-
-    loader->face    = face;
-    loader->globals = (AF_FaceGlobals) face->autohint.data;
-
-    FT_GlyphLoader_Rewind( loader->gloader );
-
-    if ( loader->globals == NULL )
-    {
-      error = af_face_globals_new( face, &loader->globals );
-      if ( !error )
-      {
-        face->autohint.data      = (FT_Pointer) loader->globals;
-        face->autohint.finalizer = (FT_Generic_Finalizer) af_face_globals_free;
-      }
-    }
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  af_loader_done( AF_Loader   loader )
-  {
-    loader->face    = NULL;
-    loader->globals = NULL;
-
-    FT_GlyphLoader_Done( loader->gloader );
-    loader->gloader = NULL;
-  }
-
-
-  static FT_Error
-  af_loader_load_g( AF_Loader  loader,
-                    AF_Scaler  scaler,
-                    FT_UInt    glyph_index,
-                    FT_Int32   load_flags,
-                    FT_UInt    depth )
-  {
-    FT_Error          error    = 0;
-    FT_Face           face     = loader->face;
-    FT_GlyphLoader    gloader  = loader->gloader;
-    AF_ScriptMetrics  metrics  = loader->metrics;
-    AF_GlyphHints     hints    = &loader->hints;
-    FT_GlyphSlot      slot     = face->glyph;
-    FT_Slot_Internal  internal = slot->internal;
-
-    error = FT_Load_Glyph( face, glyph_index, load_flags );
-    if ( error )
-      goto Exit;
-
-    loader->transformed = internal->glyph_transformed;
-    if ( loader->transformed )
-    {
-      FT_Matrix  inverse;
-
-      loader->trans_matrix = internal->glyph_matrix;
-      loader->trans_delta  = internal->glyph_delta;
-
-      inverse = loader->trans_matrix;
-      FT_Matrix_Invert( &inverse );
-      FT_Vector_Transform( &loader->trans_delta, &inverse );
-    }
-
-    /* set linear metrics */
-    slot->linearHoriAdvance = slot->metrics.horiAdvance;
-    slot->linearVertAdvance = slot->metrics.vertAdvance;
-
-    switch ( slot->format )
-    {
-      case FT_GLYPH_FORMAT_OUTLINE:
-       /* translate the loaded glyph when an internal transform
-        * is needed
-        */
-        if ( loader->transformed )
-          FT_Outline_Translate( &slot->outline,
-                                loader->trans_delta.x,
-                                loader->trans_delta.y );
-
-        /* copy the outline points in the loader's current               */
-        /* extra points which is used to keep original glyph coordinates */
-        error = FT_GlyphLoader_CheckPoints( gloader,
-                                            slot->outline.n_points + 4,
-                                            slot->outline.n_contours );
-        if ( error )
-          goto Exit;
-
-        FT_ARRAY_COPY( gloader->current.outline.points,
-                       slot->outline.points,
-                       slot->outline.n_points );
-
-        FT_ARRAY_COPY( gloader->current.extra_points,
-                       slot->outline.points,
-                       slot->outline.n_points );
-
-        FT_ARRAY_COPY( gloader->current.outline.contours,
-                       slot->outline.contours,
-                       slot->outline.n_contours );
-
-        FT_ARRAY_COPY( gloader->current.outline.tags,
-                       slot->outline.tags,
-                       slot->outline.n_points );
-
-        gloader->current.outline.n_points   = slot->outline.n_points;
-        gloader->current.outline.n_contours = slot->outline.n_contours;
-
-        /* compute original horizontal phantom points (and ignore */
-        /* vertical ones)                                         */
-        loader->pp1.x = hints->x_delta;
-        loader->pp1.y = hints->y_delta;
-        loader->pp2.x = FT_MulFix( slot->metrics.horiAdvance,
-                                   hints->x_scale ) + hints->x_delta;
-        loader->pp2.y = hints->y_delta;
-
-        /* be sure to check for spacing glyphs */
-        if ( slot->outline.n_points == 0 )
-          goto Hint_Metrics;
-
-        /* now load the slot image into the auto-outline and run the */
-        /* automatic hinting process                                 */
-        metrics->clazz->script_hints_apply( hints,
-                                            &gloader->current.outline,
-                                            metrics );
-
-        /* we now need to hint the metrics according to the change in */
-        /* width/positioning that occured during the hinting process  */
-        {
-          FT_Pos        old_advance, old_rsb, old_lsb, new_lsb;
-          FT_Pos        pp1x_uh, pp2x_uh;
-          AF_AxisHints  axis  = &hints->axis[ AF_DIMENSION_HORZ ];
-          AF_Edge       edge1 = axis->edges;         /* leftmost edge  */
-          AF_Edge       edge2 = edge1 +
-                                axis->num_edges - 1; /* rightmost edge */
-
-
-          if ( edge2 > edge1 )
-          {
-            old_advance = loader->pp2.x;
-            old_rsb     = old_advance - edge2->opos;
-            old_lsb     = edge1->opos;
-            new_lsb     = edge1->pos;
-
-            /* remember unhinted values to later account */
-            /* for rounding errors                       */
-
-            pp1x_uh = new_lsb    - old_lsb;
-            pp2x_uh = edge2->pos + old_rsb;
-
-            /* prefer too much space over too little space */
-            /* for very small sizes                        */
-
-            if ( old_lsb < 24 )
-              pp1x_uh -= 5;
-
-            if ( old_rsb < 24 )
-              pp2x_uh += 5;
-
-            loader->pp1.x = FT_PIX_ROUND( pp1x_uh );
-            loader->pp2.x = FT_PIX_ROUND( pp2x_uh );
-
-            slot->lsb_delta = loader->pp1.x - pp1x_uh;
-            slot->rsb_delta = loader->pp2.x - pp2x_uh;
-
-#if 0
-            /* try to fix certain bad advance computations */
-            if ( loader->pp2.x + loader->pp1.x == edge2->pos && old_rsb > 4 )
-              loader->pp2.x += 64;
-#endif
-          }
-          else
-          {
-            loader->pp1.x = FT_PIX_ROUND( loader->pp1.x );
-            loader->pp2.x = FT_PIX_ROUND( loader->pp2.x );
-          }
-        }
-
-        /* good, we simply add the glyph to our loader's base */
-        FT_GlyphLoader_Add( gloader );
-        break;
-
-    case FT_GLYPH_FORMAT_COMPOSITE:
-      {
-        FT_UInt      nn, num_subglyphs = slot->num_subglyphs;
-        FT_UInt      num_base_subgs, start_point;
-        FT_SubGlyph  subglyph;
-
-
-        start_point = gloader->base.outline.n_points;
-
-        /* first of all, copy the subglyph descriptors in the glyph loader */
-        error = FT_GlyphLoader_CheckSubGlyphs( gloader, num_subglyphs );
-        if ( error )
-          goto Exit;
-
-        FT_ARRAY_COPY( gloader->current.subglyphs,
-                       slot->subglyphs,
-                       num_subglyphs );
-
-        gloader->current.num_subglyphs = num_subglyphs;
-        num_base_subgs = gloader->base.num_subglyphs;
-
-        /* now, read each subglyph independently */
-        for ( nn = 0; nn < num_subglyphs; nn++ )
-        {
-          FT_Vector  pp1, pp2;
-          FT_Pos     x, y;
-          FT_UInt    num_points, num_new_points, num_base_points;
-
-
-          /* gloader.current.subglyphs can change during glyph loading due */
-          /* to re-allocation -- we must recompute the current subglyph on */
-          /* each iteration                                                */
-          subglyph = gloader->base.subglyphs + num_base_subgs + nn;
-
-          pp1 = loader->pp1;
-          pp2 = loader->pp2;
-
-          num_base_points = gloader->base.outline.n_points;
-
-          error = af_loader_load_g( loader, scaler, subglyph->index,
-                                    load_flags, depth + 1 );
-          if ( error )
-            goto Exit;
-
-          /* recompute subglyph pointer */
-          subglyph = gloader->base.subglyphs + num_base_subgs + nn;
-
-          if ( subglyph->flags & FT_SUBGLYPH_FLAG_USE_MY_METRICS )
-          {
-            pp1 = loader->pp1;
-            pp2 = loader->pp2;
-          }
-          else
-          {
-            loader->pp1 = pp1;
-            loader->pp2 = pp2;
-          }
-
-          num_points     = gloader->base.outline.n_points;
-          num_new_points = num_points - num_base_points;
-
-          /* now perform the transform required for this subglyph */
-
-          if ( subglyph->flags & ( FT_SUBGLYPH_FLAG_SCALE    |
-                                   FT_SUBGLYPH_FLAG_XY_SCALE |
-                                   FT_SUBGLYPH_FLAG_2X2      ) )
-          {
-            FT_Vector*  cur   = gloader->base.outline.points +
-                                num_base_points;
-            FT_Vector*  org   = gloader->base.extra_points +
-                                num_base_points;
-            FT_Vector*  limit = cur + num_new_points;
-
-
-            for ( ; cur < limit; cur++, org++ )
-            {
-              FT_Vector_Transform( cur, &subglyph->transform );
-              FT_Vector_Transform( org, &subglyph->transform );
-            }
-          }
-
-          /* apply offset */
-
-          if ( !( subglyph->flags & FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES ) )
-          {
-            FT_Int      k = subglyph->arg1;
-            FT_UInt     l = subglyph->arg2;
-            FT_Vector*  p1;
-            FT_Vector*  p2;
-
-
-            if ( start_point + k >= num_base_points         ||
-                               l >= (FT_UInt)num_new_points )
-            {
-              error = FT_Err_Invalid_Composite;
-              goto Exit;
-            }
-
-            l += num_base_points;
-
-            /* for now, only use the current point coordinates;    */
-            /* we may consider another approach in the near future */
-            p1 = gloader->base.outline.points + start_point + k;
-            p2 = gloader->base.outline.points + start_point + l;
-
-            x = p1->x - p2->x;
-            y = p1->y - p2->y;
-          }
-          else
-          {
-            x = FT_MulFix( subglyph->arg1, hints->x_scale ) + hints->x_delta;
-            y = FT_MulFix( subglyph->arg2, hints->y_scale ) + hints->y_delta;
-
-            x = FT_PIX_ROUND(x);
-            y = FT_PIX_ROUND(y);
-          }
-
-          {
-            FT_Outline  dummy = gloader->base.outline;
-
-
-            dummy.points  += num_base_points;
-            dummy.n_points = (short)num_new_points;
-
-            FT_Outline_Translate( &dummy, x, y );
-          }
-        }
-      }
-      break;
-
-    default:
-      /* we don't support other formats (yet?) */
-      error = FT_Err_Unimplemented_Feature;
-    }
-
-  Hint_Metrics:
-    if ( depth == 0 )
-    {
-      FT_BBox  bbox;
-
-
-      /* transform the hinted outline if needed */
-      if ( loader->transformed )
-        FT_Outline_Transform( &gloader->base.outline, &loader->trans_matrix );
-
-      /* we must translate our final outline by -pp1.x and compute */
-      /* the new metrics                                           */
-      if ( loader->pp1.x )
-        FT_Outline_Translate( &gloader->base.outline, -loader->pp1.x, 0 );
-
-      FT_Outline_Get_CBox( &gloader->base.outline, &bbox );
-
-      bbox.xMin  = FT_PIX_FLOOR(  bbox.xMin );
-      bbox.yMin  = FT_PIX_FLOOR(  bbox.yMin );
-      bbox.xMax  = FT_PIX_CEIL( bbox.xMax );
-      bbox.yMax  = FT_PIX_CEIL( bbox.yMax );
-
-      slot->metrics.width        = bbox.xMax - bbox.xMin;
-      slot->metrics.height       = bbox.yMax - bbox.yMin;
-      slot->metrics.horiBearingX = bbox.xMin;
-      slot->metrics.horiBearingY = bbox.yMax;
-
-      /* for mono-width fonts (like Andale, Courier, etc.) we need */
-      /* to keep the original rounded advance width                */
-#if 0
-      if ( !FT_IS_FIXED_WIDTH( slot->face ) )
-        slot->metrics.horiAdvance = loader->pp2.x - loader->pp1.x;
-      else
-        slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance,
-                                               x_scale );
-#else
-      /* for mono-width fonts (like Andale, Courier, etc.) we need */
-      /* to keep the original rounded advance width                */
-      if ( !FT_IS_FIXED_WIDTH( slot->face ) )
-        slot->metrics.horiAdvance = loader->pp2.x - loader->pp1.x;
-      else
-        slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance,
-                                               metrics->scaler.x_scale );
-#endif
-
-      slot->metrics.horiAdvance = FT_PIX_ROUND( slot->metrics.horiAdvance );
-
-      /* now copy outline into glyph slot */
-      FT_GlyphLoader_Rewind( internal->loader );
-      error = FT_GlyphLoader_CopyPoints( internal->loader, gloader );
-      if ( error )
-        goto Exit;
-
-      slot->outline = internal->loader->base.outline;
-      slot->format  = FT_GLYPH_FORMAT_OUTLINE;
-    }
-
-#ifdef DEBUG_HINTER
-    af_debug_hinter = hinter;
-#endif
-
-  Exit:
-    return error;
-  }
-
-
-
-
-  FT_LOCAL_DEF( FT_Error )
-  af_loader_load_glyph( AF_Loader  loader,
-                        FT_Face    face,
-                        FT_UInt    gindex,
-                        FT_UInt32  load_flags )
-  {
-    FT_Error      error;
-    FT_Size       size = face->size;
-    AF_ScalerRec  scaler;
-
-    if ( !size )
-      return FT_Err_Invalid_Argument;
-
-    FT_ZERO( &scaler );
-
-    scaler.face    = face;
-    scaler.x_scale = size->metrics.x_scale;
-    scaler.x_delta = 0;  /* XXX: TODO: add support for sub-pixel hinting */
-    scaler.y_scale = size->metrics.y_scale;
-    scaler.y_delta = 0;  /* XXX: TODO: add support for sub-pixel hinting */
-
-    scaler.render_mode = FT_LOAD_TARGET_MODE( load_flags );
-    scaler.flags       = 0;  /* XXX: fix this */
-
-    error = af_loader_reset( loader, face );
-    if ( !error )
-    {
-      AF_ScriptMetrics  metrics;
-
-      error = af_face_globals_get_metrics( loader->globals, gindex, &metrics );
-      if ( !error )
-      {
-        loader->metrics = metrics;
-
-        metrics->scaler = scaler;
-
-        if ( metrics->clazz->script_metrics_scale )
-          metrics->clazz->script_metrics_scale( metrics, &scaler );
-
-        load_flags |=  FT_LOAD_NO_SCALE | FT_LOAD_IGNORE_TRANSFORM;
-        load_flags &= ~FT_LOAD_RENDER;
-
-        error = metrics->clazz->script_hints_init( &loader->hints, metrics );
-        if ( error )
-          goto Exit;
-
-        error = af_loader_load_g( loader, &scaler, gindex, load_flags, 0 );
-      }
-    }
-  Exit:
-    return error;
-  }
diff --git a/nx-X11/extras/freetype2/src/autofit/afloader.h b/nx-X11/extras/freetype2/src/autofit/afloader.h
deleted file mode 100644
index 12361560a..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afloader.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef __AF_LOADER_H__
-#define __AF_LOADER_H__
-
-#include "afhints.h"
-#include "afglobal.h"
-
-FT_BEGIN_HEADER
-
-  typedef struct AF_LoaderRec_
-  {
-    FT_Face           face;           /* current face */
-    AF_FaceGlobals    globals;        /* current face globals */
-    FT_GlyphLoader    gloader;        /* glyph loader */
-    AF_GlyphHintsRec  hints;
-    AF_ScriptMetrics  metrics;
-    FT_Bool           transformed;
-    FT_Matrix         trans_matrix;
-    FT_Vector         trans_delta;
-    FT_Vector         pp1;
-    FT_Vector         pp2;
-    /* we don't handle vertical phantom points */
-
-  } AF_LoaderRec, *AF_Loader;
-
-
-  FT_LOCAL( FT_Error )
-  af_loader_init( AF_Loader  loader,
-                  FT_Memory  memory );
-
-
-  FT_LOCAL( FT_Error )
-  af_loader_reset( AF_Loader  loader,
-                   FT_Face    face );
-
-
-  FT_LOCAL( void )
-  af_loader_done( AF_Loader  loader );
-
-
-  FT_LOCAL( FT_Error )
-  af_loader_load_glyph( AF_Loader  loader,
-                        FT_Face    face,
-                        FT_UInt    gindex,
-                        FT_UInt32  load_flags );
-
-/* */
-
-FT_END_HEADER
-
-#endif /* __AF_LOADER_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/afmodule.c b/nx-X11/extras/freetype2/src/autofit/afmodule.c
deleted file mode 100644
index e22ffffc6..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afmodule.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "afmodule.h"
-#include "afloader.h"
-#include FT_INTERNAL_OBJECTS_H
-
-  typedef struct  FT_AutofitterRec_
-  {
-    FT_ModuleRec  root;
-    AF_LoaderRec  loader[1];
-
-  } FT_AutofitterRec, *FT_Autofitter;
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  af_autofitter_init( FT_Autofitter  module )
-  {
-    return af_loader_init( module->loader, module->root.library->memory );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  af_autofitter_done( FT_Autofitter  module )
-  {
-    af_loader_done( module->loader );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  af_autofitter_load_glyph( FT_Autofitter  module,
-                            FT_GlyphSlot   slot,
-                            FT_Size        size,
-                            FT_UInt        glyph_index,
-                            FT_Int32       load_flags )
-  {
-    FT_UNUSED( size );
-
-    return af_loader_load_glyph( module->loader, slot->face,
-                                 glyph_index, load_flags );
-  }
-
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_AutoHinter_ServiceRec  af_autofitter_service =
-  {
-    NULL,
-    NULL,
-    NULL,
-    (FT_AutoHinter_GlyphLoadFunc) af_autofitter_load_glyph
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Module_Class  autofit_module_class =
-  {
-    FT_MODULE_HINTER,
-    sizeof ( FT_AutofitterRec ),
-
-    "autofitter",
-    0x10000L,   /* version 1.0 of the autofitter  */
-    0x20000L,   /* requires FreeType 2.0 or above */
-
-    (const void*) &af_autofitter_service,
-
-    (FT_Module_Constructor) af_autofitter_init,
-    (FT_Module_Destructor)  af_autofitter_done,
-    (FT_Module_Requester)   0
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autofit/afmodule.h b/nx-X11/extras/freetype2/src/autofit/afmodule.h
deleted file mode 100644
index b898cb375..000000000
--- a/nx-X11/extras/freetype2/src/autofit/afmodule.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __AFMODULE_H__
-#define __AFMODULE_H__
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-  FT_CALLBACK_TABLE
-  const FT_Module_Class  autofit_module_class;
-
-
-FT_END_HEADER
-
-#endif /* __AFMODULE_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/aftypes.h b/nx-X11/extras/freetype2/src/autofit/aftypes.h
deleted file mode 100644
index 5d0371fcb..000000000
--- a/nx-X11/extras/freetype2/src/autofit/aftypes.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/***************************************************************************
- *
- *  FreeType auto-fitter
- *
- *  (c) 2004 David Turner
- *
- *  The auto-fitter is a complete rewrite of the old auto-hinter.
- *  its main feature is the ability to differentiate between different
- *  scripts in order to apply language-specific rules.
- *
- *  the code has also been compartimentized into several entities that
- *  should make algorithmic experimentation easier than with the old
- *  code.
- *
- *  finally, we get rid of the Catharon license, since this code is
- *  released under the FreeType one.
- */
-#ifndef __AFTYPES_H__
-#define __AFTYPES_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-
-FT_BEGIN_HEADER
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                D E B U G G I N G                               *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
-#define xxAF_DEBUG
-
-#ifdef AF_DEBUG
-
-#  include <stdio.h>
-#  define AF_LOG( x )  printf x
-
-#else
-
-#  define AF_LOG( x )  do ; while ( 0 ) /* nothing */
-
-#endif /* AF_DEBUG */
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                U T I L I T Y                                   *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
-  typedef struct AF_WidthRec_
-  {
-    FT_Pos  org;  /* original position/width in font units              */
-    FT_Pos  cur;  /* current/scaled position/width in device sub-pixels */
-    FT_Pos  fit;  /* current/fitted position/width in device sub-pixels */
-
-  } AF_WidthRec, *AF_Width;
-
-
-  FT_LOCAL( void )
-  af_sort_pos( FT_UInt   count,
-               FT_Pos*   table );
-
-  FT_LOCAL( void )
-  af_sort_widths( FT_UInt   count,
-                  AF_Width  widths );
-
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                A N G L E   T Y P E S                           *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
- /*
-  *  Angle type. The auto-fitter doesn't need a very high angular accuracy,
-  *  and this allows us to speed up some computations considerably with a
-  *  light Cordic algorithm (see afangles.c)
-  *
-  */
-
-  typedef FT_Int    AF_Angle;
-
-#define  AF_ANGLE_PI     256
-#define  AF_ANGLE_2PI    (AF_ANGLE_PI*2)
-#define  AF_ANGLE_PI2    (AF_ANGLE_PI/2)
-#define  AF_ANGLE_PI4    (AF_ANGLE_PI/4)
-
- /*
-  *  compute the angle of a given 2-D vector
-  *
-  */
-  FT_LOCAL( AF_Angle )
-  af_angle_atan( FT_Pos  dx,
-                 FT_Pos  dy );
-
-
- /*
-  *  computes "angle2 - angle1", the result is always within
-  *  the range [ -AF_ANGLE_PI .. AF_ANGLE_PI-1 ]
-  *
-  */
-  FT_LOCAL( AF_Angle )
-  af_angle_diff( AF_Angle  angle1,
-                 AF_Angle  angle2 );
-
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                O U T L I N E S                                 *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
- /* opaque handle to glyph-specific hints. see "afhints.h" for more
-  * details
-  */
-  typedef struct AF_GlyphHintsRec_*     AF_GlyphHints;
-
- /* this structure is used to model an input glyph outline to
-  * the auto-hinter. The latter will set the "hints" field
-  * depending on the glyph's script
-  */
-  typedef struct AF_OutlineRec_
-  {
-    FT_Face          face;
-    FT_Outline       outline;
-    FT_UInt          outline_resolution;
-
-    FT_Int           advance;
-    FT_UInt          metrics_resolution;
-
-    AF_GlyphHints    hints;
-
-  } AF_OutlineRec;
-
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                S C A L E R S                                   *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
- /*
-  *  A scaler models the target pixel device that will receive the
-  *  auto-hinted glyph image
-  *
-  */
-
-  typedef enum
-  {
-    AF_SCALER_FLAG_NO_HORIZONTAL = 1,  /* disable horizontal hinting */
-    AF_SCALER_FLAG_NO_VERTICAL   = 2,  /* disable vertical hinting   */
-    AF_SCALER_FLAG_NO_ADVANCE    = 4   /* disable advance hinting    */
-
-  } AF_ScalerFlags;
-
-
-  typedef struct AF_ScalerRec_
-  {
-    FT_Face         face;         /* source font face                        */
-    FT_Fixed        x_scale;      /* from font units to 1/64th device pixels */
-    FT_Fixed        y_scale;      /* from font units to 1/64th device pixels */
-    FT_Pos          x_delta;      /* in 1/64th device pixels                 */
-    FT_Pos          y_delta;      /* in 1/64th device pixels                 */
-    FT_Render_Mode  render_mode;  /* monochrome, anti-aliased, LCD, etc..    */
-    FT_UInt32       flags;        /* additionnal control flags, see above    */
-
-  } AF_ScalerRec, *AF_Scaler;
-
-
-#define  AF_SCALER_EQUAL_SCALES(a,b)    \
-   ( (a)->x_scale == (b)->x_scale &&    \
-     (a)->y_scale == (b)->y_scale &&    \
-     (a)->x_delta == (b)->x_delta &&    \
-     (a)->y_delta == (b)->y_delta )
-
-
- /**************************************************************************/
- /**************************************************************************/
- /*****                                                                *****/
- /*****                S C R I P T S                                   *****/
- /*****                                                                *****/
- /**************************************************************************/
- /**************************************************************************/
-
- /*
-  *  the list of know scripts. Each different script correspond to the
-  *  following information:
-  *
-  *   - a set of Unicode ranges to test weither the face supports the
-  *     script
-  *
-  *   - a specific global analyzer that will compute global metrics
-  *     specific to the script.
-  *
-  *   - a specific glyph analyzer that will compute segments and
-  *     edges for each glyph covered by the script
-  *
-  *   - a specific grid-fitting algorithm that will distort the
-  *     scaled glyph outline according to the results of the glyph
-  *     analyzer
-  *
-  *  note that a given analyzer and/or grid-fitting algorithm can be
-  *  used by more than one script
-  */
-  typedef enum
-  {
-    AF_SCRIPT_NONE  = 0,
-    AF_SCRIPT_LATIN = 1,
-    /* add new scripts here. don't forget to update the list in "afglobal.c" */
-
-    AF_SCRIPT_MAX   /* do not remove */
-
-  } AF_Script;
-
-
-
-  typedef struct AF_ScriptClassRec_ const*  AF_ScriptClass;
-
-  typedef struct AF_ScriptMetricsRec_
-  {
-    AF_ScriptClass    clazz;
-    AF_ScalerRec      scaler;
-
-  } AF_ScriptMetricsRec, *AF_ScriptMetrics;
-
-
- /* this function parses a FT_Face to compute global metrics for
-  * a specific script
-  */
-  typedef FT_Error  (*AF_Script_InitMetricsFunc)( AF_ScriptMetrics   metrics,
-                                                  FT_Face            face );
-
-  typedef void      (*AF_Script_ScaleMetricsFunc)( AF_ScriptMetrics  metrics,
-                                                   AF_Scaler         scaler );
-
-  typedef void      (*AF_Script_DoneMetricsFunc)( AF_ScriptMetrics   metrics );
-
-
-  typedef FT_Error  (*AF_Script_InitHintsFunc)( AF_GlyphHints     hints,
-                                                AF_ScriptMetrics  metrics );
-
-  typedef void      (*AF_Script_ApplyHintsFunc)( AF_GlyphHints     hints,
-                                                 FT_Outline*       outline,
-                                                 AF_ScriptMetrics  metrics );
-
-
-  typedef struct AF_Script_UniRangeRec_
-  {
-    FT_UInt32    first;
-    FT_UInt32    last;
-
-  } AF_Script_UniRangeRec;
-
-  typedef const AF_Script_UniRangeRec *  AF_Script_UniRange;
-
-  typedef struct AF_ScriptClassRec_
-  {
-    AF_Script                   script;
-    AF_Script_UniRange          script_uni_ranges;  /* last must be { 0, 0 } */
-
-    FT_UInt                     script_metrics_size;
-    AF_Script_InitMetricsFunc   script_metrics_init;
-    AF_Script_ScaleMetricsFunc  script_metrics_scale;
-    AF_Script_DoneMetricsFunc   script_metrics_done;
-
-    AF_Script_InitHintsFunc     script_hints_init;
-    AF_Script_ApplyHintsFunc    script_hints_apply;
-
-  } AF_ScriptClassRec;
-
-
-/* */
-
-FT_END_HEADER
-
-#endif /* __AFTYPES_H__ */
diff --git a/nx-X11/extras/freetype2/src/autofit/autofit.c b/nx-X11/extras/freetype2/src/autofit/autofit.c
deleted file mode 100644
index c258e0d7a..000000000
--- a/nx-X11/extras/freetype2/src/autofit/autofit.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-#include <ft2build.h>
-#include "afangles.c"
-#include "afglobal.c"
-#include "afhints.c"
-#include "afdummy.c"
-#include "aflatin.c"
-#include "afloader.c"
-#include "afmodule.c"
diff --git a/nx-X11/extras/freetype2/src/autohint/CatharonLicense.txt b/nx-X11/extras/freetype2/src/autohint/CatharonLicense.txt
deleted file mode 100644
index 789c8c9fe..000000000
--- a/nx-X11/extras/freetype2/src/autohint/CatharonLicense.txt
+++ /dev/null
@@ -1,123 +0,0 @@
-                  The Catharon Open Source LICENSE
-                    ----------------------------
-
-                            2000-Jul-04
-
-          Copyright (C) 2000 by Catharon Productions, Inc.
-
-
-
-Introduction
-============
-
-  This  license  applies to  source  files  distributed by  Catharon
-  Productions,  Inc.  in  several  archive packages.   This  license
-  applies  to all files  found in  such packages  which do  not fall
-  under their own explicit license.
-
-  This  license   was  inspired  by  the  BSD,   Artistic,  and  IJG
-  (Independent JPEG  Group) licenses, which  all encourage inclusion
-  and  use of  free  software in  commercial  and freeware  products
-  alike.  As a consequence, its main points are that:
-
-    o We  don't promise that  this software works.  However,  we are
-      interested in any kind of bug reports. (`as is' distribution)
-
-    o You can  use this software for whatever you  want, in parts or
-      full form, without having to pay us. (`royalty-free' usage)
-
-    o You may not pretend that  you wrote this software.  If you use
-      it, or  only parts of it,  in a program,  you must acknowledge
-      somewhere  in  your  documentation  that  you  have  used  the
-      Catharon Code. (`credits')
-
-  We  specifically  permit  and  encourage  the  inclusion  of  this
-  software, with  or without modifications,  in commercial products.
-  We disclaim  all warranties  covering the packages  distributed by
-  Catharon  Productions, Inc.  and  assume no  liability related  to
-  their use.
-
-
-Legal Terms
-===========
-
-0. Definitions
---------------
-
-  Throughout this license,  the terms `Catharon Package', `package',
-  and  `Catharon  Code'  refer   to  the  set  of  files  originally
-  distributed by Catharon Productions, Inc.
-
-  `You' refers to  the licensee, or person using  the project, where
-  `using' is a generic term including compiling the project's source
-  code as  well as linking it  to form a  `program' or `executable'.
-  This  program  is referred  to  as `a  program  using  one of  the
-  Catharon Packages'.
-
-  This  license applies  to all  files distributed  in  the original
-  Catharon  Package(s),  including  all  source code,  binaries  and
-  documentation,  unless  otherwise  stated   in  the  file  in  its
-  original, unmodified form as  distributed in the original archive.
-  If you are  unsure whether or not a particular  file is covered by
-  this license, you must contact us to verify this.
-
-  The  Catharon   Packages  are  copyright  (C)   2000  by  Catharon
-  Productions, Inc.  All rights reserved except as specified below.
-
-1. No Warranty
---------------
-
-  THE CATHARON PACKAGES ARE PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
-  KIND, EITHER  EXPRESS OR IMPLIED,  INCLUDING, BUT NOT  LIMITED TO,
-  WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR
-  PURPOSE.  IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
-  BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OF OR THE INABILITY TO
-  USE THE CATHARON PACKAGE.
-
-2. Redistribution
------------------
-
-  This  license  grants  a  worldwide, royalty-free,  perpetual  and
-  irrevocable right  and license to use,  execute, perform, compile,
-  display,  copy,   create  derivative  works   of,  distribute  and
-  sublicense the  Catharon Packages (in both source  and object code
-  forms)  and  derivative works  thereof  for  any  purpose; and  to
-  authorize others  to exercise  some or all  of the  rights granted
-  herein, subject to the following conditions:
-
-    o Redistribution  of source code  must retain this  license file
-      (`license.txt') unaltered; any additions, deletions or changes
-      to   the  original   files  must   be  clearly   indicated  in
-      accompanying  documentation.   The  copyright notices  of  the
-      unaltered, original  files must be preserved in  all copies of
-      source files.
-
-    o Redistribution  in binary form must provide  a disclaimer that
-      states  that the  software is  based in  part on  the  work of
-      Catharon Productions, Inc. in the distribution documentation.
-
-  These conditions  apply to any  software derived from or  based on
-  the Catharon Packages, not just  the unmodified files.  If you use
-  our work, you  must acknowledge us.  However, no  fee need be paid
-  to us.
-
-3. Advertising
---------------
-
-  Neither Catharon Productions, Inc.  and contributors nor you shall
-  use  the  name  of  the  other  for  commercial,  advertising,  or
-  promotional purposes without specific prior written permission.
-
-  We suggest, but do not  require, that you use the following phrase
-  to refer to this software in your documentation: 'this software is
-  based in part on the Catharon Typography Project'.
-
-  As  you have  not signed  this license,  you are  not  required to
-  accept  it.  However,  as  the Catharon  Packages are  copyrighted
-  material, only  this license, or  another one contracted  with the
-  authors, grants you  the right to use, distribute,  and modify it.
-  Therefore,  by  using,  distributing,  or modifying  the  Catharon
-  Packages,  you indicate  that you  understand and  accept  all the
-  terms of this license.
-
---- end of license.txt ---
diff --git a/nx-X11/extras/freetype2/src/autohint/Jamfile b/nx-X11/extras/freetype2/src/autohint/Jamfile
deleted file mode 100644
index a129e5eea..000000000
--- a/nx-X11/extras/freetype2/src/autohint/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/autohint Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) autohint ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = ahangles ahglobal ahglyph ahhint ahmodule ;
-  }
-  else
-  {
-    _sources = autohint ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/autohint Jamfile
diff --git a/nx-X11/extras/freetype2/src/autohint/ahangles.c b/nx-X11/extras/freetype2/src/autohint/ahangles.c
deleted file mode 100644
index ef5a88ee6..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahangles.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahangles.h                                                             */
-/*                                                                         */
-/*    A routine used to compute vector angles with limited accuracy        */
-/*    and very high speed (body).                                          */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002 Catharon Productions Inc.                    */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "ahangles.h"
-
-
-  /* the following table has been automatically generated with */
-  /* the `mather.py' Python script                             */
-
-  const AH_Angle  ah_arctan[1L << AH_ATAN_BITS] =
-  {
-     0,  0,  1,  1,  1,  2,  2,  2,
-     3,  3,  3,  3,  4,  4,  4,  5,
-     5,  5,  6,  6,  6,  7,  7,  7,
-     8,  8,  8,  9,  9,  9, 10, 10,
-    10, 10, 11, 11, 11, 12, 12, 12,
-    13, 13, 13, 14, 14, 14, 14, 15,
-    15, 15, 16, 16, 16, 17, 17, 17,
-    18, 18, 18, 18, 19, 19, 19, 20,
-    20, 20, 21, 21, 21, 21, 22, 22,
-    22, 23, 23, 23, 24, 24, 24, 24,
-    25, 25, 25, 26, 26, 26, 26, 27,
-    27, 27, 28, 28, 28, 28, 29, 29,
-    29, 30, 30, 30, 30, 31, 31, 31,
-    31, 32, 32, 32, 33, 33, 33, 33,
-    34, 34, 34, 34, 35, 35, 35, 35,
-    36, 36, 36, 36, 37, 37, 37, 38,
-    38, 38, 38, 39, 39, 39, 39, 40,
-    40, 40, 40, 41, 41, 41, 41, 42,
-    42, 42, 42, 42, 43, 43, 43, 43,
-    44, 44, 44, 44, 45, 45, 45, 45,
-    46, 46, 46, 46, 46, 47, 47, 47,
-    47, 48, 48, 48, 48, 48, 49, 49,
-    49, 49, 50, 50, 50, 50, 50, 51,
-    51, 51, 51, 51, 52, 52, 52, 52,
-    52, 53, 53, 53, 53, 53, 54, 54,
-    54, 54, 54, 55, 55, 55, 55, 55,
-    56, 56, 56, 56, 56, 57, 57, 57,
-    57, 57, 57, 58, 58, 58, 58, 58,
-    59, 59, 59, 59, 59, 59, 60, 60,
-    60, 60, 60, 61, 61, 61, 61, 61,
-    61, 62, 62, 62, 62, 62, 62, 63,
-    63, 63, 63, 63, 63, 64, 64, 64
-  };
-
-
-  FT_LOCAL_DEF( AH_Angle )
-  ah_angle( FT_Vector*  v )
-  {
-    FT_Pos    dx, dy;
-    AH_Angle  angle;
-
-
-    dx = v->x;
-    dy = v->y;
-
-    /* check trivial cases */
-    if ( dy == 0 )
-    {
-      angle = 0;
-      if ( dx < 0 )
-        angle = AH_PI;
-      return angle;
-    }
-    else if ( dx == 0 )
-    {
-      angle = AH_HALF_PI;
-      if ( dy < 0 )
-        angle = -AH_HALF_PI;
-      return angle;
-    }
-
-    angle = 0;
-    if ( dx < 0 )
-    {
-      dx = -v->x;
-      dy = -v->y;
-      angle = AH_PI;
-    }
-
-    if ( dy < 0 )
-    {
-      FT_Pos  tmp;
-
-
-      tmp = dx;
-      dx  = -dy;
-      dy  = tmp;
-      angle -= AH_HALF_PI;
-    }
-
-    if ( dx == 0 && dy == 0 )
-      return 0;
-
-    if ( dx == dy )
-      angle += AH_PI / 4;
-    else if ( dx > dy )
-      angle += ah_arctan[FT_DivFix( dy, dx ) >> ( 16 - AH_ATAN_BITS )];
-    else
-      angle += AH_HALF_PI -
-               ah_arctan[FT_DivFix( dx, dy ) >> ( 16 - AH_ATAN_BITS )];
-
-    if ( angle > AH_PI )
-      angle -= AH_2PI;
-
-    return angle;
-  }
-
-
-  FT_LOCAL_DEF( AH_Angle )
-  ah_angle_diff( AH_Angle  angle1,
-                 AH_Angle  angle2 )
-  {
-    AH_Angle  delta;
-    
-
-    delta = ( angle2 - angle1 );
-    if ( delta < 0 )
-      delta += AH_2PI;
-    
-    if ( delta > AH_PI )
-      delta -= AH_2PI;
-    
-    return delta;
-  }                 
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahangles.h b/nx-X11/extras/freetype2/src/autohint/ahangles.h
deleted file mode 100644
index f46bfaad7..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahangles.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahangles.h                                                             */
-/*                                                                         */
-/*    A routine used to compute vector angles with limited accuracy        */
-/*    and very high speed (specification).                                 */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002 Catharon Productions Inc.                    */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __AHANGLES_H__
-#define __AHANGLES_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include "ahtypes.h"
-
-
-FT_BEGIN_HEADER
-
-
-  /* PI expressed in ah_angles -- we don't really need an important */
-  /* precision, so 256 should be enough                             */
-#define AH_PI       256
-#define AH_2PI      ( AH_PI * 2 )
-#define AH_HALF_PI  ( AH_PI / 2 )
-#define AH_2PIMASK  ( AH_2PI - 1 )
-
-  /* the number of bits used to express an arc tangent; */
-  /* see the structure of the lookup table              */
-#define AH_ATAN_BITS  8
-
-  extern
-  const AH_Angle  ah_arctan[1L << AH_ATAN_BITS];
-
-
-  FT_LOCAL( AH_Angle )
-  ah_angle( FT_Vector*  v );
-
-
-  FT_LOCAL( AH_Angle )
-  ah_angle_diff( AH_Angle  angle1,
-                 AH_Angle  angle2 );
-
-
-FT_END_HEADER
-
-#endif /* __AHANGLES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/aherrors.h b/nx-X11/extras/freetype2/src/autohint/aherrors.h
deleted file mode 100644
index bce6107d3..000000000
--- a/nx-X11/extras/freetype2/src/autohint/aherrors.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  aherrors.h                                                             */
-/*                                                                         */
-/*    Autohinter error codes (specification only).                         */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the Autohinter error enumeration          */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __AHERRORS_H__
-#define __AHERRORS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  AH_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Autohint
-
-#include FT_ERRORS_H
-
-#endif /* __AHERRORS_H__ */
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahglobal.c b/nx-X11/extras/freetype2/src/autohint/ahglobal.c
deleted file mode 100644
index e157014b5..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahglobal.c
+++ /dev/null
@@ -1,402 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahglobal.c                                                             */
-/*                                                                         */
-/*    Routines used to compute global metrics automatically (body).        */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 Catharon Productions Inc.        */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include "ahglobal.h"
-#include "ahglyph.h"
-
-
-#define MAX_TEST_CHARACTERS  12
-
-  /* cf. AH_BLUE_XXX constants in ahtypes.h */
-
-  static
-  const char* const  blue_chars[AH_BLUE_MAX] =
-  {
-    "THEZOCQS",
-    "HEZLOCUS",
-#ifdef FT_CONFIG_CHESTER_SMALL_F
-    "fijkdbh",
-#endif
-    "xzroesc",
-    "xzroesc",
-    "pqgjy"
-  };
-
-
-  /* simple insertion sort */
-  static void
-  sort_values( FT_Int   count,
-               FT_Pos*  table )
-  {
-    FT_Int  i, j;
-    FT_Pos  swap;
-
-
-    for ( i = 1; i < count; i++ )
-    {
-      for ( j = i; j > 0; j-- )
-      {
-        if ( table[j] > table[j - 1] )
-          break;
-
-        swap         = table[j];
-        table[j]     = table[j - 1];
-        table[j - 1] = swap;
-      }
-    }
-  }
-
-
-  static FT_Error
-  ah_hinter_compute_blues( AH_Hinter  hinter )
-  {
-    AH_Blue       blue;
-    AH_Globals    globals = &hinter->globals->design;
-    FT_Pos        flats [MAX_TEST_CHARACTERS];
-    FT_Pos        rounds[MAX_TEST_CHARACTERS];
-    FT_Int        num_flats;
-    FT_Int        num_rounds;
-
-    FT_Face       face;
-    FT_GlyphSlot  glyph;
-    FT_Error      error;
-    FT_CharMap    charmap;
-
-
-    face  = hinter->face;
-    glyph = face->glyph;
-
-    /* save current charmap */
-    charmap = face->charmap;
-
-    /* do we have a Unicode charmap in there? */
-    error = FT_Select_Charmap( face, FT_ENCODING_UNICODE );
-    if ( error )
-      goto Exit;
-
-    /* we compute the blues simply by loading each character from the */
-    /* `blue_chars[blues]' string, then compute its top-most or       */
-    /* bottom-most points (depending on `AH_IS_TOP_BLUE')             */
-
-    AH_LOG(( "blue zones computation\n" ));
-    AH_LOG(( "------------------------------------------------\n" ));
-
-    for ( blue = AH_BLUE_CAPITAL_TOP; blue < AH_BLUE_MAX; blue++ )
-    {
-      const char*  p     = blue_chars[blue];
-      const char*  limit = p + MAX_TEST_CHARACTERS;
-
-      FT_Pos       *blue_ref, *blue_shoot;
-
-
-      AH_LOG(( "blue %3d: ", blue ));
-
-      num_flats  = 0;
-      num_rounds = 0;
-
-      for ( ; p < limit; p++ )
-      {
-        FT_UInt     glyph_index;
-        FT_Vector*  extremum;
-        FT_Vector*  points;
-        FT_Vector*  point_limit;
-        FT_Vector*  point;
-        FT_Bool     round;
-
-
-        /* exit if we reach the end of the string */
-        if ( !*p )
-          break;
-
-        AH_LOG(( "`%c'", *p ));
-
-        /* load the character in the face -- skip unknown or empty ones */
-        glyph_index = FT_Get_Char_Index( face, (FT_UInt)*p );
-        if ( glyph_index == 0 )
-          continue;
-
-        error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_SCALE );
-        if ( error || glyph->outline.n_points <= 0 )
-          continue;
-
-        /* now compute min or max point indices and coordinates */
-        points      = glyph->outline.points;
-        point_limit = points + glyph->outline.n_points;
-        point       = points;
-        extremum    = point;
-        point++;
-
-        if ( AH_IS_TOP_BLUE( blue ) )
-        {
-          for ( ; point < point_limit; point++ )
-            if ( point->y > extremum->y )
-              extremum = point;
-        }
-        else
-        {
-          for ( ; point < point_limit; point++ )
-            if ( point->y < extremum->y )
-              extremum = point;
-        }
-
-        AH_LOG(( "%5d", (int)extremum->y ));
-
-        /* now, check whether the point belongs to a straight or round  */
-        /* segment; we first need to find in which contour the extremum */
-        /* lies, then see its previous and next points                  */
-        {
-          FT_Int  idx = (FT_Int)( extremum - points );
-          FT_Int  n;
-          FT_Int  first, last, prev, next, end;
-          FT_Pos  dist;
-
-
-          last  = -1;
-          first = 0;
-
-          for ( n = 0; n < glyph->outline.n_contours; n++ )
-          {
-            end = glyph->outline.contours[n];
-            if ( end >= idx )
-            {
-              last = end;
-              break;
-            }
-            first = end + 1;
-          }
-
-          /* XXX: should never happen! */
-          if ( last < 0 )
-            continue;
-
-          /* now look for the previous and next points that are not on the */
-          /* same Y coordinate.  Threshold the `closeness'...              */
-
-          prev = idx;
-          next = prev;
-
-          do
-          {
-            if ( prev > first )
-              prev--;
-            else
-              prev = last;
-
-            dist = points[prev].y - extremum->y;
-            if ( dist < -5 || dist > 5 )
-              break;
-
-          } while ( prev != idx );
-
-          do
-          {
-            if ( next < last )
-              next++;
-            else
-              next = first;
-
-            dist = points[next].y - extremum->y;
-            if ( dist < -5 || dist > 5 )
-              break;
-
-          } while ( next != idx );
-
-          /* now, set the `round' flag depending on the segment's kind */
-          round = FT_BOOL(
-            FT_CURVE_TAG( glyph->outline.tags[prev] ) != FT_CURVE_TAG_ON ||
-            FT_CURVE_TAG( glyph->outline.tags[next] ) != FT_CURVE_TAG_ON );
-
-          AH_LOG(( "%c ", round ? 'r' : 'f' ));
-        }
-
-        if ( round )
-          rounds[num_rounds++] = extremum->y;
-        else
-          flats[num_flats++] = extremum->y;
-      }
-
-      AH_LOG(( "\n" ));
-
-      /* we have computed the contents of the `rounds' and `flats' tables, */
-      /* now determine the reference and overshoot position of the blue -- */
-      /* we simply take the median value after a simple sort               */
-      sort_values( num_rounds, rounds );
-      sort_values( num_flats,  flats  );
-
-      blue_ref   = globals->blue_refs + blue;
-      blue_shoot = globals->blue_shoots + blue;
-      if ( num_flats == 0 && num_rounds == 0 )
-      {
-        *blue_ref   = -10000;
-        *blue_shoot = -10000;
-      }
-      else if ( num_flats == 0 )
-      {
-        *blue_ref   =
-        *blue_shoot = rounds[num_rounds / 2];
-      }
-      else if ( num_rounds == 0 )
-      {
-        *blue_ref   =
-        *blue_shoot = flats[num_flats / 2];
-      }
-      else
-      {
-        *blue_ref   = flats[num_flats / 2];
-        *blue_shoot = rounds[num_rounds / 2];
-      }
-
-      /* there are sometimes problems: if the overshoot position of top     */
-      /* zones is under its reference position, or the opposite for bottom  */
-      /* zones.  We must thus check everything there and correct the errors */
-      if ( *blue_shoot != *blue_ref )
-      {
-        FT_Pos   ref      = *blue_ref;
-        FT_Pos   shoot    = *blue_shoot;
-        FT_Bool  over_ref = FT_BOOL( shoot > ref );
-
-
-        if ( AH_IS_TOP_BLUE( blue ) ^ over_ref )
-          *blue_shoot = *blue_ref = ( shoot + ref ) / 2;
-      }
-
-      AH_LOG(( "-- ref = %ld, shoot = %ld\n", *blue_ref, *blue_shoot ));
-    }
-
-    /* reset original face charmap */
-    FT_Set_Charmap( face, charmap );
-    error = 0;
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  ah_hinter_compute_widths( AH_Hinter  hinter )
-  {
-    /* scan the array of segments in each direction */
-    AH_Outline  outline = hinter->glyph;
-    AH_Segment  segments;
-    AH_Segment  limit;
-    AH_Globals  globals = &hinter->globals->design;
-    FT_Pos*     widths;
-    FT_Int      dimension;
-    FT_Int*     p_num_widths;
-    FT_Error    error = 0;
-    FT_Pos      edge_distance_threshold = 32000;
-
-
-    globals->num_widths  = 0;
-    globals->num_heights = 0;
-
-    /* For now, compute the standard width and height from the `o'       */
-    /* character.  I started computing the stem width of the `i' and the */
-    /* stem height of the "-", but it wasn't too good.  Moreover, we now */
-    /* have a single character that gives us standard width and height.  */
-    {
-      FT_UInt  glyph_index;
-
-
-      glyph_index = FT_Get_Char_Index( hinter->face, 'o' );
-      if ( glyph_index == 0 )
-        return 0;
-
-      error = FT_Load_Glyph( hinter->face, glyph_index, FT_LOAD_NO_SCALE );
-      if ( error )
-        goto Exit;
-
-      error = ah_outline_load( hinter->glyph, 0x10000L, 0x10000L,
-                               hinter->face );
-      if ( error )
-        goto Exit;
-
-      ah_outline_compute_segments( hinter->glyph );
-      ah_outline_link_segments( hinter->glyph );
-    }
-
-    segments     = outline->horz_segments;
-    limit        = segments + outline->num_hsegments;
-    widths       = globals->heights;
-    p_num_widths = &globals->num_heights;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Segment  seg = segments;
-      AH_Segment  link;
-      FT_Int      num_widths = 0;
-
-
-      for ( ; seg < limit; seg++ )
-      {
-        link = seg->link;
-        /* we only consider stem segments there! */
-        if ( link && link->link == seg && link > seg )
-        {
-          FT_Pos  dist;
-
-
-          dist = seg->pos - link->pos;
-          if ( dist < 0 )
-            dist = -dist;
-
-          if ( num_widths < AH_MAX_WIDTHS )
-            widths[num_widths++] = dist;
-        }
-      }
-
-      sort_values( num_widths, widths );
-      *p_num_widths = num_widths;
-
-      /* we will now try to find the smallest width */
-      if ( num_widths > 0 && widths[0] < edge_distance_threshold )
-        edge_distance_threshold = widths[0];
-
-      segments     = outline->vert_segments;
-      limit        = segments + outline->num_vsegments;
-      widths       = globals->widths;
-      p_num_widths = &globals->num_widths;
-    }
-
-    /* Now, compute the edge distance threshold as a fraction of the */
-    /* smallest width in the font. Set it in `hinter->glyph' too!    */
-    if ( edge_distance_threshold == 32000 )
-      edge_distance_threshold = 50;
-
-    /* let's try 20% */
-    hinter->glyph->edge_distance_threshold = edge_distance_threshold / 5;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ah_hinter_compute_globals( AH_Hinter  hinter )
-  {
-    return ah_hinter_compute_widths( hinter ) ||
-           ah_hinter_compute_blues ( hinter );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahglobal.h b/nx-X11/extras/freetype2/src/autohint/ahglobal.h
deleted file mode 100644
index 5a9bcf835..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahglobal.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahglobal.h                                                             */
-/*                                                                         */
-/*    Routines used to compute global metrics automatically                */
-/*    (specification).                                                     */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 Catharon Productions Inc.              */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __AHGLOBAL_H__
-#define __AHGLOBAL_H__
-
-
-#include <ft2build.h>
-#include "ahtypes.h"
-#include FT_INTERNAL_OBJECTS_H
-
-
-FT_BEGIN_HEADER
-
-
-#ifdef  FT_CONFIG_CHESTER_SMALL_F
-
-#define AH_IS_TOP_BLUE( b )  ( (b) == AH_BLUE_CAPITAL_TOP || \
-                               (b) == AH_BLUE_SMALL_F_TOP || \
-                               (b) == AH_BLUE_SMALL_TOP   )
-
-#else /* !FT_CONFIG_CHESTER_SMALL_F */
-
-#define AH_IS_TOP_BLUE( b )  ( (b) == AH_BLUE_CAPITAL_TOP || \
-                               (b) == AH_BLUE_SMALL_TOP   )
-
-#endif /* !FT_CONFIG_CHESTER_SMALL_F */
-
-
-  /* compute global metrics automatically */
-  FT_LOCAL( FT_Error )
-  ah_hinter_compute_globals( AH_Hinter  hinter );
-
-
-FT_END_HEADER
-
-#endif /* __AHGLOBAL_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahglyph.c b/nx-X11/extras/freetype2/src/autohint/ahglyph.c
deleted file mode 100644
index 2a0390be4..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahglyph.c
+++ /dev/null
@@ -1,1699 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahglyph.c                                                              */
-/*                                                                         */
-/*    Routines used to load and analyze a given glyph before hinting       */
-/*    (body).                                                              */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 Catharon Productions Inc.        */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "ahglyph.h"
-#include "ahangles.h"
-#include "ahglobal.h"
-#include "aherrors.h"
-
-
-#ifdef AH_DEBUG
-
-#include <stdio.h>
-
-  void
-  ah_dump_edges( AH_Outline  outline )
-  {
-    AH_Edge     edges;
-    AH_Edge     edge_limit;
-    AH_Segment  segments;
-    FT_Int      dimension;
-
-
-    edges      = outline->horz_edges;
-    edge_limit = edges + outline->num_hedges;
-    segments   = outline->horz_segments;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Edge   edge;
-
-
-      printf ( "Table of %s edges:\n",
-               !dimension ? "vertical" : "horizontal" );
-      printf ( "  [ index |  pos |  dir  | link |"
-               " serif | blue | opos  |  pos  ]\n" );
-
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        printf ( "  [ %5d | %4d | %5s | %4d | %5d |  %c  | %5.2f | %5.2f ]\n",
-                 edge - edges,
-                 (int)edge->fpos,
-                 edge->dir == AH_DIR_UP
-                   ? "up"
-                   : ( edge->dir == AH_DIR_DOWN
-                         ? "down"
-                         : ( edge->dir == AH_DIR_LEFT
-                               ? "left"
-                               : ( edge->dir == AH_DIR_RIGHT
-                                     ? "right"
-                                     : "none" ) ) ),
-                 edge->link ? ( edge->link - edges ) : -1,
-                 edge->serif ? ( edge->serif - edges ) : -1,
-                 edge->blue_edge ? 'y' : 'n',
-                 edge->opos / 64.0,
-                 edge->pos / 64.0 );
-      }
-
-      edges      = outline->vert_edges;
-      edge_limit = edges + outline->num_vedges;
-      segments   = outline->vert_segments;
-    }
-  }
-
-
-  /* A function used to dump the array of linked segments */
-  void
-  ah_dump_segments( AH_Outline  outline )
-  {
-    AH_Segment  segments;
-    AH_Segment  segment_limit;
-    AH_Point    points;
-    FT_Int      dimension;
-
-
-    points        = outline->points;
-    segments      = outline->horz_segments;
-    segment_limit = segments + outline->num_hsegments;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Segment  seg;
-
-
-      printf ( "Table of %s segments:\n",
-               !dimension ? "vertical" : "horizontal" );
-      printf ( "  [ index |  pos |  dir  | link | serif |"
-               " numl | first | start ]\n" );
-
-      for ( seg = segments; seg < segment_limit; seg++ )
-      {
-        printf ( "  [ %5d | %4d | %5s | %4d | %5d | %4d | %5d | %5d ]\n",
-                 seg - segments,
-                 (int)seg->pos,
-                 seg->dir == AH_DIR_UP
-                   ? "up"
-                   : ( seg->dir == AH_DIR_DOWN
-                         ? "down"
-                         : ( seg->dir == AH_DIR_LEFT
-                               ? "left"
-                               : ( seg->dir == AH_DIR_RIGHT
-                                     ? "right"
-                                     : "none" ) ) ),
-                 seg->link ? ( seg->link - segments ) : -1,
-                 seg->serif ? ( seg->serif - segments ) : -1,
-                 (int)seg->num_linked,
-                 seg->first - points,
-                 seg->last - points );
-      }
-
-      segments      = outline->vert_segments;
-      segment_limit = segments + outline->num_vsegments;
-    }
-  }
-
-#endif /* AH_DEBUG */
-
-
-  /* compute the direction value of a given vector */
-  static AH_Direction
-  ah_compute_direction( FT_Pos  dx,
-                        FT_Pos  dy )
-  {
-    AH_Direction  dir;
-    FT_Pos        ax = FT_ABS( dx );
-    FT_Pos        ay = FT_ABS( dy );
-
-
-    dir = AH_DIR_NONE;
-
-    /* atan(1/12) == 4.7 degrees */
-
-    /* test for vertical direction */
-    if ( ax * 12 < ay )
-    {
-      dir = dy > 0 ? AH_DIR_UP : AH_DIR_DOWN;
-    }
-    /* test for horizontal direction */
-    else if ( ay * 12 < ax )
-    {
-      dir = dx > 0 ? AH_DIR_RIGHT : AH_DIR_LEFT;
-    }
-
-    return dir;
-  }
-
-
-  /* this function is used by ah_get_orientation (see below) to test */
-  /* the fill direction of given bbox extremum                       */
-  static FT_Int
-  ah_test_extremum( FT_Outline*  outline,
-                    FT_Int       n )
-  {
-    FT_Vector  *prev, *cur, *next;
-    FT_Pos      product;
-    FT_Int      first, last, c;
-    FT_Int      retval;
-
-
-    /* we need to compute the `previous' and `next' point */
-    /* for this extremum; we check whether the extremum   */
-    /* is start or end of a contour and providing         */
-    /* appropriate values if so                           */
-    cur  = outline->points + n;
-    prev = cur - 1;
-    next = cur + 1;
-
-    first = 0;
-    for ( c = 0; c < outline->n_contours; c++ )
-    {
-      last = outline->contours[c];
-
-      if ( n == first )
-        prev = outline->points + last;
-
-      if ( n == last )
-        next = outline->points + first;
-
-      first = last + 1;
-    }
-
-    /* compute the vectorial product -- since we know that the angle */
-    /* is <= 180 degrees (otherwise it wouldn't be an extremum) we   */
-    /* can determine the filling orientation if the product is       */
-    /* either positive or negative                                   */
-    product = FT_MulDiv( cur->x  - prev->x,  /* in.x  */
-                         next->y - cur->y,   /* out.y */
-                         0x40 )
-              -
-              FT_MulDiv( cur->y  - prev->y,  /* in.y  */
-                         next->x - cur->x,   /* out.x */
-                         0x40 );
-
-    retval = 0;
-    if ( product )
-      retval = product > 0 ? 2 : 1;
-
-    return retval;
-  }
-
-
-  /* Compute the orientation of path filling.  It differs between TrueType */
-  /* and Type1 formats.  We could use the `FT_OUTLINE_REVERSE_FILL' flag,  */
-  /* but it is better to re-compute it directly (it seems that this flag   */
-  /* isn't correctly set for some weird composite glyphs currently).       */
-  /*                                                                       */
-  /* We do this by computing bounding box points, and computing their      */
-  /* curvature.                                                            */
-  /*                                                                       */
-  /* The function returns either 1 or 2.                                   */
-  /*                                                                       */
-  static FT_Int
-  ah_get_orientation( FT_Outline*  outline )
-  {
-    FT_BBox  box;
-    FT_Int   indices_xMin, indices_yMin, indices_xMax, indices_yMax;
-    FT_Int   n, last;
-
-
-    indices_xMin = -1;
-    indices_yMin = -1;
-    indices_xMax = -1;
-    indices_yMax = -1;
-
-    box.xMin = box.yMin =  32767L;
-    box.xMax = box.yMax = -32768L;
-
-    /* is it empty? */
-    if ( outline->n_contours < 1 )
-      return 1;
-
-    last = outline->contours[outline->n_contours - 1];
-
-    for ( n = 0; n <= last; n++ )
-    {
-      FT_Pos  x, y;
-
-
-      x = outline->points[n].x;
-      if ( x < box.xMin )
-      {
-        box.xMin     = x;
-        indices_xMin = n;
-      }
-      if ( x > box.xMax )
-      {
-        box.xMax     = x;
-        indices_xMax = n;
-      }
-
-      y = outline->points[n].y;
-      if ( y < box.yMin )
-      {
-        box.yMin     = y;
-        indices_yMin = n;
-      }
-      if ( y > box.yMax )
-      {
-        box.yMax     = y;
-        indices_yMax = n;
-      }
-    }
-
-    /* test orientation of the extrema */
-    n = ah_test_extremum( outline, indices_xMin );
-    if ( n )
-      goto Exit;
-
-    n = ah_test_extremum( outline, indices_yMin );
-    if ( n )
-      goto Exit;
-
-    n = ah_test_extremum( outline, indices_xMax );
-    if ( n )
-      goto Exit;
-
-    n = ah_test_extremum( outline, indices_yMax );
-    if ( !n )
-      n = 1;
-
-  Exit:
-    return n;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_new                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new and empty AH_OutlineRec object.                      */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  ah_outline_new( FT_Memory    memory,
-                  AH_Outline*  aoutline )
-  {
-    FT_Error    error;
-    AH_Outline  outline;
-
-
-    if ( !FT_NEW( outline ) )
-    {
-      outline->memory = memory;
-      *aoutline       = outline;
-    }
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_done                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given AH_OutlineRec object.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ah_outline_done( AH_Outline  outline )
-  {
-    FT_Memory memory = outline->memory;
-
-
-    FT_FREE( outline->horz_edges );
-    FT_FREE( outline->horz_segments );
-    FT_FREE( outline->contours );
-    FT_FREE( outline->points );
-
-    FT_FREE( outline );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_save                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Saves the contents of a given AH_OutlineRec object into a face's   */
-  /*    glyph slot.                                                        */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ah_outline_save( AH_Outline  outline,
-                   AH_Loader   gloader )
-  {
-    AH_Point    point       = outline->points;
-    AH_Point    point_limit = point + outline->num_points;
-    FT_Vector*  vec         = gloader->current.outline.points;
-    char*       tag         = gloader->current.outline.tags;
-
-
-    /* we assume that the glyph loader has already been checked for storage */
-    for ( ; point < point_limit; point++, vec++, tag++ )
-    {
-      vec->x = point->x;
-      vec->y = point->y;
-
-      if ( point->flags & AH_FLAG_CONIC )
-        tag[0] = FT_CURVE_TAG_CONIC;
-      else if ( point->flags & AH_FLAG_CUBIC )
-        tag[0] = FT_CURVE_TAG_CUBIC;
-      else
-        tag[0] = FT_CURVE_TAG_ON;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_load                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads an unscaled outline from a glyph slot into an AH_OutlineRec  */
-  /*    object.                                                            */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  ah_outline_load( AH_Outline  outline,
-                   FT_Fixed    x_scale,
-                   FT_Fixed    y_scale,
-                   FT_Face     face )
-  {
-    FT_Memory    memory       = outline->memory;
-    FT_Error     error        = AH_Err_Ok;
-    FT_Outline*  source       = &face->glyph->outline;
-    FT_Int       num_points   = source->n_points;
-    FT_Int       num_contours = source->n_contours;
-    AH_Point     points;
-
-
-    /* check arguments */
-    if ( !face                                          ||
-         !face->size                                    ||
-         face->glyph->format != FT_GLYPH_FORMAT_OUTLINE )
-      return AH_Err_Invalid_Argument;
-
-    /* first of all, reallocate the contours array if necessary */
-    if ( num_contours > outline->max_contours )
-    {
-      FT_Int  new_contours = FT_PAD_CEIL( num_contours, 4 );
-
-
-      if ( FT_RENEW_ARRAY( outline->contours,
-                           outline->max_contours,
-                           new_contours ) )
-        goto Exit;
-
-      outline->max_contours = new_contours;
-    }
-
-    /* then, reallocate the points, segments & edges arrays if needed -- */
-    /* note that we reserved two additional point positions, used to     */
-    /* hint metrics appropriately                                        */
-    /*                                                                   */
-    if ( num_points + 2 > outline->max_points )
-    {
-      FT_Int  news = FT_PAD_CEIL( num_points + 2, 8 );
-      FT_Int  max  = outline->max_points;
-
-
-      if ( FT_RENEW_ARRAY( outline->points,        max,     news     ) ||
-           FT_RENEW_ARRAY( outline->horz_edges,    max * 2, news * 2 ) ||
-           FT_RENEW_ARRAY( outline->horz_segments, max * 2, news * 2 ) )
-        goto Exit;
-
-      /* readjust some pointers */
-      outline->vert_edges    = outline->horz_edges    + news;
-      outline->vert_segments = outline->horz_segments + news;
-      outline->max_points    = news;
-    }
-
-    outline->num_points   = num_points;
-    outline->num_contours = num_contours;
-
-    outline->num_hedges    = 0;
-    outline->num_vedges    = 0;
-    outline->num_hsegments = 0;
-    outline->num_vsegments = 0;
-
-    /* We can't rely on the value of `FT_Outline.flags' to know the fill  */
-    /* direction used for a glyph, given that some fonts are broken (e.g. */
-    /* the Arphic ones).  We thus recompute it each time we need to.      */
-    /*                                                                    */
-    outline->vert_major_dir = AH_DIR_UP;
-    outline->horz_major_dir = AH_DIR_LEFT;
-
-    if ( ah_get_orientation( source ) > 1 )
-    {
-      outline->vert_major_dir = AH_DIR_DOWN;
-      outline->horz_major_dir = AH_DIR_RIGHT;
-    }
-
-    outline->x_scale = x_scale;
-    outline->y_scale = y_scale;
-
-    points = outline->points;
-    if ( outline->num_points == 0 )
-      goto Exit;
-
-    {
-      /* do one thing at a time -- it is easier to understand, and */
-      /* the code is clearer                                       */
-      AH_Point  point;
-      AH_Point  point_limit = points + outline->num_points;
-
-
-      /* compute coordinates */
-      {
-        FT_Vector*  vec = source->points;
-
-
-        for ( point = points; point < point_limit; vec++, point++ )
-        {
-          point->fx = vec->x;
-          point->fy = vec->y;
-          point->ox = point->x = FT_MulFix( vec->x, x_scale );
-          point->oy = point->y = FT_MulFix( vec->y, y_scale );
-
-          point->flags = 0;
-        }
-      }
-
-      /* compute Bezier flags */
-      {
-        char*  tag = source->tags;
-
-
-        for ( point = points; point < point_limit; point++, tag++ )
-        {
-          switch ( FT_CURVE_TAG( *tag ) )
-          {
-          case FT_CURVE_TAG_CONIC:
-            point->flags = AH_FLAG_CONIC;
-            break;
-          case FT_CURVE_TAG_CUBIC:
-            point->flags = AH_FLAG_CUBIC;
-            break;
-          default:
-            ;
-          }
-        }
-      }
-
-      /* compute `next' and `prev' */
-      {
-        FT_Int    contour_index;
-        AH_Point  prev;
-        AH_Point  first;
-        AH_Point  end;
-
-
-        contour_index = 0;
-
-        first = points;
-        end   = points + source->contours[0];
-        prev  = end;
-
-        for ( point = points; point < point_limit; point++ )
-        {
-          point->prev = prev;
-          if ( point < end )
-          {
-            point->next = point + 1;
-            prev        = point;
-          }
-          else
-          {
-            point->next = first;
-            contour_index++;
-            if ( point + 1 < point_limit )
-            {
-              end   = points + source->contours[contour_index];
-              first = point + 1;
-              prev  = end;
-            }
-          }
-        }
-      }
-
-      /* set-up the contours array */
-      {
-        AH_Point*  contour       = outline->contours;
-        AH_Point*  contour_limit = contour + outline->num_contours;
-        short*     end           = source->contours;
-        short      idx           = 0;
-
-
-        for ( ; contour < contour_limit; contour++, end++ )
-        {
-          contour[0] = points + idx;
-          idx        = (short)( end[0] + 1 );
-        }
-      }
-
-      /* compute directions of in & out vectors */
-      {
-        for ( point = points; point < point_limit; point++ )
-        {
-          AH_Point   prev;
-          AH_Point   next;
-          FT_Vector  ivec, ovec;
-
-
-          prev   = point->prev;
-          ivec.x = point->fx - prev->fx;
-          ivec.y = point->fy - prev->fy;
-
-          point->in_dir = ah_compute_direction( ivec.x, ivec.y );
-
-          next   = point->next;
-          ovec.x = next->fx - point->fx;
-          ovec.y = next->fy - point->fy;
-
-          point->out_dir = ah_compute_direction( ovec.x, ovec.y );
-
-#ifndef AH_OPTION_NO_WEAK_INTERPOLATION
-          if ( point->flags & ( AH_FLAG_CONIC | AH_FLAG_CUBIC ) )
-          {
-          Is_Weak_Point:
-            point->flags |= AH_FLAG_WEAK_INTERPOLATION;
-          }
-          else if ( point->out_dir == point->in_dir )
-          {
-            AH_Angle  angle_in, angle_out, delta;
-
-
-            if ( point->out_dir != AH_DIR_NONE )
-              goto Is_Weak_Point;
-
-            angle_in  = ah_angle( &ivec );
-            angle_out = ah_angle( &ovec );
-            delta     = angle_in - angle_out;
-
-            if ( delta > AH_PI )
-              delta = AH_2PI - delta;
-
-            if ( delta < 0 )
-              delta = -delta;
-
-            if ( delta < 2 )
-              goto Is_Weak_Point;
-          }
-          else if ( point->in_dir == -point->out_dir )
-            goto Is_Weak_Point;
-#endif
-        }
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ah_setup_uv( AH_Outline  outline,
-               AH_UV       source )
-  {
-    AH_Point  point       = outline->points;
-    AH_Point  point_limit = point + outline->num_points;
-
-
-    switch ( source )
-    {
-    case AH_UV_FXY:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->fx;
-        point->v = point->fy;
-      }
-      break;
-
-    case AH_UV_FYX:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->fy;
-        point->v = point->fx;
-      }
-      break;
-
-    case AH_UV_OXY:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->ox;
-        point->v = point->oy;
-      }
-      break;
-
-    case AH_UV_OYX:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->oy;
-        point->v = point->ox;
-      }
-      break;
-
-    case AH_UV_YX:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->y;
-        point->v = point->x;
-      }
-      break;
-
-    case AH_UV_OX:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->x;
-        point->v = point->ox;
-      }
-      break;
-
-    case AH_UV_OY:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->y;
-        point->v = point->oy;
-      }
-      break;
-
-    default:
-      for ( ; point < point_limit; point++ )
-      {
-        point->u = point->x;
-        point->v = point->y;
-      }
-    }
-  }
-
-
-  /* compute all inflex points in a given glyph */
-  static void
-  ah_outline_compute_inflections( AH_Outline  outline )
-  {
-    AH_Point*  contour       = outline->contours;
-    AH_Point*  contour_limit = contour + outline->num_contours;
-
-
-    /* load original coordinates in (u,v) */
-    ah_setup_uv( outline, AH_UV_FXY );
-
-    /* do each contour separately */
-    for ( ; contour < contour_limit; contour++ )
-    {
-      FT_Vector  vec;
-      AH_Point   point = contour[0];
-      AH_Point   first = point;
-      AH_Point   start = point;
-      AH_Point   end   = point;
-      AH_Point   before;
-      AH_Point   after;
-      AH_Angle   angle_in, angle_seg, angle_out;
-      AH_Angle   diff_in, diff_out;
-      FT_Int     finished = 0;
-
-
-      /* compute first segment in contour */
-      first = point;
-
-      start = end = first;
-      do
-      {
-        end = end->next;
-        if ( end == first )
-          goto Skip;
-
-      } while ( end->u == first->u && end->v == first->v );
-
-      vec.x = end->u - start->u;
-      vec.y = end->v - start->v;
-      angle_seg = ah_angle( &vec );
-
-      /* extend the segment start whenever possible */
-      before = start;
-      do
-      {
-        do
-        {
-          start  = before;
-          before = before->prev;
-          if ( before == first )
-            goto Skip;
-
-        } while ( before->u == start->u && before->v == start->v );
-
-        vec.x    = start->u - before->u;
-        vec.y    = start->v - before->v;
-        angle_in = ah_angle( &vec );
-
-      } while ( angle_in == angle_seg );
-
-      first   = start;
-      diff_in = ah_angle_diff( angle_in, angle_seg );
-
-      /* now, process all segments in the contour */
-      do
-      {
-        /* first, extend current segment's end whenever possible */
-        after = end;
-        do
-        {
-          do
-          {
-            end   = after;
-            after = after->next;
-            if ( after == first )
-              finished = 1;
-
-          } while ( end->u == after->u && end->v == after->v );
-
-          vec.x     = after->u - end->u;
-          vec.y     = after->v - end->v;
-          angle_out = ah_angle( &vec );
-
-        } while ( angle_out == angle_seg );
-
-        diff_out = ah_angle_diff( angle_seg, angle_out );
-
-        if ( ( diff_in ^ diff_out ) < 0 )
-        {
-          /* diff_in and diff_out have different signs, we have */
-          /* inflection points here...                          */
-          do
-          {
-            start->flags |= AH_FLAG_INFLECTION;
-            start = start->next;
-
-          } while ( start != end );
-
-          start->flags |= AH_FLAG_INFLECTION;
-        }
-
-        start     = end;
-        end       = after;
-        angle_seg = angle_out;
-        diff_in   = diff_out;
-
-      } while ( !finished );
-
-    Skip:
-      ;
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ah_outline_compute_segments( AH_Outline  outline )
-  {
-    int           dimension;
-    AH_Segment    segments;
-    FT_Int*       p_num_segments;
-    AH_Direction  segment_dir;
-    AH_Direction  major_dir;
-
-
-    segments       = outline->horz_segments;
-    p_num_segments = &outline->num_hsegments;
-    major_dir      = AH_DIR_RIGHT;      /* This value must be positive! */
-    segment_dir    = major_dir;
-
-    /* set up (u,v) in each point */
-    ah_setup_uv( outline, AH_UV_FYX );
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Point*   contour       =  outline->contours;
-      AH_Point*   contour_limit =  contour + outline->num_contours;
-      AH_Segment  segment       =  segments;
-      FT_Int      num_segments  =  0;
-
-#ifdef AH_HINT_METRICS
-      AH_Point    min_point     =  0;
-      AH_Point    max_point     =  0;
-      FT_Pos      min_coord     =  32000;
-      FT_Pos      max_coord     = -32000;
-#endif
-
-
-      /* do each contour separately */
-      for ( ; contour < contour_limit; contour++ )
-      {
-        AH_Point  point   =  contour[0];
-        AH_Point  last    =  point->prev;
-        int       on_edge =  0;
-        FT_Pos    min_pos =  32000;  /* minimum segment pos != min_coord */
-        FT_Pos    max_pos = -32000;  /* maximum segment pos != max_coord */
-        FT_Bool   passed;
-
-
-#ifdef AH_HINT_METRICS
-        if ( point->u < min_coord )
-        {
-          min_coord = point->u;
-          min_point = point;
-        }
-        if ( point->u > max_coord )
-        {
-          max_coord = point->u;
-          max_point = point;
-        }
-#endif
-
-        if ( point == last )  /* skip singletons -- just in case */
-          continue;
-
-        if ( FT_ABS( last->out_dir )  == major_dir &&
-             FT_ABS( point->out_dir ) == major_dir )
-        {
-          /* we are already on an edge, try to locate its start */
-          last = point;
-
-          for (;;)
-          {
-            point = point->prev;
-            if ( FT_ABS( point->out_dir ) != major_dir )
-            {
-              point = point->next;
-              break;
-            }
-            if ( point == last )
-              break;
-          }
-        }
-
-        last   = point;
-        passed = 0;
-
-        for (;;)
-        {
-          FT_Pos  u, v;
-
-
-          if ( on_edge )
-          {
-            u = point->u;
-            if ( u < min_pos )
-              min_pos = u;
-            if ( u > max_pos )
-              max_pos = u;
-
-            if ( point->out_dir != segment_dir || point == last )
-            {
-              /* we are just leaving an edge; record a new segment! */
-              segment->last = point;
-              segment->pos  = ( min_pos + max_pos ) >> 1;
-
-              /* a segment is round if either its first or last point */
-              /* is a control point                                   */
-              if ( ( segment->first->flags | point->flags ) &
-                     AH_FLAG_CONTROL                        )
-                segment->flags |= AH_EDGE_ROUND;
-
-              /* compute segment size */
-              min_pos = max_pos = point->v;
-
-              v = segment->first->v;
-              if ( v < min_pos )
-                min_pos = v;
-              if ( v > max_pos )
-                max_pos = v;
-
-              segment->min_coord = min_pos;
-              segment->max_coord = max_pos;
-
-              on_edge = 0;
-              num_segments++;
-              segment++;
-              /* fallthrough */
-            }
-          }
-
-          /* now exit if we are at the start/end point */
-          if ( point == last )
-          {
-            if ( passed )
-              break;
-            passed = 1;
-          }
-
-          if ( !on_edge && FT_ABS( point->out_dir ) == major_dir )
-          {
-            /* this is the start of a new segment! */
-            segment_dir = point->out_dir;
-
-            /* clear all segment fields */
-            FT_ZERO( segment );
-
-            segment->dir      = segment_dir;
-            segment->flags    = AH_EDGE_NORMAL;
-            min_pos = max_pos = point->u;
-            segment->first    = point;
-            segment->last     = point;
-            segment->contour  = contour;
-            segment->score    = 32000;
-            segment->link     = NULL;
-            on_edge           = 1;
-
-#ifdef AH_HINT_METRICS
-            if ( point == max_point )
-              max_point = 0;
-
-            if ( point == min_point )
-              min_point = 0;
-#endif
-          }
-
-          point = point->next;
-        }
-
-      } /* contours */
-
-#ifdef AH_HINT_METRICS
-      /* we need to ensure that there are edges on the left-most and  */
-      /* right-most points of the glyph in order to hint the metrics; */
-      /* we do this by inserting fake segments when needed            */
-      if ( dimension == 0 )
-      {
-        AH_Point  point       = outline->points;
-        AH_Point  point_limit = point + outline->num_points;
-
-        FT_Pos    min_pos =  32000;
-        FT_Pos    max_pos = -32000;
-
-
-        min_point = 0;
-        max_point = 0;
-
-        /* compute minimum and maximum points */
-        for ( ; point < point_limit; point++ )
-        {
-          FT_Pos  x = point->fx;
-
-
-          if ( x < min_pos )
-          {
-            min_pos   = x;
-            min_point = point;
-          }
-          if ( x > max_pos )
-          {
-            max_pos   = x;
-            max_point = point;
-          }
-        }
-
-        /* insert minimum segment */
-        if ( min_point )
-        {
-          /* clear all segment fields */
-          FT_ZERO( segment );
-
-          segment->dir   = segment_dir;
-          segment->flags = AH_EDGE_NORMAL;
-          segment->first = min_point;
-          segment->last  = min_point;
-          segment->pos   = min_pos;
-          segment->score = 32000;
-          segment->link  = NULL;
-
-          num_segments++;
-          segment++;
-        }
-
-        /* insert maximum segment */
-        if ( max_point )
-        {
-          /* clear all segment fields */
-          FT_ZERO( segment );
-
-          segment->dir   = segment_dir;
-          segment->flags = AH_EDGE_NORMAL;
-          segment->first = max_point;
-          segment->last  = max_point;
-          segment->pos   = max_pos;
-          segment->score = 32000;
-          segment->link  = NULL;
-
-          num_segments++;
-          segment++;
-        }
-      }
-#endif /* AH_HINT_METRICS */
-
-      *p_num_segments = num_segments;
-
-      segments       = outline->vert_segments;
-      major_dir      = AH_DIR_UP;
-      p_num_segments = &outline->num_vsegments;
-
-      ah_setup_uv( outline, AH_UV_FXY );
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ah_outline_link_segments( AH_Outline  outline )
-  {
-    AH_Segment    segments;
-    AH_Segment    segment_limit;
-    AH_Direction  major_dir;
-    int           dimension;
-
-
-    segments      = outline->horz_segments;
-    segment_limit = segments + outline->num_hsegments;
-    major_dir     = outline->horz_major_dir;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Segment  seg1;
-      AH_Segment  seg2;
-
-#if 0
-      /* now compare each segment to the others */
-      for ( seg1 = segments; seg1 < segment_limit; seg1++ )
-      {
-        FT_Pos      best_score;
-        AH_Segment  best_segment;
-
-
-        /* the fake segments are introduced to hint the metrics -- */
-        /* we must never link them to anything                     */
-        if ( seg1->first == seg1->last )
-          continue;
-
-        best_segment = seg1->link;
-        if ( best_segment )
-          best_score = seg1->score;
-        else
-          best_score = +32000;
-
-        for ( seg2 = segments; seg2 < segment_limit; seg2++ )
-          if ( seg1 != seg2 && seg1->dir + seg2->dir == 0 )
-          {
-            FT_Pos   pos1 = seg1->pos;
-            FT_Pos   pos2 = seg2->pos;
-            FT_Bool  is_dir;
-            FT_Bool  is_pos;
-
-
-            /* check that the segments are correctly oriented and */
-            /* positioned to form a black distance                */
-
-            is_dir = (FT_Bool)( seg1->dir == outline->horz_major_dir ||
-                                seg1->dir == outline->vert_major_dir );
-            is_pos = (FT_Bool)( pos1 > pos2 );
-
-            if ( pos1 == pos2 || !(is_dir ^ is_pos) )
-              continue;
-
-            {
-              FT_Pos  min = seg1->min_coord;
-              FT_Pos  max = seg1->max_coord;
-              FT_Pos  len, dist, score;
-
-
-              if ( min < seg2->min_coord )
-                min = seg2->min_coord;
-
-              if ( max > seg2->max_coord )
-                max = seg2->max_coord;
-
-              len = max - min;
-              if ( len >= 8 )
-              {
-                dist = seg2->pos - seg1->pos;
-                if ( dist < 0 )
-                  dist = -dist;
-
-                score = dist + 3000 / len;
-
-                if ( score < best_score )
-                {
-                  best_score   = score;
-                  best_segment = seg2;
-                }
-              }
-            }
-          }
-
-        if ( best_segment )
-        {
-          seg1->link  = best_segment;
-          seg1->score = best_score;
-          best_segment->num_linked++;
-        }
-      }
-#endif /* 0 */
-
-#if 1
-      /* the following code does the same, but much faster! */
-
-      /* now compare each segment to the others */
-      for ( seg1 = segments; seg1 < segment_limit; seg1++ )
-      {
-        /* the fake segments are introduced to hint the metrics -- */
-        /* we must never link them to anything                     */
-        if ( seg1->first == seg1->last || seg1->dir != major_dir )
-          continue;
-
-        for ( seg2 = segments; seg2 < segment_limit; seg2++ )
-          if ( seg2 != seg1 && seg1->dir + seg2->dir == 0 )
-          {
-            FT_Pos  pos1 = seg1->pos;
-            FT_Pos  pos2 = seg2->pos;
-            FT_Pos  dist = pos2 - pos1;
-
-
-            if ( dist < 0 )
-              continue;
-
-            {
-              FT_Pos  min = seg1->min_coord;
-              FT_Pos  max = seg1->max_coord;
-              FT_Pos  len, score;
-
-
-              if ( min < seg2->min_coord )
-                min = seg2->min_coord;
-
-              if ( max > seg2->max_coord )
-                max = seg2->max_coord;
-
-              len = max - min;
-              if ( len >= 8 )
-              {
-                score = dist + 3000 / len;
-
-                if ( score < seg1->score )
-                {
-                  seg1->score = score;
-                  seg1->link  = seg2;
-                }
-
-                if ( score < seg2->score )
-                {
-                  seg2->score = score;
-                  seg2->link  = seg1;
-                }
-              }
-            }
-          }
-      }
-#endif /* 1 */
-
-      /* now, compute the `serif' segments */
-      for ( seg1 = segments; seg1 < segment_limit; seg1++ )
-      {
-        seg2 = seg1->link;
-
-        if ( seg2 )
-        {
-          seg2->num_linked++;
-          if ( seg2->link != seg1 )
-          {
-            seg1->link  = 0;
-            seg1->serif = seg2->link;
-          }
-        }
-      }
-
-      segments      = outline->vert_segments;
-      segment_limit = segments + outline->num_vsegments;
-      major_dir     = outline->vert_major_dir;
-    }
-  }
-
-
-  static void
-  ah_outline_compute_edges( AH_Outline  outline )
-  {
-    AH_Edge       edges;
-    AH_Segment    segments;
-    AH_Segment    segment_limit;
-    AH_Direction  up_dir;
-    FT_Int*       p_num_edges;
-    FT_Int        dimension;
-    FT_Fixed      scale;
-    FT_Pos        edge_distance_threshold;
-
-
-    edges         = outline->horz_edges;
-    segments      = outline->horz_segments;
-    segment_limit = segments + outline->num_hsegments;
-    p_num_edges   = &outline->num_hedges;
-    up_dir        = AH_DIR_RIGHT;
-    scale         = outline->y_scale;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Edge     edge;
-      AH_Edge     edge_limit;  /* really == edge + num_edges */
-      AH_Segment  seg;
-
-
-      /*********************************************************************/
-      /*                                                                   */
-      /* We will begin by generating a sorted table of edges for the       */
-      /* current direction.  To do so, we simply scan each segment and try */
-      /* to find an edge in our table that corresponds to its position.    */
-      /*                                                                   */
-      /* If no edge is found, we create and insert a new edge in the       */
-      /* sorted table.  Otherwise, we simply add the segment to the edge's */
-      /* list which will be processed in the second step to compute the    */
-      /* edge's properties.                                                */
-      /*                                                                   */
-      /* Note that the edges table is sorted along the segment/edge        */
-      /* position.                                                         */
-      /*                                                                   */
-      /*********************************************************************/
-
-      edge_distance_threshold = FT_MulFix( outline->edge_distance_threshold,
-                                           scale );
-      if ( edge_distance_threshold > 64 / 4 )
-        edge_distance_threshold = 64 / 4;
-
-      edge_distance_threshold = FT_DivFix( edge_distance_threshold,
-                                           scale );
-
-      edge_limit = edges;
-      for ( seg = segments; seg < segment_limit; seg++ )
-      {
-        AH_Edge  found = 0;
-
-
-        /* look for an edge corresponding to the segment */
-        for ( edge = edges; edge < edge_limit; edge++ )
-        {
-          FT_Pos  dist;
-
-
-          dist = seg->pos - edge->fpos;
-          if ( dist < 0 )
-            dist = -dist;
-
-          if ( dist < edge_distance_threshold )
-          {
-            found = edge;
-            break;
-          }
-        }
-
-        if ( !found )
-        {
-          /* insert a new edge in the list and */
-          /* sort according to the position    */
-          while ( edge > edges && edge[-1].fpos > seg->pos )
-          {
-            edge[0] = edge[-1];
-            edge--;
-          }
-          edge_limit++;
-
-          /* clear all edge fields */
-          FT_MEM_ZERO( edge, sizeof ( *edge ) );
-
-          /* add the segment to the new edge's list */
-          edge->first    = seg;
-          edge->last     = seg;
-          edge->fpos     = seg->pos;
-          edge->opos     = edge->pos = FT_MulFix( seg->pos, scale );
-          seg->edge_next = seg;
-        }
-        else
-        {
-          /* if an edge was found, simply add the segment to the edge's */
-          /* list                                                       */
-          seg->edge_next        = edge->first;
-          edge->last->edge_next = seg;
-          edge->last            = seg;
-        }
-      }
-      *p_num_edges = (FT_Int)( edge_limit - edges );
-
-
-      /*********************************************************************/
-      /*                                                                   */
-      /* Good, we will now compute each edge's properties according to     */
-      /* segments found on its position.  Basically, these are:            */
-      /*                                                                   */
-      /*  - edge's main direction                                          */
-      /*  - stem edge, serif edge or both (which defaults to stem then)    */
-      /*  - rounded edge, straight or both (which defaults to straight)    */
-      /*  - link for edge                                                  */
-      /*                                                                   */
-      /*********************************************************************/
-
-      /* first of all, set the `edge' field in each segment -- this is */
-      /* required in order to compute edge links                       */
-
-      /* Note that I've tried to remove this loop, setting
-       * the "edge" field of each segment directly in the
-       * code above.  For some reason, it slows down execution
-       * speed -- on a Sun.
-       */
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        seg = edge->first;
-        if ( seg )
-          do
-          {
-            seg->edge = edge;
-            seg       = seg->edge_next;
-          }
-          while ( seg != edge->first );
-      }
-
-      /* now, compute each edge properties */
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        FT_Int  is_round    = 0;  /* does it contain round segments?    */
-        FT_Int  is_straight = 0;  /* does it contain straight segments? */
-        FT_Pos  ups         = 0;  /* number of upwards segments         */
-        FT_Pos  downs       = 0;  /* number of downwards segments       */
-
-
-        seg = edge->first;
-
-        do
-        {
-          FT_Bool  is_serif;
-
-
-          /* check for roundness of segment */
-          if ( seg->flags & AH_EDGE_ROUND )
-            is_round++;
-          else
-            is_straight++;
-
-          /* check for segment direction */
-          if ( seg->dir == up_dir )
-            ups   += seg->max_coord-seg->min_coord;
-          else
-            downs += seg->max_coord-seg->min_coord;
-
-          /* check for links -- if seg->serif is set, then seg->link must */
-          /* be ignored                                                   */
-          is_serif = (FT_Bool)( seg->serif && seg->serif->edge != edge );
-
-          if ( seg->link || is_serif )
-          {
-            AH_Edge     edge2;
-            AH_Segment  seg2;
-
-
-            edge2 = edge->link;
-            seg2  = seg->link;
-
-            if ( is_serif )
-            {
-              seg2  = seg->serif;
-              edge2 = edge->serif;
-            }
-
-            if ( edge2 )
-            {
-              FT_Pos  edge_delta;
-              FT_Pos  seg_delta;
-
-
-              edge_delta = edge->fpos - edge2->fpos;
-              if ( edge_delta < 0 )
-                edge_delta = -edge_delta;
-
-              seg_delta = seg->pos - seg2->pos;
-              if ( seg_delta < 0 )
-                seg_delta = -seg_delta;
-
-              if ( seg_delta < edge_delta )
-                edge2 = seg2->edge;
-            }
-            else
-              edge2 = seg2->edge;
-
-#ifdef FT_CONFIG_CHESTER_SERIF
-            if ( is_serif )
-            {
-              edge->serif   = edge2;
-              edge2->flags |= AH_EDGE_SERIF;
-            }
-            else
-              edge->link  = edge2;
-#else /* !FT_CONFIG_CHESTER_SERIF */
-            if ( is_serif )
-              edge->serif = edge2;
-            else
-              edge->link  = edge2;
-#endif /* !FT_CONFIG_CHESTER_SERIF */
-          }
-
-          seg = seg->edge_next;
-
-        } while ( seg != edge->first );
-
-        /* set the round/straight flags */
-        edge->flags = AH_EDGE_NORMAL;
-
-        if ( is_round > 0 && is_round >= is_straight )
-          edge->flags |= AH_EDGE_ROUND;
-
-        /* set the edge's main direction */
-        edge->dir = AH_DIR_NONE;
-
-        if ( ups > downs )
-          edge->dir = up_dir;
-
-        else if ( ups < downs )
-          edge->dir = -up_dir;
-
-        else if ( ups == downs )
-          edge->dir = 0;  /* both up and down! */
-
-        /* gets rid of serifs if link is set                */
-        /* XXX: This gets rid of many unpleasant artefacts! */
-        /*      Example: the `c' in cour.pfa at size 13     */
-
-        if ( edge->serif && edge->link )
-          edge->serif = 0;
-      }
-
-      edges         = outline->vert_edges;
-      segments      = outline->vert_segments;
-      segment_limit = segments + outline->num_vsegments;
-      p_num_edges   = &outline->num_vedges;
-      up_dir        = AH_DIR_UP;
-      scale         = outline->x_scale;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_detect_features                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Performs feature detection on a given AH_OutlineRec object.        */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ah_outline_detect_features( AH_Outline  outline )
-  {
-    ah_outline_compute_segments   ( outline );
-    ah_outline_link_segments      ( outline );
-    ah_outline_compute_edges      ( outline );
-    ah_outline_compute_inflections( outline );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_compute_blue_edges                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the `blue edges' in a given outline (i.e. those that must */
-  /*    be snapped to a blue zone edge (top or bottom).                    */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ah_outline_compute_blue_edges( AH_Outline       outline,
-                                 AH_Face_Globals  face_globals )
-  {
-    AH_Edge     edge       = outline->horz_edges;
-    AH_Edge     edge_limit = edge + outline->num_hedges;
-    AH_Globals  globals    = &face_globals->design;
-    FT_Fixed    y_scale    = outline->y_scale;
-
-    FT_Bool     blue_active[AH_BLUE_MAX];
-
-
-    /* compute which blue zones are active, i.e. have their scaled */
-    /* size < 3/4 pixels                                           */
-    {
-      AH_Blue  blue;
-      FT_Bool  check = 0;
-
-
-      for ( blue = AH_BLUE_CAPITAL_TOP; blue < AH_BLUE_MAX; blue++ )
-      {
-        FT_Pos  ref, shoot, dist;
-
-
-        ref   = globals->blue_refs[blue];
-        shoot = globals->blue_shoots[blue];
-        dist  = ref - shoot;
-        if ( dist < 0 )
-          dist = -dist;
-
-        blue_active[blue] = 0;
-
-        if ( FT_MulFix( dist, y_scale ) < 48 )
-        {
-          blue_active[blue] = 1;
-          check = 1;
-        }
-      }
-
-      /* return immediately if no blue zone is active */
-      if ( !check )
-        return;
-    }
-
-    /* for each horizontal edge search the blue zone which is closest */
-    for ( ; edge < edge_limit; edge++ )
-    {
-      AH_Blue  blue;
-      FT_Pos*  best_blue = 0;
-      FT_Pos   best_dist;  /* initial threshold */
-
-
-      /* compute the initial threshold as a fraction of the EM size */
-      best_dist = FT_MulFix( face_globals->face->units_per_EM / 40, y_scale );
-
-#ifdef FT_CONFIG_CHESTER_SMALL_F
-      if ( best_dist > 64 / 2 )
-        best_dist = 64 / 2;
-#else
-      if ( best_dist > 64 / 4 )
-        best_dist = 64 / 4;
-#endif
-
-      for ( blue = AH_BLUE_CAPITAL_TOP; blue < AH_BLUE_MAX; blue++ )
-      {
-        /* if it is a top zone, check for right edges -- if it is a bottom */
-        /* zone, check for left edges                                      */
-        /*                                                                 */
-        /* of course, that's for TrueType XXX                              */
-        FT_Bool  is_top_blue  =
-                   FT_BOOL( AH_IS_TOP_BLUE( blue ) );
-        FT_Bool  is_major_dir =
-                   FT_BOOL( edge->dir == outline->horz_major_dir );
-
-
-        if ( !blue_active[blue] )
-          continue;
-
-        /* if it is a top zone, the edge must be against the major    */
-        /* direction; if it is a bottom zone, it must be in the major */
-        /* direction                                                  */
-        if ( is_top_blue ^ is_major_dir )
-        {
-          FT_Pos   dist;
-          FT_Pos*  blue_pos = globals->blue_refs + blue;
-
-
-          /* first of all, compare it to the reference position */
-          dist = edge->fpos - *blue_pos;
-          if ( dist < 0 )
-            dist = -dist;
-
-          dist = FT_MulFix( dist, y_scale );
-          if ( dist < best_dist )
-          {
-            best_dist = dist;
-            best_blue = blue_pos;
-          }
-
-          /* now, compare it to the overshoot position if the edge is     */
-          /* rounded, and if the edge is over the reference position of a */
-          /* top zone, or under the reference position of a bottom zone   */
-          if ( edge->flags & AH_EDGE_ROUND && dist != 0 )
-          {
-            FT_Bool  is_under_ref = FT_BOOL( edge->fpos < *blue_pos );
-
-
-            if ( is_top_blue ^ is_under_ref )
-            {
-              blue_pos = globals->blue_shoots + blue;
-              dist = edge->fpos - *blue_pos;
-              if ( dist < 0 )
-                dist = -dist;
-
-              dist = FT_MulFix( dist, y_scale );
-              if ( dist < best_dist )
-              {
-                best_dist = dist;
-                best_blue = blue_pos;
-              }
-            }
-          }
-        }
-      }
-
-      if ( best_blue )
-        edge->blue_edge = best_blue;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ah_outline_scale_blue_edges                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function must be called before hinting in order to re-adjust  */
-  /*    the contents of the detected edges (basically change the `blue     */
-  /*    edge' pointer from `design units' to `scaled ones').               */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ah_outline_scale_blue_edges( AH_Outline       outline,
-                               AH_Face_Globals  globals )
-  {
-    AH_Edge  edge       = outline->horz_edges;
-    AH_Edge  edge_limit = edge + outline->num_hedges;
-    FT_Pos   delta;
-
-
-    delta = globals->scaled.blue_refs - globals->design.blue_refs;
-
-    for ( ; edge < edge_limit; edge++ )
-    {
-      if ( edge->blue_edge )
-        edge->blue_edge += delta;
-    }
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahglyph.h b/nx-X11/extras/freetype2/src/autohint/ahglyph.h
deleted file mode 100644
index b346cbe8b..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahglyph.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahglyph.h                                                              */
-/*                                                                         */
-/*    Routines used to load and analyze a given glyph before hinting       */
-/*    (specification).                                                     */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002 Catharon Productions Inc.                    */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __AHGLYPH_H__
-#define __AHGLYPH_H__
-
-
-#include <ft2build.h>
-#include "ahtypes.h"
-
-
-FT_BEGIN_HEADER
-
-
-  typedef enum  AH_UV_
-  {
-    AH_UV_FXY,
-    AH_UV_FYX,
-    AH_UV_OXY,
-    AH_UV_OYX,
-    AH_UV_OX,
-    AH_UV_OY,
-    AH_UV_YX,
-    AH_UV_XY  /* should always be last! */
-
-  } AH_UV;
-
-
-  FT_LOCAL( void )
-  ah_setup_uv( AH_Outline  outline,
-               AH_UV       source );
-
-
-  /* AH_OutlineRec functions - they should be typically called in this order */
-
-  FT_LOCAL( FT_Error )
-  ah_outline_new( FT_Memory    memory,
-                  AH_Outline*  aoutline );
-
-  FT_LOCAL( FT_Error )
-  ah_outline_load( AH_Outline  outline,
-                   FT_Fixed    x_scale,
-                   FT_Fixed    y_scale,
-                   FT_Face     face );
-
-  FT_LOCAL( void )
-  ah_outline_compute_segments( AH_Outline  outline );
-
-  FT_LOCAL( void )
-  ah_outline_link_segments( AH_Outline  outline );
-
-  FT_LOCAL( void )
-  ah_outline_detect_features( AH_Outline  outline );
-
-  FT_LOCAL( void )
-  ah_outline_compute_blue_edges( AH_Outline       outline,
-                                 AH_Face_Globals  globals );
-
-  FT_LOCAL( void )
-  ah_outline_scale_blue_edges( AH_Outline       outline,
-                               AH_Face_Globals  globals );
-
-  FT_LOCAL( void )
-  ah_outline_save( AH_Outline  outline,
-                   AH_Loader   loader );
-
-  FT_LOCAL( void )
-  ah_outline_done( AH_Outline  outline );
-
-
-FT_END_HEADER
-
-#endif /* __AHGLYPH_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahhint.c b/nx-X11/extras/freetype2/src/autohint/ahhint.c
deleted file mode 100644
index 8e8afeac4..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahhint.c
+++ /dev/null
@@ -1,1937 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahhint.c                                                               */
-/*                                                                         */
-/*    Glyph hinter (body).                                                 */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 Catharon Productions Inc.        */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "ahhint.h"
-#include "ahglyph.h"
-#include "ahangles.h"
-#include "aherrors.h"
-#include FT_OUTLINE_H
-
-
-#define FACE_GLOBALS( face )  ( (AH_Face_Globals)(face)->autohint.data )
-
-#define AH_USE_IUP
-#define OPTIM_STEM_SNAP
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   Hinting routines                                              ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* snap a given width in scaled coordinates to one of the */
-  /* current standard widths                                */
-  static FT_Pos
-  ah_snap_width( FT_Pos*  widths,
-                 FT_Int   count,
-                 FT_Pos   width )
-  {
-    int     n;
-    FT_Pos  best      = 64 + 32 + 2;
-    FT_Pos  reference = width;
-    FT_Pos  scaled;
-
-
-    for ( n = 0; n < count; n++ )
-    {
-      FT_Pos  w;
-      FT_Pos  dist;
-
-
-      w = widths[n];
-      dist = width - w;
-      if ( dist < 0 )
-        dist = -dist;
-      if ( dist < best )
-      {
-        best      = dist;
-        reference = w;
-      }
-    }
-
-    scaled = FT_PIX_ROUND( reference );
-
-    if ( width >= reference )
-    {
-      if ( width < scaled + 48 )
-        width = reference;
-    }
-    else
-    {
-      if ( width > scaled - 48 )
-        width = reference;
-    }
-
-    return width;
-  }
-
-
-  /* compute the snapped width of a given stem */
-
-#ifdef FT_CONFIG_CHESTER_SERIF
-
-  static FT_Pos
-  ah_compute_stem_width( AH_Hinter      hinter,
-                         int            vertical,
-                         FT_Pos         width,
-                         AH_Edge_Flags  base_flags,
-                         AH_Edge_Flags  stem_flags )
-  {
-    AH_Globals  globals = &hinter->globals->scaled;
-    FT_Pos      dist    = width;
-    FT_Int      sign    = 0;
-
-
-    if ( dist < 0 )
-    {
-      dist = -width;
-      sign = 1;
-    }
-
-    if ( !hinter->do_stem_adjust )
-    {
-      /* leave stem widths unchanged */
-    }
-    else if ( (  vertical && !hinter->do_vert_snapping ) ||
-              ( !vertical && !hinter->do_horz_snapping ) )
-    {
-      /* smooth hinting process: very lightly quantize the stem width */
-      /*                                                              */
-
-      /* leave the widths of serifs alone */
-
-      if ( ( stem_flags & AH_EDGE_SERIF ) && vertical && ( dist < 3 * 64 ) )
-        goto Done_Width;
-
-      else if ( ( base_flags & AH_EDGE_ROUND ) )
-      {
-        if ( dist < 80 )
-          dist = 64;
-      }
-      else if ( dist < 56 )
-        dist = 56;
-
-      {
-        FT_Pos  delta = dist - globals->stds[vertical];
-
-
-        if ( delta < 0 )
-          delta = -delta;
-
-        if ( delta < 40 )
-        {
-          dist = globals->stds[vertical];
-          if ( dist < 48 )
-            dist = 48;
-
-          goto Done_Width;
-        }
-
-        if ( dist < 3 * 64 )
-        {
-          delta  = dist & 63;
-          dist  &= -64;
-
-          if ( delta < 10 )
-            dist += delta;
-
-          else if ( delta < 32 )
-            dist += 10;
-
-          else if ( delta < 54 )
-            dist += 54;
-
-          else
-            dist += delta;
-        }
-        else
-          dist = ( dist + 32 ) & ~63;
-      }
-    }
-    else
-    {
-      /* strong hinting process: snap the stem width to integer pixels */
-      /*                                                               */
-      if ( vertical )
-      {
-        dist = ah_snap_width( globals->heights, globals->num_heights, dist );
-
-        /* in the case of vertical hinting, always round */
-        /* the stem heights to integer pixels            */
-        if ( dist >= 64 )
-          dist = ( dist + 16 ) & ~63;
-        else
-          dist = 64;
-      }
-      else
-      {
-        dist = ah_snap_width( globals->widths, globals->num_widths, dist );
-
-        if ( hinter->flags & AH_HINTER_MONOCHROME )
-        {
-          /* monochrome horizontal hinting: snap widths to integer pixels */
-          /* with a different threshold                                   */
-          if ( dist < 64 )
-            dist = 64;
-          else
-            dist = ( dist + 32 ) & ~63;
-        }
-        else
-        {
-          /* for horizontal anti-aliased hinting, we adopt a more subtle */
-          /* approach: we strengthen small stems, round stems whose size */
-          /* is between 1 and 2 pixels to an integer, otherwise nothing  */
-          if ( dist < 48 )
-            dist = ( dist + 64 ) >> 1;
-
-          else if ( dist < 128 )
-            dist = ( dist + 22 ) & ~63;
-          else
-            /* XXX: round otherwise to prevent color fringes in LCD mode */
-            dist = ( dist + 32 ) & ~63;
-        }
-      }
-    }
-
-  Done_Width:
-    if ( sign )
-      dist = -dist;
-
-    return dist;
-  }
-
-#else /* !FT_CONFIG_CHESTER_SERIF */
-
-  static FT_Pos
-  ah_compute_stem_width( AH_Hinter  hinter,
-                         int        vertical,
-                         FT_Pos     width )
-  {
-    AH_Globals  globals = &hinter->globals->scaled;
-    FT_Pos      dist    = width;
-    FT_Int      sign    = 0;
-
-
-    if ( dist < 0 )
-    {
-      dist = -width;
-      sign = 1;
-    }
-
-    if ( !hinter->do_stem_adjust )
-    {
-      /* leave stem widths unchanged */
-    }
-    else if ( (  vertical && !hinter->do_vert_snapping ) ||
-              ( !vertical && !hinter->do_horz_snapping ) )
-    {
-      /* smooth hinting process: very lightly quantize the stem width */
-      /*                                                              */
-      if ( dist < 64 )
-        dist = 64;
-
-      {
-        FT_Pos  delta = dist - globals->stds[vertical];
-
-
-        if ( delta < 0 )
-          delta = -delta;
-
-        if ( delta < 40 )
-        {
-          dist = globals->stds[vertical];
-          if ( dist < 48 )
-            dist = 48;
-        }
-
-        if ( dist < 3 * 64 )
-        {
-          delta  = dist & 63;
-          dist  &= -64;
-
-          if ( delta < 10 )
-            dist += delta;
-
-          else if ( delta < 32 )
-            dist += 10;
-
-          else if ( delta < 54 )
-            dist += 54;
-
-          else
-            dist += delta;
-        }
-        else
-          dist = ( dist + 32 ) & ~63;
-      }
-    }
-    else
-    {
-      /* strong hinting process: snap the stem width to integer pixels */
-      /*                                                               */
-      if ( vertical )
-      {
-        dist = ah_snap_width( globals->heights, globals->num_heights, dist );
-
-        /* in the case of vertical hinting, always round */
-        /* the stem heights to integer pixels            */
-        if ( dist >= 64 )
-          dist = ( dist + 16 ) & ~63;
-        else
-          dist = 64;
-      }
-      else
-      {
-        dist = ah_snap_width( globals->widths, globals->num_widths, dist );
-
-        if ( hinter->flags & AH_HINTER_MONOCHROME )
-        {
-          /* monochrome horizontal hinting: snap widths to integer pixels */
-          /* with a different threshold                                   */
-          if ( dist < 64 )
-            dist = 64;
-          else
-            dist = ( dist + 32 ) & ~63;
-        }
-        else
-        {
-          /* for horizontal anti-aliased hinting, we adopt a more subtle */
-          /* approach: we strengthen small stems, round stems whose size */
-          /* is between 1 and 2 pixels to an integer, otherwise nothing  */
-          if ( dist < 48 )
-            dist = ( dist + 64 ) >> 1;
-
-          else if ( dist < 128 )
-            dist = ( dist + 22 ) & ~63;
-          else
-            /* XXX: round otherwise to prevent color fringes in LCD mode */
-            dist = ( dist + 32 ) & ~63;
-        }
-      }
-    }
-
-    if ( sign )
-      dist = -dist;
-
-    return dist;
-  }
-
-#endif /* !FT_CONFIG_CHESTER_SERIF */
-
-
-  /* align one stem edge relative to the previous stem edge */
-  static void
-  ah_align_linked_edge( AH_Hinter  hinter,
-                        AH_Edge    base_edge,
-                        AH_Edge    stem_edge,
-                        int        vertical )
-  {
-    FT_Pos  dist = stem_edge->opos - base_edge->opos;
-
-#ifdef FT_CONFIG_CHESTER_SERIF
-
-    FT_Pos  fitted_width = ah_compute_stem_width( hinter,
-                                                  vertical,
-                                                  dist,
-                                                  base_edge->flags,
-                                                  stem_edge->flags );
-
-
-    stem_edge->pos = base_edge->pos + fitted_width;
-
-#else
-
-    stem_edge->pos = base_edge->pos +
-                     ah_compute_stem_width( hinter, vertical, dist );
-
-#endif
-
-  }
-
-
-  static void
-  ah_align_serif_edge( AH_Hinter  hinter,
-                       AH_Edge    base,
-                       AH_Edge    serif,
-                       int        vertical )
-  {
-    FT_Pos  dist;
-    FT_Pos  sign = 1;
-
-    FT_UNUSED( hinter );
-    FT_UNUSED( vertical );
-
-
-    dist = serif->opos - base->opos;
-    if ( dist < 0 )
-    {
-      dist = -dist;
-      sign = -1;
-    }
-
-#if 0
-    /* do not touch serifs widths! */
-    if ( base->flags & AH_EDGE_DONE )
-    {
-      if ( dist >= 64 )
-        dist = ( dist + 8 ) & ~63;
-
-      else if ( dist <= 32 && !vertical )
-        dist = ( dist + 33 ) >> 1;
-
-      else
-        dist = 0;
-    }
-#endif
-
-    serif->pos = base->pos + sign * dist;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****       E D G E   H I N T I N G                                   ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( void )
-  ah_hinter_hint_edges( AH_Hinter  hinter )
-  {
-    AH_Edge     edges;
-    AH_Edge     edge_limit;
-    AH_Outline  outline = hinter->glyph;
-    FT_Int      dimension;
-    FT_Int      n_edges;
-
-
-    edges      = outline->horz_edges;
-    edge_limit = edges + outline->num_hedges;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Edge  edge;
-      AH_Edge  anchor = 0;
-      int      has_serifs = 0;
-
-
-      if ( !hinter->do_horz_hints && !dimension )
-        goto Next_Dimension;
-
-      if ( !hinter->do_vert_hints && dimension )
-        goto Next_Dimension;
-
-      /* we begin by aligning all stems relative to the blue zone */
-      /* if needed -- that's only for horizontal edges            */
-      if ( dimension )
-      {
-        for ( edge = edges; edge < edge_limit; edge++ )
-        {
-          FT_Pos*      blue;
-          AH_EdgeRec  *edge1, *edge2;
-
-
-          if ( edge->flags & AH_EDGE_DONE )
-            continue;
-
-          blue  = edge->blue_edge;
-          edge1 = 0;
-          edge2 = edge->link;
-
-          if ( blue )
-          {
-            edge1 = edge;
-          }
-          else if ( edge2 && edge2->blue_edge )
-          {
-            blue  = edge2->blue_edge;
-            edge1 = edge2;
-            edge2 = edge;
-          }
-
-          if ( !edge1 )
-            continue;
-
-          edge1->pos    = blue[0];
-          edge1->flags |= AH_EDGE_DONE;
-
-          if ( edge2 && !edge2->blue_edge )
-          {
-            ah_align_linked_edge( hinter, edge1, edge2, dimension );
-            edge2->flags |= AH_EDGE_DONE;
-          }
-
-          if ( !anchor )
-            anchor = edge;
-        }
-      }
-
-      /* now we will align all stem edges, trying to maintain the */
-      /* relative order of stems in the glyph                     */
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        AH_EdgeRec*  edge2;
-
-
-        if ( edge->flags & AH_EDGE_DONE )
-          continue;
-
-        /* skip all non-stem edges */
-        edge2 = edge->link;
-        if ( !edge2 )
-        {
-          has_serifs++;
-          continue;
-        }
-
-        /* now align the stem */
-
-        /* this should not happen, but it's better to be safe */
-        if ( edge2->blue_edge || edge2 < edge )
-        {
-          ah_align_linked_edge( hinter, edge2, edge, dimension );
-          edge->flags |= AH_EDGE_DONE;
-          continue;
-        }
-
-        if ( !anchor )
-        {
-
-#ifdef FT_CONFIG_CHESTER_STEM
-
-          FT_Pos  org_len, org_center, cur_len;
-          FT_Pos  cur_pos1, error1, error2, u_off, d_off;
-
-
-          org_len = edge2->opos - edge->opos;
-          cur_len = ah_compute_stem_width( hinter, dimension, org_len,
-                                           edge->flags, edge2->flags );
-
-          if ( cur_len <= 64 )
-            u_off = d_off = 32;
-          else
-          {
-            u_off = 38;
-            d_off = 26;
-          }
-
-          if ( cur_len < 96 )
-          {
-            org_center = edge->opos + ( org_len >> 1 );
-
-            cur_pos1   = FT_PIX_ROUND( org_center );
-
-            error1 = org_center - ( cur_pos1 - u_off );
-            if ( error1 < 0 )
-              error1 = -error1;
-
-            error2 = org_center - ( cur_pos1 + d_off );
-            if ( error2 < 0 )
-              error2 = -error2;
-
-            if ( error1 < error2 )
-              cur_pos1 -= u_off;
-            else
-              cur_pos1 += d_off;
-
-            edge->pos  = cur_pos1 - cur_len / 2;
-            edge2->pos = cur_pos1 + cur_len / 2;
-
-          }
-          else
-            edge->pos = FT_PIX_ROUND( edge->opos );
-
-          anchor = edge;
-
-          edge->flags |= AH_EDGE_DONE;
-
-          ah_align_linked_edge( hinter, edge, edge2, dimension );
-
-#else /* !FT_CONFIG_CHESTER_STEM */
-
-          edge->pos = FT_PIX_ROUND( edge->opos );
-          anchor    = edge;
-
-          edge->flags |= AH_EDGE_DONE;
-
-          ah_align_linked_edge( hinter, edge, edge2, dimension );
-
-#endif /* !FT_CONFIG_CHESTER_STEM */
-
-        }
-        else
-        {
-          FT_Pos  org_pos, org_len, org_center, cur_len;
-          FT_Pos  cur_pos1, cur_pos2, delta1, delta2;
-
-
-          org_pos    = anchor->pos + ( edge->opos - anchor->opos );
-          org_len    = edge2->opos - edge->opos;
-          org_center = org_pos + ( org_len >> 1 );
-
-#ifdef FT_CONFIG_CHESTER_SERIF
-
-          cur_len = ah_compute_stem_width( hinter, dimension, org_len,
-                                           edge->flags, edge2->flags  );
-
-
-#else  /* !FT_CONFIG_CHESTER_SERIF */
-
-          cur_len = ah_compute_stem_width( hinter, dimension, org_len );
-
-#endif /* !FT_CONFIG_CHESTER_SERIF */
-
-#ifdef FT_CONFIG_CHESTER_STEM
-
-          if ( cur_len < 96 )
-          {
-            FT_Pos  u_off, d_off;
-
-
-            cur_pos1 = FT_PIX_ROUND( org_center );
-
-            if (cur_len <= 64 )
-              u_off = d_off = 32;
-            else
-            {
-              u_off = 38;
-              d_off = 26;
-            }
-
-            delta1 = org_center - ( cur_pos1 - u_off );
-            if ( delta1 < 0 )
-              delta1 = -delta1;
-
-            delta2 = org_center - ( cur_pos1 + d_off );
-            if ( delta2 < 0 )
-              delta2 = -delta2;
-
-            if ( delta1 < delta2 )
-              cur_pos1 -= u_off;
-            else
-              cur_pos1 += d_off;
-
-            edge->pos  = cur_pos1 - cur_len / 2;
-            edge2->pos = cur_pos1 + cur_len / 2;
-          }
-          else
-          {
-            org_pos    = anchor->pos + ( edge->opos - anchor->opos );
-            org_len    = edge2->opos - edge->opos;
-            org_center = org_pos + ( org_len >> 1 );
-
-            cur_len    = ah_compute_stem_width( hinter, dimension, org_len,
-                                                edge->flags, edge2->flags );
-
-            cur_pos1   = FT_PIX_ROUND( org_pos );
-            delta1     = ( cur_pos1 + ( cur_len >> 1 ) - org_center );
-            if ( delta1 < 0 )
-              delta1 = -delta1;
-
-            cur_pos2   = FT_PIX_ROUND( org_pos + org_len ) - cur_len;
-            delta2     = ( cur_pos2 + ( cur_len >> 1 ) - org_center );
-            if ( delta2 < 0 )
-              delta2 = -delta2;
-
-            edge->pos  = ( delta1 < delta2 ) ? cur_pos1 : cur_pos2;
-            edge2->pos = edge->pos + cur_len;
-          }
-
-#else /* !FT_CONFIG_CHESTER_STEM */
-
-          cur_pos1   = FT_PIX_ROUND( org_pos );
-          delta1     = ( cur_pos1 + ( cur_len >> 1 ) - org_center );
-          if ( delta1 < 0 )
-            delta1 = -delta1;
-
-          cur_pos2   = FT_PIX_ROUND( org_pos + org_len ) - cur_len;
-          delta2     = ( cur_pos2 + ( cur_len >> 1 ) - org_center );
-          if ( delta2 < 0 )
-            delta2 = -delta2;
-
-          edge->pos  = ( delta1 <= delta2 ) ? cur_pos1 : cur_pos2;
-          edge2->pos = edge->pos + cur_len;
-
-#endif /* !FT_CONFIG_CHESTER_STEM */
-
-          edge->flags  |= AH_EDGE_DONE;
-          edge2->flags |= AH_EDGE_DONE;
-
-          if ( edge > edges && edge->pos < edge[-1].pos )
-            edge->pos = edge[-1].pos;
-        }
-      }
-
-      /* make sure that lowercase m's maintain their symmetry */
-
-      /* In general, lowercase m's have six vertical edges if they are sans */
-      /* serif, or twelve if they are avec serif.  This implementation is   */
-      /* based on that assumption, and seems to work very well with most    */
-      /* faces.  However, if for a certain face this assumption is not      */
-      /* true, the m is just rendered like before.  In addition, any stem   */
-      /* correction will only be applied to symmetrical glyphs (even if the */
-      /* glyph is not an m), so the potential for unwanted distortion is    */
-      /* relatively low.                                                    */
-
-      /* We don't handle horizontal edges since we can't easily assure that */
-      /* the third (lowest) stem aligns with the base line; it might end up */
-      /* one pixel higher or lower.                                         */
-
-      n_edges = (FT_Int)( edge_limit - edges );
-      if ( !dimension && ( n_edges == 6 || n_edges == 12 ) )
-      {
-        AH_EdgeRec  *edge1, *edge2, *edge3;
-        FT_Pos       dist1, dist2, span, delta;
-
-
-        if ( n_edges == 6 )
-        {
-          edge1 = edges;
-          edge2 = edges + 2;
-          edge3 = edges + 4;
-        }
-        else
-        {
-          edge1 = edges + 1;
-          edge2 = edges + 5;
-          edge3 = edges + 9;
-        }
-
-        dist1 = edge2->opos - edge1->opos;
-        dist2 = edge3->opos - edge2->opos;
-
-        span = dist1 - dist2;
-        if ( span < 0 )
-          span = -span;
-
-        if ( span < 8 )
-        {
-          delta = edge3->pos - ( 2 * edge2->pos - edge1->pos );
-          edge3->pos -= delta;
-          if ( edge3->link )
-            edge3->link->pos -= delta;
-
-          /* move the serifs along with the stem */
-          if ( n_edges == 12 )
-          {
-            ( edges + 8 )->pos -= delta;
-            ( edges + 11 )->pos -= delta;
-          }
-
-          edge3->flags |= AH_EDGE_DONE;
-          if ( edge3->link )
-            edge3->link->flags |= AH_EDGE_DONE;
-        }
-      }
-
-      if ( !has_serifs )
-        goto Next_Dimension;
-
-      /* now hint the remaining edges (serifs and single) in order */
-      /* to complete our processing                                */
-      for ( edge = edges; edge < edge_limit; edge++ )
-      {
-        if ( edge->flags & AH_EDGE_DONE )
-          continue;
-
-        if ( edge->serif )
-          ah_align_serif_edge( hinter, edge->serif, edge, dimension );
-        else if ( !anchor )
-        {
-          edge->pos = FT_PIX_ROUND( edge->opos );
-          anchor    = edge;
-        }
-        else
-          edge->pos = anchor->pos +
-                      FT_PIX_ROUND( edge->opos - anchor->opos );
-
-        edge->flags |= AH_EDGE_DONE;
-
-        if ( edge > edges && edge->pos < edge[-1].pos )
-          edge->pos = edge[-1].pos;
-
-        if ( edge + 1 < edge_limit        &&
-             edge[1].flags & AH_EDGE_DONE &&
-             edge->pos > edge[1].pos      )
-          edge->pos = edge[1].pos;
-      }
-
-    Next_Dimension:
-      edges      = outline->vert_edges;
-      edge_limit = edges + outline->num_vedges;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****       P O I N T   H I N T I N G                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  ah_hinter_align_edge_points( AH_Hinter  hinter )
-  {
-    AH_Outline  outline = hinter->glyph;
-    AH_Edge     edges;
-    AH_Edge     edge_limit;
-    FT_Int      dimension;
-
-
-    edges      = outline->horz_edges;
-    edge_limit = edges + outline->num_hedges;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Edge  edge;
-
-
-      edge = edges;
-      for ( ; edge < edge_limit; edge++ )
-      {
-        /* move the points of each segment     */
-        /* in each edge to the edge's position */
-        AH_Segment  seg = edge->first;
-
-
-        do
-        {
-          AH_Point  point = seg->first;
-
-
-          for (;;)
-          {
-            if ( dimension )
-            {
-              point->y      = edge->pos;
-              point->flags |= AH_FLAG_TOUCH_Y;
-            }
-            else
-            {
-              point->x      = edge->pos;
-              point->flags |= AH_FLAG_TOUCH_X;
-            }
-
-            if ( point == seg->last )
-              break;
-
-            point = point->next;
-          }
-
-          seg = seg->edge_next;
-
-        } while ( seg != edge->first );
-      }
-
-      edges      = outline->vert_edges;
-      edge_limit = edges + outline->num_vedges;
-    }
-  }
-
-
-  /* hint the strong points -- this is equivalent to the TrueType `IP' */
-  /* hinting instruction                                               */
-  static void
-  ah_hinter_align_strong_points( AH_Hinter  hinter )
-  {
-    AH_Outline  outline = hinter->glyph;
-    FT_Int      dimension;
-    AH_Edge     edges;
-    AH_Edge     edge_limit;
-    AH_Point    points;
-    AH_Point    point_limit;
-    AH_Flags    touch_flag;
-
-
-    points      = outline->points;
-    point_limit = points + outline->num_points;
-
-    edges       = outline->horz_edges;
-    edge_limit  = edges + outline->num_hedges;
-    touch_flag  = AH_FLAG_TOUCH_Y;
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Point  point;
-      AH_Edge   edge;
-
-
-      if ( edges < edge_limit )
-        for ( point = points; point < point_limit; point++ )
-        {
-          FT_Pos  u, ou, fu;  /* point position */
-          FT_Pos  delta;
-
-
-          if ( point->flags & touch_flag )
-            continue;
-
-#ifndef AH_OPTION_NO_WEAK_INTERPOLATION
-          /* if this point is candidate to weak interpolation, we will  */
-          /* interpolate it after all strong points have been processed */
-          if (  ( point->flags & AH_FLAG_WEAK_INTERPOLATION ) &&
-               !( point->flags & AH_FLAG_INFLECTION )         )
-            continue;
-#endif
-
-          if ( dimension )
-          {
-            u  = point->fy;
-            ou = point->oy;
-          }
-          else
-          {
-            u  = point->fx;
-            ou = point->ox;
-          }
-
-          fu = u;
-
-          /* is the point before the first edge? */
-          edge  = edges;
-          delta = edge->fpos - u;
-          if ( delta >= 0 )
-          {
-            u = edge->pos - ( edge->opos - ou );
-            goto Store_Point;
-          }
-
-          /* is the point after the last edge? */
-          edge  = edge_limit - 1;
-          delta = u - edge->fpos;
-          if ( delta >= 0 )
-          {
-            u = edge->pos + ( ou - edge->opos );
-            goto Store_Point;
-          }
-
-#if 1
-          {
-            FT_UInt  min, max, mid;
-            FT_Pos   fpos;
-
-
-            /* find enclosing edges */
-            min = 0;
-            max = (FT_UInt)( edge_limit - edges );
-
-            while ( min < max )
-            {
-              mid  = ( max + min ) >> 1;
-              edge = edges + mid;
-              fpos = edge->fpos;
-
-              if ( u < fpos )
-                max = mid;
-              else if ( u > fpos )
-                min = mid + 1;
-              else
-              {
-                /* we are on the edge */
-                u = edge->pos;
-                goto Store_Point;
-              }
-            }
-
-            {
-              AH_Edge  before = edges + min - 1;
-              AH_Edge  after  = edges + min + 0;
-
-
-              /* assert( before && after && before != after ) */
-              if ( before->scale == 0 )
-                before->scale = FT_DivFix( after->pos - before->pos,
-                                           after->fpos - before->fpos );
-
-              u = before->pos + FT_MulFix( fu - before->fpos,
-                                           before->scale );
-            }
-          }
-
-#else /* !0 */
-
-          /* otherwise, interpolate the point in between */
-          {
-            AH_Edge  before = 0;
-            AH_Edge  after  = 0;
-
-
-            for ( edge = edges; edge < edge_limit; edge++ )
-            {
-              if ( u == edge->fpos )
-              {
-                u = edge->pos;
-                goto Store_Point;
-              }
-              if ( u < edge->fpos )
-                break;
-              before = edge;
-            }
-
-            for ( edge = edge_limit - 1; edge >= edges; edge-- )
-            {
-              if ( u == edge->fpos )
-              {
-                u = edge->pos;
-                goto Store_Point;
-              }
-              if ( u > edge->fpos )
-                break;
-              after = edge;
-            }
-
-            if ( before->scale == 0 )
-              before->scale = FT_DivFix( after->pos - before->pos,
-                                        after->fpos - before->fpos );
-
-            u = before->pos + FT_MulFix( fu - before->fpos,
-                                        before->scale );
-          }
-
-#endif /* !0 */
-
-        Store_Point:
-
-          /* save the point position */
-          if ( dimension )
-            point->y = u;
-          else
-            point->x = u;
-
-          point->flags |= touch_flag;
-        }
-
-      edges      = outline->vert_edges;
-      edge_limit = edges + outline->num_vedges;
-      touch_flag = AH_FLAG_TOUCH_X;
-    }
-  }
-
-
-#ifndef AH_OPTION_NO_WEAK_INTERPOLATION
-
-  static void
-  ah_iup_shift( AH_Point  p1,
-                AH_Point  p2,
-                AH_Point  ref )
-  {
-    AH_Point  p;
-    FT_Pos    delta = ref->u - ref->v;
-
-
-    for ( p = p1; p < ref; p++ )
-      p->u = p->v + delta;
-
-    for ( p = ref + 1; p <= p2; p++ )
-      p->u = p->v + delta;
-  }
-
-
-  static void
-  ah_iup_interp( AH_Point  p1,
-                 AH_Point  p2,
-                 AH_Point  ref1,
-                 AH_Point  ref2 )
-  {
-    AH_Point  p;
-    FT_Pos    u;
-    FT_Pos    v1 = ref1->v;
-    FT_Pos    v2 = ref2->v;
-    FT_Pos    d1 = ref1->u - v1;
-    FT_Pos    d2 = ref2->u - v2;
-
-
-    if ( p1 > p2 )
-      return;
-
-    if ( v1 == v2 )
-    {
-      for ( p = p1; p <= p2; p++ )
-      {
-        u = p->v;
-
-        if ( u <= v1 )
-          u += d1;
-        else
-          u += d2;
-
-        p->u = u;
-      }
-      return;
-    }
-
-    if ( v1 < v2 )
-    {
-      for ( p = p1; p <= p2; p++ )
-      {
-        u = p->v;
-
-        if ( u <= v1 )
-          u += d1;
-        else if ( u >= v2 )
-          u += d2;
-        else
-          u = ref1->u + FT_MulDiv( u - v1, ref2->u - ref1->u, v2 - v1 );
-
-        p->u = u;
-      }
-    }
-    else
-    {
-      for ( p = p1; p <= p2; p++ )
-      {
-        u = p->v;
-
-        if ( u <= v2 )
-          u += d2;
-        else if ( u >= v1 )
-          u += d1;
-        else
-          u = ref1->u + FT_MulDiv( u - v1, ref2->u - ref1->u, v2 - v1 );
-
-        p->u = u;
-      }
-    }
-  }
-
-
-  /* interpolate weak points -- this is equivalent to the TrueType `IUP' */
-  /* hinting instruction                                                 */
-  static void
-  ah_hinter_align_weak_points( AH_Hinter  hinter )
-  {
-    AH_Outline  outline = hinter->glyph;
-    FT_Int      dimension;
-    AH_Point    points;
-    AH_Point    point_limit;
-    AH_Point*   contour_limit;
-    AH_Flags    touch_flag;
-
-
-    points      = outline->points;
-    point_limit = points + outline->num_points;
-
-    /* PASS 1: Move segment points to edge positions */
-
-    touch_flag = AH_FLAG_TOUCH_Y;
-
-    contour_limit = outline->contours + outline->num_contours;
-
-    ah_setup_uv( outline, AH_UV_OY );
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      AH_Point   point;
-      AH_Point   end_point;
-      AH_Point   first_point;
-      AH_Point*  contour;
-
-
-      point   = points;
-      contour = outline->contours;
-
-      for ( ; contour < contour_limit; contour++ )
-      {
-        point       = *contour;
-        end_point   = point->prev;
-        first_point = point;
-
-        while ( point <= end_point && !( point->flags & touch_flag ) )
-          point++;
-
-        if ( point <= end_point )
-        {
-          AH_Point  first_touched = point;
-          AH_Point  cur_touched   = point;
-
-
-          point++;
-          while ( point <= end_point )
-          {
-            if ( point->flags & touch_flag )
-            {
-              /* we found two successive touched points; we interpolate */
-              /* all contour points between them                        */
-              ah_iup_interp( cur_touched + 1, point - 1,
-                             cur_touched, point );
-              cur_touched = point;
-            }
-            point++;
-          }
-
-          if ( cur_touched == first_touched )
-          {
-            /* this is a special case: only one point was touched in the */
-            /* contour; we thus simply shift the whole contour           */
-            ah_iup_shift( first_point, end_point, cur_touched );
-          }
-          else
-          {
-            /* now interpolate after the last touched point to the end */
-            /* of the contour                                          */
-            ah_iup_interp( cur_touched + 1, end_point,
-                           cur_touched, first_touched );
-
-            /* if the first contour point isn't touched, interpolate */
-            /* from the contour start to the first touched point     */
-            if ( first_touched > points )
-              ah_iup_interp( first_point, first_touched - 1,
-                             cur_touched, first_touched );
-          }
-        }
-      }
-
-      /* now save the interpolated values back to x/y */
-      if ( dimension )
-      {
-        for ( point = points; point < point_limit; point++ )
-          point->y = point->u;
-
-        touch_flag = AH_FLAG_TOUCH_X;
-        ah_setup_uv( outline, AH_UV_OX );
-      }
-      else
-      {
-        for ( point = points; point < point_limit; point++ )
-          point->x = point->u;
-
-        break;  /* exit loop */
-      }
-    }
-  }
-
-#endif /* !AH_OPTION_NO_WEAK_INTERPOLATION */
-
-
-  FT_LOCAL_DEF( void )
-  ah_hinter_align_points( AH_Hinter  hinter )
-  {
-    ah_hinter_align_edge_points( hinter );
-
-#ifndef AH_OPTION_NO_STRONG_INTERPOLATION
-    ah_hinter_align_strong_points( hinter );
-#endif
-
-#ifndef AH_OPTION_NO_WEAK_INTERPOLATION
-    ah_hinter_align_weak_points( hinter );
-#endif
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****       H I N T E R   O B J E C T   M E T H O D S                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* scale and fit the global metrics */
-  static void
-  ah_hinter_scale_globals( AH_Hinter  hinter,
-                           FT_Fixed   x_scale,
-                           FT_Fixed   y_scale )
-  {
-    FT_Int           n;
-    AH_Face_Globals  globals = hinter->globals;
-    AH_Globals       design  = &globals->design;
-    AH_Globals       scaled  = &globals->scaled;
-
-
-    /* copy content */
-    *scaled = *design;
-
-    /* scale the standard widths & heights */
-    for ( n = 0; n < design->num_widths; n++ )
-      scaled->widths[n] = FT_MulFix( design->widths[n], x_scale );
-
-    for ( n = 0; n < design->num_heights; n++ )
-      scaled->heights[n] = FT_MulFix( design->heights[n], y_scale );
-
-    scaled->stds[0] = ( design->num_widths  > 0 ) ? scaled->widths[0]  : 32000;
-    scaled->stds[1] = ( design->num_heights > 0 ) ? scaled->heights[0] : 32000;
-
-    /* scale the blue zones */
-    for ( n = 0; n < AH_BLUE_MAX; n++ )
-    {
-      FT_Pos  delta, delta2;
-
-
-      delta = design->blue_shoots[n] - design->blue_refs[n];
-      delta2 = delta;
-      if ( delta < 0 )
-        delta2 = -delta2;
-      delta2 = FT_MulFix( delta2, y_scale );
-
-      if ( delta2 < 32 )
-        delta2 = 0;
-      else if ( delta2 < 64 )
-        delta2 = 32 + ( ( ( delta2 - 32 ) + 16 ) & ~31 );
-      else
-        delta2 = FT_PIX_ROUND( delta2 );
-
-      if ( delta < 0 )
-        delta2 = -delta2;
-
-      scaled->blue_refs[n] =
-        FT_PIX_ROUND( FT_MulFix( design->blue_refs[n], y_scale ) );
-
-      scaled->blue_shoots[n] = scaled->blue_refs[n] + delta2;
-    }
-
-    globals->x_scale = x_scale;
-    globals->y_scale = y_scale;
-  }
-
-
-  static void
-  ah_hinter_align( AH_Hinter  hinter )
-  {
-    ah_hinter_align_edge_points( hinter );
-    ah_hinter_align_points( hinter );
-  }
-
-
-  /* finalize a hinter object */
-  FT_LOCAL_DEF( void )
-  ah_hinter_done( AH_Hinter  hinter )
-  {
-    if ( hinter )
-    {
-      FT_Memory  memory = hinter->memory;
-
-
-      ah_loader_done( hinter->loader );
-      ah_outline_done( hinter->glyph );
-
-      /* note: the `globals' pointer is _not_ owned by the hinter */
-      /*       but by the current face object; we don't need to   */
-      /*       release it                                         */
-      hinter->globals = 0;
-      hinter->face    = 0;
-
-      FT_FREE( hinter );
-    }
-  }
-
-
-  /* create a new empty hinter object */
-  FT_LOCAL_DEF( FT_Error )
-  ah_hinter_new( FT_Library  library,
-                 AH_Hinter  *ahinter )
-  {
-    AH_Hinter  hinter = 0;
-    FT_Memory  memory = library->memory;
-    FT_Error   error;
-
-
-    *ahinter = 0;
-
-    /* allocate object */
-    if ( FT_NEW( hinter ) )
-      goto Exit;
-
-    hinter->memory = memory;
-    hinter->flags  = 0;
-
-    /* allocate outline and loader */
-    error = ah_outline_new( memory, &hinter->glyph )  ||
-            ah_loader_new ( memory, &hinter->loader ) ||
-            ah_loader_create_extra( hinter->loader );
-    if ( error )
-      goto Exit;
-
-    *ahinter = hinter;
-
-  Exit:
-    if ( error )
-      ah_hinter_done( hinter );
-
-    return error;
-  }
-
-
-  /* create a face's autohint globals */
-  FT_LOCAL_DEF( FT_Error )
-  ah_hinter_new_face_globals( AH_Hinter   hinter,
-                              FT_Face     face,
-                              AH_Globals  globals )
-  {
-    FT_Error         error;
-    FT_Memory        memory = hinter->memory;
-    AH_Face_Globals  face_globals;
-
-
-    if ( FT_NEW( face_globals ) )
-      goto Exit;
-
-    hinter->face    = face;
-    hinter->globals = face_globals;
-
-    if ( globals )
-      face_globals->design = *globals;
-    else
-      ah_hinter_compute_globals( hinter );
-
-    face->autohint.data      = face_globals;
-    face->autohint.finalizer = (FT_Generic_Finalizer)
-                                 ah_hinter_done_face_globals;
-    face_globals->face       = face;
-
-  Exit:
-    return error;
-  }
-
-
-  /* discard a face's autohint globals */
-  FT_LOCAL_DEF( void )
-  ah_hinter_done_face_globals( AH_Face_Globals  globals )
-  {
-    FT_Face    face   = globals->face;
-    FT_Memory  memory = face->memory;
-
-
-    FT_FREE( globals );
-  }
-
-
-  static FT_Error
-  ah_hinter_load( AH_Hinter  hinter,
-                  FT_UInt    glyph_index,
-                  FT_Int32   load_flags,
-                  FT_UInt    depth )
-  {
-    FT_Face           face     = hinter->face;
-    FT_GlyphSlot      slot     = face->glyph;
-    FT_Slot_Internal  internal = slot->internal;
-    FT_Fixed          x_scale  = hinter->globals->x_scale;
-    FT_Fixed          y_scale  = hinter->globals->y_scale;
-    FT_Error          error;
-    AH_Outline        outline  = hinter->glyph;
-    AH_Loader         gloader  = hinter->loader;
-
-
-    /* load the glyph */
-    error = FT_Load_Glyph( face, glyph_index, load_flags );
-    if ( error )
-      goto Exit;
-
-    /* Set `hinter->transformed' after loading with FT_LOAD_NO_RECURSE. */
-    hinter->transformed = internal->glyph_transformed;
-
-    if ( hinter->transformed )
-    {
-      FT_Matrix  imatrix;
-
-
-      imatrix              = internal->glyph_matrix;
-      hinter->trans_delta  = internal->glyph_delta;
-      hinter->trans_matrix = imatrix;
-
-      FT_Matrix_Invert( &imatrix );
-      FT_Vector_Transform( &hinter->trans_delta, &imatrix );
-    }
-
-    /* set linear horizontal metrics */
-    slot->linearHoriAdvance = slot->metrics.horiAdvance;
-    slot->linearVertAdvance = slot->metrics.vertAdvance;
-
-    switch ( slot->format )
-    {
-    case FT_GLYPH_FORMAT_OUTLINE:
-
-      /* translate glyph outline if we need to */
-      if ( hinter->transformed )
-      {
-        FT_UInt     n     = slot->outline.n_points;
-        FT_Vector*  point = slot->outline.points;
-
-
-        for ( ; n > 0; point++, n-- )
-        {
-          point->x += hinter->trans_delta.x;
-          point->y += hinter->trans_delta.y;
-        }
-      }
-
-      /* copy the outline points in the loader's current               */
-      /* extra points which is used to keep original glyph coordinates */
-      error = ah_loader_check_points( gloader, slot->outline.n_points + 4,
-                                      slot->outline.n_contours );
-      if ( error )
-        goto Exit;
-
-      FT_ARRAY_COPY( gloader->current.extra_points, slot->outline.points,
-                     slot->outline.n_points );
-
-      FT_ARRAY_COPY( gloader->current.outline.contours, slot->outline.contours,
-                     slot->outline.n_contours );
-
-      FT_ARRAY_COPY( gloader->current.outline.tags, slot->outline.tags,
-                     slot->outline.n_points );
-
-      gloader->current.outline.n_points   = slot->outline.n_points;
-      gloader->current.outline.n_contours = slot->outline.n_contours;
-
-      /* compute original horizontal phantom points, ignoring vertical ones */
-      hinter->pp1.x = 0;
-      hinter->pp1.y = 0;
-      hinter->pp2.x = FT_MulFix( slot->metrics.horiAdvance, x_scale );
-      hinter->pp2.y = 0;
-
-      /* be sure to check for spacing glyphs */
-      if ( slot->outline.n_points == 0 )
-        goto Hint_Metrics;
-
-      /* now load the slot image into the auto-outline and run the */
-      /* automatic hinting process                                 */
-      error = ah_outline_load( outline, x_scale, y_scale, face );
-      if ( error )
-        goto Exit;
-
-      /* perform feature detection */
-      ah_outline_detect_features( outline );
-
-      if ( hinter->do_vert_hints )
-      {
-        ah_outline_compute_blue_edges( outline, hinter->globals );
-        ah_outline_scale_blue_edges( outline, hinter->globals );
-      }
-
-      /* perform alignment control */
-      ah_hinter_hint_edges( hinter );
-      ah_hinter_align( hinter );
-
-      /* now save the current outline into the loader's current table */
-      ah_outline_save( outline, gloader );
-
-      /* we now need to hint the metrics according to the change in */
-      /* width/positioning that occured during the hinting process  */
-      if ( outline->num_vedges > 0 )
-      {
-        FT_Pos   old_advance, old_rsb, old_lsb, new_lsb, pp1x_uh, pp2x_uh;
-        AH_Edge  edge1 = outline->vert_edges;     /* leftmost edge  */
-        AH_Edge  edge2 = edge1 +
-                         outline->num_vedges - 1; /* rightmost edge */
-
-
-        old_advance = hinter->pp2.x;
-        old_rsb     = old_advance - edge2->opos;
-        old_lsb     = edge1->opos;
-        new_lsb     = edge1->pos;
-
-        /* remember unhinted values to later account for rounding errors */
-
-        pp1x_uh = new_lsb    - old_lsb;
-        pp2x_uh = edge2->pos + old_rsb;
-
-        /* prefer too much space over too little space for very small sizes */
-
-        if ( old_lsb < 24 )
-          pp1x_uh -= 5;
-
-        if ( old_rsb < 24 )
-          pp2x_uh += 5;
-
-        hinter->pp1.x = FT_PIX_ROUND( pp1x_uh );
-        hinter->pp2.x = FT_PIX_ROUND( pp2x_uh );
-
-        slot->lsb_delta = hinter->pp1.x - pp1x_uh;
-        slot->rsb_delta = hinter->pp2.x - pp2x_uh;
-
-#if 0
-        /* try to fix certain bad advance computations */
-        if ( hinter->pp2.x + hinter->pp1.x == edge2->pos && old_rsb > 4 )
-          hinter->pp2.x += 64;
-#endif
-      }
-
-      else
-      {
-        hinter->pp1.x = ( hinter->pp1.x + 32 ) & -64;
-        hinter->pp2.x = ( hinter->pp2.x + 32 ) & -64;
-      }
-
-      /* good, we simply add the glyph to our loader's base */
-      ah_loader_add( gloader );
-      break;
-
-    case FT_GLYPH_FORMAT_COMPOSITE:
-      {
-        FT_UInt      nn, num_subglyphs = slot->num_subglyphs;
-        FT_UInt      num_base_subgs, start_point;
-        FT_SubGlyph  subglyph;
-
-
-        start_point = gloader->base.outline.n_points;
-
-        /* first of all, copy the subglyph descriptors in the glyph loader */
-        error = ah_loader_check_subglyphs( gloader, num_subglyphs );
-        if ( error )
-          goto Exit;
-
-        FT_ARRAY_COPY( gloader->current.subglyphs, slot->subglyphs,
-                       num_subglyphs );
-
-        gloader->current.num_subglyphs = num_subglyphs;
-        num_base_subgs = gloader->base.num_subglyphs;
-
-        /* now, read each subglyph independently */
-        for ( nn = 0; nn < num_subglyphs; nn++ )
-        {
-          FT_Vector  pp1, pp2;
-          FT_Pos     x, y;
-          FT_UInt    num_points, num_new_points, num_base_points;
-
-
-          /* gloader.current.subglyphs can change during glyph loading due */
-          /* to re-allocation -- we must recompute the current subglyph on */
-          /* each iteration                                                */
-          subglyph = gloader->base.subglyphs + num_base_subgs + nn;
-
-          pp1 = hinter->pp1;
-          pp2 = hinter->pp2;
-
-          num_base_points = gloader->base.outline.n_points;
-
-          error = ah_hinter_load( hinter, subglyph->index,
-                                  load_flags, depth + 1 );
-          if ( error )
-            goto Exit;
-
-          /* recompute subglyph pointer */
-          subglyph = gloader->base.subglyphs + num_base_subgs + nn;
-
-          if ( subglyph->flags & FT_SUBGLYPH_FLAG_USE_MY_METRICS )
-          {
-            pp1 = hinter->pp1;
-            pp2 = hinter->pp2;
-          }
-          else
-          {
-            hinter->pp1 = pp1;
-            hinter->pp2 = pp2;
-          }
-
-          num_points     = gloader->base.outline.n_points;
-          num_new_points = num_points - num_base_points;
-
-          /* now perform the transform required for this subglyph */
-
-          if ( subglyph->flags & ( FT_SUBGLYPH_FLAG_SCALE    |
-                                   FT_SUBGLYPH_FLAG_XY_SCALE |
-                                   FT_SUBGLYPH_FLAG_2X2      ) )
-          {
-            FT_Vector*  cur   = gloader->base.outline.points +
-                                num_base_points;
-            FT_Vector*  org   = gloader->base.extra_points +
-                                num_base_points;
-            FT_Vector*  limit = cur + num_new_points;
-
-
-            for ( ; cur < limit; cur++, org++ )
-            {
-              FT_Vector_Transform( cur, &subglyph->transform );
-              FT_Vector_Transform( org, &subglyph->transform );
-            }
-          }
-
-          /* apply offset */
-
-          if ( !( subglyph->flags & FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES ) )
-          {
-            FT_Int      k = subglyph->arg1;
-            FT_UInt     l = subglyph->arg2;
-            FT_Vector*  p1;
-            FT_Vector*  p2;
-
-
-            if ( start_point + k >= num_base_points         ||
-                               l >= (FT_UInt)num_new_points )
-            {
-              error = AH_Err_Invalid_Composite;
-              goto Exit;
-            }
-
-            l += num_base_points;
-
-            /* for now, only use the current point coordinates;    */
-            /* we may consider another approach in the near future */
-            p1 = gloader->base.outline.points + start_point + k;
-            p2 = gloader->base.outline.points + start_point + l;
-
-            x = p1->x - p2->x;
-            y = p1->y - p2->y;
-          }
-          else
-          {
-            x = FT_MulFix( subglyph->arg1, x_scale );
-            y = FT_MulFix( subglyph->arg2, y_scale );
-
-            x = FT_PIX_ROUND(x);
-            y = FT_PIX_ROUND(y);
-          }
-
-          {
-            FT_Outline  dummy = gloader->base.outline;
-
-
-            dummy.points  += num_base_points;
-            dummy.n_points = (short)num_new_points;
-
-            FT_Outline_Translate( &dummy, x, y );
-          }
-        }
-      }
-      break;
-
-    default:
-      /* we don't support other formats (yet?) */
-      error = AH_Err_Unimplemented_Feature;
-    }
-
-  Hint_Metrics:
-    if ( depth == 0 )
-    {
-      FT_BBox  bbox;
-
-
-      /* transform the hinted outline if needed */
-      if ( hinter->transformed )
-        FT_Outline_Transform( &gloader->base.outline, &hinter->trans_matrix );
-
-      /* we must translate our final outline by -pp1.x and compute */
-      /* the new metrics                                           */
-      if ( hinter->pp1.x )
-        FT_Outline_Translate( &gloader->base.outline, -hinter->pp1.x, 0 );
-
-      FT_Outline_Get_CBox( &gloader->base.outline, &bbox );
-      bbox.xMin  = FT_PIX_FLOOR(  bbox.xMin );
-      bbox.yMin  = FT_PIX_FLOOR(  bbox.yMin );
-      bbox.xMax  = FT_PIX_CEIL( bbox.xMax );
-      bbox.yMax  = FT_PIX_CEIL( bbox.yMax );
-
-      slot->metrics.width        = bbox.xMax - bbox.xMin;
-      slot->metrics.height       = bbox.yMax - bbox.yMin;
-      slot->metrics.horiBearingX = bbox.xMin;
-      slot->metrics.horiBearingY = bbox.yMax;
-
-      /* for mono-width fonts (like Andale, Courier, etc.) we need */
-      /* to keep the original rounded advance width                */
-      if ( !FT_IS_FIXED_WIDTH( slot->face ) )
-        slot->metrics.horiAdvance = hinter->pp2.x - hinter->pp1.x;
-      else
-        slot->metrics.horiAdvance = FT_MulFix( slot->metrics.horiAdvance,
-                                               x_scale );
-
-      slot->metrics.horiAdvance = FT_PIX_ROUND( slot->metrics.horiAdvance );
-
-      /* now copy outline into glyph slot */
-      ah_loader_rewind( slot->internal->loader );
-      error = ah_loader_copy_points( slot->internal->loader, gloader );
-      if ( error )
-        goto Exit;
-
-      slot->outline = slot->internal->loader->base.outline;
-      slot->format  = FT_GLYPH_FORMAT_OUTLINE;
-    }
-
-#ifdef DEBUG_HINTER
-    ah_debug_hinter = hinter;
-#endif
-
-  Exit:
-    return error;
-  }
-
-
-  /* load and hint a given glyph */
-  FT_LOCAL_DEF( FT_Error )
-  ah_hinter_load_glyph( AH_Hinter     hinter,
-                        FT_GlyphSlot  slot,
-                        FT_Size       size,
-                        FT_UInt       glyph_index,
-                        FT_Int32      load_flags )
-  {
-    FT_Face          face         = slot->face;
-    FT_Error         error;
-    FT_Fixed         x_scale      = size->metrics.x_scale;
-    FT_Fixed         y_scale      = size->metrics.y_scale;
-    AH_Face_Globals  face_globals = FACE_GLOBALS( face );
-    FT_Render_Mode   hint_mode    = FT_LOAD_TARGET_MODE( load_flags );
-
-
-    /* first of all, we need to check that we're using the correct face and */
-    /* global hints to load the glyph                                       */
-    if ( hinter->face != face || hinter->globals != face_globals )
-    {
-      hinter->face = face;
-      if ( !face_globals )
-      {
-        error = ah_hinter_new_face_globals( hinter, face, 0 );
-        if ( error )
-          goto Exit;
-
-      }
-      hinter->globals = FACE_GLOBALS( face );
-      face_globals    = FACE_GLOBALS( face );
-
-    }
-
-#ifdef FT_CONFIG_CHESTER_BLUE_SCALE
-
-   /* try to optimize the y_scale so that the top of non-capital letters
-    * is aligned on a pixel boundary whenever possible
-    */
-    {
-      AH_Globals  design = &face_globals->design;
-      FT_Pos      shoot  = design->blue_shoots[AH_BLUE_SMALL_TOP];
-
-
-      /* the value of 'shoot' will be -1000 if the font doesn't have */
-      /* small latin letters; we simply check the sign here...       */
-      if ( shoot > 0 )
-      {
-        FT_Pos  scaled = FT_MulFix( shoot, y_scale );
-        FT_Pos  fitted = FT_PIX_ROUND( scaled );
-
-
-        if ( scaled != fitted )
-        {
-         /* adjust y_scale
-          */
-          y_scale = FT_MulDiv( y_scale, fitted, scaled );
-
-         /* adust x_scale
-          */
-          if ( fitted < scaled )
-            x_scale -= x_scale / 50;  /* x_scale*0.98 with integers */
-        }
-      }
-    }
-
-#endif /* FT_CONFIG_CHESTER_BLUE_SCALE */
-
-    /* now, we must check the current character pixel size to see if we */
-    /* need to rescale the global metrics                               */
-    if ( face_globals->x_scale != x_scale ||
-         face_globals->y_scale != y_scale )
-      ah_hinter_scale_globals( hinter, x_scale, y_scale );
-
-    ah_loader_rewind( hinter->loader );
-
-    /* reset hinting flags according to load flags and current render target */
-    hinter->do_horz_hints = FT_BOOL( !(load_flags & FT_LOAD_NO_AUTOHINT) );
-    hinter->do_vert_hints = FT_BOOL( !(load_flags & FT_LOAD_NO_AUTOHINT) );
-
-#ifdef DEBUG_HINTER
-    hinter->do_horz_hints = !ah_debug_disable_vert;  /* not a bug, the meaning */
-    hinter->do_vert_hints = !ah_debug_disable_horz;  /* of h/v is inverted!    */
-#endif
-
-    /* we snap the width of vertical stems for the monochrome and         */
-    /* horizontal LCD rendering targets only.  Corresponds to X snapping. */
-    hinter->do_horz_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_MONO ||
-                                        hint_mode == FT_RENDER_MODE_LCD  );
-
-    /* we snap the width of horizontal stems for the monochrome and     */
-    /* vertical LCD rendering targets only.  Corresponds to Y snapping. */
-    hinter->do_vert_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_MONO   ||
-                                        hint_mode == FT_RENDER_MODE_LCD_V  );
-
-    hinter->do_stem_adjust   = FT_BOOL( hint_mode != FT_RENDER_MODE_LIGHT );
-
-    load_flags |= FT_LOAD_NO_SCALE
-                | FT_LOAD_IGNORE_TRANSFORM;
-    load_flags &= ~FT_LOAD_RENDER;
-
-    error = ah_hinter_load( hinter, glyph_index, load_flags, 0 );
-
-  Exit:
-    return error;
-  }
-
-
-  /* retrieve a face's autohint globals for client applications */
-  FT_LOCAL_DEF( void )
-  ah_hinter_get_global_hints( AH_Hinter  hinter,
-                              FT_Face    face,
-                              void**     global_hints,
-                              long*      global_len )
-  {
-    AH_Globals  globals = 0;
-    FT_Memory   memory  = hinter->memory;
-    FT_Error    error;
-
-
-    /* allocate new master globals */
-    if ( FT_NEW( globals ) )
-      goto Fail;
-
-    /* compute face globals if needed */
-    if ( !FACE_GLOBALS( face ) )
-    {
-      error = ah_hinter_new_face_globals( hinter, face, 0 );
-      if ( error )
-        goto Fail;
-    }
-
-    *globals      = FACE_GLOBALS( face )->design;
-    *global_hints = globals;
-    *global_len   = sizeof( *globals );
-
-    return;
-
-  Fail:
-    FT_FREE( globals );
-
-    *global_hints = 0;
-    *global_len   = 0;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ah_hinter_done_global_hints( AH_Hinter  hinter,
-                               void*      global_hints )
-  {
-    FT_Memory  memory = hinter->memory;
-
-
-    FT_FREE( global_hints );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahhint.h b/nx-X11/extras/freetype2/src/autohint/ahhint.h
deleted file mode 100644
index 2c352d0c9..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahhint.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahhint.h                                                               */
-/*                                                                         */
-/*    Glyph hinter (declaration).                                          */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002 Catharon Productions Inc.                    */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __AHHINT_H__
-#define __AHHINT_H__
-
-
-#include <ft2build.h>
-#include "ahglobal.h"
-
-
-FT_BEGIN_HEADER
-
-
-#define AH_HINT_DEFAULT        0
-#define AH_HINT_NO_ALIGNMENT   1
-#define AH_HINT_NO_HORZ_EDGES  0x200000L  /* temporary hack */
-#define AH_HINT_NO_VERT_EDGES  0x400000L  /* temporary hack */
-
-
-  /* create a new empty hinter object */
-  FT_LOCAL( FT_Error )
-  ah_hinter_new( FT_Library  library,
-                 AH_Hinter*  ahinter );
-
-  /* Load a hinted glyph in the hinter */
-  FT_LOCAL( FT_Error )
-  ah_hinter_load_glyph( AH_Hinter     hinter,
-                        FT_GlyphSlot  slot,
-                        FT_Size       size,
-                        FT_UInt       glyph_index,
-                        FT_Int32      load_flags );
-
-  /* finalize a hinter object */
-  FT_LOCAL( void )
-  ah_hinter_done( AH_Hinter  hinter );
-
-  FT_LOCAL( void )
-  ah_hinter_done_face_globals( AH_Face_Globals  globals );
-
-  FT_LOCAL( void )
-  ah_hinter_get_global_hints( AH_Hinter  hinter,
-                              FT_Face    face,
-                              void**     global_hints,
-                              long*      global_len );
-
-  FT_LOCAL( void )
-  ah_hinter_done_global_hints( AH_Hinter  hinter,
-                               void*      global_hints );
-
-
-FT_END_HEADER
-
-#endif /* __AHHINT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahloader.h b/nx-X11/extras/freetype2/src/autohint/ahloader.h
deleted file mode 100644
index c8e42ef22..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahloader.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahloader.h                                                             */
-/*                                                                         */
-/*    Glyph loader for the auto-hinting module (declaration only).         */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002 Catharon Productions Inc.                    */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This defines the AH_GlyphLoader type; it is simply a typedef to       */
-  /* FT_GlyphLoader.                                                       */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef __AHLOADER_H__
-#define __AHLOADER_H__
-
-
-#include <ft2build.h>
-
-
-FT_BEGIN_HEADER
-
-#include FT_INTERNAL_GLYPH_LOADER_H
-
-  #define AH_Load    FT_GlyphLoad
-  #define AH_Loader  FT_GlyphLoader
-
-  #define ah_loader_new              FT_GlyphLoader_New
-  #define ah_loader_done             FT_GlyphLoader_Done
-  #define ah_loader_reset            FT_GlyphLoader_Reset
-  #define ah_loader_rewind           FT_GlyphLoader_Rewind
-  #define ah_loader_create_extra     FT_GlyphLoader_CreateExtra
-  #define ah_loader_check_points     FT_GlyphLoader_CheckPoints
-  #define ah_loader_check_subglyphs  FT_GlyphLoader_CheckSubGlyphs
-  #define ah_loader_prepare          FT_GlyphLoader_Prepare
-  #define ah_loader_add              FT_GlyphLoader_Add
-  #define ah_loader_copy_points      FT_GlyphLoader_CopyPoints
-
-
-FT_END_HEADER
-
-#endif /* __AHLOADER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahmodule.c b/nx-X11/extras/freetype2/src/autohint/ahmodule.c
deleted file mode 100644
index 03d067b87..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahmodule.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahmodule.c                                                             */
-/*                                                                         */
-/*    Auto-hinting module implementation (declaration).                    */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 Catharon Productions Inc.        */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-#include "ahhint.h"
-
-
-#ifdef  DEBUG_HINTER
-   AH_Hinter  ah_debug_hinter       = NULL;
-   FT_Bool    ah_debug_disable_horz = 0;
-   FT_Bool    ah_debug_disable_vert = 0;
-#endif
-
-  typedef struct  FT_AutoHinterRec_
-  {
-    FT_ModuleRec  root;
-    AH_Hinter     hinter;
-
-  } FT_AutoHinterRec;
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_autohinter_init( FT_Module  module )       /* FT_AutoHinter */
-  {
-    FT_AutoHinter  autohinter = (FT_AutoHinter)module;
-    FT_Error       error;
-
-
-    error = ah_hinter_new( module->library, &autohinter->hinter );
-
-#ifdef DEBUG_HINTER
-    if ( !error )
-      ah_debug_hinter = autohinter->hinter;
-#endif
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_autohinter_done( FT_Module  module )
-  {
-    FT_AutoHinter  autohinter = (FT_AutoHinter)module;
-
-
-    ah_hinter_done( autohinter->hinter );
-
-#ifdef DEBUG_HINTER
-    ah_debug_hinter = NULL;
-#endif
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_autohinter_load_glyph( FT_AutoHinter  module,
-                            FT_GlyphSlot   slot,
-                            FT_Size        size,
-                            FT_UInt        glyph_index,
-                            FT_Int32       load_flags )
-  {
-    return ah_hinter_load_glyph( module->hinter,
-                                 slot, size, glyph_index, load_flags );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_autohinter_reset_globals( FT_AutoHinter  module,
-                               FT_Face        face )
-  {
-    FT_UNUSED( module );
-
-    if ( face->autohint.data )
-      ah_hinter_done_face_globals( (AH_Face_Globals)(face->autohint.data) );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_autohinter_get_globals( FT_AutoHinter  module,
-                             FT_Face        face,
-                             void**         global_hints,
-                             long*          global_len )
-  {
-    ah_hinter_get_global_hints( module->hinter, face,
-                                global_hints, global_len );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_autohinter_done_globals( FT_AutoHinter  module,
-                              void*          global_hints )
-  {
-    ah_hinter_done_global_hints( module->hinter, global_hints );
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_AutoHinter_ServiceRec  ft_autohinter_service =
-  {
-    ft_autohinter_reset_globals,
-    ft_autohinter_get_globals,
-    ft_autohinter_done_globals,
-    ft_autohinter_load_glyph
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Module_Class  autohint_module_class =
-  {
-    FT_MODULE_HINTER,
-    sizeof ( FT_AutoHinterRec ),
-
-    "autohinter",
-    0x10000L,   /* version 1.0 of the autohinter  */
-    0x20000L,   /* requires FreeType 2.0 or above */
-
-    (const void*) &ft_autohinter_service,
-
-    ft_autohinter_init,
-    ft_autohinter_done,
-    0                       /* FT_Module_Requester */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahmodule.h b/nx-X11/extras/freetype2/src/autohint/ahmodule.h
deleted file mode 100644
index 43b1dbe98..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahmodule.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahmodule.h                                                             */
-/*                                                                         */
-/*    Auto-hinting module (declaration).                                   */
-/*                                                                         */
-/*  Copyright 2000-2001 Catharon Productions Inc.                          */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __AHMODULE_H__
-#define __AHMODULE_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_CALLBACK_TABLE
-  const FT_Module_Class  autohint_module_class;
-
-
-FT_END_HEADER
-
-#endif /* __AHMODULE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/ahtypes.h b/nx-X11/extras/freetype2/src/autohint/ahtypes.h
deleted file mode 100644
index f2cedd288..000000000
--- a/nx-X11/extras/freetype2/src/autohint/ahtypes.h
+++ /dev/null
@@ -1,527 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ahtypes.h                                                              */
-/*                                                                         */
-/*    General types and definitions for the auto-hint module               */
-/*    (specification only).                                                */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 Catharon Productions Inc.        */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __AHTYPES_H__
-#define __AHTYPES_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-
-#ifdef DEBUG_HINTER
-#include <../src/autohint/ahloader.h>
-#else
-#include "ahloader.h"
-#endif
-
-
-#define xxAH_DEBUG
-
-
-#ifdef AH_DEBUG
-
-#include <stdio.h>
-#define AH_LOG( x )  printf ## x
-
-#else
-
-#define AH_LOG( x )  do ; while ( 0 ) /* nothing */
-
-#endif /* AH_DEBUG */
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /**** COMPILE-TIME BUILD OPTIONS                                      ****/
-  /****                                                                 ****/
-  /**** Toggle these configuration macros to experiment with `features' ****/
-  /**** of the auto-hinter.                                             ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* If this option is defined, only strong interpolation will be used to  */
-  /* place the points between edges.  Otherwise, `smooth' points are       */
-  /* detected and later hinted through weak interpolation to correct some  */
-  /* unpleasant artefacts.                                                 */
-  /*                                                                       */
-#undef AH_OPTION_NO_WEAK_INTERPOLATION
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Undefine this macro if you don't want to hint the metrics.  There is  */
-  /* no reason to do this (at least for non-CJK scripts), except for       */
-  /* experimentation.                                                      */
-  /*                                                                       */
-#undef  AH_HINT_METRICS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define this macro if you do not want to insert extra edges at a       */
-  /* glyph's x and y extremum (if there isn't one already available).      */
-  /* This helps to reduce a number of artefacts and allows hinting of      */
-  /* metrics.                                                              */
-  /*                                                                       */
-#undef AH_OPTION_NO_EXTREMUM_EDGES
-
-
-  /* don't touch for now */
-#define AH_MAX_WIDTHS   12
-#define AH_MAX_HEIGHTS  12
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   TYPE DEFINITIONS                                              ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* see ahangles.h */
-  typedef FT_Int  AH_Angle;
-
-
-  /* hint flags */
-#define AH_FLAG_NONE       0
-
-  /* bezier control points flags */
-#define AH_FLAG_CONIC                 1
-#define AH_FLAG_CUBIC                 2
-#define AH_FLAG_CONTROL               ( AH_FLAG_CONIC | AH_FLAG_CUBIC )
-
-  /* extrema flags */
-#define AH_FLAG_EXTREMA_X             4
-#define AH_FLAG_EXTREMA_Y             8
-
-  /* roundness */
-#define AH_FLAG_ROUND_X              16
-#define AH_FLAG_ROUND_Y              32
-
-  /* touched */
-#define AH_FLAG_TOUCH_X              64
-#define AH_FLAG_TOUCH_Y             128
-
-  /* weak interpolation */
-#define AH_FLAG_WEAK_INTERPOLATION  256
-#define AH_FLAG_INFLECTION          512
-
-  typedef FT_Int AH_Flags;
-
-
-  /* edge hint flags */
-#define AH_EDGE_NORMAL  0
-#define AH_EDGE_ROUND   1
-#define AH_EDGE_SERIF   2
-#define AH_EDGE_DONE    4
-
-  typedef FT_Int  AH_Edge_Flags;
-
-
-  /* hint directions -- the values are computed so that two vectors are */
-  /* in opposite directions iff `dir1+dir2 == 0'                        */
-#define AH_DIR_NONE    4
-#define AH_DIR_RIGHT   1
-#define AH_DIR_LEFT   -1
-#define AH_DIR_UP      2
-#define AH_DIR_DOWN   -2
-
-  typedef FT_Int  AH_Direction;
-
-
-  typedef struct AH_PointRec_*    AH_Point;
-  typedef struct AH_SegmentRec_*  AH_Segment;
-  typedef struct AH_EdgeRec_*     AH_Edge;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    AH_PointRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model an outline point to the AH_OutlineRec    */
-  /*    type.                                                              */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    flags     :: The current point hint flags.                         */
-  /*                                                                       */
-  /*    ox, oy    :: The current original scaled coordinates.              */
-  /*                                                                       */
-  /*    fx, fy    :: The current coordinates in font units.                */
-  /*                                                                       */
-  /*    x,  y     :: The current hinted coordinates.                       */
-  /*                                                                       */
-  /*    u, v      :: Point coordinates -- meaning varies with context.     */
-  /*                                                                       */
-  /*    in_dir    :: The direction of the inwards vector (prev->point).    */
-  /*                                                                       */
-  /*    out_dir   :: The direction of the outwards vector (point->next).   */
-  /*                                                                       */
-  /*    next      :: The next point in same contour.                       */
-  /*                                                                       */
-  /*    prev      :: The previous point in same contour.                   */
-  /*                                                                       */
-  typedef struct  AH_PointRec_
-  {
-    AH_Flags      flags;    /* point flags used by hinter */
-    FT_Pos        ox, oy;
-    FT_Pos        fx, fy;
-    FT_Pos        x,  y;
-    FT_Pos        u,  v;
-
-    AH_Direction  in_dir;   /* direction of inwards vector  */
-    AH_Direction  out_dir;  /* direction of outwards vector */
-
-    AH_Point      next;     /* next point in contour     */
-    AH_Point      prev;     /* previous point in contour */
-
-  } AH_PointRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    AH_SegmentRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to describe an edge segment to the auto-hinter.   */
-  /*    A segment is simply a sequence of successive points located on the */
-  /*    same horizontal or vertical `position', in a given direction.      */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    flags      :: The segment edge flags (straight, rounded, etc.).    */
-  /*                                                                       */
-  /*    dir        :: The segment direction.                               */
-  /*                                                                       */
-  /*    min_coord  :: The minimum coordinate of the segment.               */
-  /*                                                                       */
-  /*    max_coord  :: The maximum coordinate of the segment.               */
-  /*                                                                       */
-  /*    edge       :: The edge of the current segment.                     */
-  /*                                                                       */
-  /*    edge_next  :: The next segment on the same edge.                   */
-  /*                                                                       */
-  /*    link       :: The pairing segment for this edge.                   */
-  /*                                                                       */
-  /*    serif      :: The primary segment for serifs.                      */
-  /*                                                                       */
-  /*    num_linked :: The number of other segments that link to this one.  */
-  /*                                                                       */
-  /*    score      :: Used to score the segment when selecting them.       */
-  /*                                                                       */
-  /*    first      :: The first point in the segment.                      */
-  /*                                                                       */
-  /*    last       :: The last point in the segment.                       */
-  /*                                                                       */
-  /*    contour    :: A pointer to the first point of the segment's        */
-  /*                  contour.                                             */
-  /*                                                                       */
-  typedef struct  AH_SegmentRec_
-  {
-    AH_Edge_Flags  flags;
-    AH_Direction   dir;
-    FT_Pos         pos;         /* position of segment           */
-    FT_Pos         min_coord;   /* minimum coordinate of segment */
-    FT_Pos         max_coord;   /* maximum coordinate of segment */
-
-    AH_Edge        edge;
-    AH_Segment     edge_next;
-
-    AH_Segment     link;        /* link segment               */
-    AH_Segment     serif;       /* primary segment for serifs */
-    FT_Pos         num_linked;  /* number of linked segments  */
-    FT_Pos         score;
-
-    AH_Point       first;       /* first point in edge segment             */
-    AH_Point       last;        /* last point in edge segment              */
-    AH_Point*      contour;     /* ptr to first point of segment's contour */
-
-  } AH_SegmentRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    AH_EdgeRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to describe an edge, which really is a horizontal */
-  /*    or vertical coordinate to be hinted depending on the segments      */
-  /*    located on it.                                                     */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    fpos       :: The original edge position in font units.            */
-  /*                                                                       */
-  /*    opos       :: The original scaled edge position.                   */
-  /*                                                                       */
-  /*    pos        :: The hinted edge position.                            */
-  /*                                                                       */
-  /*    flags      :: The segment edge flags (straight, rounded, etc.).    */
-  /*                                                                       */
-  /*    dir        :: The main segment direction on this edge.             */
-  /*                                                                       */
-  /*    scale      :: Scaling factor between original and hinted edge      */
-  /*                  positions.                                           */
-  /*                                                                       */
-  /*    blue_edge  :: Indicate the blue zone edge this edge is related to. */
-  /*                  Only set for some of the horizontal edges in a latin */
-  /*                  font.                                                */
-  /*                                                                       */
-  /*    link       :: The linked edge.                                     */
-  /*                                                                       */
-  /*    serif      :: The serif edge.                                      */
-  /*                                                                       */
-  /*    num_linked :: The number of other edges that pair to this one.     */
-  /*                                                                       */
-  /*    score      :: Used to score the edge when selecting them.          */
-  /*                                                                       */
-  /*    first      :: The first edge segment.                              */
-  /*                                                                       */
-  /*    last       :: The last edge segment.                               */
-  /*                                                                       */
-  typedef struct  AH_EdgeRec_
-  {
-    FT_Pos         fpos;
-    FT_Pos         opos;
-    FT_Pos         pos;
-
-    AH_Edge_Flags  flags;
-    AH_Direction   dir;
-    FT_Fixed       scale;
-    FT_Pos*        blue_edge;
-
-    AH_Edge        link;
-    AH_Edge        serif;
-    FT_Int         num_linked;
-
-    FT_Int         score;
-
-    AH_Segment     first;
-    AH_Segment     last;
-
-
-  } AH_EdgeRec;
-
-
-  /* an outline as seen by the hinter */
-  typedef struct  AH_OutlineRec_
-  {
-    FT_Memory     memory;
-
-    AH_Direction  vert_major_dir;   /* vertical major direction   */
-    AH_Direction  horz_major_dir;   /* horizontal major direction */
-
-    FT_Fixed      x_scale;
-    FT_Fixed      y_scale;
-    FT_Pos        edge_distance_threshold;
-
-    FT_Int        max_points;
-    FT_Int        num_points;
-    AH_Point      points;
-
-    FT_Int        max_contours;
-    FT_Int        num_contours;
-    AH_Point*     contours;
-
-    FT_Int        num_hedges;
-    AH_Edge       horz_edges;
-
-    FT_Int        num_vedges;
-    AH_Edge       vert_edges;
-
-    FT_Int        num_hsegments;
-    AH_Segment    horz_segments;
-
-    FT_Int        num_vsegments;
-    AH_Segment    vert_segments;
-
-  } AH_OutlineRec, *AH_Outline;
-
-
-#ifdef FT_CONFIG_CHESTER_SMALL_F
-
-#define AH_BLUE_CAPITAL_TOP     0                              /* THEZOCQS */
-#define AH_BLUE_CAPITAL_BOTTOM  ( AH_BLUE_CAPITAL_TOP + 1 )    /* HEZLOCUS */
-#define AH_BLUE_SMALL_F_TOP     ( AH_BLUE_CAPITAL_BOTTOM + 1 ) /* fijkdbh  */
-#define AH_BLUE_SMALL_TOP       ( AH_BLUE_SMALL_F_TOP + 1 )    /* xzroesc  */
-#define AH_BLUE_SMALL_BOTTOM    ( AH_BLUE_SMALL_TOP + 1 )      /* xzroesc  */
-#define AH_BLUE_SMALL_MINOR     ( AH_BLUE_SMALL_BOTTOM + 1 )   /* pqgjy    */
-#define AH_BLUE_MAX             ( AH_BLUE_SMALL_MINOR + 1 )
-
-#else /* !FT_CONFIG_CHESTER_SMALL_F */
-
-#define AH_BLUE_CAPITAL_TOP     0                              /* THEZOCQS */
-#define AH_BLUE_CAPITAL_BOTTOM  ( AH_BLUE_CAPITAL_TOP + 1 )    /* HEZLOCUS */
-#define AH_BLUE_SMALL_TOP       ( AH_BLUE_CAPITAL_BOTTOM + 1 ) /* xzroesc  */
-#define AH_BLUE_SMALL_BOTTOM    ( AH_BLUE_SMALL_TOP + 1 )      /* xzroesc  */
-#define AH_BLUE_SMALL_MINOR     ( AH_BLUE_SMALL_BOTTOM + 1 )   /* pqgjy    */
-#define AH_BLUE_MAX             ( AH_BLUE_SMALL_MINOR + 1 )
-
-#endif /* !FT_CONFIG_CHESTER_SMALL_F */
-
-  typedef FT_Int  AH_Blue;
-
-
-#define AH_HINTER_MONOCHROME  1
-#define AH_HINTER_OPTIMIZE    2
-
-  typedef FT_Int  AH_Hinter_Flags;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    AH_GlobalsRec                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Holds the global metrics for a given font face (be it in design    */
-  /*    units or scaled pixel values).                                     */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_widths  :: The number of widths.                               */
-  /*                                                                       */
-  /*    num_heights :: The number of heights.                              */
-  /*                                                                       */
-  /*    stds        :: A two-element array giving the default stem width   */
-  /*                   and height.                                         */
-  /*                                                                       */
-  /*    widths      :: Snap widths, including standard one.                */
-  /*                                                                       */
-  /*    heights     :: Snap height, including standard one.                */
-  /*                                                                       */
-  /*    blue_refs   :: The reference positions of blue zones.              */
-  /*                                                                       */
-  /*    blue_shoots :: The overshoot positions of blue zones.              */
-  /*                                                                       */
-  typedef struct  AH_GlobalsRec_
-  {
-    FT_Int  num_widths;
-    FT_Int  num_heights;
-
-    FT_Pos  stds[2];
-
-    FT_Pos  widths [AH_MAX_WIDTHS];
-    FT_Pos  heights[AH_MAX_HEIGHTS];
-
-    FT_Pos  blue_refs  [AH_BLUE_MAX];
-    FT_Pos  blue_shoots[AH_BLUE_MAX];
-
-  } AH_GlobalsRec, *AH_Globals;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    AH_Face_GlobalsRec                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Holds the complete global metrics for a given font face (i.e., the */
-  /*    design units version + a scaled version + the current scales       */
-  /*    used).                                                             */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    face    :: A handle to the source face object                      */
-  /*                                                                       */
-  /*    design  :: The globals in font design units.                       */
-  /*                                                                       */
-  /*    scaled  :: Scaled globals in sub-pixel values.                     */
-  /*                                                                       */
-  /*    x_scale :: The current horizontal scale.                           */
-  /*                                                                       */
-  /*    y_scale :: The current vertical scale.                             */
-  /*                                                                       */
-  /*    control_overshoot ::                                               */
-  /*               Currently unused.                                       */
-  /*                                                                       */
-  typedef struct  AH_Face_GlobalsRec_
-  {
-    FT_Face        face;
-    AH_GlobalsRec  design;
-    AH_GlobalsRec  scaled;
-    FT_Fixed       x_scale;
-    FT_Fixed       y_scale;
-    FT_Bool        control_overshoot;
-
-  } AH_Face_GlobalsRec, *AH_Face_Globals;
-
-
-  typedef struct  AH_HinterRec_
-  {
-    FT_Memory        memory;
-    AH_Hinter_Flags  flags;
-
-    FT_Int           algorithm;
-    FT_Face          face;
-
-    AH_Face_Globals  globals;
-
-    AH_Outline       glyph;
-
-    AH_Loader        loader;
-    FT_Vector        pp1;               /* horizontal phantom points */
-    FT_Vector        pp2;
-    /* we ignore vertical phantom points */
-
-    FT_Bool          transformed;
-    FT_Vector        trans_delta;
-    FT_Matrix        trans_matrix;
-
-    FT_Bool          do_horz_hints;     /* disable X hinting            */
-    FT_Bool          do_vert_hints;     /* disable Y hinting            */
-    FT_Bool          do_horz_snapping;  /* disable X stem size snapping */
-    FT_Bool          do_vert_snapping;  /* disable Y stem size snapping */
-    FT_Bool          do_stem_adjust;    /* disable light stem snapping  */
-
-  } AH_HinterRec, *AH_Hinter;
-
-
-#ifdef DEBUG_HINTER
-  extern AH_Hinter  ah_debug_hinter;
-  extern FT_Bool    ah_debug_disable_horz;
-  extern FT_Bool    ah_debug_disable_vert;
-#else
-#define ah_debug_disable_horz  0
-#define ah_debug_disable_vert  0
-#endif /* DEBUG_HINTER */
-
-
-FT_END_HEADER
-
-#endif /* __AHTYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/autohint.c b/nx-X11/extras/freetype2/src/autohint/autohint.c
deleted file mode 100644
index 3783a82d9..000000000
--- a/nx-X11/extras/freetype2/src/autohint/autohint.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  autohint.c                                                             */
-/*                                                                         */
-/*    Automatic Hinting wrapper (body only).                               */
-/*                                                                         */
-/*  Copyright 2000-2001 Catharon Productions Inc.                          */
-/*  Author: David Turner                                                   */
-/*                                                                         */
-/*  This file is part of the Catharon Typography Project and shall only    */
-/*  be used, modified, and distributed under the terms of the Catharon     */
-/*  Open Source License that should come with this file under the name     */
-/*  `CatharonLicense.txt'.  By continuing to use, modify, or distribute    */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/*  Note that this license is compatible with the FreeType license.        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "ahangles.c"
-#include "ahglyph.c"
-#include "ahglobal.c"
-#include "ahhint.c"
-#include "ahmodule.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/autohint/mather.py b/nx-X11/extras/freetype2/src/autohint/mather.py
deleted file mode 100644
index 8ad8b5535..000000000
--- a/nx-X11/extras/freetype2/src/autohint/mather.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-#
-
-#
-# autohint math table builder
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-import math
-
-ag_pi = 256
-
-def print_arctan( atan_bits ):
-    atan_base = 1 << atan_bits
-
-    print "  static AH_Angle  ag_arctan[1L << AG_ATAN_BITS] ="
-    print "  {"
-
-    count = 0
-    line  = "   "
-
-    for n in range( atan_base ):
-        comma = ","
-        if ( n == atan_base - 1 ):
-            comma = ""
-
-        angle = math.atan( n * 1.0 / atan_base ) / math.pi * ag_pi
-        line  = line + " " + repr( int( angle + 0.5 ) ) + comma
-        count = count + 1;
-        if ( count == 8 ):
-            count = 0
-            print line
-            line = "   "
-
-    if ( count > 0 ):
-        print line
-    print "  };"
-
-
-# This routine is not used currently.
-#
-def print_sines():
-    print "  static FT_Fixed  ah_sines[AG_HALF_PI + 1] ="
-    print "  {"
-
-    count = 0
-    line  = "   "
-
-    for n in range( ag_pi / 2 ):
-        sinus = math.sin( n * math.pi / ag_pi )
-        line  = line + " " + repr( int( 65536.0 * sinus ) ) + ","
-        count = count + 1
-        if ( count == 8 ):
-            count = 0
-            print line
-            line = "   "
-
-    if ( count > 0 ):
-        print line
-    print "   65536"
-    print "  };"
-
-
-print_arctan( 8 )
-print
-
-
-# END
diff --git a/nx-X11/extras/freetype2/src/autohint/module.mk b/nx-X11/extras/freetype2/src/autohint/module.mk
deleted file mode 100644
index edc9f4e1a..000000000
--- a/nx-X11/extras/freetype2/src/autohint/module.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# FreeType 2 auto-hinter module definition
-#
-
-
-# Copyright 2000 Catharon Productions Inc.
-# Author: David Turner
-#
-# This file is part of the Catharon Typography Project and shall only
-# be used, modified, and distributed under the terms of the Catharon
-# Open Source License that should come with this file under the name
-# `CatharonLicense.txt'.  By continuing to use, modify, or distribute
-# this file you indicate that you have read the license and
-# understand and accept it fully.
-#
-# Note that this license is compatible with the FreeType license.
-
-
-make_module_list: add_autohint_module
-
-add_autohint_module:
-	$(OPEN_DRIVER)autohint_module_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)autohint  $(ECHO_DRIVER_DESC)automatic hinting module$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/autohint/rules.mk b/nx-X11/extras/freetype2/src/autohint/rules.mk
deleted file mode 100644
index ee264e862..000000000
--- a/nx-X11/extras/freetype2/src/autohint/rules.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# FreeType 2 auto-hinter module configuration rules
-#
-
-
-# Copyright 2000, 2001, 2002, 2003 Catharon Productions Inc.
-# Author: David Turner
-#
-# This file is part of the Catharon Typography Project and shall only
-# be used, modified, and distributed under the terms of the Catharon
-# Open Source License that should come with this file under the name
-# `CatharonLicense.txt'.  By continuing to use, modify, or distribute
-# this file you indicate that you have read the license and
-# understand and accept it fully.
-#
-# Note that this license is compatible with the FreeType license.
-
-
-# AUTO driver directory
-#
-AUTO_DIR := $(SRC_DIR)/autohint
-
-
-# compilation flags for the driver
-#
-AUTO_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(AUTO_DIR))
-
-
-# AUTO driver sources (i.e., C files)
-#
-AUTO_DRV_SRC := $(AUTO_DIR)/ahangles.c \
-                $(AUTO_DIR)/ahglobal.c \
-                $(AUTO_DIR)/ahglyph.c  \
-                $(AUTO_DIR)/ahhint.c   \
-                $(AUTO_DIR)/ahmodule.c
-
-# AUTO driver headers
-#
-AUTO_DRV_H := $(AUTO_DRV_SRC:%c=%h)  \
-              $(AUTO_DIR)/ahloader.h \
-              $(AUTO_DIR)/ahtypes.h  \
-              $(AUTO_DIR)/aherrors.h
-
-
-# AUTO driver object(s)
-#
-#   AUTO_DRV_OBJ_M is used during `multi' builds.
-#   AUTO_DRV_OBJ_S is used during `single' builds.
-#
-AUTO_DRV_OBJ_M := $(AUTO_DRV_SRC:$(AUTO_DIR)/%.c=$(OBJ_DIR)/%.$O)
-AUTO_DRV_OBJ_S := $(OBJ_DIR)/autohint.$O
-
-# AUTO driver source file for single build
-#
-AUTO_DRV_SRC_S := $(AUTO_DIR)/autohint.c
-
-
-# AUTO driver - single object
-#
-$(AUTO_DRV_OBJ_S): $(AUTO_DRV_SRC_S) $(AUTO_DRV_SRC) \
-                   $(FREETYPE_H) $(AUTO_DRV_H)
-	$(AUTO_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(AUTO_DRV_SRC_S))
-
-
-# AUTO driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(AUTO_DIR)/%.c $(FREETYPE_H) $(AUTO_DRV_H)
-	$(AUTO_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(AUTO_DRV_OBJ_S)
-DRV_OBJS_M += $(AUTO_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/base/Jamfile b/nx-X11/extras/freetype2/src/base/Jamfile
deleted file mode 100644
index d82e65d6d..000000000
--- a/nx-X11/extras/freetype2/src/base/Jamfile
+++ /dev/null
@@ -1,36 +0,0 @@
-# FreeType 2 src/base Jamfile (c) 2001, 2002, 2003, 2004 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) base ;
-
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = ftutil ftdbgmem ftstream ftcalc fttrigon ftgloadr ftoutln
-               ftobjs ftnames ftrfork ;
-  }
-  else
-  {
-    _sources = ftbase ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# Add the optional/replaceable files.
-#
-Library  $(FT2_LIB) : ftsystem.c   ftinit.c    ftglyph.c  ftmm.c     ftbdf.c
-                      ftbbox.c     ftdebug.c   ftxf86.c   fttype1.c  ftpfr.c
-                      ftstroke.c   ftwinfnt.c ;
-
-# Add Macintosh-specific file to the library when necessary.
-#
-if $(MAC)
-{
-  Library  $(FT2_LIB) : ftmac.c ;
-}
-
-# end of src/base Jamfile
diff --git a/nx-X11/extras/freetype2/src/base/descrip.mms b/nx-X11/extras/freetype2/src/base/descrip.mms
deleted file mode 100644
index 73bad4d73..000000000
--- a/nx-X11/extras/freetype2/src/base/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 base layer compilation rules for VMS
-#
-
-
-# Copyright 2001, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.builds.vms],[--.include],[--.src.base])
-
-OBJS=ftbase.obj,ftinit.obj,ftglyph.obj,ftdebug.obj,ftbdf.obj,ftmm.obj,fttype1.obj,ftxf86.obj,ftpfr.obj,ftstroke.obj,ftwinfnt.obj,ftbbox.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/base/ftapi.c b/nx-X11/extras/freetype2/src/base/ftapi.c
deleted file mode 100644
index 1ef3005e2..000000000
--- a/nx-X11/extras/freetype2/src/base/ftapi.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftapi.c                                                                */
-/*                                                                         */
-/*    The FreeType compatibility functions (body).                         */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_LIST_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TABLES_H
-#include FT_OUTLINE_H
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                 C O M P A T I B I L I T Y                       ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* backwards compatibility API */
-
-  FT_BASE_DEF( void )
-  FT_New_Memory_Stream( FT_Library  library,
-                        FT_Byte*    base,
-                        FT_ULong    size,
-                        FT_Stream   stream )
-  {
-    FT_UNUSED( library );
-
-    FT_Stream_OpenMemory( stream, base, size );
-  }                        
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Seek_Stream( FT_Stream  stream,
-                  FT_ULong   pos )
-  {
-    return FT_Stream_Seek( stream, pos );
-  }                  
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Skip_Stream( FT_Stream  stream,
-                  FT_Long    distance )
-  {
-    return FT_Stream_Skip( stream, distance );
-  }                  
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Read_Stream( FT_Stream  stream,
-                  FT_Byte*   buffer,
-                  FT_ULong   count )
-  {
-    return FT_Stream_Read( stream, buffer, count );
-  }                  
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Read_Stream_At( FT_Stream  stream,
-                     FT_ULong   pos,
-                     FT_Byte*   buffer,
-                     FT_ULong   count )
-  {
-    return FT_Stream_ReadAt( stream, pos, buffer, count );
-  }                    
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Extract_Frame( FT_Stream  stream,
-                    FT_ULong   count,
-                    FT_Byte**  pbytes )
-  {
-    return FT_Stream_ExtractFrame( stream, count, pbytes );
-  }                    
-
-
-  FT_BASE_DEF( void )
-  FT_Release_Frame( FT_Stream  stream,
-                    FT_Byte**  pbytes )
-  {
-    FT_Stream_ReleaseFrame( stream, pbytes );
-  }                    
-
-  FT_BASE_DEF( FT_Error )
-  FT_Access_Frame( FT_Stream  stream,
-                   FT_ULong   count )
-  {
-    return FT_Stream_EnterFrame( stream, count );
-  }                   
-
-
-  FT_BASE_DEF( void )
-  FT_Forget_Frame( FT_Stream  stream )
-  {
-    FT_Stream_ExitFrame( stream );
-  }
-                   
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftbase.c b/nx-X11/extras/freetype2/src/base/ftbase.c
deleted file mode 100644
index 7d5a7fd8e..000000000
--- a/nx-X11/extras/freetype2/src/base/ftbase.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftbase.c                                                               */
-/*                                                                         */
-/*    Single object library component (body only).                         */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-
-#define  FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include "ftutil.c"
-#include "ftdbgmem.c"
-#include "ftstream.c"
-#include "ftcalc.c"
-#include "fttrigon.c"
-#include "ftoutln.c"
-#include "ftgloadr.c"
-#include "ftobjs.c"
-#include "ftnames.c"
-#include "ftrfork.c"
-
-#if defined( __APPLE__ ) && !defined ( DARWIN_NO_CARBON )
-#include "ftmac.c"
-#endif
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftbbox.c b/nx-X11/extras/freetype2/src/base/ftbbox.c
deleted file mode 100644
index 888699573..000000000
--- a/nx-X11/extras/freetype2/src/base/ftbbox.c
+++ /dev/null
@@ -1,659 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftbbox.c                                                               */
-/*                                                                         */
-/*    FreeType bbox computation (body).                                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This component has a _single_ role: to compute exact outline bounding */
-  /* boxes.                                                                */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_BBOX_H
-#include FT_IMAGE_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_CALC_H
-
-
-  typedef struct  TBBox_Rec_
-  {
-    FT_Vector  last;
-    FT_BBox    bbox;
-
-  } TBBox_Rec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    BBox_Move_To                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used as a `move_to' and `line_to' emitter during  */
-  /*    FT_Outline_Decompose().  It simply records the destination point   */
-  /*    in `user->last'; no further computations are necessary since we    */
-  /*    use the cbox as the starting bbox which must be refined.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    to   :: A pointer to the destination vector.                       */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    user :: A pointer to the current walk context.                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Always 0.  Needed for the interface only.                          */
-  /*                                                                       */
-  static int
-  BBox_Move_To( FT_Vector*  to,
-                TBBox_Rec*  user )
-  {
-    user->last = *to;
-
-    return 0;
-  }
-
-
-#define CHECK_X( p, bbox )  \
-          ( p->x < bbox.xMin || p->x > bbox.xMax )
-
-#define CHECK_Y( p, bbox )  \
-          ( p->y < bbox.yMin || p->y > bbox.yMax )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    BBox_Conic_Check                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finds the extrema of a 1-dimensional conic Bezier curve and update */
-  /*    a bounding range.  This version uses direct computation, as it     */
-  /*    doesn't need square roots.                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    y1  :: The start coordinate.                                       */
-  /*                                                                       */
-  /*    y2  :: The coordinate of the control point.                        */
-  /*                                                                       */
-  /*    y3  :: The end coordinate.                                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    min :: The address of the current minimum.                         */
-  /*                                                                       */
-  /*    max :: The address of the current maximum.                         */
-  /*                                                                       */
-  static void
-  BBox_Conic_Check( FT_Pos   y1,
-                    FT_Pos   y2,
-                    FT_Pos   y3,
-                    FT_Pos*  min,
-                    FT_Pos*  max )
-  {
-    if ( y1 <= y3 && y2 == y1 )     /* flat arc */
-      goto Suite;
-
-    if ( y1 < y3 )
-    {
-      if ( y2 >= y1 && y2 <= y3 )   /* ascending arc */
-        goto Suite;
-    }
-    else
-    {
-      if ( y2 >= y3 && y2 <= y1 )   /* descending arc */
-      {
-        y2 = y1;
-        y1 = y3;
-        y3 = y2;
-        goto Suite;
-      }
-    }
-
-    y1 = y3 = y1 - FT_MulDiv( y2 - y1, y2 - y1, y1 - 2*y2 + y3 );
-
-  Suite:
-    if ( y1 < *min ) *min = y1;
-    if ( y3 > *max ) *max = y3;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    BBox_Conic_To                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used as a `conic_to' emitter during               */
-  /*    FT_Raster_Decompose().  It checks a conic Bezier curve with the    */
-  /*    current bounding box, and computes its extrema if necessary to     */
-  /*    update it.                                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    control :: A pointer to a control point.                           */
-  /*                                                                       */
-  /*    to      :: A pointer to the destination vector.                    */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    user    :: The address of the current walk context.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Always 0.  Needed for the interface only.                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    In the case of a non-monotonous arc, we compute directly the       */
-  /*    extremum coordinates, as it is sufficiently fast.                  */
-  /*                                                                       */
-  static int
-  BBox_Conic_To( FT_Vector*  control,
-                 FT_Vector*  to,
-                 TBBox_Rec*  user )
-  {
-    /* we don't need to check `to' since it is always an `on' point, thus */
-    /* within the bbox                                                    */
-
-    if ( CHECK_X( control, user->bbox ) )
-      BBox_Conic_Check( user->last.x,
-                        control->x,
-                        to->x,
-                        &user->bbox.xMin,
-                        &user->bbox.xMax );
-
-    if ( CHECK_Y( control, user->bbox ) )
-      BBox_Conic_Check( user->last.y,
-                        control->y,
-                        to->y,
-                        &user->bbox.yMin,
-                        &user->bbox.yMax );
-
-    user->last = *to;
-
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    BBox_Cubic_Check                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finds the extrema of a 1-dimensional cubic Bezier curve and        */
-  /*    updates a bounding range.  This version uses splitting because we  */
-  /*    don't want to use square roots and extra accuracy.                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    p1  :: The start coordinate.                                       */
-  /*                                                                       */
-  /*    p2  :: The coordinate of the first control point.                  */
-  /*                                                                       */
-  /*    p3  :: The coordinate of the second control point.                 */
-  /*                                                                       */
-  /*    p4  :: The end coordinate.                                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    min :: The address of the current minimum.                         */
-  /*                                                                       */
-  /*    max :: The address of the current maximum.                         */
-  /*                                                                       */
-
-#if 0
-
-  static void
-  BBox_Cubic_Check( FT_Pos   p1,
-                    FT_Pos   p2,
-                    FT_Pos   p3,
-                    FT_Pos   p4,
-                    FT_Pos*  min,
-                    FT_Pos*  max )
-  {
-    FT_Pos  stack[32*3 + 1], *arc;
-
-
-    arc = stack;
-
-    arc[0] = p1;
-    arc[1] = p2;
-    arc[2] = p3;
-    arc[3] = p4;
-
-    do
-    {
-      FT_Pos  y1 = arc[0];
-      FT_Pos  y2 = arc[1];
-      FT_Pos  y3 = arc[2];
-      FT_Pos  y4 = arc[3];
-
-
-      if ( y1 == y4 )
-      {
-        if ( y1 == y2 && y1 == y3 )                         /* flat */
-          goto Test;
-      }
-      else if ( y1 < y4 )
-      {
-        if ( y2 >= y1 && y2 <= y4 && y3 >= y1 && y3 <= y4 ) /* ascending */
-          goto Test;
-      }
-      else
-      {
-        if ( y2 >= y4 && y2 <= y1 && y3 >= y4 && y3 <= y1 ) /* descending */
-        {
-          y2 = y1;
-          y1 = y4;
-          y4 = y2;
-          goto Test;
-        }
-      }
-
-      /* unknown direction -- split the arc in two */
-      arc[6] = y4;
-      arc[1] = y1 = ( y1 + y2 ) / 2;
-      arc[5] = y4 = ( y4 + y3 ) / 2;
-      y2 = ( y2 + y3 ) / 2;
-      arc[2] = y1 = ( y1 + y2 ) / 2;
-      arc[4] = y4 = ( y4 + y2 ) / 2;
-      arc[3] = ( y1 + y4 ) / 2;
-
-      arc += 3;
-      goto Suite;
-
-   Test:
-      if ( y1 < *min ) *min = y1;
-      if ( y4 > *max ) *max = y4;
-      arc -= 3;
-
-    Suite:
-      ;
-    } while ( arc >= stack );
-  }
-
-#else
-
-  static void
-  test_cubic_extrema( FT_Pos    y1,
-                      FT_Pos    y2,
-                      FT_Pos    y3,
-                      FT_Pos    y4,
-                      FT_Fixed  u,
-                      FT_Pos*   min,
-                      FT_Pos*   max )
-  {
- /* FT_Pos    a = y4 - 3*y3 + 3*y2 - y1; */
-    FT_Pos    b = y3 - 2*y2 + y1;
-    FT_Pos    c = y2 - y1;
-    FT_Pos    d = y1;
-    FT_Pos    y;
-    FT_Fixed  uu;
-
-    FT_UNUSED ( y4 );
-
-
-    /* The polynom is                         */
-    /*                                        */
-    /*    P(x) = a*x^3 + 3b*x^2 + 3c*x + d  , */
-    /*                                        */
-    /*   dP/dx = 3a*x^2 + 6b*x + 3c         . */
-    /*                                        */
-    /* However, we also have                  */
-    /*                                        */
-    /*   dP/dx(u) = 0                       , */
-    /*                                        */
-    /* which implies by subtraction that      */
-    /*                                        */
-    /*   P(u) = b*u^2 + 2c*u + d            . */
-
-    if ( u > 0 && u < 0x10000L )
-    {
-      uu = FT_MulFix( u, u );
-      y  = d + FT_MulFix( c, 2*u ) + FT_MulFix( b, uu );
-
-      if ( y < *min ) *min = y;
-      if ( y > *max ) *max = y;
-    }
-  }
-
-
-  static void
-  BBox_Cubic_Check( FT_Pos   y1,
-                    FT_Pos   y2,
-                    FT_Pos   y3,
-                    FT_Pos   y4,
-                    FT_Pos*  min,
-                    FT_Pos*  max )
-  {
-    /* always compare first and last points */
-    if      ( y1 < *min )  *min = y1;
-    else if ( y1 > *max )  *max = y1;
-
-    if      ( y4 < *min )  *min = y4;
-    else if ( y4 > *max )  *max = y4;
-
-    /* now, try to see if there are split points here */
-    if ( y1 <= y4 )
-    {
-      /* flat or ascending arc test */
-      if ( y1 <= y2 && y2 <= y4 && y1 <= y3 && y3 <= y4 )
-        return;
-    }
-    else /* y1 > y4 */
-    {
-      /* descending arc test */
-      if ( y1 >= y2 && y2 >= y4 && y1 >= y3 && y3 >= y4 )
-        return;
-    }
-
-    /* There are some split points.  Find them. */
-    {
-      FT_Pos    a = y4 - 3*y3 + 3*y2 - y1;
-      FT_Pos    b = y3 - 2*y2 + y1;
-      FT_Pos    c = y2 - y1;
-      FT_Pos    d;
-      FT_Fixed  t;
-
-
-      /* We need to solve `ax^2+2bx+c' here, without floating points!      */
-      /* The trick is to normalize to a different representation in order  */
-      /* to use our 16.16 fixed point routines.                            */
-      /*                                                                   */
-      /* We compute FT_MulFix(b,b) and FT_MulFix(a,c) after normalization. */
-      /* These values must fit into a single 16.16 value.                  */
-      /*                                                                   */
-      /* We normalize a, b, and c to `8.16' fixed float values to ensure   */
-      /* that its product is held in a `16.16' value.                      */
-
-      {
-        FT_ULong  t1, t2;
-        int       shift = 0;
-
-
-        /* The following computation is based on the fact that for   */
-        /* any value `y', if `n' is the position of the most         */
-        /* significant bit of `abs(y)' (starting from 0 for the      */
-        /* least significant bit), then `y' is in the range          */
-        /*                                                           */
-        /*   -2^n..2^n-1                                             */
-        /*                                                           */
-        /* We want to shift `a', `b', and `c' concurrently in order  */
-        /* to ensure that they all fit in 8.16 values, which maps    */
-        /* to the integer range `-2^23..2^23-1'.                     */
-        /*                                                           */
-        /* Necessarily, we need to shift `a', `b', and `c' so that   */
-        /* the most significant bit of its absolute values is at     */
-        /* _most_ at position 23.                                    */
-        /*                                                           */
-        /* We begin by computing `t1' as the bitwise `OR' of the     */
-        /* absolute values of `a', `b', `c'.                         */
-
-        t1  = (FT_ULong)( ( a >= 0 ) ? a : -a );
-        t2  = (FT_ULong)( ( b >= 0 ) ? b : -b );
-        t1 |= t2;
-        t2  = (FT_ULong)( ( c >= 0 ) ? c : -c );
-        t1 |= t2;
-
-        /* Now we can be sure that the most significant bit of `t1'  */
-        /* is the most significant bit of either `a', `b', or `c',   */
-        /* depending on the greatest integer range of the particular */
-        /* variable.                                                 */
-        /*                                                           */
-        /* Next, we compute the `shift', by shifting `t1' as many    */
-        /* times as necessary to move its MSB to position 23.  This  */
-        /* corresponds to a value of `t1' that is in the range       */
-        /* 0x40_0000..0x7F_FFFF.                                     */
-        /*                                                           */
-        /* Finally, we shift `a', `b', and `c' by the same amount.   */
-        /* This ensures that all values are now in the range         */
-        /* -2^23..2^23, i.e., they are now expressed as 8.16         */
-        /* fixed-float numbers.  This also means that we are using   */
-        /* 24 bits of precision to compute the zeros, independently  */
-        /* of the range of the original polynomial coefficients.     */
-        /*                                                           */
-        /* This algorithm should ensure reasonably accurate values   */
-        /* for the zeros.  Note that they are only expressed with    */
-        /* 16 bits when computing the extrema (the zeros need to     */
-        /* be in 0..1 exclusive to be considered part of the arc).   */
-
-        if ( t1 == 0 )  /* all coefficients are 0! */
-          return;
-
-        if ( t1 > 0x7FFFFFUL )
-        {
-          do
-          {
-            shift++;
-            t1 >>= 1;
-
-          } while ( t1 > 0x7FFFFFUL );
-
-          /* this loses some bits of precision, but we use 24 of them */
-          /* for the computation anyway                               */
-          a >>= shift;
-          b >>= shift;
-          c >>= shift;
-        }
-        else if ( t1 < 0x400000UL )
-        {
-          do
-          {
-            shift++;
-            t1 <<= 1;
-
-          } while ( t1 < 0x400000UL );
-
-          a <<= shift;
-          b <<= shift;
-          c <<= shift;
-        }
-      }
-
-      /* handle a == 0 */
-      if ( a == 0 )
-      {
-        if ( b != 0 )
-        {
-          t = - FT_DivFix( c, b ) / 2;
-          test_cubic_extrema( y1, y2, y3, y4, t, min, max );
-        }
-      }
-      else
-      {
-        /* solve the equation now */
-        d = FT_MulFix( b, b ) - FT_MulFix( a, c );
-        if ( d < 0 )
-          return;
-
-        if ( d == 0 )
-        {
-          /* there is a single split point at -b/a */
-          t = - FT_DivFix( b, a );
-          test_cubic_extrema( y1, y2, y3, y4, t, min, max );
-        }
-        else
-        {
-          /* there are two solutions; we need to filter them */
-          d = FT_SqrtFixed( (FT_Int32)d );
-          t = - FT_DivFix( b - d, a );
-          test_cubic_extrema( y1, y2, y3, y4, t, min, max );
-
-          t = - FT_DivFix( b + d, a );
-          test_cubic_extrema( y1, y2, y3, y4, t, min, max );
-        }
-      }
-    }
-  }
-
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    BBox_Cubic_To                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function is used as a `cubic_to' emitter during               */
-  /*    FT_Raster_Decompose().  It checks a cubic Bezier curve with the    */
-  /*    current bounding box, and computes its extrema if necessary to     */
-  /*    update it.                                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    control1 :: A pointer to the first control point.                  */
-  /*                                                                       */
-  /*    control2 :: A pointer to the second control point.                 */
-  /*                                                                       */
-  /*    to       :: A pointer to the destination vector.                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    user     :: The address of the current walk context.               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Always 0.  Needed for the interface only.                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    In the case of a non-monotonous arc, we don't compute directly     */
-  /*    extremum coordinates, we subdivide instead.                        */
-  /*                                                                       */
-  static int
-  BBox_Cubic_To( FT_Vector*  control1,
-                 FT_Vector*  control2,
-                 FT_Vector*  to,
-                 TBBox_Rec*  user )
-  {
-    /* we don't need to check `to' since it is always an `on' point, thus */
-    /* within the bbox                                                    */
-
-    if ( CHECK_X( control1, user->bbox ) ||
-         CHECK_X( control2, user->bbox ) )
-      BBox_Cubic_Check( user->last.x,
-                        control1->x,
-                        control2->x,
-                        to->x,
-                        &user->bbox.xMin,
-                        &user->bbox.xMax );
-
-    if ( CHECK_Y( control1, user->bbox ) ||
-         CHECK_Y( control2, user->bbox ) )
-      BBox_Cubic_Check( user->last.y,
-                        control1->y,
-                        control2->y,
-                        to->y,
-                        &user->bbox.yMin,
-                        &user->bbox.yMax );
-
-    user->last = *to;
-
-    return 0;
-  }
-
-
-  /* documentation is in ftbbox.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Get_BBox( FT_Outline*  outline,
-                       FT_BBox     *abbox )
-  {
-    FT_BBox     cbox;
-    FT_BBox     bbox;
-    FT_Vector*  vec;
-    FT_UShort   n;
-
-
-    if ( !abbox )
-      return FT_Err_Invalid_Argument;
-
-    if ( !outline )
-      return FT_Err_Invalid_Outline;
-
-    /* if outline is empty, return (0,0,0,0) */
-    if ( outline->n_points == 0 || outline->n_contours <= 0 )
-    {
-      abbox->xMin = abbox->xMax = 0;
-      abbox->yMin = abbox->yMax = 0;
-      return 0;
-    }
-
-    /* We compute the control box as well as the bounding box of  */
-    /* all `on' points in the outline.  Then, if the two boxes    */
-    /* coincide, we exit immediately.                             */
-
-    vec = outline->points;
-    bbox.xMin = bbox.xMax = cbox.xMin = cbox.xMax = vec->x;
-    bbox.yMin = bbox.yMax = cbox.yMin = cbox.yMax = vec->y;
-    vec++;
-
-    for ( n = 1; n < outline->n_points; n++ )
-    {
-      FT_Pos  x = vec->x;
-      FT_Pos  y = vec->y;
-
-
-      /* update control box */
-      if ( x < cbox.xMin ) cbox.xMin = x;
-      if ( x > cbox.xMax ) cbox.xMax = x;
-
-      if ( y < cbox.yMin ) cbox.yMin = y;
-      if ( y > cbox.yMax ) cbox.yMax = y;
-
-      if ( FT_CURVE_TAG( outline->tags[n] ) == FT_CURVE_TAG_ON )
-      {
-        /* update bbox for `on' points only */
-        if ( x < bbox.xMin ) bbox.xMin = x;
-        if ( x > bbox.xMax ) bbox.xMax = x;
-
-        if ( y < bbox.yMin ) bbox.yMin = y;
-        if ( y > bbox.yMax ) bbox.yMax = y;
-      }
-
-      vec++;
-    }
-
-    /* test two boxes for equality */
-    if ( cbox.xMin < bbox.xMin || cbox.xMax > bbox.xMax ||
-         cbox.yMin < bbox.yMin || cbox.yMax > bbox.yMax )
-    {
-      /* the two boxes are different, now walk over the outline to */
-      /* get the Bezier arc extrema.                               */
-
-      static const FT_Outline_Funcs  bbox_interface =
-      {
-        (FT_Outline_MoveTo_Func) BBox_Move_To,
-        (FT_Outline_LineTo_Func) BBox_Move_To,
-        (FT_Outline_ConicTo_Func)BBox_Conic_To,
-        (FT_Outline_CubicTo_Func)BBox_Cubic_To,
-        0, 0
-      };
-
-      FT_Error   error;
-      TBBox_Rec  user;
-
-
-      user.bbox = bbox;
-
-      error = FT_Outline_Decompose( outline, &bbox_interface, &user );
-      if ( error )
-        return error;
-
-      *abbox = user.bbox;
-    }
-    else
-      *abbox = bbox;
-
-    return FT_Err_Ok;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftbdf.c b/nx-X11/extras/freetype2/src/base/ftbdf.c
deleted file mode 100644
index d2f133db7..000000000
--- a/nx-X11/extras/freetype2/src/base/ftbdf.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftbdf.c                                                                */
-/*                                                                         */
-/*    FreeType API for accessing BDF-specific strings (body).              */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_BDF_H
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_BDF_Charset_ID( FT_Face       face,
-                         const char*  *acharset_encoding,
-                         const char*  *acharset_registry )
-  {
-    FT_Error     error;
-    const char*  encoding = NULL;
-    const char*  registry = NULL;
-
-
-    error = FT_Err_Invalid_Argument;
-
-    if ( face )
-    {
-      FT_Service_BDF  service;
-
-
-      FT_FACE_FIND_SERVICE( face, service, BDF );
-
-      if ( service && service->get_charset_id )
-        error = service->get_charset_id( face, &encoding, &registry );
-    }
-
-    if ( acharset_encoding )
-      *acharset_encoding = encoding;
-
-    if ( acharset_registry )
-      *acharset_registry = registry;
-
-    return error;
-  }
-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_BDF_Property( FT_Face           face,
-                       const char*       prop_name,
-                       BDF_PropertyRec  *aproperty )
-  {
-    FT_Error  error;
-
-
-    error = FT_Err_Invalid_Argument;
-
-    aproperty->type = BDF_PROPERTY_TYPE_NONE;
-
-    if ( face )
-    {
-      FT_Service_BDF  service;
-
-
-      FT_FACE_FIND_SERVICE( face, service, BDF );
-
-      if ( service && service->get_property )
-        error = service->get_property( face, prop_name, aproperty );
-    }
-
-    return  error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftcalc.c b/nx-X11/extras/freetype2/src/base/ftcalc.c
deleted file mode 100644
index f169642e0..000000000
--- a/nx-X11/extras/freetype2/src/base/ftcalc.c
+++ /dev/null
@@ -1,624 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcalc.c                                                               */
-/*                                                                         */
-/*    Arithmetic computations (body).                                      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Support for 1-complement arithmetic has been totally dropped in this  */
-  /* release.  You can still write your own code if you need it.           */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Implementing basic computation routines.                              */
-  /*                                                                       */
-  /* FT_MulDiv(), FT_MulFix(), FT_DivFix(), FT_RoundFix(), FT_CeilFix(),   */
-  /* and FT_FloorFix() are declared in freetype.h.                         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-
-
-/* we need to define a 64-bits data type here */
-
-#ifdef FT_LONG64
-
-  typedef FT_INT64  FT_Int64;
-
-#else
-
-  typedef struct  FT_Int64_
-  {
-    FT_UInt32  lo;
-    FT_UInt32  hi;
-
-  } FT_Int64;
-
-#endif /* FT_LONG64 */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_calc
-
-
-  /* The following three functions are available regardless of whether */
-  /* FT_LONG64 is defined.                                             */
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_RoundFix( FT_Fixed  a )
-  {
-    return ( a >= 0 ) ?   ( a + 0x8000L ) & ~0xFFFFL
-                      : -((-a + 0x8000L ) & ~0xFFFFL );
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_CeilFix( FT_Fixed  a )
-  {
-    return ( a >= 0 ) ?   ( a + 0xFFFFL ) & ~0xFFFFL
-                      : -((-a + 0xFFFFL ) & ~0xFFFFL );
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_FloorFix( FT_Fixed  a )
-  {
-    return ( a >= 0 ) ?   a & ~0xFFFFL
-                      : -((-a) & ~0xFFFFL );
-  }
-
-
-  /* documentation is in ftcalc.h */
-
-  FT_EXPORT_DEF( FT_Int32 )
-  FT_Sqrt32( FT_Int32  x )
-  {
-    FT_ULong  val, root, newroot, mask;
-
-
-    root = 0;
-    mask = 0x40000000L;
-    val  = (FT_ULong)x;
-
-    do
-    {
-      newroot = root + mask;
-      if ( newroot <= val )
-      {
-        val -= newroot;
-        root = newroot + mask;
-      }
-
-      root >>= 1;
-      mask >>= 2;
-
-    } while ( mask != 0 );
-
-    return root;
-  }
-
-
-#ifdef FT_LONG64
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Long )
-  FT_MulDiv( FT_Long  a,
-             FT_Long  b,
-             FT_Long  c )
-  {
-    FT_Int   s;
-    FT_Long  d;
-
-
-    s = 1;
-    if ( a < 0 ) { a = -a; s = -1; }
-    if ( b < 0 ) { b = -b; s = -s; }
-    if ( c < 0 ) { c = -c; s = -s; }
-
-    d = (FT_Long)( c > 0 ? ( (FT_Int64)a * b + ( c >> 1 ) ) / c
-                         : 0x7FFFFFFFL );
-
-    return ( s > 0 ) ? d : -d;
-  }
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  /* documentation is in ftcalc.h */
-
-  FT_BASE_DEF( FT_Long )
-  FT_MulDiv_No_Round( FT_Long  a,
-                      FT_Long  b,
-                      FT_Long  c )
-  {
-    FT_Int   s;
-    FT_Long  d;
-
-
-    s = 1;
-    if ( a < 0 ) { a = -a; s = -1; }
-    if ( b < 0 ) { b = -b; s = -s; }
-    if ( c < 0 ) { c = -c; s = -s; }
-
-    d = (FT_Long)( c > 0 ? (FT_Int64)a * b / c
-                         : 0x7FFFFFFFL );
-
-    return ( s > 0 ) ? d : -d;
-  }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Long )
-  FT_MulFix( FT_Long  a,
-             FT_Long  b )
-  {
-    FT_Int   s = 1;
-    FT_Long  c;
-
-
-    if ( a < 0 ) { a = -a; s = -1; }
-    if ( b < 0 ) { b = -b; s = -s; }
-
-    c = (FT_Long)( ( (FT_Int64)a * b + 0x8000L ) >> 16 );
-    return ( s > 0 ) ? c : -c ;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Long )
-  FT_DivFix( FT_Long  a,
-             FT_Long  b )
-  {
-    FT_Int32   s;
-    FT_UInt32  q;
-
-    s = 1;
-    if ( a < 0 ) { a = -a; s = -1; }
-    if ( b < 0 ) { b = -b; s = -s; }
-
-    if ( b == 0 )
-      /* check for division by 0 */
-      q = 0x7FFFFFFFL;
-    else
-      /* compute result directly */
-      q = (FT_UInt32)( ( ( (FT_Int64)a << 16 ) + ( b >> 1 ) ) / b );
-
-    return ( s < 0 ? -(FT_Long)q : (FT_Long)q );
-  }
-
-
-#else /* FT_LONG64 */
-
-
-  static void
-  ft_multo64( FT_UInt32  x,
-              FT_UInt32  y,
-              FT_Int64  *z )
-  {
-    FT_UInt32  lo1, hi1, lo2, hi2, lo, hi, i1, i2;
-
-
-    lo1 = x & 0x0000FFFFU;  hi1 = x >> 16;
-    lo2 = y & 0x0000FFFFU;  hi2 = y >> 16;
-
-    lo = lo1 * lo2;
-    i1 = lo1 * hi2;
-    i2 = lo2 * hi1;
-    hi = hi1 * hi2;
-
-    /* Check carry overflow of i1 + i2 */
-    i1 += i2;
-    hi += (FT_UInt32)( i1 < i2 ) << 16;
-
-    hi += i1 >> 16;
-    i1  = i1 << 16;
-
-    /* Check carry overflow of i1 + lo */
-    lo += i1;
-    hi += ( lo < i1 );
-
-    z->lo = lo;
-    z->hi = hi;
-  }
-
-
-  static FT_UInt32
-  ft_div64by32( FT_UInt32  hi,
-                FT_UInt32  lo,
-                FT_UInt32  y )
-  {
-    FT_UInt32  r, q;
-    FT_Int     i;
-
-
-    q = 0;
-    r = hi;
-
-    if ( r >= y )
-      return (FT_UInt32)0x7FFFFFFFL;
-
-    i = 32;
-    do
-    {
-      r <<= 1;
-      q <<= 1;
-      r  |= lo >> 31;
-
-      if ( r >= (FT_UInt32)y )
-      {
-        r -= y;
-        q |= 1;
-      }
-      lo <<= 1;
-    } while ( --i );
-
-    return q;
-  }
-
-
-  /* documentation is in ftcalc.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Add64( FT_Int64*  x,
-            FT_Int64*  y,
-            FT_Int64  *z )
-  {
-    register FT_UInt32  lo, hi, max;
-
-
-    max = x->lo > y->lo ? x->lo : y->lo;
-    lo  = x->lo + y->lo;
-    hi  = x->hi + y->hi + ( lo < max );
-
-    z->lo = lo;
-    z->hi = hi;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Long )
-  FT_MulDiv( FT_Long  a,
-             FT_Long  b,
-             FT_Long  c )
-  {
-    long  s;
-
-
-    if ( a == 0 || b == c )
-      return a;
-
-    s  = a; a = FT_ABS( a );
-    s ^= b; b = FT_ABS( b );
-    s ^= c; c = FT_ABS( c );
-
-    if ( a <= 46340L && b <= 46340L && c <= 176095L && c > 0 )
-      a = ( a * b + ( c >> 1 ) ) / c;
-
-    else if ( c > 0 )
-    {
-      FT_Int64  temp, temp2;
-
-
-      ft_multo64( a, b, &temp );
-
-      temp2.hi = 0;
-      temp2.lo = (FT_UInt32)(c >> 1);
-      FT_Add64( &temp, &temp2, &temp );
-      a = ft_div64by32( temp.hi, temp.lo, c );
-    }
-    else
-      a = 0x7FFFFFFFL;
-
-    return ( s < 0 ? -a : a );
-  }
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  FT_BASE_DEF( FT_Long )
-  FT_MulDiv_No_Round( FT_Long  a,
-                      FT_Long  b,
-                      FT_Long  c )
-  {
-    long  s;
-
-
-    if ( a == 0 || b == c )
-      return a;
-
-    s  = a; a = FT_ABS( a );
-    s ^= b; b = FT_ABS( b );
-    s ^= c; c = FT_ABS( c );
-
-    if ( a <= 46340L && b <= 46340L && c > 0 )
-      a = a * b / c;
-
-    else if ( c > 0 )
-    {
-      FT_Int64  temp;
-
-
-      ft_multo64( a, b, &temp );
-      a = ft_div64by32( temp.hi, temp.lo, c );
-    }
-    else
-      a = 0x7FFFFFFFL;
-
-    return ( s < 0 ? -a : a );
-  }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Long )
-  FT_MulFix( FT_Long  a,
-             FT_Long  b )
-  {
-    FT_Long   s;
-    FT_ULong  ua, ub;
-
-
-    if ( a == 0 || b == 0x10000L )
-      return a;
-
-    s  = a; a = FT_ABS(a);
-    s ^= b; b = FT_ABS(b);
-
-    ua = (FT_ULong)a;
-    ub = (FT_ULong)b;
-
-    if ( ua <= 2048 && ub <= 1048576L )
-    {
-      ua = ( ua * ub + 0x8000L ) >> 16;
-    }
-    else
-    {
-      FT_ULong  al = ua & 0xFFFFL;
-
-
-      ua = ( ua >> 16 ) * ub +  al * ( ub >> 16 ) +
-           ( ( al * ( ub & 0xFFFFL ) + 0x8000L ) >> 16 );
-    }
-
-    return ( s < 0 ? -(FT_Long)ua : (FT_Long)ua );
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Long )
-  FT_DivFix( FT_Long  a,
-             FT_Long  b )
-  {
-    FT_Int32   s;
-    FT_UInt32  q;
-
-
-    s  = a; a = FT_ABS(a);
-    s ^= b; b = FT_ABS(b);
-
-    if ( b == 0 )
-    {
-      /* check for division by 0 */
-      q = 0x7FFFFFFFL;
-    }
-    else if ( ( a >> 16 ) == 0 )
-    {
-      /* compute result directly */
-      q = (FT_UInt32)( (a << 16) + (b >> 1) ) / (FT_UInt32)b;
-    }
-    else
-    {
-      /* we need more bits; we have to do it by hand */
-      FT_Int64  temp, temp2;
-
-      temp.hi  = (FT_Int32) (a >> 16);
-      temp.lo  = (FT_UInt32)(a << 16);
-      temp2.hi = 0;
-      temp2.lo = (FT_UInt32)( b >> 1 );
-      FT_Add64( &temp, &temp2, &temp );
-      q = ft_div64by32( temp.hi, temp.lo, b );
-    }
-
-    return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
-  }
-
-
-  /* documentation is in ftcalc.h */
-
-  FT_EXPORT_DEF( void )
-  FT_MulTo64( FT_Int32   x,
-              FT_Int32   y,
-              FT_Int64  *z )
-  {
-    FT_Int32  s;
-
-
-    s  = x; x = FT_ABS( x );
-    s ^= y; y = FT_ABS( y );
-
-    ft_multo64( x, y, z );
-
-    if ( s < 0 )
-    {
-      z->lo = (FT_UInt32)-(FT_Int32)z->lo;
-      z->hi = ~z->hi + !( z->lo );
-    }
-  }
-
-
-  /* documentation is in ftcalc.h */
-
-  /* apparently, the second version of this code is not compiled correctly */
-  /* on Mac machines with the MPW C compiler..  tsss, tsss, tss...         */
-
-#if 1
-
-  FT_EXPORT_DEF( FT_Int32 )
-  FT_Div64by32( FT_Int64*  x,
-                FT_Int32   y )
-  {
-    FT_Int32   s;
-    FT_UInt32  q, r, i, lo;
-
-
-    s  = x->hi;
-    if ( s < 0 )
-    {
-      x->lo = (FT_UInt32)-(FT_Int32)x->lo;
-      x->hi = ~x->hi + !x->lo;
-    }
-    s ^= y;  y = FT_ABS( y );
-
-    /* Shortcut */
-    if ( x->hi == 0 )
-    {
-      if ( y > 0 )
-        q = x->lo / y;
-      else
-        q = 0x7FFFFFFFL;
-
-      return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
-    }
-
-    r  = x->hi;
-    lo = x->lo;
-
-    if ( r >= (FT_UInt32)y ) /* we know y is to be treated as unsigned here */
-      return ( s < 0 ? 0x80000001UL : 0x7FFFFFFFUL );
-                             /* Return Max/Min Int32 if division overflow. */
-                             /* This includes division by zero! */
-    q = 0;
-    for ( i = 0; i < 32; i++ )
-    {
-      r <<= 1;
-      q <<= 1;
-      r  |= lo >> 31;
-
-      if ( r >= (FT_UInt32)y )
-      {
-        r -= y;
-        q |= 1;
-      }
-      lo <<= 1;
-    }
-
-    return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
-  }
-
-#else /* 0 */
-
-  FT_EXPORT_DEF( FT_Int32 )
-  FT_Div64by32( FT_Int64*  x,
-                FT_Int32   y )
-  {
-    FT_Int32   s;
-    FT_UInt32  q;
-
-
-    s  = x->hi;
-    if ( s < 0 )
-    {
-      x->lo = (FT_UInt32)-(FT_Int32)x->lo;
-      x->hi = ~x->hi + !x->lo;
-    }
-    s ^= y;  y = FT_ABS( y );
-
-    /* Shortcut */
-    if ( x->hi == 0 )
-    {
-      if ( y > 0 )
-        q = ( x->lo + ( y >> 1 ) ) / y;
-      else
-        q = 0x7FFFFFFFL;
-
-      return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
-    }
-
-    q = ft_div64by32( x->hi, x->lo, y );
-
-    return ( s < 0 ? -(FT_Int32)q : (FT_Int32)q );
-  }
-
-#endif /* 0 */
-
-
-#endif /* FT_LONG64 */
-
-
-  /* a not-so-fast but working 16.16 fixed point square root function */
-
-  FT_EXPORT_DEF( FT_Int32 )
-  FT_SqrtFixed( FT_Int32  x )
-  {
-    FT_UInt32  root, rem_hi, rem_lo, test_div;
-    FT_Int     count;
-
-
-    root = 0;
-
-    if ( x > 0 )
-    {
-      rem_hi = 0;
-      rem_lo = x;
-      count  = 24;
-      do
-      {
-        rem_hi   = ( rem_hi << 2 ) | ( rem_lo >> 30 );
-        rem_lo <<= 2;
-        root   <<= 1;
-        test_div = ( root << 1 ) + 1;
-
-        if ( rem_hi >= test_div )
-        {
-          rem_hi -= test_div;
-          root   += 1;
-        }
-      } while ( --count );
-    }
-
-    return (FT_Int32)root;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftdbgmem.c b/nx-X11/extras/freetype2/src/base/ftdbgmem.c
deleted file mode 100644
index 61227b64a..000000000
--- a/nx-X11/extras/freetype2/src/base/ftdbgmem.c
+++ /dev/null
@@ -1,763 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftdbgmem.c                                                             */
-/*                                                                         */
-/*    Memory debugger (body).                                              */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003, 2004 by                                    */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_SYSTEM_H
-#include FT_ERRORS_H
-#include FT_TYPES_H
-
-
-#ifdef FT_DEBUG_MEMORY
-
-
-#include <stdio.h>
-#include <stdlib.h>
-
-
-  typedef struct FT_MemNodeRec_*   FT_MemNode;
-  typedef struct FT_MemTableRec_*  FT_MemTable;
-
-#define FT_MEM_VAL( addr )  ((FT_ULong)(FT_Pointer)( addr ))
-
-  typedef struct  FT_MemNodeRec_
-  {
-    FT_Byte*     address;
-    FT_Long      size;     /* < 0 if the block was freed */
-
-    const char*  alloc_file_name;
-    FT_Long      alloc_line_no;
-
-    const char*  free_file_name;
-    FT_Long      free_line_no;
-
-    FT_MemNode   link;
-
-  } FT_MemNodeRec;
-
-
-  typedef struct  FT_MemTableRec_
-  {
-    FT_ULong         size;
-    FT_ULong         nodes;
-    FT_MemNode*      buckets;
-
-    FT_ULong         alloc_total;
-    FT_ULong         alloc_current;
-    FT_ULong         alloc_max;
-    FT_ULong         alloc_count;
-
-    FT_Bool          bound_total;    
-    FT_ULong         alloc_total_max;
-    
-    FT_Bool          bound_count;
-    FT_ULong         alloc_count_max;
-
-    const char*      file_name;
-    FT_Long          line_no;
-
-    FT_Memory        memory;
-    FT_Pointer       memory_user;
-    FT_Alloc_Func    alloc;
-    FT_Free_Func     free;
-    FT_Realloc_Func  realloc;
-
-  } FT_MemTableRec;
-
-
-#define FT_MEM_SIZE_MIN  7
-#define FT_MEM_SIZE_MAX  13845163
-
-#define FT_FILENAME( x )  ((x) ? (x) : "unknown file")
-
-
-  static const FT_UInt  ft_mem_primes[] =
-  {
-    7,
-    11,
-    19,
-    37,
-    73,
-    109,
-    163,
-    251,
-    367,
-    557,
-    823,
-    1237,
-    1861,
-    2777,
-    4177,
-    6247,
-    9371,
-    14057,
-    21089,
-    31627,
-    47431,
-    71143,
-    106721,
-    160073,
-    240101,
-    360163,
-    540217,
-    810343,
-    1215497,
-    1823231,
-    2734867,
-    4102283,
-    6153409,
-    9230113,
-    13845163,
-  };
-
-
-
-  extern void
-  ft_mem_debug_panic( const char*  fmt, ... )
-  {
-    va_list  ap;
-
-
-    printf( "FreeType.Debug: " );
-
-    va_start( ap, fmt );
-    vprintf( fmt, ap );
-    va_end( ap );
-
-    printf( "\n" );
-    exit( EXIT_FAILURE );
-  }
-
-
-  static FT_ULong
-  ft_mem_closest_prime( FT_ULong  num )
-  {
-    FT_UInt  i;
-
-
-    for ( i = 0;
-          i < sizeof ( ft_mem_primes ) / sizeof ( ft_mem_primes[0] ); i++ )
-      if ( ft_mem_primes[i] > num )
-        return ft_mem_primes[i];
-
-    return FT_MEM_SIZE_MAX;
-  }
-
-
-  static FT_Pointer
-  ft_mem_table_alloc( FT_MemTable  table,
-                      FT_Long      size )
-  {
-    FT_Memory   memory = table->memory;
-    FT_Pointer  block;
-
-
-    memory->user = table->memory_user;
-    block = table->alloc( memory, size );
-    memory->user = table;
-
-   return block;
-  }
-
-
-  static void
-  ft_mem_table_free( FT_MemTable  table,
-                     FT_Pointer   block )
-  {
-    FT_Memory  memory = table->memory;
-
-
-    memory->user = table->memory_user;
-    table->free( memory, block );
-    memory->user = table;
-  }
-
-
-  static void
-  ft_mem_table_resize( FT_MemTable  table )
-  {
-    FT_ULong  new_size;
-
-
-    new_size = ft_mem_closest_prime( table->nodes );
-    if ( new_size != table->size )
-    {
-      FT_MemNode*  new_buckets ;
-      FT_ULong     i;
-
-
-      new_buckets = (FT_MemNode *)
-                    ft_mem_table_alloc( table,
-                                        new_size * sizeof ( FT_MemNode ) );
-      if ( new_buckets == NULL )
-        return;
-
-      FT_MEM_ZERO( new_buckets, sizeof ( FT_MemNode ) * new_size );
-
-      for ( i = 0; i < table->size; i++ )
-      {
-        FT_MemNode  node, next, *pnode;
-        FT_ULong    hash;
-
-
-        node = table->buckets[i];
-        while ( node )
-        {
-          next  = node->link;
-          hash  = FT_MEM_VAL( node->address ) % new_size;
-          pnode = new_buckets + hash;
-
-          node->link = pnode[0];
-          pnode[0]   = node;
-
-          node = next;
-        }
-      }
-
-      if ( table->buckets )
-        ft_mem_table_free( table, table->buckets );
-
-      table->buckets = new_buckets;
-      table->size    = new_size;
-    }
-  }
-
-
-  static FT_MemTable
-  ft_mem_table_new( FT_Memory  memory )
-  {
-    FT_MemTable  table;
-
-
-    table = (FT_MemTable)memory->alloc( memory, sizeof ( *table ) );
-    if ( table == NULL )
-      goto Exit;
-
-    FT_MEM_ZERO( table, sizeof ( *table ) );
-
-    table->size  = FT_MEM_SIZE_MIN;
-    table->nodes = 0;
-
-    table->memory = memory;
-
-    table->memory_user = memory->user;
-
-    table->alloc   = memory->alloc;
-    table->realloc = memory->realloc;
-    table->free    = memory->free;
-
-    table->buckets = (FT_MemNode *)
-                     memory->alloc( memory,
-                                    table->size * sizeof ( FT_MemNode ) );
-    if ( table->buckets )
-      FT_MEM_ZERO( table->buckets, sizeof ( FT_MemNode ) * table->size );
-    else
-    {
-      memory->free( memory, table );
-      table = NULL;
-    }
-
-  Exit:
-    return table;
-  }
-
-
-  static void
-  ft_mem_table_destroy( FT_MemTable  table )
-  {
-    FT_ULong  i;
-
-
-    if ( table )
-    {
-      FT_Long    leak_count = 0;
-      FT_ULong   leaks = 0;
-
-
-      for ( i = 0; i < table->size; i++ )
-      {
-        FT_MemNode  *pnode = table->buckets + i, next, node = *pnode;
-
-
-        while ( node )
-        {
-          next       = node->link;
-          node->link = 0;
-
-          if ( node->size > 0 )
-          {
-            printf(
-              "leaked memory block at address %p, size %8ld in (%s:%ld)\n",
-              node->address, node->size,
-              FT_FILENAME( node->alloc_file_name ),
-              node->alloc_line_no );
-
-            leak_count++;
-            leaks += node->size;
-
-            ft_mem_table_free( table, node->address );
-          }
-
-          node->address = NULL;
-          node->size    = 0;
-
-          free( node );
-          node = next;
-        }
-        table->buckets[i] = 0;
-      }
-      ft_mem_table_free( table, table->buckets );
-      table->buckets = NULL;
-
-      table->size   = 0;
-      table->nodes  = 0;
-
-      printf(
-        "FreeType: total memory allocations = %ld\n", table->alloc_total );
-      printf(
-        "FreeType: maximum memory footprint = %ld\n", table->alloc_max );
-
-      free( table );
-
-      if ( leak_count > 0 )
-        ft_mem_debug_panic(
-          "FreeType: %ld bytes of memory leaked in %ld blocks\n",
-          leaks, leak_count );
-      printf( "FreeType: No memory leaks detected!\n" );
-    }
-  }
-
-
-  static FT_MemNode*
-  ft_mem_table_get_nodep( FT_MemTable  table,
-                          FT_Byte*     address )
-  {
-    FT_ULong     hash;
-    FT_MemNode  *pnode, node;
-
-
-    hash  = FT_MEM_VAL( address );
-    pnode = table->buckets + ( hash % table->size );
-
-    for (;;)
-    {
-      node = pnode[0];
-      if ( !node )
-        break;
-
-      if ( node->address == address )
-        break;
-
-      pnode = &node->link;
-    }
-    return pnode;
-  }
-
-
-  static void
-  ft_mem_table_set( FT_MemTable  table,
-                    FT_Byte*     address,
-                    FT_ULong     size )
-  {
-    FT_MemNode  *pnode, node;
-
-
-    if ( table )
-    {
-      pnode = ft_mem_table_get_nodep( table, address );
-      node  = *pnode;
-      if ( node )
-      {
-        if ( node->size < 0 )
-        {
-          /* this block was already freed.  This means that our memory is */
-          /* now completely corrupted!                                    */
-          ft_mem_debug_panic(
-            "memory heap corrupted (allocating freed block)" );
-        }
-        else
-        {
-          /* this block was already allocated.  This means that our memory */
-          /* is also corrupted!                                            */
-          ft_mem_debug_panic(
-            "memory heap corrupted (re-allocating allocated block)" );
-        }
-      }
-
-      /* we need to create a new node in this table */
-      node = (FT_MemNode)ft_mem_table_alloc( table, sizeof ( *node ) );
-      if ( node == NULL )
-        ft_mem_debug_panic( "not enough memory to run memory tests" );
-
-      node->address = address;
-      node->size    = size;
-
-      node->alloc_file_name = table->file_name;
-      node->alloc_line_no   = table->line_no;
-
-      node->free_file_name = NULL;
-      node->free_line_no   = 0;
-
-      node->link = pnode[0];
-
-      pnode[0] = node;
-      table->nodes++;
-
-      table->alloc_total   += size;
-      table->alloc_current += size;
-      if ( table->alloc_current > table->alloc_max )
-        table->alloc_max = table->alloc_current;
-
-      if ( table->nodes * 3 < table->size  ||
-           table->size  * 3 < table->nodes )
-        ft_mem_table_resize( table );
-    }
-  }
-
-
-  static void
-  ft_mem_table_remove( FT_MemTable  table,
-                       FT_Byte*     address )
-  {
-    if ( table )
-    {
-      FT_MemNode  *pnode, node;
-
-
-      pnode = ft_mem_table_get_nodep( table, address );
-      node  = *pnode;
-      if ( node )
-      {
-        if ( node->size < 0 )
-          ft_mem_debug_panic(
-            "freeing memory block at %p more than once at (%s:%ld)\n"
-            "block allocated at (%s:%ld) and released at (%s:%ld)",
-            address,
-            FT_FILENAME( table->file_name ), table->line_no,
-            FT_FILENAME( node->alloc_file_name ), node->alloc_line_no,
-            FT_FILENAME( node->free_file_name ), node->free_line_no );
-
-        /* we simply invert the node's size to indicate that the node */
-        /* was freed.  We also change its contents.                   */
-        FT_MEM_SET( address, 0xF3, node->size );
-
-        table->alloc_current -= node->size;
-        node->size            = -node->size;
-        node->free_file_name  = table->file_name;
-        node->free_line_no    = table->line_no;
-      }
-      else
-        ft_mem_debug_panic(
-          "trying to free unknown block at %p in (%s:%ld)\n",
-          address,
-          FT_FILENAME( table->file_name ), table->line_no );
-    }
-  }
-
-
-  extern FT_Pointer
-  ft_mem_debug_alloc( FT_Memory  memory,
-                      FT_Long    size )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-    FT_Byte*     block;
-
-
-    if ( size <= 0 )
-      ft_mem_debug_panic( "negative block size allocation (%ld)", size );
-
-    /* return NULL if the maximum number of allocations was reached */
-    if ( table->bound_count &&
-         table->alloc_count >= table->alloc_count_max )
-      return NULL;
-
-    /* return NULL if this allocation would overflow the maximum heap size */
-    if ( table->bound_total && 
-         table->alloc_current + (FT_ULong)size > table->alloc_total_max )
-      return NULL;         
-
-    block = (FT_Byte *)ft_mem_table_alloc( table, size );
-    if ( block )
-      ft_mem_table_set( table, block, (FT_ULong)size );
-
-    table->alloc_count++;
-
-    table->file_name = NULL;
-    table->line_no   = 0;
-
-    return (FT_Pointer) block;
-  }
-
-
-  extern void
-  ft_mem_debug_free( FT_Memory   memory,
-                     FT_Pointer  block )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( block == NULL )
-      ft_mem_debug_panic( "trying to free NULL in (%s:%ld)",
-                          FT_FILENAME( table->file_name ),
-                          table->line_no );
-
-    ft_mem_table_remove( table, (FT_Byte*)block );
-
-    /* we never really free the block */
-    table->file_name = NULL;
-    table->line_no   = 0;
-  }
-
-
-  extern FT_Pointer
-  ft_mem_debug_realloc( FT_Memory   memory,
-                        FT_Long     cur_size,
-                        FT_Long     new_size,
-                        FT_Pointer  block )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-    FT_MemNode   node, *pnode;
-    FT_Pointer   new_block;
-
-    const char*  file_name = FT_FILENAME( table->file_name );
-    FT_Long      line_no   = table->line_no;
-
-
-    /* the following is valid according to ANSI C */
-#if 0
-    if ( block == NULL || cur_size == 0 )
-      ft_mem_debug_panic( "trying to reallocate NULL in (%s:%ld)",
-                          file_name, line_no );
-#endif
-
-    /* while the following is allowed in ANSI C also, we abort since */
-    /* such code shouldn't be in FreeType...                         */
-    if ( new_size <= 0 )
-      ft_mem_debug_panic(
-        "trying to reallocate %p to size 0 (current is %ld) in (%s:%ld)",
-        block, cur_size, file_name, line_no );
-
-    /* check 'cur_size' value */
-    pnode = ft_mem_table_get_nodep( table, (FT_Byte*)block );
-    node  = *pnode;
-    if ( !node )
-      ft_mem_debug_panic(
-        "trying to reallocate unknown block at %p in (%s:%ld)",
-        block, file_name, line_no );
-
-    if ( node->size <= 0 )
-      ft_mem_debug_panic(
-        "trying to reallocate freed block at %p in (%s:%ld)",
-        block, file_name, line_no );
-
-    if ( node->size != cur_size )
-      ft_mem_debug_panic( "invalid ft_realloc request for %p. cur_size is "
-                          "%ld instead of %ld in (%s:%ld)",
-                          block, cur_size, node->size, file_name, line_no );
-
-    new_block = ft_mem_debug_alloc( memory, new_size );
-    if ( new_block == NULL )
-      return NULL;
-
-    ft_memcpy( new_block, block, cur_size < new_size ? cur_size : new_size );
-
-    table->file_name = file_name;
-    table->line_no   = line_no;
-
-    ft_mem_debug_free( memory, (FT_Byte*)block );
-
-    return new_block;
-  }
-
-
-  extern FT_Int
-  ft_mem_debug_init( FT_Memory  memory )
-  {
-    FT_MemTable  table;
-    FT_Int       result = 0;
-
-
-    if ( getenv( "FT2_DEBUG_MEMORY" ) )
-    {
-      table = ft_mem_table_new( memory );
-      if ( table )
-      {
-        const char*  p;
-        
-        memory->user    = table;
-        memory->alloc   = ft_mem_debug_alloc;
-        memory->realloc = ft_mem_debug_realloc;
-        memory->free    = ft_mem_debug_free;
-        
-        p = getenv( "FT2_ALLOC_TOTAL_MAX" );
-        if ( p != NULL )
-        {
-          FT_Long   total_max = ft_atol(p);
-          
-          if ( total_max > 0 )
-          {
-            table->bound_total     = 1;
-            table->alloc_total_max = (FT_ULong) total_max;
-          }
-        }
-        
-        p = getenv( "FT2_ALLOC_COUNT_MAX" );
-        if ( p != NULL )
-        {
-          FT_Long  total_count = ft_atol(p);
-          
-          if ( total_count > 0 )
-          {
-            table->bound_count     = 1;
-            table->alloc_count_max = (FT_ULong) total_count;
-          }
-        }
-
-        result = 1;
-      }
-    }
-    return result;
-  }
-
-
-  extern void
-  ft_mem_debug_done( FT_Memory  memory )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( table )
-    {
-      memory->free    = table->free;
-      memory->realloc = table->realloc;
-      memory->alloc   = table->alloc;
-
-      ft_mem_table_destroy( table );
-      memory->user = NULL;
-    }
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Alloc_Debug( FT_Memory    memory,
-                  FT_Long      size,
-                  void*       *P,
-                  const char*  file_name,
-                  FT_Long      line_no )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( table )
-    {
-      table->file_name = file_name;
-      table->line_no   = line_no;
-    }
-    return FT_Alloc( memory, size, P );
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Realloc_Debug( FT_Memory    memory,
-                    FT_Long      current,
-                    FT_Long      size,
-                    void*       *P,
-                    const char*  file_name,
-                    FT_Long      line_no )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( table )
-    {
-      table->file_name = file_name;
-      table->line_no   = line_no;
-    }
-    return FT_Realloc( memory, current, size, P );
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_QAlloc_Debug( FT_Memory    memory,
-                   FT_Long      size,
-                   void*       *P,
-                   const char*  file_name,
-                   FT_Long      line_no )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( table )
-    {
-      table->file_name = file_name;
-      table->line_no   = line_no;
-    }
-
-    return FT_QAlloc( memory, size, P );
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_QRealloc_Debug( FT_Memory    memory,
-                     FT_Long      current,
-                     FT_Long      size,
-                     void*       *P,
-                     const char*  file_name,
-                     FT_Long      line_no )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( table )
-    {
-      table->file_name = file_name;
-      table->line_no   = line_no;
-    }
-    return FT_QRealloc( memory, current, size, P );
-  }
-
-  
-  FT_BASE_DEF( void )
-  FT_Free_Debug( FT_Memory    memory,
-                 FT_Pointer   block,
-                 const char*  file_name,
-                 FT_Long      line_no )
-  {
-    FT_MemTable  table = (FT_MemTable)memory->user;
-
-
-    if ( table )
-    {
-      table->file_name = file_name;
-      table->line_no   = line_no;
-    }
-    FT_Free( memory, (void **)block );
-  }
-
-
-#else  /* !FT_DEBUG_MEMORY */
-
-  /* ANSI C doesn't like empty source files */
-  const FT_Byte  _debug_mem_dummy = 0;
-
-#endif /* !FT_DEBUG_MEMORY */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftdebug.c b/nx-X11/extras/freetype2/src/base/ftdebug.c
deleted file mode 100644
index a6c18412b..000000000
--- a/nx-X11/extras/freetype2/src/base/ftdebug.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftdebug.c                                                              */
-/*                                                                         */
-/*    Debugging and logging component (body).                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This component contains various macros and functions used to ease the */
-  /* debugging of the FreeType engine.  Its main purpose is in assertion   */
-  /* checking, tracing, and error detection.                               */
-  /*                                                                       */
-  /* There are now three debugging modes:                                  */
-  /*                                                                       */
-  /* - trace mode                                                          */
-  /*                                                                       */
-  /*   Error and trace messages are sent to the log file (which can be the */
-  /*   standard error output).                                             */
-  /*                                                                       */
-  /* - error mode                                                          */
-  /*                                                                       */
-  /*   Only error messages are generated.                                  */
-  /*                                                                       */
-  /* - release mode:                                                       */
-  /*                                                                       */
-  /*   No error message is sent or generated.  The code is free from any   */
-  /*   debugging parts.                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
-
-
-#if defined( FT_DEBUG_LEVEL_ERROR )
-
-  FT_EXPORT_DEF( void )
-  FT_Message( const char*  fmt, ... )
-  {
-    va_list  ap;
-
-
-    va_start( ap, fmt );
-    vprintf( fmt, ap );
-    va_end( ap );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Panic( const char*  fmt, ... )
-  {
-    va_list  ap;
-
-
-    va_start( ap, fmt );
-    vprintf( fmt, ap );
-    va_end( ap );
-
-    exit( EXIT_FAILURE );
-  }
-
-#endif /* FT_DEBUG_LEVEL_ERROR */
-
-
-
-#ifdef FT_DEBUG_LEVEL_TRACE
-
-  /* array of trace levels, initialized to 0 */
-  int  ft_trace_levels[trace_count];
-
-
-  /* define array of trace toggle names */
-#define FT_TRACE_DEF( x )  #x ,
-
-  static const char*  ft_trace_toggles[trace_count + 1] =
-  {
-#include FT_INTERNAL_TRACE_H
-    NULL
-  };
-
-#undef FT_TRACE_DEF
-
-
-  /* documentation is in ftdebug.h */
-
-  FT_EXPORT_DEF( FT_Int )
-  FT_Trace_Get_Count( void )
-  {
-    return trace_count;
-  }
-
-
-  /* documentation is in ftdebug.h */
-
-  FT_EXPORT_DEF( const char * )
-  FT_Trace_Get_Name( FT_Int  idx )
-  {
-    int  max = FT_Trace_Get_Count();
-
-
-    if ( idx < max )
-      return ft_trace_toggles[idx];
-    else
-      return NULL;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Initialize the tracing sub-system.  This is done by retrieving the    */
-  /* value of the `FT2_DEBUG' environment variable.  It must be a list of  */
-  /* toggles, separated by spaces, `;', or `,'.  Example:                  */
-  /*                                                                       */
-  /*    export FT2_DEBUG="any:3 memory:6 stream:5"                         */
-  /*                                                                       */
-  /* This requests that all levels be set to 3, except the trace level for */
-  /* the memory and stream components which are set to 6 and 5,            */
-  /* respectively.                                                         */
-  /*                                                                       */
-  /* See the file <include/freetype/internal/fttrace.h> for details of the */
-  /* available toggle names.                                               */
-  /*                                                                       */
-  /* The level must be between 0 and 6; 0 means quiet (except for serious  */
-  /* runtime errors), and 6 means _very_ verbose.                          */
-  /*                                                                       */
-  FT_BASE_DEF( void )
-  ft_debug_init( void )
-  {
-    const char*  ft2_debug = getenv( "FT2_DEBUG" );
-
-
-    if ( ft2_debug )
-    {
-      const char*  p = ft2_debug;
-      const char*  q;
-
-
-      for ( ; *p; p++ )
-      {
-        /* skip leading whitespace and separators */
-        if ( *p == ' ' || *p == '\t' || *p == ',' || *p == ';' || *p == '=' )
-          continue;
-
-        /* read toggle name, followed by ':' */
-        q = p;
-        while ( *p && *p != ':' )
-          p++;
-
-        if ( *p == ':' && p > q )
-        {
-          FT_Int  n, i, len = (FT_Int)( p - q );
-          FT_Int  level = -1, found = -1;
-
-
-          for ( n = 0; n < trace_count; n++ )
-          {
-            const char*  toggle = ft_trace_toggles[n];
-
-
-            for ( i = 0; i < len; i++ )
-            {
-              if ( toggle[i] != q[i] )
-                break;
-            }
-
-            if ( i == len && toggle[i] == 0 )
-            {
-              found = n;
-              break;
-            }
-          }
-
-          /* read level */
-          p++;
-          if ( *p )
-          {
-            level = *p++ - '0';
-            if ( level < 0 || level > 6 )
-              level = -1;
-          }
-
-          if ( found >= 0 && level >= 0 )
-          {
-            if ( found == trace_any )
-            {
-              /* special case for `any' */
-              for ( n = 0; n < trace_count; n++ )
-                ft_trace_levels[n] = level;
-            }
-            else
-              ft_trace_levels[found] = level;
-          }
-        }
-      }
-    }
-  }
-
-
-#else  /* !FT_DEBUG_LEVEL_TRACE */
-
-
-  FT_BASE_DEF( void )
-  ft_debug_init( void )
-  {
-    /* nothing */
-  }
-
-
-  FT_EXPORT_DEF( FT_Int )
-  FT_Trace_Get_Count( void )
-  {
-    return 0;
-  }
-
-
-  FT_EXPORT_DEF( const char * )
-  FT_Trace_Get_Name( FT_Int  idx )
-  {
-    FT_UNUSED( idx );
-
-    return NULL;
-  }
-
-
-#endif /* !FT_DEBUG_LEVEL_TRACE */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftgloadr.c b/nx-X11/extras/freetype2/src/base/ftgloadr.c
deleted file mode 100644
index 94a070673..000000000
--- a/nx-X11/extras/freetype2/src/base/ftgloadr.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftgloadr.c                                                             */
-/*                                                                         */
-/*    The FreeType glyph loader (body).                                    */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg                       */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_GLYPH_LOADER_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_OBJECTS_H
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_gloader
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                                                               *****/
-  /*****                    G L Y P H   L O A D E R                    *****/
-  /*****                                                               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The glyph loader is a simple object which is used to load a set of    */
-  /* glyphs easily.  It is critical for the correct loading of composites. */
-  /*                                                                       */
-  /* Ideally, one can see it as a stack of abstract `glyph' objects.       */
-  /*                                                                       */
-  /*   loader.base     Is really the bottom of the stack.  It describes a  */
-  /*                   single glyph image made of the juxtaposition of     */
-  /*                   several glyphs (those `in the stack').              */
-  /*                                                                       */
-  /*   loader.current  Describes the top of the stack, on which a new      */
-  /*                   glyph can be loaded.                                */
-  /*                                                                       */
-  /*   Rewind          Clears the stack.                                   */
-  /*   Prepare         Set up `loader.current' for addition of a new glyph */
-  /*                   image.                                              */
-  /*   Add             Add the `current' glyph image to the `base' one,    */
-  /*                   and prepare for another one.                        */
-  /*                                                                       */
-  /* The glyph loader is now a base object.  Each driver used to           */
-  /* re-implement it in one way or the other, which wasted code and        */
-  /* energy.                                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* create a new glyph loader */
-  FT_BASE_DEF( FT_Error )
-  FT_GlyphLoader_New( FT_Memory        memory,
-                      FT_GlyphLoader  *aloader )
-  {
-    FT_GlyphLoader  loader;
-    FT_Error        error;
-
-
-    if ( !FT_NEW( loader ) )
-    {
-      loader->memory = memory;
-      *aloader       = loader;
-    }
-    return error;
-  }
-
-
-  /* rewind the glyph loader - reset counters to 0 */
-  FT_BASE_DEF( void )
-  FT_GlyphLoader_Rewind( FT_GlyphLoader  loader )
-  {
-    FT_GlyphLoad  base    = &loader->base;
-    FT_GlyphLoad  current = &loader->current;
-
-
-    base->outline.n_points   = 0;
-    base->outline.n_contours = 0;
-    base->num_subglyphs      = 0;
-
-    *current = *base;
-  }
-
-
-  /* reset the glyph loader, frees all allocated tables */
-  /* and starts from zero                               */
-  FT_BASE_DEF( void )
-  FT_GlyphLoader_Reset( FT_GlyphLoader  loader )
-  {
-    FT_Memory memory = loader->memory;
-
-
-    FT_FREE( loader->base.outline.points );
-    FT_FREE( loader->base.outline.tags );
-    FT_FREE( loader->base.outline.contours );
-    FT_FREE( loader->base.extra_points );
-    FT_FREE( loader->base.subglyphs );
-
-    loader->max_points    = 0;
-    loader->max_contours  = 0;
-    loader->max_subglyphs = 0;
-
-    FT_GlyphLoader_Rewind( loader );
-  }
-
-
-  /* delete a glyph loader */
-  FT_BASE_DEF( void )
-  FT_GlyphLoader_Done( FT_GlyphLoader  loader )
-  {
-    if ( loader )
-    {
-      FT_Memory memory = loader->memory;
-
-
-      FT_GlyphLoader_Reset( loader );
-      FT_FREE( loader );
-    }
-  }
-
-
-  /* re-adjust the `current' outline fields */
-  static void
-  FT_GlyphLoader_Adjust_Points( FT_GlyphLoader  loader )
-  {
-    FT_Outline*  base    = &loader->base.outline;
-    FT_Outline*  current = &loader->current.outline;
-
-
-    current->points   = base->points   + base->n_points;
-    current->tags     = base->tags     + base->n_points;
-    current->contours = base->contours + base->n_contours;
-
-    /* handle extra points table - if any */
-    if ( loader->use_extra )
-      loader->current.extra_points =
-        loader->base.extra_points + base->n_points;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_GlyphLoader_CreateExtra( FT_GlyphLoader  loader )
-  {
-    FT_Error   error;
-    FT_Memory  memory = loader->memory;
-
-
-    if ( !FT_NEW_ARRAY( loader->base.extra_points, loader->max_points ) )
-    {
-      loader->use_extra = 1;
-      FT_GlyphLoader_Adjust_Points( loader );
-    }
-    return error;
-  }
-
-
-  /* re-adjust the `current' subglyphs field */
-  static void
-  FT_GlyphLoader_Adjust_Subglyphs( FT_GlyphLoader  loader )
-  {
-    FT_GlyphLoad  base    = &loader->base;
-    FT_GlyphLoad  current = &loader->current;
-
-
-    current->subglyphs = base->subglyphs + base->num_subglyphs;
-  }
-
-
-  /* Ensure that we can add `n_points' and `n_contours' to our glyph.      */
-  /* This function reallocates its outline tables if necessary.  Note that */
-  /* it DOESN'T change the number of points within the loader!             */
-  /*                                                                       */
-  FT_BASE_DEF( FT_Error )
-  FT_GlyphLoader_CheckPoints( FT_GlyphLoader  loader,
-                              FT_UInt         n_points,
-                              FT_UInt         n_contours )
-  {
-    FT_Memory    memory  = loader->memory;
-    FT_Error     error   = FT_Err_Ok;
-    FT_Outline*  base    = &loader->base.outline;
-    FT_Outline*  current = &loader->current.outline;
-    FT_Bool      adjust  = 1;
-
-    FT_UInt      new_max, old_max;
-
-
-    /* check points & tags */
-    new_max = base->n_points + current->n_points + n_points;
-    old_max = loader->max_points;
-
-    if ( new_max > old_max )
-    {
-      new_max = FT_PAD_CEIL( new_max, 8 );
-
-      if ( FT_RENEW_ARRAY( base->points, old_max, new_max ) ||
-           FT_RENEW_ARRAY( base->tags,   old_max, new_max ) )
-        goto Exit;
-
-      if ( loader->use_extra &&
-           FT_RENEW_ARRAY( loader->base.extra_points, old_max, new_max ) )
-        goto Exit;
-
-      adjust = 1;
-      loader->max_points = new_max;
-    }
-
-    /* check contours */
-    old_max = loader->max_contours;
-    new_max = base->n_contours + current->n_contours +
-              n_contours;
-    if ( new_max > old_max )
-    {
-      new_max = FT_PAD_CEIL( new_max, 4 );
-      if ( FT_RENEW_ARRAY( base->contours, old_max, new_max ) )
-        goto Exit;
-
-      adjust = 1;
-      loader->max_contours = new_max;
-    }
-
-    if ( adjust )
-      FT_GlyphLoader_Adjust_Points( loader );
-
-  Exit:
-    return error;
-  }
-
-
-  /* Ensure that we can add `n_subglyphs' to our glyph. this function */
-  /* reallocates its subglyphs table if necessary.  Note that it DOES */
-  /* NOT change the number of subglyphs within the loader!            */
-  /*                                                                  */
-  FT_BASE_DEF( FT_Error )
-  FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader  loader,
-                                 FT_UInt         n_subs )
-  {
-    FT_Memory     memory = loader->memory;
-    FT_Error      error  = FT_Err_Ok;
-    FT_UInt       new_max, old_max;
-
-    FT_GlyphLoad  base    = &loader->base;
-    FT_GlyphLoad  current = &loader->current;
-
-
-    new_max = base->num_subglyphs + current->num_subglyphs + n_subs;
-    old_max = loader->max_subglyphs;
-    if ( new_max > old_max )
-    {
-      new_max = FT_PAD_CEIL( new_max, 2 );
-      if ( FT_RENEW_ARRAY( base->subglyphs, old_max, new_max ) )
-        goto Exit;
-
-      loader->max_subglyphs = new_max;
-
-      FT_GlyphLoader_Adjust_Subglyphs( loader );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* prepare loader for the addition of a new glyph on top of the base one */
-  FT_BASE_DEF( void )
-  FT_GlyphLoader_Prepare( FT_GlyphLoader  loader )
-  {
-    FT_GlyphLoad  current = &loader->current;
-
-
-    current->outline.n_points   = 0;
-    current->outline.n_contours = 0;
-    current->num_subglyphs      = 0;
-
-    FT_GlyphLoader_Adjust_Points   ( loader );
-    FT_GlyphLoader_Adjust_Subglyphs( loader );
-  }
-
-
-  /* add current glyph to the base image - and prepare for another */
-  FT_BASE_DEF( void )
-  FT_GlyphLoader_Add( FT_GlyphLoader  loader )
-  {
-    FT_GlyphLoad  base    = &loader->base;
-    FT_GlyphLoad  current = &loader->current;
-
-    FT_UInt       n_curr_contours = current->outline.n_contours;
-    FT_UInt       n_base_points   = base->outline.n_points;
-    FT_UInt       n;
-
-
-    base->outline.n_points =
-      (short)( base->outline.n_points + current->outline.n_points );
-    base->outline.n_contours =
-      (short)( base->outline.n_contours + current->outline.n_contours );
-
-    base->num_subglyphs += current->num_subglyphs;
-
-    /* adjust contours count in newest outline */
-    for ( n = 0; n < n_curr_contours; n++ )
-      current->outline.contours[n] =
-        (short)( current->outline.contours[n] + n_base_points );
-
-    /* prepare for another new glyph image */
-    FT_GlyphLoader_Prepare( loader );
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_GlyphLoader_CopyPoints( FT_GlyphLoader  target,
-                             FT_GlyphLoader  source )
-  {
-    FT_Error  error;
-    FT_UInt   num_points   = source->base.outline.n_points;
-    FT_UInt   num_contours = source->base.outline.n_contours;
-
-
-    error = FT_GlyphLoader_CheckPoints( target, num_points, num_contours );
-    if ( !error )
-    {
-      FT_Outline*  out = &target->base.outline;
-      FT_Outline*  in  = &source->base.outline;
-
-
-      FT_ARRAY_COPY( out->points, in->points,
-                     num_points );
-      FT_ARRAY_COPY( out->tags, in->tags,
-                     num_points );
-      FT_ARRAY_COPY( out->contours, in->contours,
-                     num_contours );
-
-      /* do we need to copy the extra points? */
-      if ( target->use_extra && source->use_extra )
-        FT_ARRAY_COPY( target->base.extra_points, source->base.extra_points,
-                       num_points );
-
-      out->n_points   = (short)num_points;
-      out->n_contours = (short)num_contours;
-
-      FT_GlyphLoader_Adjust_Points( target );
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftglyph.c b/nx-X11/extras/freetype2/src/base/ftglyph.c
deleted file mode 100644
index 1b22ab6b3..000000000
--- a/nx-X11/extras/freetype2/src/base/ftglyph.c
+++ /dev/null
@@ -1,712 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftglyph.c                                                              */
-/*                                                                         */
-/*    FreeType convenience functions to handle glyphs (body).              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  This file contains the definition of several convenience functions   */
-  /*  that can be used by client applications to easily retrieve glyph     */
-  /*  bitmaps and outlines from a given face.                              */
-  /*                                                                       */
-  /*  These functions should be optional if you are writing a font server  */
-  /*  or text layout engine on top of FreeType.  However, they are pretty  */
-  /*  handy for many other simple uses of the library.                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_GLYPH_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_glyph
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   Convenience functions                                         ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Matrix_Multiply( const FT_Matrix*  a,
-                      FT_Matrix        *b )
-  {
-    FT_Fixed  xx, xy, yx, yy;
-
-
-    if ( !a || !b )
-      return;
-
-    xx = FT_MulFix( a->xx, b->xx ) + FT_MulFix( a->xy, b->yx );
-    xy = FT_MulFix( a->xx, b->xy ) + FT_MulFix( a->xy, b->yy );
-    yx = FT_MulFix( a->yx, b->xx ) + FT_MulFix( a->yy, b->yx );
-    yy = FT_MulFix( a->yx, b->xy ) + FT_MulFix( a->yy, b->yy );
-
-    b->xx = xx;  b->xy = xy;
-    b->yx = yx;  b->yy = yy;
-  }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Matrix_Invert( FT_Matrix*  matrix )
-  {
-    FT_Pos  delta, xx, yy;
-
-
-    if ( !matrix )
-      return FT_Err_Invalid_Argument;
-
-    /* compute discriminant */
-    delta = FT_MulFix( matrix->xx, matrix->yy ) -
-            FT_MulFix( matrix->xy, matrix->yx );
-
-    if ( !delta )
-      return FT_Err_Invalid_Argument;  /* matrix can't be inverted */
-
-    matrix->xy = - FT_DivFix( matrix->xy, delta );
-    matrix->yx = - FT_DivFix( matrix->yx, delta );
-
-    xx = matrix->xx;
-    yy = matrix->yy;
-
-    matrix->xx = FT_DivFix( yy, delta );
-    matrix->yy = FT_DivFix( xx, delta );
-
-    return FT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   FT_BitmapGlyph support                                        ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static FT_Error
-  ft_bitmap_copy( FT_Memory   memory,
-                  FT_Bitmap*  source,
-                  FT_Bitmap*  target )
-  {
-    FT_Error  error;
-    FT_Int    pitch = source->pitch;
-    FT_ULong  size;
-
-
-    *target = *source;
-
-    if ( pitch < 0 )
-      pitch = -pitch;
-
-    size = (FT_ULong)( pitch * source->rows );
-
-    if ( !FT_ALLOC( target->buffer, size ) )
-      FT_MEM_COPY( target->buffer, source->buffer, size );
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_bitmap_glyph_init( FT_Glyph      bitmap_glyph,
-                        FT_GlyphSlot  slot )
-  {
-    FT_BitmapGlyph  glyph   = (FT_BitmapGlyph)bitmap_glyph;
-    FT_Error        error   = FT_Err_Ok;
-    FT_Library      library = FT_GLYPH( glyph )->library;
-    FT_Memory       memory  = library->memory;
-
-
-    if ( slot->format != FT_GLYPH_FORMAT_BITMAP )
-    {
-      error = FT_Err_Invalid_Glyph_Format;
-      goto Exit;
-    }
-
-    /* grab the bitmap in the slot - do lazy copying whenever possible */
-    glyph->bitmap = slot->bitmap;
-    glyph->left   = slot->bitmap_left;
-    glyph->top    = slot->bitmap_top;
-
-    if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
-      slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
-    else
-    {
-      /* copy the bitmap into a new buffer */
-      error = ft_bitmap_copy( memory, &slot->bitmap, &glyph->bitmap );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_bitmap_glyph_copy( FT_Glyph  bitmap_source,
-                        FT_Glyph  bitmap_target )
-  {
-    FT_BitmapGlyph  source = (FT_BitmapGlyph)bitmap_source;
-    FT_BitmapGlyph  target = (FT_BitmapGlyph)bitmap_target;
-    FT_Memory       memory = bitmap_source->library->memory;
-
-
-    target->left = source->left;
-    target->top  = source->top;
-
-    return ft_bitmap_copy( memory, &source->bitmap, &target->bitmap );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_bitmap_glyph_done( FT_Glyph  bitmap_glyph )
-  {
-    FT_BitmapGlyph  glyph  = (FT_BitmapGlyph)bitmap_glyph;
-    FT_Memory       memory = FT_GLYPH( glyph )->library->memory;
-
-
-    FT_FREE( glyph->bitmap.buffer );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_bitmap_glyph_bbox( FT_Glyph  bitmap_glyph,
-                        FT_BBox*  cbox )
-  {
-    FT_BitmapGlyph  glyph = (FT_BitmapGlyph)bitmap_glyph;
-
-
-    cbox->xMin = glyph->left << 6;
-    cbox->xMax = cbox->xMin + ( glyph->bitmap.width << 6 );
-    cbox->yMax = glyph->top << 6;
-    cbox->yMin = cbox->yMax - ( glyph->bitmap.rows << 6 );
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Glyph_Class  ft_bitmap_glyph_class =
-  {
-    sizeof ( FT_BitmapGlyphRec ),
-    FT_GLYPH_FORMAT_BITMAP,
-
-    ft_bitmap_glyph_init,
-    ft_bitmap_glyph_done,
-    ft_bitmap_glyph_copy,
-    0,                          /* FT_Glyph_TransformFunc */
-    ft_bitmap_glyph_bbox,
-    0                           /* FT_Glyph_PrepareFunc   */
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   FT_OutlineGlyph support                                       ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_outline_glyph_init( FT_Glyph      outline_glyph,
-                         FT_GlyphSlot  slot )
-  {
-    FT_OutlineGlyph  glyph   = (FT_OutlineGlyph)outline_glyph;
-    FT_Error         error   = FT_Err_Ok;
-    FT_Library       library = FT_GLYPH( glyph )->library;
-    FT_Outline*      source  = &slot->outline;
-    FT_Outline*      target  = &glyph->outline;
-
-
-    /* check format in glyph slot */
-    if ( slot->format != FT_GLYPH_FORMAT_OUTLINE )
-    {
-      error = FT_Err_Invalid_Glyph_Format;
-      goto Exit;
-    }
-
-    /* allocate new outline */
-    error = FT_Outline_New( library, source->n_points, source->n_contours,
-                            &glyph->outline );
-    if ( error )
-      goto Exit;
-
-    /* copy it */
-    FT_ARRAY_COPY( target->points, source->points, source->n_points );
-
-    FT_ARRAY_COPY( target->tags, source->tags, source->n_points );
-
-    FT_ARRAY_COPY( target->contours, source->contours, source->n_contours );
-
-    /* copy all flags, except the `FT_OUTLINE_OWNER' one */
-    target->flags = source->flags | FT_OUTLINE_OWNER;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_outline_glyph_done( FT_Glyph  outline_glyph )
-  {
-    FT_OutlineGlyph  glyph = (FT_OutlineGlyph)outline_glyph;
-
-
-    FT_Outline_Done( FT_GLYPH( glyph )->library, &glyph->outline );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_outline_glyph_copy( FT_Glyph  outline_source,
-                         FT_Glyph  outline_target )
-  {
-    FT_OutlineGlyph  source  = (FT_OutlineGlyph)outline_source;
-    FT_OutlineGlyph  target  = (FT_OutlineGlyph)outline_target;
-    FT_Error         error;
-    FT_Library       library = FT_GLYPH( source )->library;
-
-
-    error = FT_Outline_New( library, source->outline.n_points,
-                            source->outline.n_contours, &target->outline );
-    if ( !error )
-      FT_Outline_Copy( &source->outline, &target->outline );
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_outline_glyph_transform( FT_Glyph    outline_glyph,
-                              FT_Matrix*  matrix,
-                              FT_Vector*  delta )
-  {
-    FT_OutlineGlyph  glyph = (FT_OutlineGlyph)outline_glyph;
-
-
-    if ( matrix )
-      FT_Outline_Transform( &glyph->outline, matrix );
-
-    if ( delta )
-      FT_Outline_Translate( &glyph->outline, delta->x, delta->y );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ft_outline_glyph_bbox( FT_Glyph  outline_glyph,
-                         FT_BBox*  bbox )
-  {
-    FT_OutlineGlyph  glyph = (FT_OutlineGlyph)outline_glyph;
-
-
-    FT_Outline_Get_CBox( &glyph->outline, bbox );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ft_outline_glyph_prepare( FT_Glyph      outline_glyph,
-                            FT_GlyphSlot  slot )
-  {
-    FT_OutlineGlyph  glyph = (FT_OutlineGlyph)outline_glyph;
-
-
-    slot->format         = FT_GLYPH_FORMAT_OUTLINE;
-    slot->outline        = glyph->outline;
-    slot->outline.flags &= ~FT_OUTLINE_OWNER;
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Glyph_Class  ft_outline_glyph_class =
-  {
-    sizeof ( FT_OutlineGlyphRec ),
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    ft_outline_glyph_init,
-    ft_outline_glyph_done,
-    ft_outline_glyph_copy,
-    ft_outline_glyph_transform,
-    ft_outline_glyph_bbox,
-    ft_outline_glyph_prepare
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   FT_Glyph class and API                                        ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-   static FT_Error
-   ft_new_glyph( FT_Library             library,
-                 const FT_Glyph_Class*  clazz,
-                 FT_Glyph*              aglyph )
-   {
-     FT_Memory  memory = library->memory;
-     FT_Error   error;
-     FT_Glyph   glyph;
-
-
-     *aglyph = 0;
-
-     if ( !FT_ALLOC( glyph, clazz->glyph_size ) )
-     {
-       glyph->library = library;
-       glyph->clazz   = clazz;
-       glyph->format  = clazz->glyph_format;
-
-       *aglyph = glyph;
-     }
-
-     return error;
-   }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Glyph_Copy( FT_Glyph   source,
-                 FT_Glyph  *target )
-  {
-    FT_Glyph               copy;
-    FT_Error               error;
-    const FT_Glyph_Class*  clazz;
-
-
-    /* check arguments */
-    if ( !target || !source || !source->clazz )
-    {
-      error = FT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    *target = 0;
-
-    clazz = source->clazz;
-    error = ft_new_glyph( source->library, clazz, &copy );
-    if ( error )
-      goto Exit;
-
-    copy->advance = source->advance;
-    copy->format  = source->format;
-
-    if ( clazz->glyph_copy )
-      error = clazz->glyph_copy( source, copy );
-
-    if ( error )
-      FT_Done_Glyph( copy );
-    else
-      *target = copy;
-
-  Exit:
-    return error;
-  }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_Glyph( FT_GlyphSlot  slot,
-                FT_Glyph     *aglyph )
-  {
-    FT_Library  library;
-    FT_Error    error;
-    FT_Glyph    glyph;
-
-    const FT_Glyph_Class*  clazz = 0;
-
-
-    if ( !slot )
-      return FT_Err_Invalid_Slot_Handle;
-
-    library = slot->library;
-
-    if ( !aglyph )
-      return FT_Err_Invalid_Argument;
-
-    /* if it is a bitmap, that's easy :-) */
-    if ( slot->format == FT_GLYPH_FORMAT_BITMAP )
-      clazz = &ft_bitmap_glyph_class;
-
-    /* it it is an outline too */
-    else if ( slot->format == FT_GLYPH_FORMAT_OUTLINE )
-      clazz = &ft_outline_glyph_class;
-
-    else
-    {
-      /* try to find a renderer that supports the glyph image format */
-      FT_Renderer  render = FT_Lookup_Renderer( library, slot->format, 0 );
-
-
-      if ( render )
-        clazz = &render->glyph_class;
-    }
-
-    if ( !clazz )
-    {
-      error = FT_Err_Invalid_Glyph_Format;
-      goto Exit;
-    }
-
-    /* create FT_Glyph object */
-    error = ft_new_glyph( library, clazz, &glyph );
-    if ( error )
-      goto Exit;
-
-    /* copy advance while converting it to 16.16 format */
-    glyph->advance.x = slot->advance.x << 10;
-    glyph->advance.y = slot->advance.y << 10;
-
-    /* now import the image from the glyph slot */
-    error = clazz->glyph_init( glyph, slot );
-
-    /* if an error occurred, destroy the glyph */
-    if ( error )
-      FT_Done_Glyph( glyph );
-    else
-      *aglyph = glyph;
-
-  Exit:
-    return error;
-  }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Glyph_Transform( FT_Glyph    glyph,
-                      FT_Matrix*  matrix,
-                      FT_Vector*  delta )
-  {
-    const FT_Glyph_Class*  clazz;
-    FT_Error               error = FT_Err_Ok;
-
-
-    if ( !glyph || !glyph->clazz )
-      error = FT_Err_Invalid_Argument;
-    else
-    {
-      clazz = glyph->clazz;
-      if ( clazz->glyph_transform )
-      {
-        /* transform glyph image */
-        clazz->glyph_transform( glyph, matrix, delta );
-
-        /* transform advance vector */
-        if ( matrix )
-          FT_Vector_Transform( &glyph->advance, matrix );
-      }
-      else
-        error = FT_Err_Invalid_Glyph_Format;
-    }
-    return error;
-  }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Glyph_Get_CBox( FT_Glyph  glyph,
-                     FT_UInt   bbox_mode,
-                     FT_BBox  *acbox )
-  {
-    const FT_Glyph_Class*  clazz;
-
-
-    if ( !acbox )
-      return;
-
-    acbox->xMin = acbox->yMin = acbox->xMax = acbox->yMax = 0;
-
-    if ( !glyph || !glyph->clazz )
-      return;
-    else
-    {
-      clazz = glyph->clazz;
-      if ( !clazz->glyph_bbox )
-        return;
-      else
-      {
-        /* retrieve bbox in 26.6 coordinates */
-        clazz->glyph_bbox( glyph, acbox );
-
-        /* perform grid fitting if needed */
-        if ( bbox_mode == FT_GLYPH_BBOX_GRIDFIT ||
-             bbox_mode == FT_GLYPH_BBOX_PIXELS  )
-        {
-          acbox->xMin = FT_PIX_FLOOR( acbox->xMin );
-          acbox->yMin = FT_PIX_FLOOR( acbox->yMin );
-          acbox->xMax = FT_PIX_CEIL( acbox->xMax );
-          acbox->yMax = FT_PIX_CEIL( acbox->yMax );
-        }
-
-        /* convert to integer pixels if needed */
-        if ( bbox_mode == FT_GLYPH_BBOX_TRUNCATE ||
-             bbox_mode == FT_GLYPH_BBOX_PIXELS   )
-        {
-          acbox->xMin >>= 6;
-          acbox->yMin >>= 6;
-          acbox->xMax >>= 6;
-          acbox->yMax >>= 6;
-        }
-      }
-    }
-    return;
-  }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Glyph_To_Bitmap( FT_Glyph*       the_glyph,
-                      FT_Render_Mode  render_mode,
-                      FT_Vector*      origin,
-                      FT_Bool         destroy )
-  {
-    FT_GlyphSlotRec           dummy;
-    FT_GlyphSlot_InternalRec  dummy_internal;
-    FT_Error                  error = FT_Err_Ok;
-    FT_Glyph                  glyph;
-    FT_BitmapGlyph            bitmap = NULL;
-
-    const FT_Glyph_Class*     clazz;
-
-
-    /* check argument */
-    if ( !the_glyph )
-      goto Bad;
-
-    /* we render the glyph into a glyph bitmap using a `dummy' glyph slot */
-    /* then calling FT_Render_Glyph_Internal()                            */
-
-    glyph = *the_glyph;
-    if ( !glyph )
-      goto Bad;
-
-    clazz = glyph->clazz;
-
-    /* when called with a bitmap glyph, do nothing and return successfully */
-    if ( clazz == &ft_bitmap_glyph_class )
-      goto Exit;
-
-    if ( !clazz || !clazz->glyph_prepare )
-      goto Bad;
-
-    FT_MEM_ZERO( &dummy, sizeof ( dummy ) );
-    FT_MEM_ZERO( &dummy_internal, sizeof ( dummy_internal ) );
-    dummy.internal = &dummy_internal;
-    dummy.library  = glyph->library;
-    dummy.format   = clazz->glyph_format;
-
-    /* create result bitmap glyph */
-    error = ft_new_glyph( glyph->library, &ft_bitmap_glyph_class,
-                          (FT_Glyph*)&bitmap );
-    if ( error )
-      goto Exit;
-
-#if 1
-    /* if `origin' is set, translate the glyph image */
-    if ( origin )
-      FT_Glyph_Transform( glyph, 0, origin );
-#else
-    FT_UNUSED( origin );
-#endif
-
-    /* prepare dummy slot for rendering */
-    error = clazz->glyph_prepare( glyph, &dummy );
-    if ( !error )
-      error = FT_Render_Glyph_Internal( glyph->library, &dummy, render_mode );
-
-#if 1
-    if ( !destroy && origin )
-    {
-      FT_Vector  v;
-
-
-      v.x = -origin->x;
-      v.y = -origin->y;
-      FT_Glyph_Transform( glyph, 0, &v );
-    }
-#endif
-
-    if ( error )
-      goto Exit;
-
-    /* in case of success, copy the bitmap to the glyph bitmap */
-    error = ft_bitmap_glyph_init( (FT_Glyph)bitmap, &dummy );
-    if ( error )
-      goto Exit;
-
-    /* copy advance */
-    bitmap->root.advance = glyph->advance;
-
-    if ( destroy )
-      FT_Done_Glyph( glyph );
-
-    *the_glyph = FT_GLYPH( bitmap );
-
-  Exit:
-    if ( error && bitmap )
-      FT_Done_Glyph( FT_GLYPH( bitmap ) );
-
-    return error;
-
-  Bad:
-    error = FT_Err_Invalid_Argument;
-    goto Exit;
-  }
-
-
-  /* documentation is in ftglyph.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Done_Glyph( FT_Glyph  glyph )
-  {
-    if ( glyph )
-    {
-      FT_Memory              memory = glyph->library->memory;
-      const FT_Glyph_Class*  clazz  = glyph->clazz;
-
-
-      if ( clazz->glyph_done )
-        clazz->glyph_done( glyph );
-
-      FT_FREE( glyph );
-    }
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftinit.c b/nx-X11/extras/freetype2/src/base/ftinit.c
deleted file mode 100644
index 79ba9f0bd..000000000
--- a/nx-X11/extras/freetype2/src/base/ftinit.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftinit.c                                                               */
-/*                                                                         */
-/*    FreeType initialization layer (body).                                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  The purpose of this file is to implement the following two           */
-  /*  functions:                                                           */
-  /*                                                                       */
-  /*  FT_Add_Default_Modules():                                            */
-  /*     This function is used to add the set of default modules to a      */
-  /*     fresh new library object.  The set is taken from the header file  */
-  /*     `freetype/config/ftmodule.h'.  See the document `FreeType 2.0     */
-  /*     Build System' for more information.                               */
-  /*                                                                       */
-  /*  FT_Init_FreeType():                                                  */
-  /*     This function creates a system object for the current platform,   */
-  /*     builds a library out of it, then calls FT_Default_Drivers().      */
-  /*                                                                       */
-  /*  Note that even if FT_Init_FreeType() uses the implementation of the  */
-  /*  system object defined at build time, client applications are still   */
-  /*  able to provide their own `ftsystem.c'.                              */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_MODULE_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_init
-
-#undef  FT_USE_MODULE
-#ifdef __cplusplus
-#define FT_USE_MODULE( x )  extern "C" const FT_Module_Class*  x;
-#else
-#define FT_USE_MODULE( x )  extern const FT_Module_Class*  x;
-#endif
-
-
-#include FT_CONFIG_MODULES_H
-
-
-#undef  FT_USE_MODULE
-#define FT_USE_MODULE( x )  (const FT_Module_Class*)&x,
-
-  static
-  const FT_Module_Class*  const ft_default_modules[] =
-  {
-#include FT_CONFIG_MODULES_H
-    0
-  };
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Add_Default_Modules( FT_Library  library )
-  {
-    FT_Error                       error;
-    const FT_Module_Class* const*  cur;
-
-
-    /* test for valid `library' delayed to FT_Add_Module() */
-
-    cur = ft_default_modules;
-    while ( *cur )
-    {
-      error = FT_Add_Module( library, *cur );
-      /* notify errors, but don't stop */
-      if ( error )
-      {
-        FT_ERROR(( "FT_Add_Default_Module: Cannot install `%s', error = 0x%x\n",
-                   (*cur)->module_name, error ));
-      }
-      cur++;
-    }
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Init_FreeType( FT_Library  *alibrary )
-  {
-    FT_Error   error;
-    FT_Memory  memory;
-
-
-    /* First of all, allocate a new system object -- this function is part */
-    /* of the system-specific component, i.e. `ftsystem.c'.                */
-
-    memory = FT_New_Memory();
-    if ( !memory )
-    {
-      FT_ERROR(( "FT_Init_FreeType: cannot find memory manager\n" ));
-      return FT_Err_Unimplemented_Feature;
-    }
-
-    /* build a library out of it, then fill it with the set of */
-    /* default drivers.                                        */
-
-    error = FT_New_Library( memory, alibrary );
-    if ( !error )
-    {
-      (*alibrary)->version_major = FREETYPE_MAJOR;
-      (*alibrary)->version_minor = FREETYPE_MINOR;
-      (*alibrary)->version_patch = FREETYPE_PATCH;
-
-      FT_Add_Default_Modules( *alibrary );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Done_FreeType( FT_Library  library )
-  {
-    if ( library )
-    {
-      FT_Memory  memory = library->memory;
-
-
-      /* Discard the library object */
-      FT_Done_Library( library );
-
-      /* discard memory manager */
-      FT_Done_Memory( memory );
-    }
-
-    return FT_Err_Ok;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftmac.c b/nx-X11/extras/freetype2/src/base/ftmac.c
deleted file mode 100644
index c71475382..000000000
--- a/nx-X11/extras/freetype2/src/base/ftmac.c
+++ /dev/null
@@ -1,1092 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmac.c                                                                */
-/*                                                                         */
-/*    Mac FOND support.  Written by just@letterror.com.                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  Just van Rossum, David Turner, Robert Wilhelm, and Werner Lemberg.     */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*
-    Notes
-
-    Mac suitcase files can (and often do!) contain multiple fonts.  To
-    support this I use the face_index argument of FT_(Open|New)_Face()
-    functions, and pretend the suitcase file is a collection.
-
-    Warning: Although the FOND driver sets face->num_faces field to the
-    number of available fonts, but the Type 1 driver sets it to 1 anyway.
-    So this field is currently not reliable, and I don't see a clean way
-    to  resolve that.  The face_index argument translates to
-
-      Get1IndResource( 'FOND', face_index + 1 );
-
-    so clients should figure out the resource index of the FOND.
-    (I'll try to provide some example code for this at some point.)
-
-    The Mac FOND support works roughly like this:
-
-    - Check whether the offered stream points to a Mac suitcase file.
-      This is done by checking the file type: it has to be 'FFIL' or 'tfil'.
-      The stream that gets passed to our init_face() routine is a stdio
-      stream, which isn't usable for us, since the FOND resources live
-      in the resource fork.  So we just grab the stream->pathname field.
-
-    - Read the FOND resource into memory, then check whether there is
-      a TrueType font and/or(!) a Type 1 font available.
-
-    - If there is a Type 1 font available (as a separate 'LWFN' file),
-      read its data into memory, massage it slightly so it becomes
-      PFB data, wrap it into a memory stream, load the Type 1 driver
-      and delegate the rest of the work to it by calling FT_Open_Face().
-      (XXX TODO: after this has been done, the kerning data from the FOND
-      resource should be appended to the face: On the Mac there are usually
-      no AFM files available.  However, this is tricky since we need to map
-      Mac char codes to ps glyph names to glyph ID's...)
-
-    - If there is a TrueType font (an 'sfnt' resource), read it into
-      memory, wrap it into a memory stream, load the TrueType driver
-      and delegate the rest of the work to it, by calling FT_Open_Face().
-  */
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_STREAM_H
-
-#ifdef __GNUC__
-#include "../truetype/ttobjs.h"
-#include "../type1/t1objs.h"
-  /* This is for Mac OS X.  Without redefinition, OS_INLINE */
-  /* expands to `static inline' which doesn't survive the   */
-  /* -ansi compilation flag of GCC.                         */
-#define OS_INLINE  static __inline__
-#include <Carbon/Carbon.h>
-#else
-#include "truetype/ttobjs.h"
-#include "type1/t1objs.h"
-#include <Resources.h>
-#include <Fonts.h>
-#include <Errors.h>
-#include <Files.h>
-#include <TextUtils.h>
-#endif
-
-#if defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO
-#include <FSp_fopen.h>
-#endif
-
-#include FT_MAC_H
-
-
-  /* Set PREFER_LWFN to 1 if LWFN (Type 1) is preferred over
-     TrueType in case *both* are available (this is not common,
-     but it *is* possible). */
-#ifndef PREFER_LWFN
-#define PREFER_LWFN 1
-#endif
-
-
-#if defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO
-
-#define STREAM_FILE( stream )  ( (FILE*)stream->descriptor.pointer )
-
-
-  FT_CALLBACK_DEF( void )
-  ft_FSp_stream_close( FT_Stream  stream )
-  {
-    fclose( STREAM_FILE( stream ) );
-
-    stream->descriptor.pointer = NULL;
-    stream->size               = 0;
-    stream->base               = 0;
-  }
-
-
-  FT_CALLBACK_DEF( unsigned long )
-  ft_FSp_stream_io( FT_Stream       stream,
-                    unsigned long   offset,
-                    unsigned char*  buffer,
-                    unsigned long   count )
-  {
-    FILE*  file;
-
-
-    file = STREAM_FILE( stream );
-
-    fseek( file, offset, SEEK_SET );
-
-    return (unsigned long)fread( buffer, 1, count, file );
-  }
-
-#endif  /* __MWERKS__ && !TARGET_RT_MAC_MACHO */
-
-
-  /* Given a pathname, fill in a file spec. */
-  static int
-  file_spec_from_path( const char*  pathname,
-                       FSSpec*      spec )
-  {
-
-#if !TARGET_API_MAC_OS8 && \
-    !( defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO )
-
-    OSErr  e;
-    FSRef  ref;
-
-
-    e = FSPathMakeRef( (UInt8 *)pathname, &ref, false /* not a directory */ );
-    if ( e == noErr )
-      e = FSGetCatalogInfo( &ref, kFSCatInfoNone, NULL, NULL, spec, NULL );
-
-    return ( e == noErr ) ? 0 : (-1);
-
-#else
-
-    Str255    p_path;
-    FT_ULong  path_len;
-
-
-    /* convert path to a pascal string */
-    path_len = ft_strlen( pathname );
-    if ( path_len > 255 )
-      return -1;
-    p_path[0] = (unsigned char)path_len;
-    ft_strncpy( (char*)p_path + 1, pathname, path_len );
-
-    if ( FSMakeFSSpec( 0, 0, p_path, spec ) != noErr )
-      return -1;
-    else
-      return 0;
-
-#endif
-
-  }
-
-
-  /* Return the file type of the file specified by spec. */
-  static OSType
-  get_file_type( const FSSpec*  spec )
-  {
-    FInfo  finfo;
-
-
-    if ( FSpGetFInfo( spec, &finfo ) != noErr )
-      return 0;  /* file might not exist */
-
-    return finfo.fdType;
-  }
-
-
-  /* Given a PostScript font name, create the Macintosh LWFN file name. */
-  static void
-  create_lwfn_name( char*   ps_name,
-                    Str255  lwfn_file_name )
-  {
-    int       max = 5, count = 0;
-    FT_Byte*  p = lwfn_file_name;
-    FT_Byte*  q = (FT_Byte*)ps_name;
-
-
-    lwfn_file_name[0] = 0;
-
-    while ( *q )
-    {
-      if ( ft_isupper( *q ) )
-      {
-        if ( count )
-          max = 3;
-        count = 0;
-      }
-      if ( count < max && ( ft_isalnum( *q ) || *q == '_' ) )
-      {
-        *++p = *q;
-        lwfn_file_name[0]++;
-        count++;
-      }
-      q++;
-    }
-  }
-
-
-  /* Given a file reference, answer its location as a vRefNum
-     and a dirID. */
-  static FT_Error
-  get_file_location( short           ref_num,
-                     short*          v_ref_num,
-                     long*           dir_id,
-                     unsigned char*  file_name )
-  {
-    FCBPBRec  pb;
-    OSErr     error;
-
-
-    pb.ioNamePtr = file_name;
-    pb.ioVRefNum = 0;
-    pb.ioRefNum  = ref_num;
-    pb.ioFCBIndx = 0;
-
-    error = PBGetFCBInfoSync( &pb );
-    if ( error == noErr )
-    {
-      *v_ref_num = pb.ioFCBVRefNum;
-      *dir_id    = pb.ioFCBParID;
-    }
-    return error;
-  }
-
-
-  /* Make a file spec for an LWFN file from a FOND resource and
-     a file name. */
-  static FT_Error
-  make_lwfn_spec( Handle               fond,
-                  const unsigned char* file_name,
-                  FSSpec*              spec )
-  {
-    FT_Error  error;
-    short     ref_num, v_ref_num;
-    long      dir_id;
-    Str255    fond_file_name;
-
-
-    ref_num = HomeResFile( fond );
-
-    error = ResError();
-    if ( !error )
-      error = get_file_location( ref_num, &v_ref_num,
-                                 &dir_id, fond_file_name );
-    if ( !error )
-      error = FSMakeFSSpec( v_ref_num, dir_id, file_name, spec );
-
-    return error;
-  }
-
-
-  static short
-  count_faces_sfnt( char *fond_data )
-  {
-    /* The count is 1 greater than the value in the FOND.  */
-    /* Isn't that cute? :-)                                */
-
-    return 1 + *( (short *)( fond_data + sizeof ( FamRec ) ) );
-  }
-
-
-  /* Look inside the FOND data, answer whether there should be an SFNT
-     resource, and answer the name of a possible LWFN Type 1 file.
-
-     Thanks to Paul Miller (paulm@profoundeffects.com) for the fix
-     to load a face OTHER than the first one in the FOND!
-  */
-
-
-  static void
-  parse_fond( char*   fond_data,
-              short*  have_sfnt,
-              short*  sfnt_id,
-              Str255  lwfn_file_name,
-              short   face_index )
-  {
-    AsscEntry*  assoc;
-    AsscEntry*  base_assoc;
-    FamRec*     fond;
-
-
-    *sfnt_id          = 0;
-    *have_sfnt        = 0;
-    lwfn_file_name[0] = 0;
-
-    fond       = (FamRec*)fond_data;
-    assoc      = (AsscEntry*)( fond_data + sizeof ( FamRec ) + 2 );
-    base_assoc = assoc;
-
-    /* Let's do a little range checking before we get too excited here */
-    if ( face_index < count_faces_sfnt( fond_data ) )
-    {
-      assoc += face_index;        /* add on the face_index! */
-
-      /* if the face at this index is not scalable,
-         fall back to the first one (old behavior) */
-      if ( assoc->fontSize == 0 )
-      {
-        *have_sfnt = 1;
-        *sfnt_id   = assoc->fontID;
-      }
-      else if ( base_assoc->fontSize == 0 )
-      {
-        *have_sfnt = 1;
-        *sfnt_id   = base_assoc->fontID;
-      }
-    }
-
-    if ( fond->ffStylOff )
-    {
-      unsigned char*  p = (unsigned char*)fond_data;
-      StyleTable*     style;
-      unsigned short  string_count;
-      char            ps_name[256];
-      unsigned char*  names[64];
-      int             i;
-
-
-      p += fond->ffStylOff;
-      style = (StyleTable*)p;
-      p += sizeof ( StyleTable );
-      string_count = *(unsigned short*)(p);
-      p += sizeof ( short );
-
-      for ( i = 0 ; i < string_count && i < 64; i++ )
-      {
-        names[i] = p;
-        p += names[i][0];
-        p++;
-      }
-
-      {
-        size_t  ps_name_len = (size_t)names[0][0];
-
-
-        if ( ps_name_len != 0 )
-        {
-          ft_memcpy(ps_name, names[0] + 1, ps_name_len);
-          ps_name[ps_name_len] = 0;
-        }
-        if ( style->indexes[0] > 1 )
-        {
-          unsigned char*  suffixes = names[style->indexes[0] - 1];
-
-
-          for ( i = 1; i <= suffixes[0]; i++ )
-          {
-            unsigned char*  s;
-            size_t          j = suffixes[i] - 1;
-
-
-            if ( j < string_count && ( s = names[j] ) != NULL )
-            {
-              size_t  s_len = (size_t)s[0];
-
-
-              if ( s_len != 0 && ps_name_len + s_len < sizeof ( ps_name ) )
-              {
-                ft_memcpy( ps_name + ps_name_len, s + 1, s_len );
-                ps_name_len += s_len;
-                ps_name[ps_name_len] = 0;
-              }
-            }
-          }
-        }
-      }
-
-      create_lwfn_name( ps_name, lwfn_file_name );
-    }
-  }
-
-
-  static short
-  count_faces( Handle  fond )
-  {
-    short   sfnt_id, have_sfnt, have_lwfn = 0;
-    Str255  lwfn_file_name;
-    FSSpec  lwfn_spec;
-
-
-    HLock( fond );
-    parse_fond( *fond, &have_sfnt, &sfnt_id, lwfn_file_name, 0 );
-    HUnlock( fond );
-
-    if ( lwfn_file_name[0] )
-    {
-      if ( make_lwfn_spec( fond, lwfn_file_name, &lwfn_spec ) == FT_Err_Ok )
-        have_lwfn = 1;  /* yeah, we got one! */
-      else
-        have_lwfn = 0;  /* no LWFN file found */
-    }
-
-    if ( have_lwfn && ( !have_sfnt || PREFER_LWFN ) )
-      return 1;
-    else
-      return count_faces_sfnt( *fond );
-  }
-
-
-  /* Read Type 1 data from the POST resources inside the LWFN file,
-     return a PFB buffer. This is somewhat convoluted because the FT2
-     PFB parser wants the ASCII header as one chunk, and the LWFN
-     chunks are often not organized that way, so we'll glue chunks
-     of the same type together. */
-  static FT_Error
-  read_lwfn( FT_Memory  memory,
-             short      res_ref,
-             FT_Byte**  pfb_data,
-             FT_ULong*  size )
-  {
-    FT_Error       error = FT_Err_Ok;
-    short          res_id;
-    unsigned char  *buffer, *p, *size_p = NULL;
-    FT_ULong       total_size = 0;
-    FT_ULong       post_size, pfb_chunk_size;
-    Handle         post_data;
-    char           code, last_code;
-
-
-    UseResFile( res_ref );
-
-    /* First pass: load all POST resources, and determine the size of */
-    /* the output buffer.                                             */
-    res_id    = 501;
-    last_code = -1;
-
-    for (;;)
-    {
-      post_data = Get1Resource( 'POST', res_id++ );
-      if ( post_data == NULL )
-        break;  /* we're done */
-
-      code = (*post_data)[0];
-
-      if ( code != last_code )
-      {
-        if ( code == 5 )
-          total_size += 2; /* just the end code */
-        else
-          total_size += 6; /* code + 4 bytes chunk length */
-      }
-
-      total_size += GetHandleSize( post_data ) - 2;
-      last_code = code;
-    }
-
-    if ( FT_ALLOC( buffer, (FT_Long)total_size ) )
-      goto Error;
-
-    /* Second pass: append all POST data to the buffer, add PFB fields. */
-    /* Glue all consecutive chunks of the same type together.           */
-    p              = buffer;
-    res_id         = 501;
-    last_code      = -1;
-    pfb_chunk_size = 0;
-
-    for (;;)
-    {
-      post_data = Get1Resource( 'POST', res_id++ );
-      if ( post_data == NULL )
-        break;  /* we're done */
-
-      post_size = (FT_ULong)GetHandleSize( post_data ) - 2;
-      code = (*post_data)[0];
-
-      if ( code != last_code )
-      {
-        if ( last_code != -1 )
-        {
-          /* we're done adding a chunk, fill in the size field */
-          if ( size_p != NULL )
-          {
-            *size_p++ = (FT_Byte)(   pfb_chunk_size         & 0xFF );
-            *size_p++ = (FT_Byte)( ( pfb_chunk_size >> 8  ) & 0xFF );
-            *size_p++ = (FT_Byte)( ( pfb_chunk_size >> 16 ) & 0xFF );
-            *size_p++ = (FT_Byte)( ( pfb_chunk_size >> 24 ) & 0xFF );
-          }
-          pfb_chunk_size = 0;
-        }
-
-        *p++ = 0x80;
-        if ( code == 5 )
-          *p++ = 0x03;  /* the end */
-        else if ( code == 2 )
-          *p++ = 0x02;  /* binary segment */
-        else
-          *p++ = 0x01;  /* ASCII segment */
-
-        if ( code != 5 )
-        {
-          size_p = p;   /* save for later */
-          p += 4;       /* make space for size field */
-        }
-      }
-
-      ft_memcpy( p, *post_data + 2, post_size );
-      pfb_chunk_size += post_size;
-      p += post_size;
-      last_code = code;
-    }
-
-    *pfb_data = buffer;
-    *size = total_size;
-
-  Error:
-    CloseResFile( res_ref );
-    return error;
-  }
-
-
-  /* Finalizer for a memory stream; gets called by FT_Done_Face().
-     It frees the memory it uses. */
-  static void
-  memory_stream_close( FT_Stream  stream )
-  {
-    FT_Memory  memory = stream->memory;
-
-
-    FT_FREE( stream->base );
-
-    stream->size  = 0;
-    stream->base  = 0;
-    stream->close = 0;
-  }
-
-
-  /* Create a new memory stream from a buffer and a size. */
-  static FT_Error
-  new_memory_stream( FT_Library           library,
-                     FT_Byte*             base,
-                     FT_ULong             size,
-                     FT_Stream_CloseFunc  close,
-                     FT_Stream           *astream )
-  {
-    FT_Error   error;
-    FT_Memory  memory;
-    FT_Stream  stream;
-
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( !base )
-      return FT_Err_Invalid_Argument;
-
-    *astream = 0;
-    memory = library->memory;
-    if ( FT_NEW( stream ) )
-      goto Exit;
-
-    FT_Stream_OpenMemory( stream, base, size );
-
-    stream->close = close;
-
-    *astream = stream;
-
-  Exit:
-    return error;
-  }
-
-
-  /* Create a new FT_Face given a buffer and a driver name. */
-  static FT_Error
-  open_face_from_buffer( FT_Library  library,
-                         FT_Byte*    base,
-                         FT_ULong    size,
-                         FT_Long     face_index,
-                         char*       driver_name,
-                         FT_Face    *aface )
-  {
-    FT_Open_Args  args;
-    FT_Error      error;
-    FT_Stream     stream;
-    FT_Memory     memory = library->memory;
-
-
-    error = new_memory_stream( library,
-                               base,
-                               size,
-                               memory_stream_close,
-                               &stream );
-    if ( error )
-    {
-      FT_FREE( base );
-      return error;
-    }
-
-    args.flags = FT_OPEN_STREAM;
-    args.stream = stream;
-    if ( driver_name )
-    {
-      args.flags = args.flags | FT_OPEN_DRIVER;
-      args.driver = FT_Get_Module( library, driver_name );
-    }
-
-    /* At this point, face_index has served its purpose;      */
-    /* whoever calls this function has already used it to     */
-    /* locate the correct font data.  We should not propagate */
-    /* this index to FT_Open_Face() (unless it is negative).  */
-
-    if ( face_index > 0 )
-      face_index = 0;
-
-    error = FT_Open_Face( library, &args, face_index, aface );
-    if ( error == FT_Err_Ok )
-      (*aface)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM;
-
-    return error;
-  }
-
-
-  static FT_Error
-  OpenFileAsResource( const FSSpec*  spec,
-                      short         *p_res_ref )
-  {
-    FT_Error  error;
-
-#if !TARGET_API_MAC_OS8
-
-    FSRef     hostContainerRef;
-
-
-    error = FSpMakeFSRef( spec, &hostContainerRef );
-    if ( error == noErr )
-      error = FSOpenResourceFile( &hostContainerRef,
-                                  0, NULL, fsRdPerm, p_res_ref );
-
-    /* If the above fails, then it is probably not a resource file       */
-    /* However, it has been reported that FSOpenResourceFile() sometimes */
-    /* fails on some old resource-fork files, which FSpOpenResFile() can */
-    /* open.  So, just try again with FSpOpenResFile() and see what      */
-    /* happens :-)                                                       */
-
-    if ( error != noErr )
-
-#endif  /* !TARGET_API_MAC_OS8 */
-
-    {
-      *p_res_ref = FSpOpenResFile( spec, fsRdPerm );
-      error = ResError();
-    }
-
-    return error ? FT_Err_Cannot_Open_Resource : FT_Err_Ok;
-  }
-
-
-  /* Create a new FT_Face from a file spec to an LWFN file. */
-  static FT_Error
-  FT_New_Face_From_LWFN( FT_Library     library,
-                         const FSSpec*  lwfn_spec,
-                         FT_Long        face_index,
-                         FT_Face       *aface )
-  {
-    FT_Byte*  pfb_data;
-    FT_ULong  pfb_size;
-    FT_Error  error;
-    short     res_ref;
-
-
-    error = OpenFileAsResource( lwfn_spec, &res_ref );
-    if ( error )
-      return error;
-
-    error = read_lwfn( library->memory, res_ref, &pfb_data, &pfb_size );
-    if ( error )
-      return error;
-
-    return open_face_from_buffer( library,
-                                  pfb_data,
-                                  pfb_size,
-                                  face_index,
-                                  "type1",
-                                  aface );
-  }
-
-
-  /* Create a new FT_Face from an SFNT resource, specified by res ID. */
-  static FT_Error
-  FT_New_Face_From_SFNT( FT_Library  library,
-                         short       sfnt_id,
-                         FT_Long     face_index,
-                         FT_Face    *aface )
-  {
-    Handle     sfnt = NULL;
-    FT_Byte*   sfnt_data;
-    size_t     sfnt_size;
-    FT_Error   error = 0;
-    FT_Memory  memory = library->memory;
-    int        is_cff;
-
-
-    sfnt = GetResource( 'sfnt', sfnt_id );
-    if ( ResError() )
-      return FT_Err_Invalid_Handle;
-
-    sfnt_size = (FT_ULong)GetHandleSize( sfnt );
-    if ( FT_ALLOC( sfnt_data, (FT_Long)sfnt_size ) )
-    {
-      ReleaseResource( sfnt );
-      return error;
-    }
-
-    HLock( sfnt );
-    ft_memcpy( sfnt_data, *sfnt, sfnt_size );
-    HUnlock( sfnt );
-    ReleaseResource( sfnt );
-
-    is_cff = sfnt_size > 4 && sfnt_data[0] == 'O' &&
-                              sfnt_data[1] == 'T' &&
-                              sfnt_data[2] == 'T' &&
-                              sfnt_data[3] == 'O';
-
-    return open_face_from_buffer( library,
-                                  sfnt_data,
-                                  sfnt_size,
-                                  face_index,
-                                  is_cff ? "cff" : "truetype",
-                                  aface );
-  }
-
-
-  /* Create a new FT_Face from a file spec to a suitcase file. */
-  static FT_Error
-  FT_New_Face_From_Suitcase( FT_Library  library,
-                             short       res_ref,
-                             FT_Long     face_index,
-                             FT_Face    *aface )
-  {
-    FT_Error  error = FT_Err_Ok;
-    short     res_index;
-    Handle    fond;
-    short     num_faces;
-
-
-    UseResFile( res_ref );
-
-    for ( res_index = 1; ; ++res_index )
-    {
-      fond = Get1IndResource( 'FOND', res_index );
-      if ( ResError() )
-      {
-        error = FT_Err_Cannot_Open_Resource;
-        goto Error;
-      }
-      if ( face_index < 0 )
-        break;
-
-      num_faces = count_faces( fond );
-      if ( face_index < num_faces )
-        break;
-
-      face_index -= num_faces;
-    }
-
-    error = FT_New_Face_From_FOND( library, fond, face_index, aface );
-
-  Error:
-    CloseResFile( res_ref );
-    return error;
-  }
-
-
-  /* documentation is in ftmac.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Face_From_FOND( FT_Library  library,
-                         Handle      fond,
-                         FT_Long     face_index,
-                         FT_Face    *aface )
-  {
-    short   sfnt_id, have_sfnt, have_lwfn = 0;
-    Str255  lwfn_file_name;
-    short   fond_id;
-    OSType  fond_type;
-    Str255  fond_name;
-    FSSpec  lwfn_spec;
-
-
-    GetResInfo( fond, &fond_id, &fond_type, fond_name );
-    if ( ResError() != noErr || fond_type != 'FOND' )
-      return FT_Err_Invalid_File_Format;
-
-    HLock( fond );
-    parse_fond( *fond, &have_sfnt, &sfnt_id, lwfn_file_name, face_index );
-    HUnlock( fond );
-
-    if ( lwfn_file_name[0] )
-    {
-      if ( make_lwfn_spec( fond, lwfn_file_name, &lwfn_spec ) == FT_Err_Ok )
-        have_lwfn = 1;  /* yeah, we got one! */
-      else
-        have_lwfn = 0;  /* no LWFN file found */
-    }
-
-    if ( have_lwfn && ( !have_sfnt || PREFER_LWFN ) )
-      return FT_New_Face_From_LWFN( library,
-                                    &lwfn_spec,
-                                    face_index,
-                                    aface );
-    else if ( have_sfnt )
-      return FT_New_Face_From_SFNT( library,
-                                    sfnt_id,
-                                    face_index,
-                                    aface );
-
-    return FT_Err_Unknown_File_Format;
-  }
-
-
-  /* documentation is in ftmac.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_GetFile_From_Mac_Name( const char* fontName,
-                            FSSpec*     pathSpec,
-                            FT_Long*    face_index )
-  {
-    OptionBits            options = kFMUseGlobalScopeOption;
-
-    FMFontFamilyIterator  famIter;
-    OSStatus              status = FMCreateFontFamilyIterator( NULL, NULL,
-                                                               options,
-                                                               &famIter );
-    FMFont                the_font = NULL;
-    FMFontFamily          family   = NULL;
-
-
-    *face_index = 0;
-    while ( status == 0 && !the_font )
-    {
-      status = FMGetNextFontFamily( &famIter, &family );
-      if ( status == 0 )
-      {
-        int                           stat2;
-        FMFontFamilyInstanceIterator  instIter;
-        Str255                        famNameStr;
-        char                          famName[256];
-
-
-        /* get the family name */
-        FMGetFontFamilyName( family, famNameStr );
-        CopyPascalStringToC( famNameStr, famName );
-
-        /* iterate through the styles */
-        FMCreateFontFamilyInstanceIterator( family, &instIter );
-
-        *face_index = 0;
-        stat2 = 0;
-        while ( stat2 == 0 && !the_font )
-        {
-          FMFontStyle  style;
-          FMFontSize   size;
-          FMFont       font;
-
-
-          stat2 = FMGetNextFontFamilyInstance( &instIter, &font,
-                                               &style, &size );
-          if ( stat2 == 0 && size == 0 )
-          {
-            char  fullName[256];
-
-
-            /* build up a complete face name */
-            ft_strcpy( fullName, famName );
-            if ( style & bold )
-              strcat( fullName, " Bold" );
-            if ( style & italic )
-              strcat( fullName, " Italic" );
-
-            /* compare with the name we are looking for */
-            if ( ft_strcmp( fullName, fontName ) == 0 )
-            {
-              /* found it! */
-              the_font = font;
-            }
-            else
-              ++(*face_index);
-          }
-        }
-
-        FMDisposeFontFamilyInstanceIterator( &instIter );
-      }
-    }
-
-    FMDisposeFontFamilyIterator( &famIter );
-
-    if ( the_font )
-    {
-      FMGetFontContainer( the_font, pathSpec );
-      return FT_Err_Ok;
-    }
-    else
-      return FT_Err_Unknown_File_Format;
-  }
-
-  /* Common function to load a new FT_Face from a resource file. */
-
-  static FT_Error
-  FT_New_Face_From_Resource( FT_Library     library,
-                             const FSSpec  *spec,
-                             FT_Long        face_index,
-                             FT_Face       *aface )
-  {
-    OSType    file_type;
-    short     res_ref;
-    FT_Error  error;
-
-
-    if ( OpenFileAsResource( spec, &res_ref ) == FT_Err_Ok )
-    {
-      /* LWFN is a (very) specific file format, check for it explicitly */
-
-      file_type = get_file_type( spec );
-      if ( file_type == 'LWFN' )
-        return FT_New_Face_From_LWFN( library, spec, face_index, aface );
-    
-      /* Otherwise the file type doesn't matter (there are more than  */
-      /* `FFIL' and `tfil').  Just try opening it as a font suitcase; */
-      /* if it works, fine.                                           */
-
-      error = FT_New_Face_From_Suitcase( library, res_ref,
-                                         face_index, aface );
-      if ( error == 0 )
-        return error;
-
-      /* else forget about the resource fork and fall through to */
-      /* data fork formats                                       */
-
-      CloseResFile( res_ref );
-    }
-
-    /* let it fall through to normal loader (.ttf, .otf, etc.); */
-    /* we signal this by returning no error and no FT_Face      */
-    *aface = NULL;
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Face                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This is the Mac-specific implementation of FT_New_Face.  In        */
-  /*    addition to the standard FT_New_Face() functionality, it also      */
-  /*    accepts pathnames to Mac suitcase files.  For further              */
-  /*    documentation see the original FT_New_Face() in freetype.h.        */
-  /*                                                                       */
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Face( FT_Library   library,
-               const char*  pathname,
-               FT_Long      face_index,
-               FT_Face     *aface )
-  {
-    FT_Open_Args  args;
-    FSSpec        spec;
-    FT_Error      error;
-
-
-    /* test for valid `library' and `aface' delayed to FT_Open_Face() */
-    if ( !pathname )
-      return FT_Err_Invalid_Argument;
-
-    if ( file_spec_from_path( pathname, &spec ) )
-      return FT_Err_Invalid_Argument;
-
-    error = FT_New_Face_From_Resource( library, &spec, face_index, aface );
-    if ( error != 0 || *aface != NULL )
-      return error;
-
-    /* let it fall through to normal loader (.ttf, .otf, etc.) */
-    args.flags    = FT_OPEN_PATHNAME;
-    args.pathname = (char*)pathname;
-    return FT_Open_Face( library, &args, face_index, aface );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_New_Face_From_FSSpec                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    FT_New_Face_From_FSSpec is identical to FT_New_Face except it      */
-  /*    accepts an FSSpec instead of a path.                               */
-  /*                                                                       */
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Face_From_FSSpec( FT_Library    library,
-                           const FSSpec *spec,
-                           FT_Long       face_index,
-                           FT_Face      *aface )
-  {
-    FT_Open_Args  args;
-    FT_Error      error;
-    FT_Stream     stream;
-    FILE*         file;
-    FT_Memory     memory;
-
-
-    /* test for valid `library' and `aface' delayed to FT_Open_Face() */
-    if ( !spec )
-      return FT_Err_Invalid_Argument;
-
-    error = FT_New_Face_From_Resource( library, spec, face_index, aface );
-    if ( error != 0 || *aface != NULL )
-      return error;
-
-    /* let it fall through to normal loader (.ttf, .otf, etc.) */
-
-#if defined( __MWERKS__ ) && !TARGET_RT_MAC_MACHO
-
-    /* Codewarrior's C library can open a FILE from a FSSpec */
-    /* but we must compile with FSp_fopen.c in addition to   */
-    /* runtime libraries.                                    */
-
-    memory = library->memory;
-
-    if ( FT_NEW( stream ) )
-      return error;
-    stream->memory = memory;
-
-    file = FSp_fopen( spec, "rb" );
-    if ( !file )
-      return FT_Err_Cannot_Open_Resource;
-
-    fseek( file, 0, SEEK_END );
-    stream->size = ftell( file );
-    fseek( file, 0, SEEK_SET );
-
-    stream->descriptor.pointer = file;
-    stream->pathname.pointer   = NULL;
-    stream->pos                = 0;
-
-    stream->read  = ft_FSp_stream_io;
-    stream->close = ft_FSp_stream_close;
-
-    args.flags    = FT_OPEN_STREAM;
-    args.stream   = stream;
-
-    error = FT_Open_Face( library, &args, face_index, aface );
-    if ( error == FT_Err_Ok )
-      (*aface)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM;
-
-#else  /* !(__MWERKS__ && !TARGET_RT_MAC_MACHO) */
-
-    {
-      FSRef  ref;
-      UInt8  path[256];
-      OSErr  err;
-
-
-      err = FSpMakeFSRef(spec, &ref);
-      if ( !err )
-      {
-        err = FSRefMakePath( &ref, path, sizeof ( path ) );
-        if ( !err )
-          error = FT_New_Face( library, (const char*)path,
-                               face_index, aface );
-      }
-      if ( err )
-        error = FT_Err_Cannot_Open_Resource;
-    }
-
-#endif  /* !(__MWERKS__ && !TARGET_RT_MAC_MACHO) */
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftmm.c b/nx-X11/extras/freetype2/src/base/ftmm.c
deleted file mode 100644
index 940f8640a..000000000
--- a/nx-X11/extras/freetype2/src/base/ftmm.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftmm.c                                                                 */
-/*                                                                         */
-/*    Multiple Master font support (body).                                 */
-/*                                                                         */
-/*  Copyright 1996-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_MULTIPLE_MASTERS_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_MULTIPLE_MASTERS_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_mm
-
-
-  static FT_Error
-  ft_face_get_mm_service( FT_Face                   face,
-                          FT_Service_MultiMasters  *aservice )
-  {
-    FT_Error  error;
-
-
-    *aservice = NULL;
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    error = FT_Err_Invalid_Argument;
-
-    if ( FT_HAS_MULTIPLE_MASTERS( face ) )
-    {
-      FT_FACE_LOOKUP_SERVICE( face,
-                              *aservice,
-                              MULTI_MASTERS );
-
-      if ( aservice )
-        error = FT_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftmm.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_Multi_Master( FT_Face           face,
-                       FT_Multi_Master  *amaster )
-  {
-    FT_Error                 error;
-    FT_Service_MultiMasters  service;
-
-
-    error = ft_face_get_mm_service( face, &service );
-    if ( !error )
-    {
-      error = FT_Err_Invalid_Argument;
-      if ( service->get_mm )
-        error = service->get_mm( face, amaster );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftmm.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_MM_Var( FT_Face      face,
-                 FT_MM_Var*  *amaster )
-  {
-    FT_Error                 error;
-    FT_Service_MultiMasters  service;
-
-
-    error = ft_face_get_mm_service( face, &service );
-    if ( !error )
-    {
-      error = FT_Err_Invalid_Argument;
-      if ( service->get_mm_var )
-        error = service->get_mm_var( face, amaster );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftmm.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_MM_Design_Coordinates( FT_Face   face,
-                                FT_UInt   num_coords,
-                                FT_Long*  coords )
-  {
-    FT_Error                 error;
-    FT_Service_MultiMasters  service;
-
-
-    error = ft_face_get_mm_service( face, &service );
-    if ( !error )
-    {
-      error = FT_Err_Invalid_Argument;
-      if ( service->set_mm_design )
-        error = service->set_mm_design( face, num_coords, coords );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftmm.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_Var_Design_Coordinates( FT_Face    face,
-                                 FT_UInt    num_coords,
-                                 FT_Fixed*  coords )
-  {
-    FT_Error                 error;
-    FT_Service_MultiMasters  service;
-
-
-    error = ft_face_get_mm_service( face, &service );
-    if ( !error )
-    {
-      error = FT_Err_Invalid_Argument;
-      if ( service->set_var_design )
-        error = service->set_var_design( face, num_coords, coords );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftmm.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_MM_Blend_Coordinates( FT_Face    face,
-                               FT_UInt    num_coords,
-                               FT_Fixed*  coords )
-  {
-    FT_Error                 error;
-    FT_Service_MultiMasters  service;
-
-
-    error = ft_face_get_mm_service( face, &service );
-    if ( !error )
-    {
-      error = FT_Err_Invalid_Argument;
-      if ( service->set_mm_blend )
-         error = service->set_mm_blend( face, num_coords, coords );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftmm.h */
-  
-  /* This is exactly the same as the previous function.  It exists for */
-  /* orthogonality.                                                    */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_Var_Blend_Coordinates( FT_Face    face,
-                                FT_UInt    num_coords,
-                                FT_Fixed*  coords )
-  {
-    FT_Error                 error;
-    FT_Service_MultiMasters  service;
-
-
-    error = ft_face_get_mm_service( face, &service );
-    if ( !error )
-    {
-      error = FT_Err_Invalid_Argument;
-      if ( service->set_mm_blend )
-         error = service->set_mm_blend( face, num_coords, coords );
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftnames.c b/nx-X11/extras/freetype2/src/base/ftnames.c
deleted file mode 100644
index 7fde5c40b..000000000
--- a/nx-X11/extras/freetype2/src/base/ftnames.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftnames.c                                                              */
-/*                                                                         */
-/*    Simple interface to access SFNT name tables (which are used          */
-/*    to hold font names, copyright info, notices, etc.) (body).           */
-/*                                                                         */
-/*    This is _not_ used to retrieve glyph names!                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_SFNT_NAMES_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_INTERNAL_STREAM_H
-
-
-#ifdef TT_CONFIG_OPTION_SFNT_NAMES
-
-
-  /* documentation is in ftnames.h */
-
-  FT_EXPORT_DEF( FT_UInt )
-  FT_Get_Sfnt_Name_Count( FT_Face  face )
-  {
-    return (face && FT_IS_SFNT( face )) ? ((TT_Face)face)->num_names : 0;
-  }
-
-
-  /* documentation is in ftnames.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_Sfnt_Name( FT_Face       face,
-                    FT_UInt       idx,
-                    FT_SfntName  *aname )
-  {
-    FT_Error  error = FT_Err_Invalid_Argument;
-
-
-    if ( aname && face && FT_IS_SFNT( face ) )
-    {
-      TT_Face  ttface = (TT_Face)face;
-
-
-      if ( idx < (FT_UInt)ttface->num_names )
-      {
-        TT_NameEntryRec*  entry = ttface->name_table.names + idx;
-
-
-        /* load name on demand */
-        if ( entry->stringLength > 0 && entry->string == NULL )
-        {
-          FT_Memory  memory = face->memory;
-          FT_Stream  stream = face->stream;
-
-
-          if ( FT_NEW_ARRAY  ( entry->string, entry->stringLength ) ||
-               FT_STREAM_SEEK( entry->stringOffset )                ||
-               FT_STREAM_READ( entry->string, entry->stringLength ) )
-          {
-            FT_FREE( entry->string );
-            entry->stringLength = 0;
-          }
-        }
-
-        aname->platform_id = entry->platformID;
-        aname->encoding_id = entry->encodingID;
-        aname->language_id = entry->languageID;
-        aname->name_id     = entry->nameID;
-        aname->string      = (FT_Byte*)entry->string;
-        aname->string_len  = entry->stringLength;
-
-        error = FT_Err_Ok;
-      }
-    }
-
-    return error;
-  }
-
-
-#endif /* TT_CONFIG_OPTION_SFNT_NAMES */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftobjs.c b/nx-X11/extras/freetype2/src/base/ftobjs.c
deleted file mode 100644
index bbd6ce6be..000000000
--- a/nx-X11/extras/freetype2/src/base/ftobjs.c
+++ /dev/null
@@ -1,3311 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftobjs.c                                                               */
-/*                                                                         */
-/*    The FreeType private base classes (body).                            */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_LIST_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_RFORK_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H    /* for SFNT_Load_Table_Func */
-#include FT_TRUETYPE_TABLES_H
-#include FT_TRUETYPE_IDS_H
-#include FT_OUTLINE_H
-
-#include FT_SERVICE_SFNT_H
-#include FT_SERVICE_POSTSCRIPT_NAME_H
-#include FT_SERVICE_GLYPH_DICT_H
-#include FT_SERVICE_TT_CMAP_H
-
-
-  FT_BASE_DEF( FT_Pointer )
-  ft_service_list_lookup( FT_ServiceDesc  service_descriptors,
-                          const char*     service_id )
-  {
-    FT_Pointer      result = NULL;
-    FT_ServiceDesc  desc   = service_descriptors;
-
-
-    if ( desc && service_id )
-    {
-      for ( ; desc->serv_id != NULL; desc++ )
-      {
-        if ( ft_strcmp( desc->serv_id, service_id ) == 0 )
-        {
-          result = (FT_Pointer)desc->serv_data;
-          break;
-        }
-      }
-    }
-
-    return result;
-  }
-
-
-  FT_BASE_DEF( void )
-  ft_validator_init( FT_Validator        valid,
-                     const FT_Byte*      base,
-                     const FT_Byte*      limit,
-                     FT_ValidationLevel  level )
-  {
-    valid->base  = base;
-    valid->limit = limit;
-    valid->level = level;
-    valid->error = 0;
-  }
-
-
-  FT_BASE_DEF( FT_Int )
-  ft_validator_run( FT_Validator  valid )
-  {
-    int  result;
-
-
-    result = ft_setjmp( valid->jump_buffer );
-    return result;
-  }
-
-
-  FT_BASE_DEF( void )
-  ft_validator_error( FT_Validator  valid,
-                      FT_Error      error )
-  {
-    valid->error = error;
-    ft_longjmp( valid->jump_buffer, 1 );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                           S T R E A M                           ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* create a new input stream from an FT_Open_Args structure */
-  /*                                                          */
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_New( FT_Library           library,
-                 const FT_Open_Args*  args,
-                 FT_Stream           *astream )
-  {
-    FT_Error   error;
-    FT_Memory  memory;
-    FT_Stream  stream;
-
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( !args )
-      return FT_Err_Invalid_Argument;
-
-    *astream = 0;
-    memory   = library->memory;
-
-    if ( FT_NEW( stream ) )
-      goto Exit;
-
-    stream->memory = memory;
-
-    if ( args->flags & FT_OPEN_MEMORY )
-    {
-      /* create a memory-based stream */
-      FT_Stream_OpenMemory( stream,
-                            (const FT_Byte*)args->memory_base,
-                            args->memory_size );
-    }
-    else if ( args->flags & FT_OPEN_PATHNAME )
-    {
-      /* create a normal system stream */
-      error = FT_Stream_Open( stream, args->pathname );
-      stream->pathname.pointer = args->pathname;
-    }
-    else if ( ( args->flags & FT_OPEN_STREAM ) && args->stream )
-    {
-      /* use an existing, user-provided stream */
-
-      /* in this case, we do not need to allocate a new stream object */
-      /* since the caller is responsible for closing it himself       */
-      FT_FREE( stream );
-      stream = args->stream;
-    }
-    else
-      error = FT_Err_Invalid_Argument;
-
-    if ( error )
-      FT_FREE( stream );
-    else
-      stream->memory = memory;  /* just to be certain */
-
-    *astream = stream;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_BASE_DEF( void )
-  FT_Stream_Free( FT_Stream  stream,
-                  FT_Int     external )
-  {
-    if ( stream )
-    {
-      FT_Memory  memory = stream->memory;
-
-
-      FT_Stream_Close( stream );
-
-      if ( !external )
-        FT_FREE( stream );
-    }
-  }
-
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_objs
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****               FACE, SIZE & GLYPH SLOT OBJECTS                   ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  static FT_Error
-  ft_glyphslot_init( FT_GlyphSlot  slot )
-  {
-    FT_Driver         driver = slot->face->driver;
-    FT_Driver_Class   clazz  = driver->clazz;
-    FT_Memory         memory = driver->root.memory;
-    FT_Error          error  = FT_Err_Ok;
-    FT_Slot_Internal  internal;
-
-
-    slot->library = driver->root.library;
-
-    if ( FT_NEW( internal ) )
-      goto Exit;
-
-    slot->internal = internal;
-
-    if ( FT_DRIVER_USES_OUTLINES( driver ) )
-      error = FT_GlyphLoader_New( memory, &internal->loader );
-
-    if ( !error && clazz->init_slot )
-      error = clazz->init_slot( slot );
-
-  Exit:
-    return error;
-  }
-
-
-  FT_BASE_DEF( void )
-  ft_glyphslot_free_bitmap( FT_GlyphSlot  slot )
-  {
-    if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
-    {
-      FT_Memory  memory = FT_FACE_MEMORY( slot->face );
-
-
-      FT_FREE( slot->bitmap.buffer );
-      slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
-    }
-    else
-    {
-      /* assume that the bitmap buffer was stolen or not */
-      /* allocated from the heap                         */
-      slot->bitmap.buffer = NULL;
-    }
-  }
-
-
-  FT_BASE_DEF( void )
-  ft_glyphslot_set_bitmap( FT_GlyphSlot  slot,
-                           FT_Byte*      buffer )
-  {
-    ft_glyphslot_free_bitmap( slot );
-
-    slot->bitmap.buffer = buffer;
-
-    FT_ASSERT( (slot->internal->flags & FT_GLYPH_OWN_BITMAP) == 0 );
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  ft_glyphslot_alloc_bitmap( FT_GlyphSlot  slot,
-                             FT_ULong      size )
-  {
-    FT_Memory  memory = FT_FACE_MEMORY( slot->face );
-
-
-    if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
-      FT_FREE( slot->bitmap.buffer );
-    else
-      slot->internal->flags |= FT_GLYPH_OWN_BITMAP;
-
-    return FT_MEM_ALLOC( slot->bitmap.buffer, size );
-  }
-
-
-  static void
-  ft_glyphslot_clear( FT_GlyphSlot  slot )
-  {
-    /* free bitmap if needed */
-    ft_glyphslot_free_bitmap( slot );
-
-    /* clear all public fields in the glyph slot */
-    FT_ZERO( &slot->metrics );
-    FT_ZERO( &slot->outline );
-
-    slot->bitmap.width = 0;
-    slot->bitmap.rows  = 0;
-    slot->bitmap.pitch = 0;
-    slot->bitmap.pixel_mode = 0;
-    /* don't touch 'slot->bitmap.buffer'! */
-
-    slot->bitmap_left   = 0;
-    slot->bitmap_top    = 0;
-    slot->num_subglyphs = 0;
-    slot->subglyphs     = 0;
-    slot->control_data  = 0;
-    slot->control_len   = 0;
-    slot->other         = 0;
-    slot->format        = FT_GLYPH_FORMAT_NONE;
-
-    slot->linearHoriAdvance = 0;
-    slot->linearVertAdvance = 0;
-  }
-
-
-  static void
-  ft_glyphslot_done( FT_GlyphSlot  slot )
-  {
-    FT_Driver         driver = slot->face->driver;
-    FT_Driver_Class   clazz  = driver->clazz;
-    FT_Memory         memory = driver->root.memory;
-
-
-    if ( clazz->done_slot )
-      clazz->done_slot( slot );
-
-    /* free bitmap buffer if needed */
-    ft_glyphslot_free_bitmap( slot );
-
-    /* free glyph loader */
-    if ( FT_DRIVER_USES_OUTLINES( driver ) )
-    {
-      FT_GlyphLoader_Done( slot->internal->loader );
-      slot->internal->loader = 0;
-    }
-
-    FT_FREE( slot->internal );
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_BASE_DEF( FT_Error )
-  FT_New_GlyphSlot( FT_Face        face,
-                    FT_GlyphSlot  *aslot )
-  {
-    FT_Error          error;
-    FT_Driver         driver;
-    FT_Driver_Class   clazz;
-    FT_Memory         memory;
-    FT_GlyphSlot      slot;
-
-
-    if ( !face || !aslot || !face->driver )
-      return FT_Err_Invalid_Argument;
-
-    *aslot = 0;
-
-    driver = face->driver;
-    clazz  = driver->clazz;
-    memory = driver->root.memory;
-
-    FT_TRACE4(( "FT_New_GlyphSlot: Creating new slot object\n" ));
-    if ( !FT_ALLOC( slot, clazz->slot_object_size ) )
-    {
-      slot->face = face;
-
-      error = ft_glyphslot_init( slot );
-      if ( error )
-      {
-        ft_glyphslot_done( slot );
-        FT_FREE( slot );
-        goto Exit;
-      }
-
-      *aslot = slot;
-    }
-
-  Exit:
-    FT_TRACE4(( "FT_New_GlyphSlot: Return %d\n", error ));
-    return error;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_BASE_DEF( void )
-  FT_Done_GlyphSlot( FT_GlyphSlot  slot )
-  {
-    if ( slot )
-    {
-      FT_Driver      driver = slot->face->driver;
-      FT_Memory      memory = driver->root.memory;
-      FT_GlyphSlot*  parent;
-      FT_GlyphSlot   cur;
-
-
-      /* Remove slot from its parent face's list */
-      parent = &slot->face->glyph;
-      cur    = *parent;
-
-      while ( cur )
-      {
-        if ( cur == slot )
-        {
-          *parent = cur->next;
-          ft_glyphslot_done( slot );
-          FT_FREE( slot );
-          break;
-        }
-        cur = cur->next;
-      }
-    }
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Set_Transform( FT_Face     face,
-                    FT_Matrix*  matrix,
-                    FT_Vector*  delta )
-  {
-    FT_Face_Internal  internal;
-
-
-    if ( !face )
-      return;
-
-    internal = face->internal;
-
-    internal->transform_flags = 0;
-
-    if ( !matrix )
-    {
-      internal->transform_matrix.xx = 0x10000L;
-      internal->transform_matrix.xy = 0;
-      internal->transform_matrix.yx = 0;
-      internal->transform_matrix.yy = 0x10000L;
-      matrix = &internal->transform_matrix;
-    }
-    else
-      internal->transform_matrix = *matrix;
-
-    /* set transform_flags bit flag 0 if `matrix' isn't the identity */
-    if ( ( matrix->xy | matrix->yx ) ||
-         matrix->xx != 0x10000L      ||
-         matrix->yy != 0x10000L      )
-      internal->transform_flags |= 1;
-
-    if ( !delta )
-    {
-      internal->transform_delta.x = 0;
-      internal->transform_delta.y = 0;
-      delta = &internal->transform_delta;
-    }
-    else
-      internal->transform_delta = *delta;
-
-    /* set transform_flags bit flag 1 if `delta' isn't the null vector */
-    if ( delta->x | delta->y )
-      internal->transform_flags |= 2;
-  }
-
-
-  static FT_Renderer
-  ft_lookup_glyph_renderer( FT_GlyphSlot  slot );
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Load_Glyph( FT_Face   face,
-                 FT_UInt   glyph_index,
-                 FT_Int32  load_flags )
-  {
-    FT_Error      error;
-    FT_Driver     driver;
-    FT_GlyphSlot  slot;
-    FT_Library    library;
-    FT_Bool       autohint;
-    FT_Module     hinter;
-
-
-    if ( !face || !face->size || !face->glyph )
-      return FT_Err_Invalid_Face_Handle;
-
-    if ( glyph_index >= (FT_UInt)face->num_glyphs )
-      return FT_Err_Invalid_Argument;
-
-    slot = face->glyph;
-    ft_glyphslot_clear( slot );
-
-    driver = face->driver;
-
-    /* if the flag NO_RECURSE is set, we disable hinting and scaling */
-    if ( load_flags & FT_LOAD_NO_RECURSE )
-    {
-      /* disable scaling, hinting, and transformation */
-      load_flags |= FT_LOAD_NO_SCALE         |
-                    FT_LOAD_NO_HINTING       |
-                    FT_LOAD_NO_BITMAP        |
-                    FT_LOAD_IGNORE_TRANSFORM;
-
-      /* disable bitmap rendering */
-      load_flags &= ~FT_LOAD_RENDER;
-    }
-
-    /* do we need to load the glyph through the auto-hinter? */
-    library  = driver->root.library;
-    hinter   = library->auto_hinter;
-    autohint =
-      FT_BOOL( hinter                                      &&
-               !( load_flags & ( FT_LOAD_NO_SCALE    |
-                                 FT_LOAD_NO_HINTING  |
-                                 FT_LOAD_NO_AUTOHINT ) )   &&
-               FT_DRIVER_IS_SCALABLE( driver )             &&
-               FT_DRIVER_USES_OUTLINES( driver )           );
-    if ( autohint )
-    {
-      if ( FT_DRIVER_HAS_HINTER( driver ) &&
-           !( load_flags & FT_LOAD_FORCE_AUTOHINT ) )
-        autohint = 0;
-    }
-
-    /* don't apply autohinting if glyph is vertically distorted or */
-    /* mirrored                                                    */
-    if ( autohint && !( face->internal->transform_matrix.yy <= 0 ||
-                        face->internal->transform_matrix.yx != 0 ) )
-    {
-      FT_AutoHinter_Service  hinting;
-
-
-      /* try to load embedded bitmaps first if available            */
-      /*                                                            */
-      /* XXX: This is really a temporary hack that should disappear */
-      /*      promptly with FreeType 2.1!                           */
-      /*                                                            */
-      if ( FT_HAS_FIXED_SIZES( face )             &&
-          ( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
-      {
-        error = driver->clazz->load_glyph( slot, face->size,
-                                           glyph_index,
-                                           load_flags | FT_LOAD_SBITS_ONLY );
-
-        if ( !error && slot->format == FT_GLYPH_FORMAT_BITMAP )
-          goto Load_Ok;
-      }
-
-      /* load auto-hinted outline */
-      hinting = (FT_AutoHinter_Service)hinter->clazz->module_interface;
-
-      error   = hinting->load_glyph( (FT_AutoHinter)hinter,
-                                     slot, face->size,
-                                     glyph_index, load_flags );
-    }
-    else
-    {
-      error = driver->clazz->load_glyph( slot,
-                                         face->size,
-                                         glyph_index,
-                                         load_flags );
-      if ( error )
-        goto Exit;
-
-      /* check that the loaded outline is correct */
-      error = FT_Outline_Check( &slot->outline );
-      if ( error )
-        goto Exit;
-    }
-
-  Load_Ok:
-    /* compute the advance */
-    if ( load_flags & FT_LOAD_VERTICAL_LAYOUT )
-    {
-      slot->advance.x = 0;
-      slot->advance.y = slot->metrics.vertAdvance;
-    }
-    else
-    {
-      slot->advance.x = slot->metrics.horiAdvance;
-      slot->advance.y = 0;
-    }
-
-    /* compute the linear advance in 16.16 pixels */
-    if ( ( load_flags & FT_LOAD_LINEAR_DESIGN ) == 0  &&
-         ( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
-    {
-      FT_Size_Metrics*  metrics = &face->size->metrics;
-
-
-      slot->linearHoriAdvance = FT_MulDiv( slot->linearHoriAdvance,
-                                           metrics->x_scale, 64 );
-
-      slot->linearVertAdvance = FT_MulDiv( slot->linearVertAdvance,
-                                           metrics->y_scale, 64 );
-    }
-
-    if ( ( load_flags & FT_LOAD_IGNORE_TRANSFORM ) == 0 )
-    {
-      FT_Face_Internal  internal = face->internal;
-
-
-      /* now, transform the glyph image if needed */
-      if ( internal->transform_flags )
-      {
-        /* get renderer */
-        FT_Renderer  renderer = ft_lookup_glyph_renderer( slot );
-
-
-        if ( renderer )
-          error = renderer->clazz->transform_glyph(
-                                     renderer, slot,
-                                     &internal->transform_matrix,
-                                     &internal->transform_delta );
-        /* transform advance */
-        FT_Vector_Transform( &slot->advance, &internal->transform_matrix );
-      }
-    }
-
-    /* do we need to render the image now? */
-    if ( !error                                    &&
-         slot->format != FT_GLYPH_FORMAT_BITMAP    &&
-         slot->format != FT_GLYPH_FORMAT_COMPOSITE &&
-         load_flags & FT_LOAD_RENDER )
-    {
-      FT_Render_Mode  mode = FT_LOAD_TARGET_MODE( load_flags );
-
-
-      if ( mode == FT_RENDER_MODE_NORMAL      &&
-           (load_flags & FT_LOAD_MONOCHROME ) )
-        mode = FT_RENDER_MODE_MONO;
-
-      error = FT_Render_Glyph( slot, mode );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Load_Char( FT_Face   face,
-                FT_ULong  char_code,
-                FT_Int32  load_flags )
-  {
-    FT_UInt  glyph_index;
-
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    glyph_index = (FT_UInt)char_code;
-    if ( face->charmap )
-      glyph_index = FT_Get_Char_Index( face, char_code );
-
-    return FT_Load_Glyph( face, glyph_index, load_flags );
-  }
-
-
-  /* destructor for sizes list */
-  static void
-  destroy_size( FT_Memory  memory,
-                FT_Size    size,
-                FT_Driver  driver )
-  {
-    /* finalize client-specific data */
-    if ( size->generic.finalizer )
-      size->generic.finalizer( size );
-
-    /* finalize format-specific stuff */
-    if ( driver->clazz->done_size )
-      driver->clazz->done_size( size );
-
-    FT_FREE( size->internal );
-    FT_FREE( size );
-  }
-
-
-  static void
-  destroy_charmaps( FT_Face    face,
-                    FT_Memory  memory )
-  {
-    FT_Int  n;
-
-
-    for ( n = 0; n < face->num_charmaps; n++ )
-    {
-      FT_CMap  cmap = FT_CMAP( face->charmaps[n] );
-
-
-      FT_CMap_Done( cmap );
-
-      face->charmaps[n] = NULL;
-    }
-
-    FT_FREE( face->charmaps );
-    face->num_charmaps = 0;
-  }
-
-
-  /* destructor for faces list */
-  static void
-  destroy_face( FT_Memory  memory,
-                FT_Face    face,
-                FT_Driver  driver )
-  {
-    FT_Driver_Class  clazz = driver->clazz;
-
-
-    /* discard auto-hinting data */
-    if ( face->autohint.finalizer )
-      face->autohint.finalizer( face->autohint.data );
-
-    /* Discard glyph slots for this face.                           */
-    /* Beware!  FT_Done_GlyphSlot() changes the field `face->glyph' */
-    while ( face->glyph )
-      FT_Done_GlyphSlot( face->glyph );
-
-    /* discard all sizes for this face */
-    FT_List_Finalize( &face->sizes_list,
-                      (FT_List_Destructor)destroy_size,
-                      memory,
-                      driver );
-    face->size = 0;
-
-    /* now discard client data */
-    if ( face->generic.finalizer )
-      face->generic.finalizer( face );
-
-    /* discard charmaps */
-    destroy_charmaps( face, memory );
-
-    /* finalize format-specific stuff */
-    if ( clazz->done_face )
-      clazz->done_face( face );
-
-    /* close the stream for this face if needed */
-    FT_Stream_Free(
-      face->stream,
-      ( face->face_flags & FT_FACE_FLAG_EXTERNAL_STREAM ) != 0 );
-
-    face->stream = 0;
-
-    /* get rid of it */
-    if ( face->internal )
-    {
-      FT_FREE( face->internal );
-    }
-    FT_FREE( face );
-  }
-
-
-  static void
-  Destroy_Driver( FT_Driver  driver )
-  {
-    FT_List_Finalize( &driver->faces_list,
-                      (FT_List_Destructor)destroy_face,
-                      driver->root.memory,
-                      driver );
-
-    /* check whether we need to drop the driver's glyph loader */
-    if ( FT_DRIVER_USES_OUTLINES( driver ) )
-      FT_GlyphLoader_Done( driver->glyph_loader );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    find_unicode_charmap                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function finds a Unicode charmap, if there is one.            */
-  /*    And if there is more than one, it tries to favour the more         */
-  /*    extensive one, i.e., one that supports UCS-4 against those which   */
-  /*    are limited to the BMP (said UCS-2 encoding.)                      */
-  /*                                                                       */
-  /*    This function is called from open_face() (just below), and also    */
-  /*    from FT_Select_Charmap( ..., FT_ENCODING_UNICODE).                 */
-  /*                                                                       */
-  static FT_Error
-  find_unicode_charmap( FT_Face  face )
-  {
-    FT_CharMap*  first;
-    FT_CharMap*  cur;
-    FT_CharMap*  unicmap = NULL;  /* some UCS-2 map, if we found it */
-
-
-    /* caller should have already checked that `face' is valid */
-    FT_ASSERT( face );
-
-    first = face->charmaps;
-
-    if ( !first )
-      return FT_Err_Invalid_CharMap_Handle;
-
-    /*
-     *  The original TrueType specification(s) only specified charmap
-     *  formats that are capable of mapping 8 or 16 bit character codes to
-     *  glyph indices.
-     *
-     *  However, recent updates to the Apple and OpenType specifications
-     *  introduced new formats that are capable of mapping 32-bit character
-     *  codes as well.  And these are already used on some fonts, mainly to
-     *  map non-BMP Asian ideographs as defined in Unicode.
-     *
-     *  For compatibility purposes, these fonts generally come with
-     *  *several* Unicode charmaps:
-     *
-     *   - One of them in the "old" 16-bit format, that cannot access
-     *     all glyphs in the font.
-     *
-     *   - Another one in the "new" 32-bit format, that can access all
-     *     the glyphs.
-     *
-     *  This function has been written to always favor a 32-bit charmap
-     *  when found.  Otherwise, a 16-bit one is returned when found.
-     */
-
-    /* since the `interesting' table, with id's 3,10, is normally the */
-    /* last one, we loop backwards. This looses with type1 fonts with */
-    /* non-BMP characters (<.0001%), this wins with .ttf with non-BMP */
-    /* chars (.01% ?), and this is the same about 99.99% of the time! */
-
-    cur = first + face->num_charmaps;  /* points after the last one */
-
-    for ( ; --cur >= first; )
-    {
-      if ( cur[0]->encoding == FT_ENCODING_UNICODE )
-      {
-        unicmap = cur;  /* record we found a Unicode charmap */
-
-        /* XXX If some new encodings to represent UCS-4 are added,  */
-        /*     they should be added here.                           */
-        if ( ( cur[0]->platform_id == TT_PLATFORM_MICROSOFT &&
-               cur[0]->encoding_id == TT_MS_ID_UCS_4        )          ||
-             ( cur[0]->platform_id == TT_PLATFORM_APPLE_UNICODE &&
-               cur[0]->encoding_id == TT_APPLE_ID_UNICODE_32    )      )
-
-        /* Hurray! We found a UCS-4 charmap. We can stop the scan! */
-        {
-          face->charmap = cur[0];
-          return 0;
-        }
-      }
-    }
-
-    /* We do not have any UCS-4 charmap. Sigh.                           */
-    /* Let's see if we have  some other kind of Unicode charmap, though. */
-    if ( unicmap != NULL )
-    {
-      face->charmap = unicmap[0];
-      return 0;
-    }
-
-    /* Chou blanc! */
-    return FT_Err_Invalid_CharMap_Handle;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    open_face                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    This function does some work for FT_Open_Face().                   */
-  /*                                                                       */
-  static FT_Error
-  open_face( FT_Driver      driver,
-             FT_Stream      stream,
-             FT_Long        face_index,
-             FT_Int         num_params,
-             FT_Parameter*  params,
-             FT_Face       *aface )
-  {
-    FT_Memory         memory;
-    FT_Driver_Class   clazz;
-    FT_Face           face = 0;
-    FT_Error          error, error2;
-    FT_Face_Internal  internal;
-
-
-    clazz  = driver->clazz;
-    memory = driver->root.memory;
-
-    /* allocate the face object and perform basic initialization */
-    if ( FT_ALLOC( face, clazz->face_object_size ) )
-      goto Fail;
-
-    if ( FT_NEW( internal ) )
-      goto Fail;
-
-    face->internal = internal;
-
-    face->driver   = driver;
-    face->memory   = memory;
-    face->stream   = stream;
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    {
-      int  i;
-
-
-      face->internal->incremental_interface = 0;
-      for ( i = 0; i < num_params && !face->internal->incremental_interface;
-            i++ )
-        if ( params[i].tag == FT_PARAM_TAG_INCREMENTAL )
-          face->internal->incremental_interface = params[i].data;
-    }
-#endif
-
-    error = clazz->init_face( stream,
-                              face,
-                              (FT_Int)face_index,
-                              num_params,
-                              params );
-    if ( error )
-      goto Fail;
-
-    /* select Unicode charmap by default */
-    error2 = find_unicode_charmap( face );
-
-    /* if no Unicode charmap can be found, FT_Err_Invalid_CharMap_Handle */
-    /* is returned.                                                      */
-
-    /* no error should happen, but we want to play safe */
-    if ( error2 && error2 != FT_Err_Invalid_CharMap_Handle )
-    {
-      error = error2;
-      goto Fail;
-    }
-
-    *aface = face;
-
-  Fail:
-    if ( error )
-    {
-      destroy_charmaps( face, memory );
-      clazz->done_face( face );
-      FT_FREE( internal );
-      FT_FREE( face );
-      *aface = 0;
-    }
-
-    return error;
-  }
-
-
-  /* there's a Mac-specific extended implementation of FT_New_Face() */
-  /* in src/base/ftmac.c                                             */
-
-#ifndef FT_MACINTOSH
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Face( FT_Library   library,
-               const char*  pathname,
-               FT_Long      face_index,
-               FT_Face     *aface )
-  {
-    FT_Open_Args  args;
-
-
-    /* test for valid `library' and `aface' delayed to FT_Open_Face() */
-    if ( !pathname )
-      return FT_Err_Invalid_Argument;
-
-    args.flags    = FT_OPEN_PATHNAME;
-    args.pathname = (char*)pathname;
-
-    return FT_Open_Face( library, &args, face_index, aface );
-  }
-
-#endif  /* !FT_MACINTOSH */
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Memory_Face( FT_Library      library,
-                      const FT_Byte*  file_base,
-                      FT_Long         file_size,
-                      FT_Long         face_index,
-                      FT_Face        *aface )
-  {
-    FT_Open_Args  args;
-
-
-    /* test for valid `library' and `face' delayed to FT_Open_Face() */
-    if ( !file_base )
-      return FT_Err_Invalid_Argument;
-
-    args.flags       = FT_OPEN_MEMORY;
-    args.memory_base = file_base;
-    args.memory_size = file_size;
-
-    return FT_Open_Face( library, &args, face_index, aface );
-  }
-
-
-#if !defined( FT_MACINTOSH ) && defined( FT_CONFIG_OPTION_MAC_FONTS )
-
-  /* The behavior here is very similar to that in base/ftmac.c, but it     */
-  /* is designed to work on non-mac systems, so no mac specific calls.     */
-  /*                                                                       */
-  /* We look at the file and determine if it is a mac dfont file or a mac  */
-  /* resource file, or a macbinary file containing a mac resource file.    */
-  /*                                                                       */
-  /* Unlike ftmac I'm not going to look at a `FOND'.  I don't really see   */
-  /* the point, especially since there may be multiple `FOND' resources.   */
-  /* Instead I'll just look for `sfnt' and `POST' resources, ordered as    */
-  /* they occur in the file.                                               */
-  /*                                                                       */
-  /* Note that multiple `POST' resources do not mean multiple postscript   */
-  /* fonts; they all get jammed together to make what is essentially a     */
-  /* pfb file.                                                             */
-  /*                                                                       */
-  /* We aren't interested in `NFNT' or `FONT' bitmap resources.            */
-  /*                                                                       */
-  /* As soon as we get an `sfnt' load it into memory and pass it off to    */
-  /* FT_Open_Face.                                                         */
-  /*                                                                       */
-  /* If we have a (set of) `POST' resources, massage them into a (memory)  */
-  /* pfb file and pass that to FT_Open_Face.  (As with ftmac.c I'm not     */
-  /* going to try to save the kerning info.  After all that lives in the   */
-  /* `FOND' which isn't in the file containing the `POST' resources so     */
-  /* we don't really have access to it.                                    */
-
-
-  /* Finalizer for a memory stream; gets called by FT_Done_Face().
-     It frees the memory it uses. */
-  /* from ftmac.c */
-  static void
-  memory_stream_close( FT_Stream  stream )
-  {
-    FT_Memory  memory = stream->memory;
-
-
-    FT_FREE( stream->base );
-
-    stream->size  = 0;
-    stream->base  = 0;
-    stream->close = 0;
-  }
-
-
-  /* Create a new memory stream from a buffer and a size. */
-  /* from ftmac.c */
-  static FT_Error
-  new_memory_stream( FT_Library           library,
-                     FT_Byte*             base,
-                     FT_ULong             size,
-                     FT_Stream_CloseFunc  close,
-                     FT_Stream           *astream )
-  {
-    FT_Error   error;
-    FT_Memory  memory;
-    FT_Stream  stream;
-
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( !base )
-      return FT_Err_Invalid_Argument;
-
-    *astream = 0;
-    memory = library->memory;
-    if ( FT_NEW( stream ) )
-      goto Exit;
-
-    FT_Stream_OpenMemory( stream, base, size );
-
-    stream->close = close;
-
-    *astream = stream;
-
-  Exit:
-    return error;
-  }
-
-
-  /* Create a new FT_Face given a buffer and a driver name. */
-  /* from ftmac.c */
-  static FT_Error
-  open_face_from_buffer( FT_Library   library,
-                         FT_Byte*     base,
-                         FT_ULong     size,
-                         FT_Long      face_index,
-                         const char*  driver_name,
-                         FT_Face     *aface )
-  {
-    FT_Open_Args  args;
-    FT_Error      error;
-    FT_Stream     stream;
-    FT_Memory     memory = library->memory;
-
-
-    error = new_memory_stream( library,
-                               base,
-                               size,
-                               memory_stream_close,
-                               &stream );
-    if ( error )
-    {
-      FT_FREE( base );
-      return error;
-    }
-
-    args.flags = FT_OPEN_STREAM;
-    args.stream = stream;
-    if ( driver_name )
-    {
-      args.flags = args.flags | FT_OPEN_DRIVER;
-      args.driver = FT_Get_Module( library, driver_name );
-    }
-
-    error = FT_Open_Face( library, &args, face_index, aface );
-
-    if ( error == FT_Err_Ok )
-      (*aface)->face_flags &= ~FT_FACE_FLAG_EXTERNAL_STREAM;
-    else
-    {
-      FT_Stream_Close( stream );
-      FT_FREE( stream );
-    }
-
-    return error;
-  }
-
-
-  /* The resource header says we've got resource_cnt `POST' (type1) */
-  /* resources in this file.  They all need to be coalesced into    */
-  /* one lump which gets passed on to the type1 driver.             */
-  /* Here can be only one PostScript font in a file so face_index   */
-  /* must be 0 (or -1).                                             */
-  /*                                                                */
-  static FT_Error
-  Mac_Read_POST_Resource( FT_Library  library,
-                          FT_Stream   stream,
-                          FT_Long    *offsets,
-                          FT_Long     resource_cnt,
-                          FT_Long     face_index,
-                          FT_Face    *aface )
-  {
-    FT_Error   error  = FT_Err_Cannot_Open_Resource;
-    FT_Memory  memory = library->memory;
-    FT_Byte*   pfb_data;
-    int        i, type, flags;
-    FT_Long    len;
-    FT_Long    pfb_len, pfb_pos, pfb_lenpos;
-    FT_Long    rlen, temp;
-
-
-    if ( face_index == -1 )
-      face_index = 0;
-    if ( face_index != 0 )
-      return error;
-
-    /* Find the length of all the POST resources, concatenated.  Assume */
-    /* worst case (each resource in its own section).                   */
-    pfb_len = 0;
-    for ( i = 0; i < resource_cnt; ++i )
-    {
-      error = FT_Stream_Seek( stream, offsets[i] );
-      if ( error )
-        goto Exit;
-      if ( FT_READ_LONG( temp ) )
-        goto Exit;
-      pfb_len += temp + 6;
-    }
-
-    if ( FT_ALLOC( pfb_data, (FT_Long)pfb_len + 2 ) )
-      goto Exit;
-
-    pfb_data[0] = 0x80;
-    pfb_data[1] = 1;            /* Ascii section */
-    pfb_data[2] = 0;            /* 4-byte length, fill in later */
-    pfb_data[3] = 0;
-    pfb_data[4] = 0;
-    pfb_data[5] = 0;
-    pfb_pos     = 7;
-    pfb_lenpos  = 2;
-
-    len = 0;
-    type = 1;
-    for ( i = 0; i < resource_cnt; ++i )
-    {
-      error = FT_Stream_Seek( stream, offsets[i] );
-      if ( error )
-        goto Exit2;
-      if ( FT_READ_LONG( rlen ) )
-        goto Exit;
-      if ( FT_READ_USHORT( flags ) )
-        goto Exit;
-      rlen -= 2;                    /* the flags are part of the resource */
-      if ( ( flags >> 8 ) == type )
-        len += rlen;
-      else
-      {
-        pfb_data[pfb_lenpos    ] = (FT_Byte)( len );
-        pfb_data[pfb_lenpos + 1] = (FT_Byte)( len >> 8 );
-        pfb_data[pfb_lenpos + 2] = (FT_Byte)( len >> 16 );
-        pfb_data[pfb_lenpos + 3] = (FT_Byte)( len >> 24 );
-
-        if ( ( flags >> 8 ) == 5 )      /* End of font mark */
-          break;
-
-        pfb_data[pfb_pos++] = 0x80;
-
-        type = flags >> 8;
-        len = rlen;
-
-        pfb_data[pfb_pos++] = (FT_Byte)type;
-        pfb_lenpos          = (FT_Byte)pfb_pos;
-        pfb_data[pfb_pos++] = 0;        /* 4-byte length, fill in later */
-        pfb_data[pfb_pos++] = 0;
-        pfb_data[pfb_pos++] = 0;
-        pfb_data[pfb_pos++] = 0;
-      }
-
-      error = FT_Stream_Read( stream, (FT_Byte *)pfb_data + pfb_pos, rlen );
-      pfb_pos += rlen;
-    }
-
-    pfb_data[pfb_pos++] = 0x80;
-    pfb_data[pfb_pos++] = 3;
-
-    pfb_data[pfb_lenpos    ] = (FT_Byte)( len );
-    pfb_data[pfb_lenpos + 1] = (FT_Byte)( len >> 8 );
-    pfb_data[pfb_lenpos + 2] = (FT_Byte)( len >> 16 );
-    pfb_data[pfb_lenpos + 3] = (FT_Byte)( len >> 24 );
-
-    return open_face_from_buffer( library,
-                                  pfb_data,
-                                  pfb_pos,
-                                  face_index,
-                                  "type1",
-                                  aface );
-
-  Exit2:
-    FT_FREE( pfb_data );
-
-  Exit:
-    return error;
-  }
-
-
-  /* The resource header says we've got resource_cnt `sfnt'      */
-  /* (TrueType/OpenType) resources in this file.  Look through   */
-  /* them for the one indicated by face_index, load it into mem, */
-  /* pass it on the the truetype driver and return it.           */
-  /*                                                             */
-  static FT_Error
-  Mac_Read_sfnt_Resource( FT_Library  library,
-                          FT_Stream   stream,
-                          FT_Long    *offsets,
-                          FT_Long     resource_cnt,
-                          FT_Long     face_index,
-                          FT_Face    *aface )
-  {
-    FT_Memory  memory = library->memory;
-    FT_Byte*   sfnt_data;
-    FT_Error   error;
-    FT_Long    flag_offset;
-    FT_Long    rlen;
-    int        is_cff;
-
-
-    if ( face_index == -1 )
-      face_index = 0;
-    if ( face_index >= resource_cnt )
-      return FT_Err_Cannot_Open_Resource;
-
-    flag_offset = offsets[face_index];
-    error = FT_Stream_Seek( stream, flag_offset );
-    if ( error )
-      goto Exit;
-
-    if ( FT_READ_LONG( rlen ) )
-      goto Exit;
-    if ( rlen == -1 )
-      return FT_Err_Cannot_Open_Resource;
-
-    if ( FT_ALLOC( sfnt_data, (FT_Long)rlen ) )
-      return error;
-    error = FT_Stream_Read( stream, (FT_Byte *)sfnt_data, rlen );
-    if ( error )
-      goto Exit;
-
-    is_cff = rlen > 4 && sfnt_data[0] == 'O' &&
-                         sfnt_data[1] == 'T' &&
-                         sfnt_data[2] == 'T' &&
-                         sfnt_data[3] == 'O';
-
-    error = open_face_from_buffer( library,
-                                   sfnt_data,
-                                   rlen,
-                                   face_index,
-                                   is_cff ? "cff" : "truetype",
-                                   aface );
-
-  Exit:
-    return error;
-  }
-
-
-  /* Check for a valid resource fork header, or a valid dfont    */
-  /* header.  In a resource fork the first 16 bytes are repeated */
-  /* at the location specified by bytes 4-7.  In a dfont bytes   */
-  /* 4-7 point to 16 bytes of zeroes instead.                    */
-  /*                                                             */
-  static FT_Error
-  IsMacResource( FT_Library  library,
-                 FT_Stream   stream,
-                 FT_Long     resource_offset,
-                 FT_Long     face_index,
-                 FT_Face    *aface )
-  {
-    FT_Memory  memory = library->memory;
-    FT_Error   error;
-    FT_Long    map_offset, rdara_pos;
-    FT_Long    *data_offsets;
-    FT_Long    count;
-
-
-    error = FT_Raccess_Get_HeaderInfo( library, stream, resource_offset,
-                                       &map_offset, &rdara_pos );
-    if ( error )
-      return error;
-
-    error = FT_Raccess_Get_DataOffsets( library, stream,
-                                        map_offset, rdara_pos,
-                                        FT_MAKE_TAG( 'P', 'O', 'S', 'T' ),
-                                        &data_offsets, &count );
-    if ( !error )
-    {
-      error = Mac_Read_POST_Resource( library, stream, data_offsets, count,
-                                      face_index, aface );
-      FT_FREE( data_offsets );
-      return error;
-    }
-
-    error = FT_Raccess_Get_DataOffsets( library, stream,
-                                        map_offset, rdara_pos,
-                                        FT_MAKE_TAG( 's', 'f', 'n', 't' ),
-                                        &data_offsets, &count );
-    if ( !error )
-    {
-      error = Mac_Read_sfnt_Resource( library, stream, data_offsets, count,
-                                      face_index, aface );
-      FT_FREE( data_offsets );
-    }
-
-    return error;
-  }
-
-
-  /* Check for a valid macbinary header, and if we find one   */
-  /* check that the (flattened) resource fork in it is valid. */
-  /*                                                          */
-  static FT_Error
-  IsMacBinary( FT_Library  library,
-               FT_Stream   stream,
-               FT_Long     face_index,
-               FT_Face    *aface )
-  {
-    unsigned char  header[128];
-    FT_Error       error;
-    FT_Long        dlen, offset;
-
-
-    error = FT_Stream_Seek( stream, 0 );
-    if ( error )
-      goto Exit;
-
-    error = FT_Stream_Read( stream, (FT_Byte*)header, 128 );
-    if ( error )
-      goto Exit;
-
-    if (            header[ 0] !=  0 ||
-                    header[74] !=  0 ||
-                    header[82] !=  0 ||
-                    header[ 1] ==  0 ||
-                    header[ 1] >  33 ||
-                    header[63] !=  0 ||
-         header[2 + header[1]] !=  0 )
-      return FT_Err_Unknown_File_Format;
-
-    dlen = ( header[0x53] << 24 ) |
-           ( header[0x54] << 16 ) |
-           ( header[0x55] <<  8 ) |
-             header[0x56];
-#if 0
-    rlen = ( header[0x57] << 24 ) |
-           ( header[0x58] << 16 ) |
-           ( header[0x59] <<  8 ) |
-             header[0x5a];
-#endif /* 0 */
-    offset = 128 + ( ( dlen + 127 ) & ~127 );
-
-    return IsMacResource( library, stream, offset, face_index, aface );
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  load_face_in_embedded_rfork( FT_Library           library,
-                               FT_Stream            stream,
-                               FT_Long              face_index,
-                               FT_Face             *aface,
-                               const FT_Open_Args  *args )
-  {
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_raccess
-
-    FT_Memory  memory = library->memory;
-    FT_Error   error  = FT_Err_Unknown_File_Format;
-    int        i;
-
-    char *     file_names[FT_RACCESS_N_RULES];
-    FT_Long    offsets[FT_RACCESS_N_RULES];
-    FT_Error   errors[FT_RACCESS_N_RULES];
-
-    FT_Open_Args  args2;
-    FT_Stream     stream2;
-
-
-    FT_Raccess_Guess( library, stream,
-                      args->pathname, file_names, offsets, errors );
-
-    for ( i = 0; i < FT_RACCESS_N_RULES; i++ )
-    {
-      if ( errors[i] )
-      {
-        FT_TRACE3(( "Error[%d] has occurred in rule %d\n", errors[i], i ));
-        continue;
-      }
-
-      args2.flags    = FT_OPEN_PATHNAME;
-      args2.pathname = file_names[i] ? file_names[i] : args->pathname;
-
-      FT_TRACE3(( "Try rule %d: %s (offset=%d) ...",
-                  i, args2.pathname, offsets[i] ));
-
-      error = FT_Stream_New( library, &args2, &stream2 );
-      if ( error )
-      {
-        FT_TRACE3(( "failed\n" ));
-        continue;
-      }
-
-      error = IsMacResource( library, stream2, offsets[i],
-                             face_index, aface );
-      FT_Stream_Close( stream2 );
-
-      FT_TRACE3(( "%s\n", error ? "failed": "successful" ));
-
-      if ( !error )
-          break;
-    }
-
-    for (i = 0; i < FT_RACCESS_N_RULES; i++)
-    {
-      if ( file_names[i] )
-        FT_FREE( file_names[i] );
-    }
-
-    /* Caller (load_mac_face) requires FT_Err_Unknown_File_Format. */
-    if ( error )
-      error = FT_Err_Unknown_File_Format;
-
-    return error;
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_objs
-
-  }
-
-
-  /* Check for some macintosh formats.                             */
-  /* Is this a macbinary file?  If so look at the resource fork.   */
-  /* Is this a mac dfont file?                                     */
-  /* Is this an old style resource fork? (in data)                 */
-  /* Else call load_face_in_embedded_rfork to try extra rules      */
-  /* (defined in `ftrfork.c').                                     */
-  /*                                                               */
-  static FT_Error
-  load_mac_face( FT_Library           library,
-                 FT_Stream            stream,
-                 FT_Long              face_index,
-                 FT_Face             *aface,
-                 const FT_Open_Args  *args )
-  {
-    FT_Error error;
-    FT_UNUSED( args );
-
-
-    error = IsMacBinary( library, stream, face_index, aface );
-    if ( FT_ERROR_BASE( error ) == FT_Err_Unknown_File_Format )
-    {
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_raccess
-
-      FT_TRACE3(( "Try as dfont: %s ...", args->pathname ));
-
-      error = IsMacResource( library, stream, 0, face_index, aface );
-
-      FT_TRACE3(( "%s\n", error ? "failed" : "successful" ));
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_objs
-
-    }
-
-    if ( ( FT_ERROR_BASE( error ) == FT_Err_Unknown_File_Format      ||
-           FT_ERROR_BASE( error ) == FT_Err_Invalid_Stream_Operation ) &&
-         ( args->flags & FT_OPEN_PATHNAME )                            )
-      error = load_face_in_embedded_rfork( library, stream,
-                                           face_index, aface, args );
-    return error;
-  }
-
-#endif  /* !FT_MACINTOSH && FT_CONFIG_OPTION_MAC_FONTS */
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Open_Face( FT_Library           library,
-                const FT_Open_Args*  args,
-                FT_Long              face_index,
-                FT_Face             *aface )
-  {
-    FT_Error     error;
-    FT_Driver    driver;
-    FT_Memory    memory;
-    FT_Stream    stream;
-    FT_Face      face = 0;
-    FT_ListNode  node = 0;
-    FT_Bool      external_stream;
-
-
-    /* test for valid `library' delayed to */
-    /* FT_Stream_New()                     */
-
-    if ( !aface || !args )
-      return FT_Err_Invalid_Argument;
-
-    *aface = 0;
-
-    external_stream = FT_BOOL( ( args->flags & FT_OPEN_STREAM ) &&
-                               args->stream                     );
-
-    /* create input stream */
-    error = FT_Stream_New( library, args, &stream );
-    if ( error )
-      goto Exit;
-
-    memory = library->memory;
-
-    /* If the font driver is specified in the `args' structure, use */
-    /* it.  Otherwise, we scan the list of registered drivers.      */
-    if ( ( args->flags & FT_OPEN_DRIVER ) && args->driver )
-    {
-      driver = FT_DRIVER( args->driver );
-
-      /* not all modules are drivers, so check... */
-      if ( FT_MODULE_IS_DRIVER( driver ) )
-      {
-        FT_Int         num_params = 0;
-        FT_Parameter*  params     = 0;
-
-
-        if ( args->flags & FT_OPEN_PARAMS )
-        {
-          num_params = args->num_params;
-          params     = args->params;
-        }
-
-        error = open_face( driver, stream, face_index,
-                           num_params, params, &face );
-        if ( !error )
-          goto Success;
-      }
-      else
-        error = FT_Err_Invalid_Handle;
-
-      FT_Stream_Free( stream, external_stream );
-      goto Fail;
-    }
-    else
-    {
-      /* check each font driver for an appropriate format */
-      FT_Module*  cur   = library->modules;
-      FT_Module*  limit = cur + library->num_modules;
-
-
-      for ( ; cur < limit; cur++ )
-      {
-        /* not all modules are font drivers, so check... */
-        if ( FT_MODULE_IS_DRIVER( cur[0] ) )
-        {
-          FT_Int         num_params = 0;
-          FT_Parameter*  params     = 0;
-
-
-          driver = FT_DRIVER( cur[0] );
-
-          if ( args->flags & FT_OPEN_PARAMS )
-          {
-            num_params = args->num_params;
-            params     = args->params;
-          }
-
-          error = open_face( driver, stream, face_index,
-                             num_params, params, &face );
-          if ( !error )
-            goto Success;
-
-          if ( FT_ERROR_BASE( error ) != FT_Err_Unknown_File_Format )
-            goto Fail3;
-        }
-      }
-
-  Fail3:
-    /* If we are on the mac, and we get an FT_Err_Invalid_Stream_Operation */
-    /* it may be because we have an empty data fork, so we need to check   */
-    /* the resource fork.                                                  */
-    if ( FT_ERROR_BASE( error ) != FT_Err_Unknown_File_Format      &&
-         FT_ERROR_BASE( error ) != FT_Err_Invalid_Stream_Operation )
-      goto Fail2;
-
-#if !defined( FT_MACINTOSH ) && defined( FT_CONFIG_OPTION_MAC_FONTS )
-    error = load_mac_face( library, stream, face_index, aface, args );
-    if ( !error )
-    {
-      /* We don't want to go to Success here.  We've already done that. */
-      /* On the other hand, if we succeeded we still need to close this */
-      /* stream (we opened a different stream which extracted the       */
-      /* interesting information out of this stream here.  That stream  */
-      /* will still be open and the face will point to it).             */
-      FT_Stream_Free( stream, external_stream );
-      return error;
-    }
-
-    if ( FT_ERROR_BASE( error ) != FT_Err_Unknown_File_Format )
-      goto Fail2;
-#endif  /* !FT_MACINTOSH && FT_CONFIG_OPTION_MAC_FONTS */
-
-      /* no driver is able to handle this format */
-      error = FT_Err_Unknown_File_Format;
-
-  Fail2:
-      FT_Stream_Free( stream, external_stream );
-      goto Fail;
-    }
-
-  Success:
-    FT_TRACE4(( "FT_Open_Face: New face object, adding to list\n" ));
-
-    /* set the FT_FACE_FLAG_EXTERNAL_STREAM bit for FT_Done_Face */
-    if ( external_stream )
-      face->face_flags |= FT_FACE_FLAG_EXTERNAL_STREAM;
-
-    /* add the face object to its driver's list */
-    if ( FT_NEW( node ) )
-      goto Fail;
-
-    node->data = face;
-    /* don't assume driver is the same as face->driver, so use */
-    /* face->driver instead.                                   */
-    FT_List_Add( &face->driver->faces_list, node );
-
-    /* now allocate a glyph slot object for the face */
-    {
-      FT_GlyphSlot  slot;
-
-
-      FT_TRACE4(( "FT_Open_Face: Creating glyph slot\n" ));
-
-      error = FT_New_GlyphSlot( face, &slot );
-      if ( error )
-        goto Fail;
-
-      face->glyph = slot;
-    }
-
-    /* finally, allocate a size object for the face */
-    {
-      FT_Size  size;
-
-
-      FT_TRACE4(( "FT_Open_Face: Creating size object\n" ));
-
-      error = FT_New_Size( face, &size );
-      if ( error )
-        goto Fail;
-
-      face->size = size;
-    }
-
-    /* initialize internal face data */
-    {
-      FT_Face_Internal  internal = face->internal;
-
-
-      internal->transform_matrix.xx = 0x10000L;
-      internal->transform_matrix.xy = 0;
-      internal->transform_matrix.yx = 0;
-      internal->transform_matrix.yy = 0x10000L;
-
-      internal->transform_delta.x = 0;
-      internal->transform_delta.y = 0;
-    }
-
-    *aface = face;
-    goto Exit;
-
-  Fail:
-    FT_Done_Face( face );
-
-  Exit:
-    FT_TRACE4(( "FT_Open_Face: Return %d\n", error ));
-
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Attach_File( FT_Face      face,
-                  const char*  filepathname )
-  {
-    FT_Open_Args  open;
-
-
-    /* test for valid `face' delayed to FT_Attach_Stream() */
-
-    if ( !filepathname )
-      return FT_Err_Invalid_Argument;
-
-    open.flags    = FT_OPEN_PATHNAME;
-    open.pathname = (char*)filepathname;
-
-    return FT_Attach_Stream( face, &open );
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Attach_Stream( FT_Face        face,
-                    FT_Open_Args*  parameters )
-  {
-    FT_Stream  stream;
-    FT_Error   error;
-    FT_Driver  driver;
-
-    FT_Driver_Class  clazz;
-
-
-    /* test for valid `parameters' delayed to FT_Stream_New() */
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    driver = face->driver;
-    if ( !driver )
-      return FT_Err_Invalid_Driver_Handle;
-
-    error = FT_Stream_New( driver->root.library, parameters, &stream );
-    if ( error )
-      goto Exit;
-
-    /* we implement FT_Attach_Stream in each driver through the */
-    /* `attach_file' interface                                  */
-
-    error = FT_Err_Unimplemented_Feature;
-    clazz = driver->clazz;
-    if ( clazz->attach_file )
-      error = clazz->attach_file( face, stream );
-
-    /* close the attached stream */
-    FT_Stream_Free( stream,
-                    (FT_Bool)( parameters->stream &&
-                               ( parameters->flags & FT_OPEN_STREAM ) ) );
-
-  Exit:
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Done_Face( FT_Face  face )
-  {
-    FT_Error     error;
-    FT_Driver    driver;
-    FT_Memory    memory;
-    FT_ListNode  node;
-
-
-    error = FT_Err_Invalid_Face_Handle;
-    if ( face && face->driver )
-    {
-      driver = face->driver;
-      memory = driver->root.memory;
-
-      /* find face in driver's list */
-      node = FT_List_Find( &driver->faces_list, face );
-      if ( node )
-      {
-        /* remove face object from the driver's list */
-        FT_List_Remove( &driver->faces_list, node );
-        FT_FREE( node );
-
-        /* now destroy the object proper */
-        destroy_face( memory, face, driver );
-        error = FT_Err_Ok;
-      }
-    }
-    return error;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Size( FT_Face   face,
-               FT_Size  *asize )
-  {
-    FT_Error         error;
-    FT_Memory        memory;
-    FT_Driver        driver;
-    FT_Driver_Class  clazz;
-
-    FT_Size          size = 0;
-    FT_ListNode      node = 0;
-
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    if ( !asize )
-      return FT_Err_Invalid_Size_Handle;
-
-    if ( !face->driver )
-      return FT_Err_Invalid_Driver_Handle;
-
-    *asize = 0;
-
-    driver = face->driver;
-    clazz  = driver->clazz;
-    memory = face->memory;
-
-    /* Allocate new size object and perform basic initialisation */
-    if ( FT_ALLOC( size, clazz->size_object_size ) || FT_NEW( node ) )
-      goto Exit;
-
-    size->face = face;
-
-    /* for now, do not use any internal fields in size objects */
-    size->internal = 0;
-
-    if ( clazz->init_size )
-      error = clazz->init_size( size );
-
-    /* in case of success, add to the face's list */
-    if ( !error )
-    {
-      *asize     = size;
-      node->data = size;
-      FT_List_Add( &face->sizes_list, node );
-    }
-
-  Exit:
-    if ( error )
-    {
-      FT_FREE( node );
-      FT_FREE( size );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Done_Size( FT_Size  size )
-  {
-    FT_Error     error;
-    FT_Driver    driver;
-    FT_Memory    memory;
-    FT_Face      face;
-    FT_ListNode  node;
-
-
-    if ( !size )
-      return FT_Err_Invalid_Size_Handle;
-
-    face = size->face;
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    driver = face->driver;
-    if ( !driver )
-      return FT_Err_Invalid_Driver_Handle;
-
-    memory = driver->root.memory;
-
-    error = FT_Err_Ok;
-    node  = FT_List_Find( &face->sizes_list, size );
-    if ( node )
-    {
-      FT_List_Remove( &face->sizes_list, node );
-      FT_FREE( node );
-
-      if ( face->size == size )
-      {
-        face->size = 0;
-        if ( face->sizes_list.head )
-          face->size = (FT_Size)(face->sizes_list.head->data);
-      }
-
-      destroy_size( memory, size, driver );
-    }
-    else
-      error = FT_Err_Invalid_Size_Handle;
-
-    return error;
-  }
-
-
-  static void
-  ft_recompute_scaled_metrics( FT_Face           face,
-                               FT_Size_Metrics*  metrics )
-  {
-    /* Compute root ascender, descender, test height, and max_advance */
-
-    metrics->ascender    = FT_PIX_CEIL( FT_MulFix( face->ascender,
-                                                   metrics->y_scale ) );
-
-    metrics->descender   = FT_PIX_FLOOR( FT_MulFix( face->descender,
-                                                    metrics->y_scale ) );
-
-    metrics->height      = FT_PIX_ROUND( FT_MulFix( face->height,
-                                                    metrics->y_scale ) );
-
-    metrics->max_advance = FT_PIX_ROUND( FT_MulFix( face->max_advance_width,
-                                                    metrics->x_scale ) );
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_Char_Size( FT_Face     face,
-                    FT_F26Dot6  char_width,
-                    FT_F26Dot6  char_height,
-                    FT_UInt     horz_resolution,
-                    FT_UInt     vert_resolution )
-  {
-    FT_Error          error = FT_Err_Ok;
-    FT_Driver         driver;
-    FT_Driver_Class   clazz;
-    FT_Size_Metrics*  metrics;
-    FT_Long           dim_x, dim_y;
-
-
-    if ( !face || !face->size || !face->driver )
-      return FT_Err_Invalid_Face_Handle;
-
-    driver  = face->driver;
-    metrics = &face->size->metrics;
-    clazz   = driver->clazz;
-
-    if ( !char_width )
-      char_width = char_height;
-
-    else if ( !char_height )
-      char_height = char_width;
-
-    if ( !horz_resolution )
-      horz_resolution = 72;
-
-    if ( !vert_resolution )
-      vert_resolution = 72;
-
-    /* default processing -- this can be overridden by the driver */
-    if ( char_width  < 1 * 64 )
-      char_width  = 1 * 64;
-    if ( char_height < 1 * 64 )
-      char_height = 1 * 64;
-
-    /* Compute pixel sizes in 26.6 units */
-    dim_x = ( char_width  * horz_resolution + 36 ) / 72;
-    dim_y = ( char_height * vert_resolution + 36 ) / 72;
-
-    {
-      FT_UShort  x_ppem = (FT_UShort)( ( dim_x + 32 ) >> 6 );
-      FT_UShort  y_ppem = (FT_UShort)( ( dim_y + 32 ) >> 6 );
-
-      if ( x_ppem == metrics->x_ppem && y_ppem == metrics->y_ppem )
-        return FT_Err_Ok;
-
-      metrics->x_ppem = x_ppem;
-      metrics->y_ppem = y_ppem;
-    }
-
-    metrics->x_scale = 0x10000L;
-    metrics->y_scale = 0x10000L;
-
-    if ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-    {
-      metrics->x_scale = FT_DivFix( dim_x, face->units_per_EM );
-      metrics->y_scale = FT_DivFix( dim_y, face->units_per_EM );
-
-      ft_recompute_scaled_metrics( face, metrics );
-    }
-
-    if ( clazz->set_char_sizes )
-      error = clazz->set_char_sizes( face->size,
-                                     char_width,
-                                     char_height,
-                                     horz_resolution,
-                                     vert_resolution );
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_Pixel_Sizes( FT_Face  face,
-                      FT_UInt  pixel_width,
-                      FT_UInt  pixel_height )
-  {
-    FT_Error          error = FT_Err_Ok;
-    FT_Driver         driver;
-    FT_Driver_Class   clazz;
-    FT_Size_Metrics*  metrics;
-
-
-    if ( !face || !face->size || !face->driver )
-      return FT_Err_Invalid_Face_Handle;
-
-    driver  = face->driver;
-    metrics = &face->size->metrics;
-    clazz   = driver->clazz;
-
-    if ( pixel_width == 0 )
-      pixel_width = pixel_height;
-
-    else if ( pixel_height == 0 )
-      pixel_height = pixel_width;
-
-    if ( pixel_width  < 1 )
-      pixel_width  = 1;
-    if ( pixel_height < 1 )
-      pixel_height = 1;
-
-    /* use `>=' to avoid potention compiler warning on 16bit platforms */
-    if ( pixel_width  >= 0xFFFFU )
-      pixel_width  = 0xFFFFU;
-    if ( pixel_height >= 0xFFFFU )
-      pixel_height = 0xFFFFU;
-
-    metrics->x_ppem = (FT_UShort)pixel_width;
-    metrics->y_ppem = (FT_UShort)pixel_height;
-
-    if ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-    {
-      metrics->x_scale = FT_DivFix( metrics->x_ppem << 6,
-                                    face->units_per_EM );
-
-      metrics->y_scale = FT_DivFix( metrics->y_ppem << 6,
-                                    face->units_per_EM );
-
-      ft_recompute_scaled_metrics( face, metrics );
-    }
-
-    if ( clazz->set_pixel_sizes )
-      error = clazz->set_pixel_sizes( face->size,
-                                      pixel_width,
-                                      pixel_height );
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_Kerning( FT_Face     face,
-                  FT_UInt     left_glyph,
-                  FT_UInt     right_glyph,
-                  FT_UInt     kern_mode,
-                  FT_Vector  *akerning )
-  {
-    FT_Error   error = FT_Err_Ok;
-    FT_Driver  driver;
-
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    if ( !akerning )
-      return FT_Err_Invalid_Argument;
-
-    driver = face->driver;
-
-    akerning->x = 0;
-    akerning->y = 0;
-
-    if ( driver->clazz->get_kerning )
-    {
-      error = driver->clazz->get_kerning( face,
-                                          left_glyph,
-                                          right_glyph,
-                                          akerning );
-      if ( !error )
-      {
-        if ( kern_mode != FT_KERNING_UNSCALED )
-        {
-          akerning->x = FT_MulFix( akerning->x, face->size->metrics.x_scale );
-          akerning->y = FT_MulFix( akerning->y, face->size->metrics.y_scale );
-
-          if ( kern_mode != FT_KERNING_UNFITTED )
-          {
-            akerning->x = FT_PIX_ROUND( akerning->x );
-            akerning->y = FT_PIX_ROUND( akerning->y );
-          }
-        }
-      }
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Select_Charmap( FT_Face      face,
-                     FT_Encoding  encoding )
-  {
-    FT_CharMap*  cur;
-    FT_CharMap*  limit;
-
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    /* FT_ENCODING_UNICODE is special.  We try to find the `best' Unicode */
-    /* charmap available, i.e., one with UCS-4 characters, if possible.   */
-    /*                                                                    */
-    /* This is done by find_unicode_charmap() above, to share code.       */
-    if ( encoding == FT_ENCODING_UNICODE )
-      return find_unicode_charmap( face );
-
-    cur = face->charmaps;
-    if ( !cur )
-      return FT_Err_Invalid_CharMap_Handle;
-
-    limit = cur + face->num_charmaps;
-
-    for ( ; cur < limit; cur++ )
-    {
-      if ( cur[0]->encoding == encoding )
-      {
-        face->charmap = cur[0];
-        return 0;
-      }
-    }
-
-    return FT_Err_Invalid_Argument;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_Charmap( FT_Face     face,
-                  FT_CharMap  charmap )
-  {
-    FT_CharMap*  cur;
-    FT_CharMap*  limit;
-
-
-    if ( !face )
-      return FT_Err_Invalid_Face_Handle;
-
-    cur = face->charmaps;
-    if ( !cur )
-      return FT_Err_Invalid_CharMap_Handle;
-
-    limit = cur + face->num_charmaps;
-
-    for ( ; cur < limit; cur++ )
-    {
-      if ( cur[0] == charmap )
-      {
-        face->charmap = cur[0];
-        return 0;
-      }
-    }
-    return FT_Err_Invalid_Argument;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Int )
-  FT_Get_Charmap_Index( FT_CharMap  charmap )
-  {
-    FT_Int  i;
-
-
-    for ( i = 0; i < charmap->face->num_charmaps; i++ )
-      if ( charmap->face->charmaps[i] == charmap )
-        break;
-
-    FT_ASSERT( i < charmap->face->num_charmaps );
-
-    return i;
-  }
-
-
-  FT_BASE_DEF( void )
-  FT_CMap_Done( FT_CMap  cmap )
-  {
-    if ( cmap )
-    {
-      FT_CMap_Class  clazz  = cmap->clazz;
-      FT_Face        face   = cmap->charmap.face;
-      FT_Memory      memory = FT_FACE_MEMORY(face);
-
-
-      if ( clazz->done )
-        clazz->done( cmap );
-
-      FT_FREE( cmap );
-    }
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_CMap_New( FT_CMap_Class   clazz,
-               FT_Pointer      init_data,
-               FT_CharMap      charmap,
-               FT_CMap        *acmap )
-  {
-    FT_Error   error = 0;
-    FT_Face    face;
-    FT_Memory  memory;
-    FT_CMap    cmap;
-
-
-    if ( clazz == NULL || charmap == NULL || charmap->face == NULL )
-      return FT_Err_Invalid_Argument;
-
-    face   = charmap->face;
-    memory = FT_FACE_MEMORY( face );
-
-    if ( !FT_ALLOC( cmap, clazz->size ) )
-    {
-      cmap->charmap = *charmap;
-      cmap->clazz   = clazz;
-
-      if ( clazz->init )
-      {
-        error = clazz->init( cmap, init_data );
-        if ( error )
-          goto Fail;
-      }
-
-      /* add it to our list of charmaps */
-      if ( FT_RENEW_ARRAY( face->charmaps,
-                           face->num_charmaps,
-                           face->num_charmaps+1 ) )
-        goto Fail;
-
-      face->charmaps[face->num_charmaps++] = (FT_CharMap)cmap;
-    }
-
-  Exit:
-    if ( acmap )
-      *acmap = cmap;
-
-    return error;
-
-  Fail:
-    FT_CMap_Done( cmap );
-    cmap = NULL;
-    goto Exit;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_UInt )
-  FT_Get_Char_Index( FT_Face   face,
-                     FT_ULong  charcode )
-  {
-    FT_UInt  result = 0;
-
-
-    if ( face && face->charmap )
-    {
-      FT_CMap  cmap = FT_CMAP( face->charmap );
-
-
-      result = cmap->clazz->char_index( cmap, charcode );
-    }
-    return  result;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_ULong )
-  FT_Get_First_Char( FT_Face   face,
-                     FT_UInt  *agindex )
-  {
-    FT_ULong  result = 0;
-    FT_UInt   gindex = 0;
-
-
-    if ( face && face->charmap )
-    {
-      gindex = FT_Get_Char_Index( face, 0 );
-      if ( gindex == 0 )
-        result = FT_Get_Next_Char( face, 0, &gindex );
-    }
-
-    if ( agindex  )
-      *agindex = gindex;
-
-    return result;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_ULong )
-  FT_Get_Next_Char( FT_Face   face,
-                    FT_ULong  charcode,
-                    FT_UInt  *agindex )
-  {
-    FT_ULong  result = 0;
-    FT_UInt   gindex = 0;
-
-
-    if ( face && face->charmap )
-    {
-      FT_UInt32  code = (FT_UInt32)charcode;
-      FT_CMap    cmap = FT_CMAP( face->charmap );
-
-
-      gindex = cmap->clazz->char_next( cmap, &code );
-      result = ( gindex == 0 ) ? 0 : code;
-    }
-
-    if ( agindex )
-      *agindex = gindex;
-
-    return result;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_UInt )
-  FT_Get_Name_Index( FT_Face     face,
-                     FT_String*  glyph_name )
-  {
-    FT_UInt  result = 0;
-
-
-    if ( face && FT_HAS_GLYPH_NAMES( face ) )
-    {
-      FT_Service_GlyphDict  service;
-
-
-      FT_FACE_LOOKUP_SERVICE( face,
-                              service,
-                              GLYPH_DICT );
-
-      if ( service && service->name_index )
-        result = service->name_index( face, glyph_name );
-    }
-
-    return result;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_Glyph_Name( FT_Face     face,
-                     FT_UInt     glyph_index,
-                     FT_Pointer  buffer,
-                     FT_UInt     buffer_max )
-  {
-    FT_Error  error = FT_Err_Invalid_Argument;
-
-
-    /* clean up buffer */
-    if ( buffer && buffer_max > 0 )
-      ((FT_Byte*)buffer)[0] = 0;
-
-    if ( face                                     &&
-         glyph_index <= (FT_UInt)face->num_glyphs &&
-         FT_HAS_GLYPH_NAMES( face )               )
-    {
-      FT_Service_GlyphDict  service;
-
-
-      FT_FACE_LOOKUP_SERVICE( face,
-                              service,
-                              GLYPH_DICT );
-
-      if ( service && service->get_name )
-        error = service->get_name( face, glyph_index, buffer, buffer_max );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( const char* )
-  FT_Get_Postscript_Name( FT_Face  face )
-  {
-    const char*  result = NULL;
-
-
-    if ( !face )
-      goto Exit;
-
-    if ( !result )
-    {
-      FT_Service_PsFontName  service;
-
-
-      FT_FACE_LOOKUP_SERVICE( face,
-                              service,
-                              POSTSCRIPT_FONT_NAME );
-
-      if ( service && service->get_ps_font_name )
-        result = service->get_ps_font_name( face );
-    }
-
-  Exit:
-    return result;
-  }
-
-
-  /* documentation is in tttables.h */
-
-  FT_EXPORT_DEF( void* )
-  FT_Get_Sfnt_Table( FT_Face      face,
-                     FT_Sfnt_Tag  tag )
-  {
-    void*                  table = 0;
-    FT_Service_SFNT_Table  service;
-
-
-    if ( face && FT_IS_SFNT( face ) )
-    {
-      FT_FACE_FIND_SERVICE( face, service, SFNT_TABLE );
-      if ( service != NULL )
-        table = service->get_table( face, tag );
-    }
-
-    return table;
-  }
-
-
-  /* documentation is in tttables.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Load_Sfnt_Table( FT_Face    face,
-                      FT_ULong   tag,
-                      FT_Long    offset,
-                      FT_Byte*   buffer,
-                      FT_ULong*  length )
-  {
-    FT_Service_SFNT_Table  service;
-
-
-    if ( !face || !FT_IS_SFNT( face ) )
-      return FT_Err_Invalid_Face_Handle;
-
-    FT_FACE_FIND_SERVICE( face, service, SFNT_TABLE );
-    if ( service == NULL )
-      return FT_Err_Unimplemented_Feature;
-
-    return service->load_table( face, tag, offset, buffer, length );
-  }
-
-
-  FT_EXPORT_DEF( FT_ULong )
-  FT_Get_CMap_Language_ID( FT_CharMap  charmap )
-  {
-    FT_Service_TTCMaps  service;
-    FT_Face             face;
-    TT_CMapInfo         cmap_info;
-
-
-    if ( !charmap || !charmap->face )
-      return 0;
-
-    face = charmap->face;
-    FT_FACE_FIND_SERVICE( face, service, TT_CMAP );
-    if ( service == NULL )
-      return 0;
-    if ( service->get_cmap_info( charmap, &cmap_info ))
-      return 0;
-
-    return cmap_info.language;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Activate_Size( FT_Size  size )
-  {
-    FT_Face  face;
-
-
-    if ( size == NULL )
-      return FT_Err_Bad_Argument;
-
-    face = size->face;
-    if ( face == NULL || face->driver == NULL )
-      return FT_Err_Bad_Argument;
-
-    /* we don't need anything more complex than that; all size objects */
-    /* are already listed by the face                                  */
-    face->size = size;
-
-    return FT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                        R E N D E R E R S                        ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* lookup a renderer by glyph format in the library's list */
-  FT_BASE_DEF( FT_Renderer )
-  FT_Lookup_Renderer( FT_Library       library,
-                      FT_Glyph_Format  format,
-                      FT_ListNode*     node )
-  {
-    FT_ListNode  cur;
-    FT_Renderer  result = 0;
-
-
-    if ( !library )
-      goto Exit;
-
-    cur = library->renderers.head;
-
-    if ( node )
-    {
-      if ( *node )
-        cur = (*node)->next;
-      *node = 0;
-    }
-
-    while ( cur )
-    {
-      FT_Renderer  renderer = FT_RENDERER( cur->data );
-
-
-      if ( renderer->glyph_format == format )
-      {
-        if ( node )
-          *node = cur;
-
-        result = renderer;
-        break;
-      }
-      cur = cur->next;
-    }
-
-  Exit:
-    return result;
-  }
-
-
-  static FT_Renderer
-  ft_lookup_glyph_renderer( FT_GlyphSlot  slot )
-  {
-    FT_Face      face    = slot->face;
-    FT_Library   library = FT_FACE_LIBRARY( face );
-    FT_Renderer  result  = library->cur_renderer;
-
-
-    if ( !result || result->glyph_format != slot->format )
-      result = FT_Lookup_Renderer( library, slot->format, 0 );
-
-    return result;
-  }
-
-
-  static void
-  ft_set_current_renderer( FT_Library  library )
-  {
-    FT_Renderer  renderer;
-
-
-    renderer = FT_Lookup_Renderer( library, FT_GLYPH_FORMAT_OUTLINE, 0 );
-    library->cur_renderer = renderer;
-  }
-
-
-  static FT_Error
-  ft_add_renderer( FT_Module  module )
-  {
-    FT_Library   library = module->library;
-    FT_Memory    memory  = library->memory;
-    FT_Error     error;
-    FT_ListNode  node;
-
-
-    if ( FT_NEW( node ) )
-      goto Exit;
-
-    {
-      FT_Renderer         render = FT_RENDERER( module );
-      FT_Renderer_Class*  clazz  = (FT_Renderer_Class*)module->clazz;
-
-
-      render->clazz        = clazz;
-      render->glyph_format = clazz->glyph_format;
-
-      /* allocate raster object if needed */
-      if ( clazz->glyph_format == FT_GLYPH_FORMAT_OUTLINE &&
-           clazz->raster_class->raster_new )
-      {
-        error = clazz->raster_class->raster_new( memory, &render->raster );
-        if ( error )
-          goto Fail;
-
-        render->raster_render = clazz->raster_class->raster_render;
-        render->render        = clazz->render_glyph;
-      }
-
-      /* add to list */
-      node->data = module;
-      FT_List_Add( &library->renderers, node );
-
-      ft_set_current_renderer( library );
-    }
-
-  Fail:
-    if ( error )
-      FT_FREE( node );
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  ft_remove_renderer( FT_Module  module )
-  {
-    FT_Library   library = module->library;
-    FT_Memory    memory  = library->memory;
-    FT_ListNode  node;
-
-
-    node = FT_List_Find( &library->renderers, module );
-    if ( node )
-    {
-      FT_Renderer  render = FT_RENDERER( module );
-
-
-      /* release raster object, if any */
-      if ( render->raster )
-        render->clazz->raster_class->raster_done( render->raster );
-
-      /* remove from list */
-      FT_List_Remove( &library->renderers, node );
-      FT_FREE( node );
-
-      ft_set_current_renderer( library );
-    }
-  }
-
-
-  /* documentation is in ftrender.h */
-
-  FT_EXPORT_DEF( FT_Renderer )
-  FT_Get_Renderer( FT_Library       library,
-                   FT_Glyph_Format  format )
-  {
-    /* test for valid `library' delayed to FT_Lookup_Renderer() */
-
-    return FT_Lookup_Renderer( library, format, 0 );
-  }
-
-
-  /* documentation is in ftrender.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Set_Renderer( FT_Library     library,
-                   FT_Renderer    renderer,
-                   FT_UInt        num_params,
-                   FT_Parameter*  parameters )
-  {
-    FT_ListNode  node;
-    FT_Error     error = FT_Err_Ok;
-
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( !renderer )
-      return FT_Err_Invalid_Argument;
-
-    node = FT_List_Find( &library->renderers, renderer );
-    if ( !node )
-    {
-      error = FT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    FT_List_Up( &library->renderers, node );
-
-    if ( renderer->glyph_format == FT_GLYPH_FORMAT_OUTLINE )
-      library->cur_renderer = renderer;
-
-    if ( num_params > 0 )
-    {
-      FT_Renderer_SetModeFunc  set_mode = renderer->clazz->set_mode;
-
-
-      for ( ; num_params > 0; num_params-- )
-      {
-        error = set_mode( renderer, parameters->tag, parameters->data );
-        if ( error )
-          break;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Render_Glyph_Internal( FT_Library      library,
-                            FT_GlyphSlot    slot,
-                            FT_Render_Mode  render_mode )
-  {
-    FT_Error     error = FT_Err_Ok;
-    FT_Renderer  renderer;
-
-
-    /* if it is already a bitmap, no need to do anything */
-    switch ( slot->format )
-    {
-    case FT_GLYPH_FORMAT_BITMAP:   /* already a bitmap, don't do anything */
-      break;
-
-    default:
-      {
-        FT_ListNode  node   = 0;
-        FT_Bool      update = 0;
-
-
-        /* small shortcut for the very common case */
-        if ( slot->format == FT_GLYPH_FORMAT_OUTLINE )
-        {
-          renderer = library->cur_renderer;
-          node     = library->renderers.head;
-        }
-        else
-          renderer = FT_Lookup_Renderer( library, slot->format, &node );
-
-        error = FT_Err_Unimplemented_Feature;
-        while ( renderer )
-        {
-          error = renderer->render( renderer, slot, render_mode, NULL );
-          if ( !error ||
-               FT_ERROR_BASE( error ) != FT_Err_Cannot_Render_Glyph )
-            break;
-
-          /* FT_Err_Cannot_Render_Glyph is returned if the render mode   */
-          /* is unsupported by the current renderer for this glyph image */
-          /* format.                                                     */
-
-          /* now, look for another renderer that supports the same */
-          /* format.                                               */
-          renderer = FT_Lookup_Renderer( library, slot->format, &node );
-          update   = 1;
-        }
-
-        /* if we changed the current renderer for the glyph image format */
-        /* we need to select it as the next current one                  */
-        if ( !error && update && renderer )
-          FT_Set_Renderer( library, renderer, 0, 0 );
-      }
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Render_Glyph( FT_GlyphSlot    slot,
-                   FT_Render_Mode  render_mode )
-  {
-    FT_Library  library;
-
-
-    if ( !slot )
-      return FT_Err_Invalid_Argument;
-
-    library = FT_FACE_LIBRARY( slot->face );
-
-    return FT_Render_Glyph_Internal( library, slot, render_mode );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                         M O D U L E S                           ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Destroy_Module                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given module object.  For drivers, this also destroys   */
-  /*    all child faces.                                                   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*     module :: A handle to the target driver object.                   */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*     The driver _must_ be LOCKED!                                      */
-  /*                                                                       */
-  static void
-  Destroy_Module( FT_Module  module )
-  {
-    FT_Memory         memory  = module->memory;
-    FT_Module_Class*  clazz   = module->clazz;
-    FT_Library        library = module->library;
-
-
-    /* finalize client-data - before anything else */
-    if ( module->generic.finalizer )
-      module->generic.finalizer( module );
-
-    if ( library && library->auto_hinter == module )
-      library->auto_hinter = 0;
-
-    /* if the module is a renderer */
-    if ( FT_MODULE_IS_RENDERER( module ) )
-      ft_remove_renderer( module );
-
-    /* if the module is a font driver, add some steps */
-    if ( FT_MODULE_IS_DRIVER( module ) )
-      Destroy_Driver( FT_DRIVER( module ) );
-
-    /* finalize the module object */
-    if ( clazz->module_done )
-      clazz->module_done( module );
-
-    /* discard it */
-    FT_FREE( module );
-  }
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Add_Module( FT_Library              library,
-                 const FT_Module_Class*  clazz )
-  {
-    FT_Error   error;
-    FT_Memory  memory;
-    FT_Module  module;
-    FT_UInt    nn;
-
-
-#define FREETYPE_VER_FIXED  ( ( (FT_Long)FREETYPE_MAJOR << 16 ) | \
-                                FREETYPE_MINOR                  )
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( !clazz )
-      return FT_Err_Invalid_Argument;
-
-    /* check freetype version */
-    if ( clazz->module_requires > FREETYPE_VER_FIXED )
-      return FT_Err_Invalid_Version;
-
-    /* look for a module with the same name in the library's table */
-    for ( nn = 0; nn < library->num_modules; nn++ )
-    {
-      module = library->modules[nn];
-      if ( ft_strcmp( module->clazz->module_name, clazz->module_name ) == 0 )
-      {
-        /* this installed module has the same name, compare their versions */
-        if ( clazz->module_version <= module->clazz->module_version )
-          return FT_Err_Lower_Module_Version;
-
-        /* remove the module from our list, then exit the loop to replace */
-        /* it by our new version..                                        */
-        FT_Remove_Module( library, module );
-        break;
-      }
-    }
-
-    memory = library->memory;
-    error  = FT_Err_Ok;
-
-    if ( library->num_modules >= FT_MAX_MODULES )
-    {
-      error = FT_Err_Too_Many_Drivers;
-      goto Exit;
-    }
-
-    /* allocate module object */
-    if ( FT_ALLOC( module, clazz->module_size ) )
-      goto Exit;
-
-    /* base initialization */
-    module->library = library;
-    module->memory  = memory;
-    module->clazz   = (FT_Module_Class*)clazz;
-
-    /* check whether the module is a renderer - this must be performed */
-    /* before the normal module initialization                         */
-    if ( FT_MODULE_IS_RENDERER( module ) )
-    {
-      /* add to the renderers list */
-      error = ft_add_renderer( module );
-      if ( error )
-        goto Fail;
-    }
-
-    /* is the module a auto-hinter? */
-    if ( FT_MODULE_IS_HINTER( module ) )
-      library->auto_hinter = module;
-
-    /* if the module is a font driver */
-    if ( FT_MODULE_IS_DRIVER( module ) )
-    {
-      /* allocate glyph loader if needed */
-      FT_Driver  driver = FT_DRIVER( module );
-
-
-      driver->clazz = (FT_Driver_Class)module->clazz;
-      if ( FT_DRIVER_USES_OUTLINES( driver ) )
-      {
-        error = FT_GlyphLoader_New( memory, &driver->glyph_loader );
-        if ( error )
-          goto Fail;
-      }
-    }
-
-    if ( clazz->module_init )
-    {
-      error = clazz->module_init( module );
-      if ( error )
-        goto Fail;
-    }
-
-    /* add module to the library's table */
-    library->modules[library->num_modules++] = module;
-
-  Exit:
-    return error;
-
-  Fail:
-    if ( FT_MODULE_IS_DRIVER( module ) )
-    {
-      FT_Driver  driver = FT_DRIVER( module );
-
-
-      if ( FT_DRIVER_USES_OUTLINES( driver ) )
-        FT_GlyphLoader_Done( driver->glyph_loader );
-    }
-
-    if ( FT_MODULE_IS_RENDERER( module ) )
-    {
-      FT_Renderer  renderer = FT_RENDERER( module );
-
-
-      if ( renderer->raster )
-        renderer->clazz->raster_class->raster_done( renderer->raster );
-    }
-
-    FT_FREE( module );
-    goto Exit;
-  }
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( FT_Module )
-  FT_Get_Module( FT_Library   library,
-                 const char*  module_name )
-  {
-    FT_Module   result = 0;
-    FT_Module*  cur;
-    FT_Module*  limit;
-
-
-    if ( !library || !module_name )
-      return result;
-
-    cur   = library->modules;
-    limit = cur + library->num_modules;
-
-    for ( ; cur < limit; cur++ )
-      if ( ft_strcmp( cur[0]->clazz->module_name, module_name ) == 0 )
-      {
-        result = cur[0];
-        break;
-      }
-
-    return result;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_BASE_DEF( const void* )
-  FT_Get_Module_Interface( FT_Library   library,
-                           const char*  mod_name )
-  {
-    FT_Module  module;
-
-
-    /* test for valid `library' delayed to FT_Get_Module() */
-
-    module = FT_Get_Module( library, mod_name );
-
-    return module ? module->clazz->module_interface : 0;
-  }
-
-
-  FT_BASE_DEF( FT_Pointer )
-  ft_module_get_service( FT_Module    module,
-                         const char*  service_id )
-  {
-    FT_Pointer  result = NULL;
-
-    if ( module )
-    {
-      FT_ASSERT( module->clazz && module->clazz->get_interface );
-
-     /* first, look for the service in the module
-      */
-      if ( module->clazz->get_interface )
-        result = module->clazz->get_interface( module, service_id );
-
-      if ( result == NULL )
-      {
-       /* we didn't find it, look in all other modules then
-        */
-        FT_Library  library = module->library;
-        FT_Module*  cur     = library->modules;
-        FT_Module*  limit   = cur + library->num_modules;
-
-        for ( ; cur < limit; cur++ )
-        {
-          if ( cur[0] != module )
-          {
-            FT_ASSERT( cur[0]->clazz );
-
-            if ( cur[0]->clazz->get_interface )
-            {
-              result = cur[0]->clazz->get_interface( cur[0], service_id );
-              if ( result != NULL )
-                break;
-            }
-          }
-        }
-      }
-    }
-
-    return result;
-  }
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Remove_Module( FT_Library  library,
-                    FT_Module   module )
-  {
-    /* try to find the module from the table, then remove it from there */
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( module )
-    {
-      FT_Module*  cur   = library->modules;
-      FT_Module*  limit = cur + library->num_modules;
-
-
-      for ( ; cur < limit; cur++ )
-      {
-        if ( cur[0] == module )
-        {
-          /* remove it from the table */
-          library->num_modules--;
-          limit--;
-          while ( cur < limit )
-          {
-            cur[0] = cur[1];
-            cur++;
-          }
-          limit[0] = 0;
-
-          /* destroy the module */
-          Destroy_Module( module );
-
-          return FT_Err_Ok;
-        }
-      }
-    }
-    return FT_Err_Invalid_Driver_Handle;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                         L I B R A R Y                           ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_New_Library( FT_Memory    memory,
-                  FT_Library  *alibrary )
-  {
-    FT_Library  library = 0;
-    FT_Error    error;
-
-
-    if ( !memory )
-      return FT_Err_Invalid_Argument;
-
-#ifdef FT_DEBUG_LEVEL_ERROR
-    /* init debugging support */
-    ft_debug_init();
-#endif
-
-    /* first of all, allocate the library object */
-    if ( FT_NEW( library ) )
-      return error;
-
-    library->memory = memory;
-
-    /* allocate the render pool */
-    library->raster_pool_size = FT_RENDER_POOL_SIZE;
-    if ( FT_ALLOC( library->raster_pool, FT_RENDER_POOL_SIZE ) )
-      goto Fail;
-
-    /* That's ok now */
-    *alibrary = library;
-
-    return FT_Err_Ok;
-
-  Fail:
-    FT_FREE( library );
-    return error;
-  }
-
-
-  /* documentation is in freetype.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Library_Version( FT_Library   library,
-                      FT_Int      *amajor,
-                      FT_Int      *aminor,
-                      FT_Int      *apatch )
-  {
-    FT_Int  major = 0;
-    FT_Int  minor = 0;
-    FT_Int  patch = 0;
-
-
-    if ( library )
-    {
-      major = library->version_major;
-      minor = library->version_minor;
-      patch = library->version_patch;
-    }
-
-    if ( amajor )
-      *amajor = major;
-
-    if ( aminor )
-      *aminor = minor;
-
-    if ( apatch )
-      *apatch = patch;
-  }
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Done_Library( FT_Library  library )
-  {
-    FT_Memory  memory;
-
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    memory = library->memory;
-
-    /* Discard client-data */
-    if ( library->generic.finalizer )
-      library->generic.finalizer( library );
-
-    /* Close all modules in the library */
-#if 1
-    while ( library->num_modules > 0 )
-      FT_Remove_Module( library, library->modules[0] );
-#else
-    {
-      FT_UInt  n;
-
-
-      for ( n = 0; n < library->num_modules; n++ )
-      {
-        FT_Module  module = library->modules[n];
-
-
-        if ( module )
-        {
-          Destroy_Module( module );
-          library->modules[n] = 0;
-        }
-      }
-    }
-#endif
-
-    /* Destroy raster objects */
-    FT_FREE( library->raster_pool );
-    library->raster_pool_size = 0;
-
-    FT_FREE( library );
-    return FT_Err_Ok;
-  }
-
-
-  /* documentation is in ftmodule.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Set_Debug_Hook( FT_Library         library,
-                     FT_UInt            hook_index,
-                     FT_DebugHook_Func  debug_hook )
-  {
-    if ( library && debug_hook &&
-         hook_index <
-           ( sizeof ( library->debug_hooks ) / sizeof ( void* ) ) )
-      library->debug_hooks[hook_index] = debug_hook;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftoutln.c b/nx-X11/extras/freetype2/src/base/ftoutln.c
deleted file mode 100644
index 5cae931f6..000000000
--- a/nx-X11/extras/freetype2/src/base/ftoutln.c
+++ /dev/null
@@ -1,795 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftoutln.c                                                              */
-/*                                                                         */
-/*    FreeType outline management (body).                                  */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* All functions are declared in freetype.h.                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_OUTLINE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_TRIGONOMETRY_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_outline
-
-
-  static
-  const FT_Outline  null_outline = { 0, 0, 0, 0, 0, 0 };
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Decompose( FT_Outline*              outline,
-                        const FT_Outline_Funcs*  func_interface,
-                        void*                    user )
-  {
-#undef SCALED
-#define SCALED( x )  ( ( (x) << shift ) - delta )
-
-    FT_Vector   v_last;
-    FT_Vector   v_control;
-    FT_Vector   v_start;
-
-    FT_Vector*  point;
-    FT_Vector*  limit;
-    char*       tags;
-
-    FT_Error    error;
-
-    FT_Int   n;         /* index of contour in outline     */
-    FT_UInt  first;     /* index of first point in contour */
-    FT_Int   tag;       /* current point's state           */
-
-    FT_Int   shift;
-    FT_Pos   delta;
-
-
-    if ( !outline || !func_interface )
-      return FT_Err_Invalid_Argument;
-
-    shift = func_interface->shift;
-    delta = func_interface->delta;
-    first = 0;
-
-    for ( n = 0; n < outline->n_contours; n++ )
-    {
-      FT_Int  last;  /* index of last point in contour */
-
-
-      last  = outline->contours[n];
-      limit = outline->points + last;
-
-      v_start = outline->points[first];
-      v_last  = outline->points[last];
-
-      v_start.x = SCALED( v_start.x ); v_start.y = SCALED( v_start.y );
-      v_last.x  = SCALED( v_last.x );  v_last.y  = SCALED( v_last.y );
-
-      v_control = v_start;
-
-      point = outline->points + first;
-      tags  = outline->tags  + first;
-      tag   = FT_CURVE_TAG( tags[0] );
-
-      /* A contour cannot start with a cubic control point! */
-      if ( tag == FT_CURVE_TAG_CUBIC )
-        goto Invalid_Outline;
-
-      /* check first point to determine origin */
-      if ( tag == FT_CURVE_TAG_CONIC )
-      {
-        /* first point is conic control.  Yes, this happens. */
-        if ( FT_CURVE_TAG( outline->tags[last] ) == FT_CURVE_TAG_ON )
-        {
-          /* start at last point if it is on the curve */
-          v_start = v_last;
-          limit--;
-        }
-        else
-        {
-          /* if both first and last points are conic,         */
-          /* start at their middle and record its position    */
-          /* for closure                                      */
-          v_start.x = ( v_start.x + v_last.x ) / 2;
-          v_start.y = ( v_start.y + v_last.y ) / 2;
-
-          v_last = v_start;
-        }
-        point--;
-        tags--;
-      }
-
-      error = func_interface->move_to( &v_start, user );
-      if ( error )
-        goto Exit;
-
-      while ( point < limit )
-      {
-        point++;
-        tags++;
-
-        tag = FT_CURVE_TAG( tags[0] );
-        switch ( tag )
-        {
-        case FT_CURVE_TAG_ON:  /* emit a single line_to */
-          {
-            FT_Vector  vec;
-
-
-            vec.x = SCALED( point->x );
-            vec.y = SCALED( point->y );
-
-            error = func_interface->line_to( &vec, user );
-            if ( error )
-              goto Exit;
-            continue;
-          }
-
-        case FT_CURVE_TAG_CONIC:  /* consume conic arcs */
-          v_control.x = SCALED( point->x );
-          v_control.y = SCALED( point->y );
-
-        Do_Conic:
-          if ( point < limit )
-          {
-            FT_Vector  vec;
-            FT_Vector  v_middle;
-
-
-            point++;
-            tags++;
-            tag = FT_CURVE_TAG( tags[0] );
-
-            vec.x = SCALED( point->x );
-            vec.y = SCALED( point->y );
-
-            if ( tag == FT_CURVE_TAG_ON )
-            {
-              error = func_interface->conic_to( &v_control, &vec, user );
-              if ( error )
-                goto Exit;
-              continue;
-            }
-
-            if ( tag != FT_CURVE_TAG_CONIC )
-              goto Invalid_Outline;
-
-            v_middle.x = ( v_control.x + vec.x ) / 2;
-            v_middle.y = ( v_control.y + vec.y ) / 2;
-
-            error = func_interface->conic_to( &v_control, &v_middle, user );
-            if ( error )
-              goto Exit;
-
-            v_control = vec;
-            goto Do_Conic;
-          }
-
-          error = func_interface->conic_to( &v_control, &v_start, user );
-          goto Close;
-
-        default:  /* FT_CURVE_TAG_CUBIC */
-          {
-            FT_Vector  vec1, vec2;
-
-
-            if ( point + 1 > limit                             ||
-                 FT_CURVE_TAG( tags[1] ) != FT_CURVE_TAG_CUBIC )
-              goto Invalid_Outline;
-
-            point += 2;
-            tags  += 2;
-
-            vec1.x = SCALED( point[-2].x ); vec1.y = SCALED( point[-2].y );
-            vec2.x = SCALED( point[-1].x ); vec2.y = SCALED( point[-1].y );
-
-            if ( point <= limit )
-            {
-              FT_Vector  vec;
-
-
-              vec.x = SCALED( point->x );
-              vec.y = SCALED( point->y );
-
-              error = func_interface->cubic_to( &vec1, &vec2, &vec, user );
-              if ( error )
-                goto Exit;
-              continue;
-            }
-
-            error = func_interface->cubic_to( &vec1, &vec2, &v_start, user );
-            goto Close;
-          }
-        }
-      }
-
-      /* close the contour with a line segment */
-      error = func_interface->line_to( &v_start, user );
-
-    Close:
-      if ( error )
-        goto Exit;
-
-      first = last + 1;
-    }
-
-    return 0;
-
-  Exit:
-    return error;
-
-  Invalid_Outline:
-    return FT_Err_Invalid_Outline;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_New_Internal( FT_Memory    memory,
-                           FT_UInt      numPoints,
-                           FT_Int       numContours,
-                           FT_Outline  *anoutline )
-  {
-    FT_Error  error;
-
-
-    if ( !anoutline || !memory )
-      return FT_Err_Invalid_Argument;
-
-    *anoutline = null_outline;
-
-    if ( FT_NEW_ARRAY( anoutline->points,   numPoints * 2L ) ||
-         FT_NEW_ARRAY( anoutline->tags,     numPoints      ) ||
-         FT_NEW_ARRAY( anoutline->contours, numContours    ) )
-      goto Fail;
-
-    anoutline->n_points    = (FT_UShort)numPoints;
-    anoutline->n_contours  = (FT_Short)numContours;
-    anoutline->flags      |= FT_OUTLINE_OWNER;
-
-    return FT_Err_Ok;
-
-  Fail:
-    anoutline->flags |= FT_OUTLINE_OWNER;
-    FT_Outline_Done_Internal( memory, anoutline );
-
-    return error;
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_New( FT_Library   library,
-                  FT_UInt      numPoints,
-                  FT_Int       numContours,
-                  FT_Outline  *anoutline )
-  {
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    return FT_Outline_New_Internal( library->memory, numPoints,
-                                    numContours, anoutline );
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Check( FT_Outline*  outline )
-  {
-    if ( outline )
-    {
-      FT_Int  n_points   = outline->n_points;
-      FT_Int  n_contours = outline->n_contours;
-      FT_Int  end0, end;
-      FT_Int  n;
-
-
-      /* empty glyph? */
-      if ( n_points == 0 && n_contours == 0 )
-        return 0;
-
-      /* check point and contour counts */
-      if ( n_points <= 0 || n_contours <= 0 )
-        goto Bad;
-
-      end0 = end = -1;
-      for ( n = 0; n < n_contours; n++ )
-      {
-        end = outline->contours[n];
-
-        /* note that we don't accept empty contours */
-        if ( end <= end0 || end >= n_points )
-          goto Bad;
-
-        end0 = end;
-      }
-
-      if ( end != n_points - 1 )
-        goto Bad;
-
-      /* XXX: check the tags array */
-      return 0;
-    }
-
-  Bad:
-    return FT_Err_Invalid_Argument;
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Copy( FT_Outline*  source,
-                   FT_Outline  *target )
-  {
-    FT_Int  is_owner;
-
-
-    if ( !source            || !target            ||
-         source->n_points   != target->n_points   ||
-         source->n_contours != target->n_contours )
-      return FT_Err_Invalid_Argument;
-
-    FT_ARRAY_COPY( target->points, source->points, source->n_points );
-
-    FT_ARRAY_COPY( target->tags, source->tags, source->n_points );
-
-    FT_ARRAY_COPY( target->contours, source->contours, source->n_contours );
-
-    /* copy all flags, except the `FT_OUTLINE_OWNER' one */
-    is_owner      = target->flags & FT_OUTLINE_OWNER;
-    target->flags = source->flags;
-
-    target->flags &= ~FT_OUTLINE_OWNER;
-    target->flags |= is_owner;
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Done_Internal( FT_Memory    memory,
-                            FT_Outline*  outline )
-  {
-    if ( outline )
-    {
-      if ( outline->flags & FT_OUTLINE_OWNER )
-      {
-        FT_FREE( outline->points   );
-        FT_FREE( outline->tags     );
-        FT_FREE( outline->contours );
-      }
-      *outline = null_outline;
-
-      return FT_Err_Ok;
-    }
-    else
-      return FT_Err_Invalid_Argument;
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Done( FT_Library   library,
-                   FT_Outline*  outline )
-  {
-    /* check for valid `outline' in FT_Outline_Done_Internal() */
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    return FT_Outline_Done_Internal( library->memory, outline );
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Outline_Get_CBox( FT_Outline*  outline,
-                       FT_BBox     *acbox )
-  {
-    FT_Pos  xMin, yMin, xMax, yMax;
-
-
-    if ( outline && acbox )
-    {
-      if ( outline->n_points == 0 )
-      {
-        xMin = 0;
-        yMin = 0;
-        xMax = 0;
-        yMax = 0;
-      }
-      else
-      {
-        FT_Vector*  vec   = outline->points;
-        FT_Vector*  limit = vec + outline->n_points;
-
-
-        xMin = xMax = vec->x;
-        yMin = yMax = vec->y;
-        vec++;
-
-        for ( ; vec < limit; vec++ )
-        {
-          FT_Pos  x, y;
-
-
-          x = vec->x;
-          if ( x < xMin ) xMin = x;
-          if ( x > xMax ) xMax = x;
-
-          y = vec->y;
-          if ( y < yMin ) yMin = y;
-          if ( y > yMax ) yMax = y;
-        }
-      }
-      acbox->xMin = xMin;
-      acbox->xMax = xMax;
-      acbox->yMin = yMin;
-      acbox->yMax = yMax;
-    }
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Outline_Translate( FT_Outline*  outline,
-                        FT_Pos       xOffset,
-                        FT_Pos       yOffset )
-  {
-    FT_UShort   n;
-    FT_Vector*  vec = outline->points;
-
-
-    for ( n = 0; n < outline->n_points; n++ )
-    {
-      vec->x += xOffset;
-      vec->y += yOffset;
-      vec++;
-    }
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Outline_Reverse( FT_Outline*  outline )
-  {
-    FT_UShort  n;
-    FT_Int     first, last;
-
-
-    first = 0;
-
-    for ( n = 0; n < outline->n_contours; n++ )
-    {
-      last  = outline->contours[n];
-
-      /* reverse point table */
-      {
-        FT_Vector*  p = outline->points + first;
-        FT_Vector*  q = outline->points + last;
-        FT_Vector   swap;
-
-
-        while ( p < q )
-        {
-          swap = *p;
-          *p   = *q;
-          *q   = swap;
-          p++;
-          q--;
-        }
-      }
-
-      /* reverse tags table */
-      {
-        char*  p = outline->tags + first;
-        char*  q = outline->tags + last;
-        char   swap;
-
-
-        while ( p < q )
-        {
-          swap = *p;
-          *p   = *q;
-          *q   = swap;
-          p++;
-          q--;
-        }
-      }
-
-      first = last + 1;
-    }
-
-    outline->flags ^= FT_OUTLINE_REVERSE_FILL;
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Render( FT_Library         library,
-                     FT_Outline*        outline,
-                     FT_Raster_Params*  params )
-  {
-    FT_Error     error;
-    FT_Bool      update = 0;
-    FT_Renderer  renderer;
-    FT_ListNode  node;
-
-
-    if ( !library )
-      return FT_Err_Invalid_Library_Handle;
-
-    if ( !params )
-      return FT_Err_Invalid_Argument;
-
-    renderer = library->cur_renderer;
-    node     = library->renderers.head;
-
-    params->source = (void*)outline;
-
-    error = FT_Err_Cannot_Render_Glyph;
-    while ( renderer )
-    {
-      error = renderer->raster_render( renderer->raster, params );
-      if ( !error || FT_ERROR_BASE( error ) != FT_Err_Cannot_Render_Glyph )
-        break;
-
-      /* FT_Err_Cannot_Render_Glyph is returned if the render mode   */
-      /* is unsupported by the current renderer for this glyph image */
-      /* format                                                      */
-
-      /* now, look for another renderer that supports the same */
-      /* format                                                */
-      renderer = FT_Lookup_Renderer( library, FT_GLYPH_FORMAT_OUTLINE,
-                                     &node );
-      update   = 1;
-    }
-
-    /* if we changed the current renderer for the glyph image format */
-    /* we need to select it as the next current one                  */
-    if ( !error && update && renderer )
-      FT_Set_Renderer( library, renderer, 0, 0 );
-
-    return error;
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Outline_Get_Bitmap( FT_Library   library,
-                         FT_Outline*  outline,
-                         FT_Bitmap   *abitmap )
-  {
-    FT_Raster_Params  params;
-
-
-    if ( !abitmap )
-      return FT_Err_Invalid_Argument;
-
-    /* other checks are delayed to FT_Outline_Render() */
-
-    params.target = abitmap;
-    params.flags  = 0;
-
-    if ( abitmap->pixel_mode == FT_PIXEL_MODE_GRAY  ||
-         abitmap->pixel_mode == FT_PIXEL_MODE_LCD   ||
-         abitmap->pixel_mode == FT_PIXEL_MODE_LCD_V )
-      params.flags |= FT_RASTER_FLAG_AA;
-
-    return FT_Outline_Render( library, outline, &params );
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Vector_Transform( FT_Vector*  vector,
-                       FT_Matrix*  matrix )
-  {
-    FT_Pos xz, yz;
-
-
-    if ( !vector || !matrix )
-      return;
-
-    xz = FT_MulFix( vector->x, matrix->xx ) +
-         FT_MulFix( vector->y, matrix->xy );
-
-    yz = FT_MulFix( vector->x, matrix->yx ) +
-         FT_MulFix( vector->y, matrix->yy );
-
-    vector->x = xz;
-    vector->y = yz;
-  }
-
-
-  /* documentation is in ftoutln.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Outline_Transform( FT_Outline*  outline,
-                        FT_Matrix*   matrix )
-  {
-    FT_Vector*  vec = outline->points;
-    FT_Vector*  limit = vec + outline->n_points;
-
-
-    for ( ; vec < limit; vec++ )
-      FT_Vector_Transform( vec, matrix );
-  }
-
-
-  typedef struct  FT_OrientationExtremumRec_
-  {
-    FT_Int   index;
-    FT_Long  pos;
-    FT_Int   first;
-    FT_Int   last;
-
-  } FT_OrientationExtremumRec;
-
-
-  static FT_Orientation
-  ft_orientation_extremum_compute( FT_OrientationExtremumRec*  extremum,
-                                   FT_Outline*                 outline )
-  {
-    FT_Vector  *point, *first, *last, *prev, *next;
-    FT_Vector*  points = outline->points;
-    FT_Angle    angle_in, angle_out;
-
-
-    /* compute the previous and next points in the same contour */
-    point = points + extremum->index;
-    first = points + extremum->first;
-    last  = points + extremum->last;
-
-    prev = point;
-    next = point;
-
-    do
-    {
-      prev = ( prev == first ) ? last : prev - 1;
-      if ( prev == point )
-        return FT_ORIENTATION_TRUETYPE;  /* degenerate case */
-
-    } while ( prev->x != point->x || prev->y != point->y );
-
-    do
-    {
-      next = ( next == last ) ? first : next + 1;
-      if ( next == point )
-        return FT_ORIENTATION_TRUETYPE;  /* shouldn't happen */
-
-    } while ( next->x != point->x || next->y != point->y );
-
-    /* now compute the orientation of the `out' vector relative */
-    /* to the `in' vector.                                      */
-    angle_in  = FT_Atan2( point->x - prev->x,  point->y - prev->y );
-    angle_out = FT_Atan2( next->x  - point->x, next->y  - point->y );
-
-    return ( FT_Angle_Diff( angle_in, angle_out ) >= 0 )
-             ? FT_ORIENTATION_TRUETYPE
-             : FT_ORIENTATION_POSTSCRIPT;
-  }
-
-
-  FT_EXPORT_DEF( FT_Orientation )
-  FT_Outline_Get_Orientation( FT_Outline*  outline )
-  {
-    FT_Orientation  result = FT_ORIENTATION_TRUETYPE;
-
-
-    if ( outline && outline->n_points > 0 )
-    {
-      FT_OrientationExtremumRec  xmin, ymin, xmax, ymax;
-      FT_Int                     n;
-      FT_Int                     first, last;
-      FT_Vector*                 points = outline->points;
-
-
-      xmin.pos = ymin.pos = +32768L;
-      xmax.pos = ymax.pos = -32768L;
-
-      xmin.index = ymin.index = xmax.index = ymax.index = -1;
-
-      first = 0;
-      for ( n = 0; n < outline->n_contours; n++, first = last + 1 )
-      {
-        last = outline->contours[n];
-
-        /* skip single-point contours; these are degenerated cases */
-        if ( last > first + 1 )
-        {
-          FT_Int  i;
-
-
-          for ( i = first; i < last; i++ )
-          {
-            FT_Pos  x = points[i].x;
-            FT_Pos  y = points[i].y;
-
-
-            if ( x < xmin.pos )
-            {
-              xmin.pos   = x;
-              xmin.index = i;
-              xmin.first = first;
-              xmin.last  = last;
-            }
-            if ( x > xmax.pos )
-            {
-              xmax.pos   = x;
-              xmax.index = i;
-              xmax.first = first;
-              xmax.last  = last;
-            }
-            if ( y < ymin.pos )
-            {
-              ymin.pos   = y;
-              ymin.index = i;
-              ymin.first = first;
-              ymin.last  = last;
-            }
-            if ( y > ymax.pos )
-            {
-              ymax.pos   = y;
-              ymax.index = i;
-              ymax.first = first;
-              ymax.last  = last;
-            }
-          }
-        }
-
-        if ( xmin.index >= 0 )
-          result = ft_orientation_extremum_compute( &xmin, outline );
-
-        else if ( xmax.index >= 0 )
-          result = ft_orientation_extremum_compute( &xmax, outline );
-
-        else if ( ymin.index >= 0 )
-          result = ft_orientation_extremum_compute( &ymin, outline );
-
-        else if ( ymax.index >= 0 )
-          result = ft_orientation_extremum_compute( &ymax, outline );
-      }
-    }
-
-    return result;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftpfr.c b/nx-X11/extras/freetype2/src/base/ftpfr.c
deleted file mode 100644
index fb959e37f..000000000
--- a/nx-X11/extras/freetype2/src/base/ftpfr.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftpfr.c                                                                */
-/*                                                                         */
-/*    FreeType API for accessing PFR-specific data (body).                 */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_PFR_H
-
-
-  /* check the format */
-  static FT_Service_PfrMetrics
-  ft_pfr_check( FT_Face  face )
-  {
-    FT_Service_PfrMetrics  service;
-
-
-    FT_FACE_LOOKUP_SERVICE( face, service, PFR_METRICS );
-
-    return service;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_PFR_Metrics( FT_Face    face,
-                      FT_UInt   *aoutline_resolution,
-                      FT_UInt   *ametrics_resolution,
-                      FT_Fixed  *ametrics_x_scale,
-                      FT_Fixed  *ametrics_y_scale )
-  {
-    FT_Error               error = FT_Err_Ok;
-    FT_Service_PfrMetrics  service;
-
-
-    service = ft_pfr_check( face );
-    if ( service )
-    {
-      error = service->get_metrics( face,
-                                    aoutline_resolution,
-                                    ametrics_resolution,
-                                    ametrics_x_scale,
-                                    ametrics_y_scale );
-    }
-    else if ( face )
-    {
-      FT_Fixed  x_scale, y_scale;
-
-
-      /* this is not a PFR font */
-      *aoutline_resolution = face->units_per_EM;
-      *ametrics_resolution = face->units_per_EM;
-
-      x_scale = y_scale = 0x10000L;
-      if ( face->size )
-      {
-        x_scale = face->size->metrics.x_scale;
-        y_scale = face->size->metrics.y_scale;
-      }
-      *ametrics_x_scale = x_scale;
-      *ametrics_y_scale = y_scale;
-    }
-    else
-      error = FT_Err_Invalid_Argument;
-
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_PFR_Kerning( FT_Face     face,
-                      FT_UInt     left,
-                      FT_UInt     right,
-                      FT_Vector  *avector )
-  {
-    FT_Error               error;
-    FT_Service_PfrMetrics  service;
-
-
-    service = ft_pfr_check( face );
-    if ( service )
-      error = service->get_kerning( face, left, right, avector );
-    else if ( face )
-      error = FT_Get_Kerning( face, left, right,
-                              FT_KERNING_UNSCALED, avector );
-    else
-      error = FT_Err_Invalid_Argument;
-
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_PFR_Advance( FT_Face   face,
-                      FT_UInt   gindex,
-                      FT_Pos   *aadvance )
-  {
-    FT_Error               error;
-    FT_Service_PfrMetrics  service;
-
-
-    service = ft_pfr_check( face );
-    if ( service )
-    {
-      error = service->get_advance( face, gindex, aadvance );
-    }
-    else
-      /* XXX: TODO: PROVIDE ADVANCE-LOADING METHOD TO ALL FONT DRIVERS */
-      error = FT_Err_Invalid_Argument;
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftrfork.c b/nx-X11/extras/freetype2/src/base/ftrfork.c
deleted file mode 100644
index cf790ccc0..000000000
--- a/nx-X11/extras/freetype2/src/base/ftrfork.c
+++ /dev/null
@@ -1,717 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftrfork.c                                                              */
-/*                                                                         */
-/*    Embedded resource forks accessor (body).                             */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  Masatake YAMATO and Redhat K.K.                                        */
-/*                                                                         */
-/*  FT_Raccess_Get_HeaderInfo() and raccess_guess_darwin_hfsplus() are     */
-/*  derived from ftobjs.c.                                                 */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-/***************************************************************************/
-/* Development of the code in this file is support of                      */
-/* Information-technology Promotion Agency, Japan.                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_RFORK_H
-
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_raccess
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****               Resource fork directory access                    ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_BASE_DEF( FT_Error )
-  FT_Raccess_Get_HeaderInfo( FT_Library  library,
-                             FT_Stream   stream,
-                             FT_Long     rfork_offset,
-                             FT_Long    *map_offset,
-                             FT_Long    *rdata_pos )
-  {
-    FT_Error       error;
-    unsigned char  head[16], head2[16];
-    FT_Long        map_pos, rdata_len;
-    int            allzeros, allmatch, i;
-    FT_Long        type_list;
-
-    FT_UNUSED( library );
-
-
-    error = FT_Stream_Seek( stream, rfork_offset );
-    if ( error )
-      return error;
-
-    error = FT_Stream_Read( stream, (FT_Byte *)head, 16 );
-    if ( error )
-      return error;
-
-    *rdata_pos = rfork_offset + ( ( head[0] << 24 ) |
-                                  ( head[1] << 16 ) |
-                                  ( head[2] <<  8 ) |
-                                    head[3]         );
-    map_pos    = rfork_offset + ( ( head[4] << 24 ) |
-                                  ( head[5] << 16 ) |
-                                  ( head[6] <<  8 ) |
-                                    head[7]         );
-    rdata_len = ( head[ 8] << 24 ) |
-                ( head[ 9] << 16 ) |
-                ( head[10] <<  8 ) |
-                  head[11];
-
-    /* map_len = head[12] .. head[15] */
-
-    if ( *rdata_pos + rdata_len != map_pos || map_pos == rfork_offset )
-      return FT_Err_Unknown_File_Format;
-
-    error = FT_Stream_Seek( stream, map_pos );
-    if ( error )
-      return error;
-
-    head2[15] = (FT_Byte)( head[15] + 1 );       /* make it be different */
-
-    error = FT_Stream_Read( stream, (FT_Byte*)head2, 16 );
-    if ( error )
-      return error;
-
-    allzeros = 1;
-    allmatch = 1;
-    for ( i = 0; i < 16; ++i )
-    {
-      if ( head2[i] != 0 )
-        allzeros = 0;
-      if ( head2[i] != head[i] )
-        allmatch = 0;
-    }
-    if ( !allzeros && !allmatch )
-      return FT_Err_Unknown_File_Format;
-
-    /* If we have reached this point then it is probably a mac resource */
-    /* file.  Now, does it contain any interesting resources?           */
-    /* Skip handle to next resource map, the file resource number, and  */
-    /* attributes.                                                      */
-    (void)FT_STREAM_SKIP( 4        /* skip handle to next resource map */
-                          + 2      /* skip file resource number */
-                          + 2 );   /* skip attributes */
-
-    if ( FT_READ_USHORT( type_list ) )
-      return error;
-    if ( type_list == -1 )
-      return FT_Err_Unknown_File_Format;
-
-    error = FT_Stream_Seek( stream, map_pos + type_list );
-    if ( error )
-      return error;
-
-    *map_offset = map_pos + type_list;
-    return FT_Err_Ok;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Raccess_Get_DataOffsets( FT_Library  library,
-                              FT_Stream   stream,
-                              FT_Long     map_offset,
-                              FT_Long     rdata_pos,
-                              FT_Long     tag,
-                              FT_Long   **offsets,
-                              FT_Long    *count )
-  {
-    FT_Error   error;
-    int        i, j, cnt, subcnt;
-    FT_Long    tag_internal, rpos;
-    FT_Memory  memory = library->memory;
-    FT_Long    temp;
-    FT_Long    *offsets_internal;
-
-
-    error = FT_Stream_Seek( stream, map_offset );
-    if ( error )
-      return error;
-
-    if ( FT_READ_USHORT( cnt ) )
-      return error;
-    cnt++;
-
-    for ( i = 0; i < cnt; ++i )
-    {
-      if ( FT_READ_LONG( tag_internal ) ||
-           FT_READ_USHORT( subcnt )     ||
-           FT_READ_USHORT( rpos )       )
-        return error;
-
-      FT_TRACE2(( "Resource tags: %c%c%c%c\n",
-                  (char)( 0xff & ( tag_internal >> 24 ) ),
-                  (char)( 0xff & ( tag_internal >> 16 ) ),
-                  (char)( 0xff & ( tag_internal >>  8 ) ),
-                  (char)( 0xff & ( tag_internal >>  0 ) ) ));
-
-      if ( tag_internal == tag )
-      {
-        *count = subcnt + 1;
-        rpos  += map_offset;
-
-        error = FT_Stream_Seek( stream, rpos );
-        if ( error )
-          return error;
-
-        if ( FT_ALLOC( offsets_internal, *count * sizeof( FT_Long ) ) )
-          return error;
-
-        for ( j = 0; j < *count; ++j )
-        {
-          (void)FT_STREAM_SKIP( 2 ); /* resource id */
-          (void)FT_STREAM_SKIP( 2 ); /* rsource name */
-
-          if ( FT_READ_LONG( temp ) )
-          {
-            FT_FREE( offsets_internal );
-            return error;
-          }
-
-          offsets_internal[j] = rdata_pos + ( temp & 0xFFFFFFL );
-
-          (void)FT_STREAM_SKIP( 4 ); /* mbz */
-        }
-
-        *offsets = offsets_internal;
-
-        return FT_Err_Ok;
-      }
-    }
-
-    return FT_Err_Cannot_Open_Resource;
-  }
-
-
-#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                     Guessing functions                          ****/
-  /****                                                                 ****/
-  /****            When you add a new guessing function,                ****/
-  /****           update FT_RACCESS_N_RULES in ftrfork.h.               ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef FT_Error
-  (*raccess_guess_func)( FT_Library  library,
-                         FT_Stream   stream,
-                         char *      base_file_name,
-                         char      **result_file_name,
-                         FT_Long    *result_offset );
-
-
-  static FT_Error
-  raccess_guess_apple_double( FT_Library  library,
-                              FT_Stream   stream,
-                              char *      base_file_name,
-                              char      **result_file_name,
-                              FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_apple_single( FT_Library  library,
-                              FT_Stream   stream,
-                              char *      base_file_name,
-                              char      **result_file_name,
-                              FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_darwin_ufs_export( FT_Library  library,
-                                   FT_Stream   stream,
-                                   char *      base_file_name,
-                                   char      **result_file_name,
-                                   FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_darwin_hfsplus( FT_Library  library,
-                                FT_Stream   stream,
-                                char *      base_file_name,
-                                char      **result_file_name,
-                                FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_vfat( FT_Library  library,
-                      FT_Stream   stream,
-                      char *      base_file_name,
-                      char      **result_file_name,
-                      FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_linux_cap( FT_Library  library,
-                           FT_Stream   stream,
-                           char *      base_file_name,
-                           char      **result_file_name,
-                           FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_linux_double( FT_Library  library,
-                              FT_Stream   stream,
-                              char *      base_file_name,
-                              char      **result_file_name,
-                              FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_linux_netatalk( FT_Library  library,
-                                FT_Stream   stream,
-                                char *      base_file_name,
-                                char      **result_file_name,
-                                FT_Long    *result_offset );
-
-
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                       Helper functions                          ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-
-  static FT_Error
-  raccess_guess_apple_generic( FT_Library  library,
-                               FT_Stream   stream,
-                               char *      base_file_name,
-                               FT_Int32    magic,
-                               FT_Long    *result_offset );
-
-  static FT_Error
-  raccess_guess_linux_double_from_file_name( FT_Library  library,
-                                             char *      file_name,
-                                             FT_Long    *result_offset );
-
-  static char *
-  raccess_make_file_name( FT_Memory    memory,
-                          const char  *original_name,
-                          const char  *insertion );
-
-
-  FT_BASE_DEF( void )
-  FT_Raccess_Guess( FT_Library  library,
-                    FT_Stream   stream,
-                    char*       base_name,
-                    char      **new_names,
-                    FT_Long    *offsets,
-                    FT_Error   *errors )
-  {
-    FT_Long  i;
-
-
-    raccess_guess_func  funcs[FT_RACCESS_N_RULES] =
-    {
-      raccess_guess_apple_double,
-      raccess_guess_apple_single,
-      raccess_guess_darwin_ufs_export,
-      raccess_guess_darwin_hfsplus,
-      raccess_guess_vfat,
-      raccess_guess_linux_cap,
-      raccess_guess_linux_double,
-      raccess_guess_linux_netatalk,
-    };
-
-    for ( i = 0; i < FT_RACCESS_N_RULES; i++ )
-    {
-      new_names[i] = NULL;
-      errors[i] = FT_Stream_Seek( stream, 0 );
-      if ( errors[i] )
-        continue ;
-
-      errors[i] = (funcs[i])( library, stream, base_name,
-                              &(new_names[i]), &(offsets[i]) );
-    }
-
-    return;
-  }
-
-
-  static FT_Error
-  raccess_guess_apple_double( FT_Library  library,
-                              FT_Stream   stream,
-                              char *      base_file_name,
-                              char      **result_file_name,
-                              FT_Long    *result_offset )
-  {
-    FT_Int32  magic = ( 0x00 << 24 | 0x05 << 16 | 0x16 << 8 | 0x07 );
-
-
-    *result_file_name = NULL;
-    return raccess_guess_apple_generic( library, stream, base_file_name,
-                                        magic, result_offset );
-  }
-
-
-  static FT_Error
-  raccess_guess_apple_single( FT_Library  library,
-                              FT_Stream   stream,
-                              char *      base_file_name,
-                              char      **result_file_name,
-                              FT_Long    *result_offset )
-  {
-    FT_Int32  magic = (0x00 << 24 | 0x05 << 16 | 0x16 << 8 | 0x00);
-
-
-    *result_file_name = NULL;
-    return raccess_guess_apple_generic( library, stream, base_file_name,
-                                        magic, result_offset );
-  }
-
-
-  static FT_Error
-  raccess_guess_darwin_ufs_export( FT_Library  library,
-                                   FT_Stream   stream,
-                                   char *      base_file_name,
-                                   char      **result_file_name,
-                                   FT_Long    *result_offset )
-  {
-    char*      newpath;
-    FT_Error   error;
-    FT_Memory  memory;
-
-    FT_UNUSED( stream );
-
-
-    memory  = library->memory;
-    newpath = raccess_make_file_name( memory, base_file_name, "._" );
-    if ( !newpath )
-      return FT_Err_Out_Of_Memory;
-
-    error = raccess_guess_linux_double_from_file_name( library, newpath,
-                                                       result_offset );
-    if ( !error )
-      *result_file_name = newpath;
-    else
-      FT_FREE( newpath );
-
-    return error;
-  }
-
-
-  static FT_Error
-  raccess_guess_darwin_hfsplus( FT_Library  library,
-                                FT_Stream   stream,
-                                char *      base_file_name,
-                                char      **result_file_name,
-                                FT_Long    *result_offset )
-  {
-    /*
-      Only meaningful on systems with hfs+ drivers (or Macs).
-     */
-    FT_Error   error;
-    char*      newpath;
-    FT_Memory  memory;
-
-    FT_UNUSED( stream );
-
-
-    memory = library->memory;
-
-    if ( FT_ALLOC( newpath,
-                   ft_strlen( base_file_name ) + ft_strlen( "/rsrc" ) + 1 ) )
-      return error;
-
-    ft_strcpy( newpath, base_file_name );
-    ft_strcat( newpath, "/rsrc" );
-    *result_file_name = newpath;
-    *result_offset = 0;
-    return FT_Err_Ok;
-  }
-
-
-  static FT_Error
-  raccess_guess_vfat( FT_Library  library,
-                      FT_Stream   stream,
-                      char *      base_file_name,
-                      char      **result_file_name,
-                      FT_Long    *result_offset )
-  {
-    char*      newpath;
-    FT_Memory  memory;
-
-    FT_UNUSED( stream );
-
-
-    memory = library->memory;
-
-    newpath = raccess_make_file_name( memory, base_file_name,
-                                      "resource.frk/" );
-    if ( !newpath )
-      return FT_Err_Out_Of_Memory;
-
-    *result_file_name = newpath;
-    *result_offset    = 0;
-
-    return FT_Err_Ok;
-  }
-
-
-  static FT_Error
-  raccess_guess_linux_cap( FT_Library  library,
-                           FT_Stream   stream,
-                           char *      base_file_name,
-                           char      **result_file_name,
-                           FT_Long    *result_offset )
-  {
-    char*      newpath;
-    FT_Memory  memory;
-
-    FT_UNUSED( stream );
-
-
-    memory = library->memory;
-
-    newpath = raccess_make_file_name( memory, base_file_name, ".resource/" );
-    if ( !newpath )
-      return FT_Err_Out_Of_Memory;
-
-    *result_file_name = newpath;
-    *result_offset    = 0;
-
-    return FT_Err_Ok;
-  }
-
-
-  static FT_Error
-  raccess_guess_linux_double( FT_Library  library,
-                              FT_Stream   stream,
-                              char *      base_file_name,
-                              char      **result_file_name,
-                              FT_Long    *result_offset )
-  {
-    char*      newpath;
-    FT_Error   error;
-    FT_Memory  memory;
-
-    FT_UNUSED( stream );
-
-
-    memory = library->memory;
-
-    newpath = raccess_make_file_name( memory, base_file_name, "%" );
-    if ( !newpath )
-      return FT_Err_Out_Of_Memory;
-
-    error = raccess_guess_linux_double_from_file_name( library, newpath,
-                                                       result_offset );
-    if ( !error )
-      *result_file_name = newpath;
-    else
-      FT_FREE( newpath );
-
-    return error;
-  }
-
-
-  static FT_Error
-  raccess_guess_linux_netatalk( FT_Library  library,
-                                FT_Stream   stream,
-                                char *      base_file_name,
-                                char      **result_file_name,
-                                FT_Long    *result_offset )
-  {
-    char*      newpath;
-    FT_Error   error;
-    FT_Memory  memory;
-
-    FT_UNUSED( stream );
-
-
-    memory = library->memory;
-
-    newpath = raccess_make_file_name( memory, base_file_name,
-                                      ".AppleDouble/" );
-    if ( !newpath )
-      return FT_Err_Out_Of_Memory;
-
-    error = raccess_guess_linux_double_from_file_name( library, newpath,
-                                                       result_offset );
-    if ( !error )
-      *result_file_name = newpath;
-    else
-      FT_FREE( newpath );
-
-    return error;
-  }
-
-
-  static FT_Error
-  raccess_guess_apple_generic( FT_Library  library,
-                               FT_Stream   stream,
-                               char *      base_file_name,
-                               FT_Int32    magic,
-                               FT_Long    *result_offset )
-  {
-    FT_Int32   magic_from_stream;
-    FT_Error   error;
-    FT_Int32   version_number;
-    FT_UShort  n_of_entries;
-
-    int        i;
-    FT_UInt32  entry_id, entry_offset, entry_length;
-
-    const FT_UInt32  resource_fork_entry_id = 0x2;
-
-    FT_UNUSED( library );
-    FT_UNUSED( base_file_name );
-
-
-    if ( FT_READ_LONG ( magic_from_stream ) )
-      return error;
-    if ( magic_from_stream != magic )
-      return FT_Err_Unknown_File_Format;
-
-    if ( FT_READ_LONG( version_number ) )
-      return error;
-
-    /* filler */
-    error = FT_Stream_Skip( stream, 16 );
-    if ( error )
-      return error;
-
-    if ( FT_READ_USHORT( n_of_entries ) )
-      return error;
-    if ( n_of_entries == 0 )
-      return FT_Err_Unknown_File_Format;
-
-    for ( i = 0; i < n_of_entries; i++ )
-    {
-      if ( FT_READ_LONG( entry_id ) )
-        return error;
-      if ( entry_id == resource_fork_entry_id )
-      {
-        if ( FT_READ_LONG( entry_offset ) ||
-             FT_READ_LONG( entry_length ) )
-          continue;
-        *result_offset = entry_offset;
-
-        return FT_Err_Ok;
-      }
-      else
-        FT_Stream_Skip( stream, 4 + 4 );    /* offset + length */
-      }
-
-    return FT_Err_Unknown_File_Format;
-  }
-
-
-  static FT_Error
-  raccess_guess_linux_double_from_file_name( FT_Library  library,
-                                             char *      file_name,
-                                             FT_Long    *result_offset )
-  {
-    FT_Memory     memory;
-    FT_Open_Args  args2;
-    FT_Stream     stream2;
-    char *        nouse = NULL;
-    FT_Error      error;
-
-
-    memory = library->memory;
-
-    args2.flags    = FT_OPEN_PATHNAME;
-    args2.pathname = file_name;
-    error = FT_Stream_New( library, &args2, &stream2 );
-    if ( error )
-      return error;
-
-    error = raccess_guess_apple_double( library, stream2, file_name,
-                                        &nouse, result_offset );
-
-    FT_Stream_Close( stream2 );
-
-    return error;
-  }
-
-
-  static char*
-  raccess_make_file_name( FT_Memory    memory,
-                          const char  *original_name,
-                          const char  *insertion )
-  {
-    char*        new_name;
-    char*        tmp;
-    const char*  slash;
-    unsigned     new_length;
-    FT_ULong     error;
-
-    new_length = ft_strlen( original_name ) + ft_strlen( insertion );
-    if ( FT_ALLOC( new_name, new_length + 1 ) )
-      return NULL;
-
-    tmp = ft_strrchr( original_name, '/' );
-    if ( tmp )
-    {
-      ft_strncpy( new_name, original_name, tmp - original_name + 1 );
-      new_name[tmp - original_name + 1] = '\0';
-      slash = tmp + 1;
-    }
-    else
-    {
-      slash       = original_name;
-      new_name[0] = '\0';
-    }
-
-    ft_strcat( new_name, insertion );
-    ft_strcat( new_name, slash );
-
-    return new_name;
-  }
-
-
-#else   /* !FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */
-
-
-  /*************************************************************************/
-  /*                  Dummy function; just sets errors                     */
-  /*************************************************************************/
-
-  FT_BASE_DEF( void )
-  FT_Raccess_Guess( FT_Library  library,
-                    FT_Stream   stream,
-                    char*       base_name,
-                    char      **new_names,
-                    FT_Long    *offsets,
-                    FT_Error   *errors )
-  {
-    int  i;
-
-
-    for ( i = 0; i < FT_RACCESS_N_RULES; i++ )
-    {
-      new_names[i] = NULL;
-      offsets[i]   = 0;
-      errors[i]    = FT_Err_Unimplemented_Feature;
-    }
-  }
-
-
-#endif  /* !FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftstream.c b/nx-X11/extras/freetype2/src/base/ftstream.c
deleted file mode 100644
index 932fe1b40..000000000
--- a/nx-X11/extras/freetype2/src/base/ftstream.c
+++ /dev/null
@@ -1,803 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftstream.c                                                             */
-/*                                                                         */
-/*    I/O stream support (body).                                           */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_stream
-
-
-  FT_BASE_DEF( void )
-  FT_Stream_OpenMemory( FT_Stream       stream,
-                        const FT_Byte*  base,
-                        FT_ULong        size )
-  {
-    stream->base   = (FT_Byte*) base;
-    stream->size   = size;
-    stream->pos    = 0;
-    stream->cursor = 0;
-    stream->read   = 0;
-    stream->close  = 0;
-  }
-
-
-  FT_BASE_DEF( void )
-  FT_Stream_Close( FT_Stream  stream )
-  {
-    if ( stream && stream->close )
-    {
-      stream->close( stream );
-      stream->close = NULL;
-    }
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_Seek( FT_Stream  stream,
-                  FT_ULong   pos )
-  {
-    FT_Error  error = FT_Err_Ok;
-
-
-    stream->pos = pos;
-
-    if ( stream->read )
-    {
-      if ( stream->read( stream, pos, 0, 0 ) )
-      {
-        FT_ERROR(( "FT_Stream_Seek: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-                   pos, stream->size ));
-
-        error = FT_Err_Invalid_Stream_Operation;
-      }
-    }
-    /* note that seeking to the first position after the file is valid */
-    else if ( pos > stream->size )
-    {
-      FT_ERROR(( "FT_Stream_Seek: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-                 pos, stream->size ));
-
-      error = FT_Err_Invalid_Stream_Operation;
-    }
-
-    return error;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_Skip( FT_Stream  stream,
-                  FT_Long    distance )
-  {
-    return FT_Stream_Seek( stream, (FT_ULong)( stream->pos + distance ) );
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_Pos( FT_Stream  stream )
-  {
-    return stream->pos;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_Read( FT_Stream  stream,
-                  FT_Byte*   buffer,
-                  FT_ULong   count )
-  {
-    return FT_Stream_ReadAt( stream, stream->pos, buffer, count );
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_ReadAt( FT_Stream  stream,
-                    FT_ULong   pos,
-                    FT_Byte*   buffer,
-                    FT_ULong   count )
-  {
-    FT_Error  error = FT_Err_Ok;
-    FT_ULong  read_bytes;
-
-
-    if ( pos >= stream->size )
-    {
-      FT_ERROR(( "FT_Stream_ReadAt: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-                 pos, stream->size ));
-
-      return FT_Err_Invalid_Stream_Operation;
-    }
-
-    if ( stream->read )
-      read_bytes = stream->read( stream, pos, buffer, count );
-    else
-    {
-      read_bytes = stream->size - pos;
-      if ( read_bytes > count )
-        read_bytes = count;
-
-      FT_MEM_COPY( buffer, stream->base + pos, read_bytes );
-    }
-
-    stream->pos = pos + read_bytes;
-
-    if ( read_bytes < count )
-    {
-      FT_ERROR(( "FT_Stream_ReadAt:" ));
-      FT_ERROR(( " invalid read; expected %lu bytes, got %lu\n",
-                 count, read_bytes ));
-
-      error = FT_Err_Invalid_Stream_Operation;
-    }
-
-    return error;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_ExtractFrame( FT_Stream  stream,
-                          FT_ULong   count,
-                          FT_Byte**  pbytes )
-  {
-    FT_Error  error;
-
-
-    error = FT_Stream_EnterFrame( stream, count );
-    if ( !error )
-    {
-      *pbytes = (FT_Byte*)stream->cursor;
-
-      /* equivalent to FT_Stream_ExitFrame(), with no memory block release */
-      stream->cursor = 0;
-      stream->limit  = 0;
-    }
-
-    return error;
-  }
-
-
-  FT_BASE_DEF( void )
-  FT_Stream_ReleaseFrame( FT_Stream  stream,
-                          FT_Byte**  pbytes )
-  {
-    if ( stream->read )
-    {
-      FT_Memory  memory = stream->memory;
-
-
-      FT_FREE( *pbytes );
-    }
-    *pbytes = 0;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_EnterFrame( FT_Stream  stream,
-                        FT_ULong   count )
-  {
-    FT_Error  error = FT_Err_Ok;
-    FT_ULong  read_bytes;
-
-
-    /* check for nested frame access */
-    FT_ASSERT( stream && stream->cursor == 0 );
-
-    if ( stream->read )
-    {
-      /* allocate the frame in memory */
-      FT_Memory  memory = stream->memory;
-
-
-      if ( FT_QALLOC( stream->base, count ) )
-        goto Exit;
-
-      /* read it */
-      read_bytes = stream->read( stream, stream->pos,
-                                 stream->base, count );
-      if ( read_bytes < count )
-      {
-        FT_ERROR(( "FT_Stream_EnterFrame:" ));
-        FT_ERROR(( " invalid read; expected %lu bytes, got %lu\n",
-                   count, read_bytes ));
-
-        FT_FREE( stream->base );
-        error = FT_Err_Invalid_Stream_Operation;
-      }
-      stream->cursor = stream->base;
-      stream->limit  = stream->cursor + count;
-      stream->pos   += read_bytes;
-    }
-    else
-    {
-      /* check current and new position */
-      if ( stream->pos >= stream->size        ||
-           stream->pos + count > stream->size )
-      {
-        FT_ERROR(( "FT_Stream_EnterFrame:" ));
-        FT_ERROR(( " invalid i/o; pos = 0x%lx, count = %lu, size = 0x%lx\n",
-                   stream->pos, count, stream->size ));
-
-        error = FT_Err_Invalid_Stream_Operation;
-        goto Exit;
-      }
-
-      /* set cursor */
-      stream->cursor = stream->base + stream->pos;
-      stream->limit  = stream->cursor + count;
-      stream->pos   += count;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_BASE_DEF( void )
-  FT_Stream_ExitFrame( FT_Stream  stream )
-  {
-    /* IMPORTANT: The assertion stream->cursor != 0 was removed, given    */
-    /*            that it is possible to access a frame of length 0 in    */
-    /*            some weird fonts (usually, when accessing an array of   */
-    /*            0 records, like in some strange kern tables).           */
-    /*                                                                    */
-    /*  In this case, the loader code handles the 0-length table          */
-    /*  gracefully; however, stream.cursor is really set to 0 by the      */
-    /*  FT_Stream_EnterFrame() call, and this is not an error.            */
-    /*                                                                    */
-    FT_ASSERT( stream );
-
-    if ( stream->read )
-    {
-      FT_Memory  memory = stream->memory;
-
-
-      FT_FREE( stream->base );
-    }
-    stream->cursor = 0;
-    stream->limit  = 0;
-  }
-
-
-  FT_BASE_DEF( FT_Char )
-  FT_Stream_GetChar( FT_Stream  stream )
-  {
-    FT_Char  result;
-
-
-    FT_ASSERT( stream && stream->cursor );
-
-    result = 0;
-    if ( stream->cursor < stream->limit )
-      result = *stream->cursor++;
-
-    return result;
-  }
-
-
-  FT_BASE_DEF( FT_Short )
-  FT_Stream_GetShort( FT_Stream  stream )
-  {
-    FT_Byte*  p;
-    FT_Short  result;
-
-
-    FT_ASSERT( stream && stream->cursor );
-
-    result         = 0;
-    p              = stream->cursor;
-    if ( p + 1 < stream->limit )
-      result       = FT_NEXT_SHORT( p );
-    stream->cursor = p;
-
-    return result;
-  }
-
-
-  FT_BASE_DEF( FT_Short )
-  FT_Stream_GetShortLE( FT_Stream  stream )
-  {
-    FT_Byte*  p;
-    FT_Short  result;
-
-
-    FT_ASSERT( stream && stream->cursor );
-
-    result         = 0;
-    p              = stream->cursor;
-    if ( p + 1 < stream->limit )
-      result       = FT_NEXT_SHORT_LE( p );
-    stream->cursor = p;
-
-    return result;
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_GetOffset( FT_Stream  stream )
-  {
-    FT_Byte*  p;
-    FT_Long   result;
-
-
-    FT_ASSERT( stream && stream->cursor );
-
-    result         = 0;
-    p              = stream->cursor;
-    if ( p + 2 < stream->limit )
-      result       = FT_NEXT_OFF3( p );
-    stream->cursor = p;
-    return result;
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_GetLong( FT_Stream  stream )
-  {
-    FT_Byte*  p;
-    FT_Long   result;
-
-
-    FT_ASSERT( stream && stream->cursor );
-
-    result         = 0;
-    p              = stream->cursor;
-    if ( p + 3 < stream->limit )
-      result       = FT_NEXT_LONG( p );
-    stream->cursor = p;
-    return result;
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_GetLongLE( FT_Stream  stream )
-  {
-    FT_Byte*  p;
-    FT_Long   result;
-
-
-    FT_ASSERT( stream && stream->cursor );
-
-    result         = 0;
-    p              = stream->cursor;
-    if ( p + 3 < stream->limit )
-      result       = FT_NEXT_LONG_LE( p );
-    stream->cursor = p;
-    return result;
-  }
-
-
-  FT_BASE_DEF( FT_Char )
-  FT_Stream_ReadChar( FT_Stream  stream,
-                      FT_Error*  error )
-  {
-    FT_Byte  result = 0;
-
-
-    FT_ASSERT( stream );
-
-    *error = FT_Err_Ok;
-
-    if ( stream->read )
-    {
-      if ( stream->read( stream, stream->pos, &result, 1L ) != 1L )
-        goto Fail;
-    }
-    else
-    {
-      if ( stream->pos < stream->size )
-        result = stream->base[stream->pos];
-      else
-        goto Fail;
-    }
-    stream->pos++;
-
-    return result;
-
-  Fail:
-    *error = FT_Err_Invalid_Stream_Operation;
-    FT_ERROR(( "FT_Stream_ReadChar: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-               stream->pos, stream->size ));
-
-    return 0;
-  }
-
-
-  FT_BASE_DEF( FT_Short )
-  FT_Stream_ReadShort( FT_Stream  stream,
-                       FT_Error*  error )
-  {
-    FT_Byte   reads[2];
-    FT_Byte*  p = 0;
-    FT_Short  result = 0;
-
-
-    FT_ASSERT( stream );
-
-    *error = FT_Err_Ok;
-
-    if ( stream->pos + 1 < stream->size )
-    {
-      if ( stream->read )
-      {
-        if ( stream->read( stream, stream->pos, reads, 2L ) != 2L )
-          goto Fail;
-
-        p = reads;
-      }
-      else
-      {
-        p = stream->base + stream->pos;
-      }
-
-      if ( p )
-        result = FT_NEXT_SHORT( p );
-    }
-    else
-      goto Fail;
-
-    stream->pos += 2;
-
-    return result;
-
-  Fail:
-    *error = FT_Err_Invalid_Stream_Operation;
-    FT_ERROR(( "FT_Stream_ReadShort:" ));
-    FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-               stream->pos, stream->size ));
-
-    return 0;
-  }
-
-
-  FT_BASE_DEF( FT_Short )
-  FT_Stream_ReadShortLE( FT_Stream  stream,
-                         FT_Error*  error )
-  {
-    FT_Byte   reads[2];
-    FT_Byte*  p = 0;
-    FT_Short  result = 0;
-
-
-    FT_ASSERT( stream );
-
-    *error = FT_Err_Ok;
-
-    if ( stream->pos + 1 < stream->size )
-    {
-      if ( stream->read )
-      {
-        if ( stream->read( stream, stream->pos, reads, 2L ) != 2L )
-          goto Fail;
-
-        p = reads;
-      }
-      else
-      {
-        p = stream->base + stream->pos;
-      }
-
-      if ( p )
-        result = FT_NEXT_SHORT_LE( p );
-    }
-    else
-      goto Fail;
-
-    stream->pos += 2;
-
-    return result;
-
-  Fail:
-    *error = FT_Err_Invalid_Stream_Operation;
-    FT_ERROR(( "FT_Stream_ReadShortLE:" ));
-    FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-               stream->pos, stream->size ));
-
-    return 0;
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_ReadOffset( FT_Stream  stream,
-                        FT_Error*  error )
-  {
-    FT_Byte   reads[3];
-    FT_Byte*  p = 0;
-    FT_Long   result = 0;
-
-
-    FT_ASSERT( stream );
-
-    *error = FT_Err_Ok;
-
-    if ( stream->pos + 2 < stream->size )
-    {
-      if ( stream->read )
-      {
-        if (stream->read( stream, stream->pos, reads, 3L ) != 3L )
-          goto Fail;
-
-        p = reads;
-      }
-      else
-      {
-        p = stream->base + stream->pos;
-      }
-
-      if ( p )
-        result = FT_NEXT_OFF3( p );
-    }
-    else
-      goto Fail;
-
-    stream->pos += 3;
-
-    return result;
-
-  Fail:
-    *error = FT_Err_Invalid_Stream_Operation;
-    FT_ERROR(( "FT_Stream_ReadOffset:" ));
-    FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-               stream->pos, stream->size ));
-
-    return 0;
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_ReadLong( FT_Stream  stream,
-                      FT_Error*  error )
-  {
-    FT_Byte   reads[4];
-    FT_Byte*  p = 0;
-    FT_Long   result = 0;
-
-
-    FT_ASSERT( stream );
-
-    *error = FT_Err_Ok;
-
-    if ( stream->pos + 3 < stream->size )
-    {
-      if ( stream->read )
-      {
-        if ( stream->read( stream, stream->pos, reads, 4L ) != 4L )
-          goto Fail;
-
-        p = reads;
-      }
-      else
-      {
-        p = stream->base + stream->pos;
-      }
-
-      if ( p )
-        result = FT_NEXT_LONG( p );
-    }
-    else
-      goto Fail;
-
-    stream->pos += 4;
-
-    return result;
-
-  Fail:
-    FT_ERROR(( "FT_Stream_ReadLong: invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-               stream->pos, stream->size ));
-    *error = FT_Err_Invalid_Stream_Operation;
-
-    return 0;
-  }
-
-
-  FT_BASE_DEF( FT_Long )
-  FT_Stream_ReadLongLE( FT_Stream  stream,
-                        FT_Error*  error )
-  {
-    FT_Byte   reads[4];
-    FT_Byte*  p = 0;
-    FT_Long   result = 0;
-
-
-    FT_ASSERT( stream );
-
-    *error = FT_Err_Ok;
-
-    if ( stream->pos + 3 < stream->size )
-    {
-      if ( stream->read )
-      {
-        if ( stream->read( stream, stream->pos, reads, 4L ) != 4L )
-          goto Fail;
-
-        p = reads;
-      }
-      else
-      {
-        p = stream->base + stream->pos;
-      }
-
-      if ( p )
-        result = FT_NEXT_LONG_LE( p );
-    }
-    else
-      goto Fail;
-
-    stream->pos += 4;
-
-    return result;
-
-  Fail:
-    FT_ERROR(( "FT_Stream_ReadLongLE:" ));
-    FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-               stream->pos, stream->size ));
-    *error = FT_Err_Invalid_Stream_Operation;
-
-    return 0;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_Stream_ReadFields( FT_Stream              stream,
-                        const FT_Frame_Field*  fields,
-                        void*                  structure )
-  {
-    FT_Error  error;
-    FT_Bool   frame_accessed = 0;
-    FT_Byte*  cursor = stream->cursor;
-
-
-    if ( !fields || !stream )
-      return FT_Err_Invalid_Argument;
-
-    error = FT_Err_Ok;
-    do
-    {
-      FT_ULong  value;
-      FT_Int    sign_shift;
-      FT_Byte*  p;
-
-
-      switch ( fields->value )
-      {
-      case ft_frame_start:  /* access a new frame */
-        error = FT_Stream_EnterFrame( stream, fields->offset );
-        if ( error )
-          goto Exit;
-
-        frame_accessed = 1;
-        cursor         = stream->cursor;
-        fields++;
-        continue;  /* loop! */
-
-      case ft_frame_bytes:  /* read a byte sequence */
-      case ft_frame_skip:   /* skip some bytes      */
-        {
-          FT_UInt  len = fields->size;
-
-
-          if ( cursor + len > stream->limit )
-          {
-            error = FT_Err_Invalid_Stream_Operation;
-            goto Exit;
-          }
-
-          if ( fields->value == ft_frame_bytes )
-          {
-            p = (FT_Byte*)structure + fields->offset;
-            FT_MEM_COPY( p, cursor, len );
-          }
-          cursor += len;
-          fields++;
-          continue;
-        }
-
-      case ft_frame_byte:
-      case ft_frame_schar:  /* read a single byte */
-        value = FT_NEXT_BYTE(cursor);
-        sign_shift = 24;
-        break;
-
-      case ft_frame_short_be:
-      case ft_frame_ushort_be:  /* read a 2-byte big-endian short */
-        value = FT_NEXT_USHORT(cursor);
-        sign_shift = 16;
-        break;
-
-      case ft_frame_short_le:
-      case ft_frame_ushort_le:  /* read a 2-byte little-endian short */
-        value = FT_NEXT_USHORT_LE(cursor);
-        sign_shift = 16;
-        break;
-
-      case ft_frame_long_be:
-      case ft_frame_ulong_be:  /* read a 4-byte big-endian long */
-        value = FT_NEXT_ULONG(cursor);
-        sign_shift = 0;
-        break;
-
-      case ft_frame_long_le:
-      case ft_frame_ulong_le:  /* read a 4-byte little-endian long */
-        value = FT_NEXT_ULONG_LE(cursor);
-        sign_shift = 0;
-        break;
-
-      case ft_frame_off3_be:
-      case ft_frame_uoff3_be:  /* read a 3-byte big-endian long */
-        value = FT_NEXT_UOFF3(cursor);
-        sign_shift = 8;
-        break;
-
-      case ft_frame_off3_le:
-      case ft_frame_uoff3_le:  /* read a 3-byte little-endian long */
-        value = FT_NEXT_UOFF3_LE(cursor);
-        sign_shift = 8;
-        break;
-
-      default:
-        /* otherwise, exit the loop */
-        stream->cursor = cursor;
-        goto Exit;
-      }
-
-      /* now, compute the signed value is necessary */
-      if ( fields->value & FT_FRAME_OP_SIGNED )
-        value = (FT_ULong)( (FT_Int32)( value << sign_shift ) >> sign_shift );
-
-      /* finally, store the value in the object */
-
-      p = (FT_Byte*)structure + fields->offset;
-      switch ( fields->size )
-      {
-      case (8 / FT_CHAR_BIT):
-        *(FT_Byte*)p = (FT_Byte)value;
-        break;
-
-      case (16 / FT_CHAR_BIT):
-        *(FT_UShort*)p = (FT_UShort)value;
-        break;
-
-      case (32 / FT_CHAR_BIT):
-        *(FT_UInt32*)p = (FT_UInt32)value;
-        break;
-
-      default:  /* for 64-bit systems */
-        *(FT_ULong*)p = (FT_ULong)value;
-      }
-
-      /* go to next field */
-      fields++;
-    }
-    while ( 1 );
-
-  Exit:
-    /* close the frame if it was opened by this read */
-    if ( frame_accessed )
-      FT_Stream_ExitFrame( stream );
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftstroke.c b/nx-X11/extras/freetype2/src/base/ftstroke.c
deleted file mode 100644
index 10aad2db8..000000000
--- a/nx-X11/extras/freetype2/src/base/ftstroke.c
+++ /dev/null
@@ -1,1906 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftstroke.c                                                             */
-/*                                                                         */
-/*    FreeType path stroker (body).                                        */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_STROKER_H
-#include FT_TRIGONOMETRY_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-
-  FT_EXPORT_DEF( FT_StrokerBorder )
-  FT_Outline_GetInsideBorder( FT_Outline*  outline )
-  {
-    FT_Orientation  o = FT_Outline_Get_Orientation( outline );
-
-
-    return o == FT_ORIENTATION_TRUETYPE ? FT_STROKER_BORDER_RIGHT
-                                        : FT_STROKER_BORDER_LEFT ;
-  }
-
-
-  FT_EXPORT_DEF( FT_StrokerBorder )
-  FT_Outline_GetOutsideBorder( FT_Outline*  outline )
-  {
-    FT_Orientation  o = FT_Outline_Get_Orientation( outline );
-
-
-    return o == FT_ORIENTATION_TRUETYPE ? FT_STROKER_BORDER_LEFT
-                                        : FT_STROKER_BORDER_RIGHT ;
-  }
-
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****                       BEZIER COMPUTATIONS                       *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-#define FT_SMALL_CONIC_THRESHOLD  ( FT_ANGLE_PI / 6 )
-#define FT_SMALL_CUBIC_THRESHOLD  ( FT_ANGLE_PI / 6 )
-#define FT_EPSILON  2
-
-#define FT_IS_SMALL( x )  ( (x) > -FT_EPSILON && (x) < FT_EPSILON )
-
-
-  static FT_Pos
-  ft_pos_abs( FT_Pos  x )
-  {
-    return x >= 0 ? x : -x ;
-  }
-
-
-  static void
-  ft_conic_split( FT_Vector*  base )
-  {
-    FT_Pos  a, b;
-
-
-    base[4].x = base[2].x;
-    b = base[1].x;
-    a = base[3].x = ( base[2].x + b ) / 2;
-    b = base[1].x = ( base[0].x + b ) / 2;
-    base[2].x = ( a + b ) / 2;
-
-    base[4].y = base[2].y;
-    b = base[1].y;
-    a = base[3].y = ( base[2].y + b ) / 2;
-    b = base[1].y = ( base[0].y + b ) / 2;
-    base[2].y = ( a + b ) / 2;
-  }
-
-
-  static FT_Bool
-  ft_conic_is_small_enough( FT_Vector*  base,
-                            FT_Angle   *angle_in,
-                            FT_Angle   *angle_out )
-  {
-    FT_Vector  d1, d2;
-    FT_Angle   theta;
-    FT_Int     close1, close2;
-
-
-    d1.x = base[1].x - base[2].x;
-    d1.y = base[1].y - base[2].y;
-    d2.x = base[0].x - base[1].x;
-    d2.y = base[0].y - base[1].y;
-
-    close1 = FT_IS_SMALL( d1.x ) && FT_IS_SMALL( d1.y );
-    close2 = FT_IS_SMALL( d2.x ) && FT_IS_SMALL( d2.y );
-
-    if ( close1 )
-    {
-      if ( close2 )
-        *angle_in = *angle_out = 0;
-      else
-        *angle_in = *angle_out = FT_Atan2( d2.x, d2.y );
-    }
-    else if ( close2 )
-    {
-      *angle_in = *angle_out = FT_Atan2( d1.x, d1.y );
-    }
-    else
-    {
-      *angle_in  = FT_Atan2( d1.x, d1.y );
-      *angle_out = FT_Atan2( d2.x, d2.y );
-    }
-
-    theta = ft_pos_abs( FT_Angle_Diff( *angle_in, *angle_out ) );
-
-    return FT_BOOL( theta < FT_SMALL_CONIC_THRESHOLD );
-  }
-
-
-  static void
-  ft_cubic_split( FT_Vector*  base )
-  {
-    FT_Pos  a, b, c, d;
-
-
-    base[6].x = base[3].x;
-    c = base[1].x;
-    d = base[2].x;
-    base[1].x = a = ( base[0].x + c ) / 2;
-    base[5].x = b = ( base[3].x + d ) / 2;
-    c = ( c + d ) / 2;
-    base[2].x = a = ( a + c ) / 2;
-    base[4].x = b = ( b + c ) / 2;
-    base[3].x = ( a + b ) / 2;
-
-    base[6].y = base[3].y;
-    c = base[1].y;
-    d = base[2].y;
-    base[1].y = a = ( base[0].y + c ) / 2;
-    base[5].y = b = ( base[3].y + d ) / 2;
-    c = ( c + d ) / 2;
-    base[2].y = a = ( a + c ) / 2;
-    base[4].y = b = ( b + c ) / 2;
-    base[3].y = ( a + b ) / 2;
-  }
-
-
-  static FT_Bool
-  ft_cubic_is_small_enough( FT_Vector*  base,
-                            FT_Angle   *angle_in,
-                            FT_Angle   *angle_mid,
-                            FT_Angle   *angle_out )
-  {
-    FT_Vector  d1, d2, d3;
-    FT_Angle   theta1, theta2;
-    FT_Int     close1, close2, close3;
-
-
-    d1.x = base[2].x - base[3].x;
-    d1.y = base[2].y - base[3].y;
-    d2.x = base[1].x - base[2].x;
-    d2.y = base[1].y - base[2].y;
-    d3.x = base[0].x - base[1].x;
-    d3.y = base[0].y - base[1].y;
-
-    close1 = FT_IS_SMALL( d1.x ) && FT_IS_SMALL( d1.y );
-    close2 = FT_IS_SMALL( d2.x ) && FT_IS_SMALL( d2.y );
-    close3 = FT_IS_SMALL( d3.x ) && FT_IS_SMALL( d3.y );
-
-    if ( close1 || close3 )
-    {
-      if ( close2 )
-      {
-        /* basically a point */
-        *angle_in = *angle_out = *angle_mid = 0;
-      }
-      else if ( close1 )
-      {
-        *angle_in  = *angle_mid = FT_Atan2( d2.x, d2.y );
-        *angle_out = FT_Atan2( d3.x, d3.y );
-      }
-      else  /* close2 */
-      {
-        *angle_in  = FT_Atan2( d1.x, d1.y );
-        *angle_mid = *angle_out = FT_Atan2( d2.x, d2.y );
-      }
-    }
-    else if ( close2 )
-    {
-      *angle_in  = *angle_mid = FT_Atan2( d1.x, d1.y );
-      *angle_out = FT_Atan2( d3.x, d3.y );
-    }
-    else
-    {
-      *angle_in  = FT_Atan2( d1.x, d1.y );
-      *angle_mid = FT_Atan2( d2.x, d2.y );
-      *angle_out = FT_Atan2( d3.x, d3.y );
-    }
-
-    theta1 = ft_pos_abs( FT_Angle_Diff( *angle_in,  *angle_mid ) );
-    theta2 = ft_pos_abs( FT_Angle_Diff( *angle_mid, *angle_out ) );
-
-    return FT_BOOL( theta1 < FT_SMALL_CUBIC_THRESHOLD &&
-                    theta2 < FT_SMALL_CUBIC_THRESHOLD );
-  }
-
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****                       STROKE BORDERS                            *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-  typedef enum
-  {
-    FT_STROKE_TAG_ON    = 1,   /* on-curve point  */
-    FT_STROKE_TAG_CUBIC = 2,   /* cubic off-point */
-    FT_STROKE_TAG_BEGIN = 4,   /* sub-path start  */
-    FT_STROKE_TAG_END   = 8    /* sub-path end    */
-
-  } FT_StrokeTags;
-
-
-  typedef struct  FT_StrokeBorderRec_
-  {
-    FT_UInt     num_points;
-    FT_UInt     max_points;
-    FT_Vector*  points;
-    FT_Byte*    tags;
-    FT_Bool     movable;
-    FT_Int      start;    /* index of current sub-path start point */
-    FT_Memory   memory;
-    FT_Bool     valid;
-
-  } FT_StrokeBorderRec, *FT_StrokeBorder;
-
-
-  static FT_Error
-  ft_stroke_border_grow( FT_StrokeBorder  border,
-                         FT_UInt          new_points )
-  {
-    FT_UInt   old_max = border->max_points;
-    FT_UInt   new_max = border->num_points + new_points;
-    FT_Error  error   = 0;
-
-
-    if ( new_max > old_max )
-    {
-      FT_UInt    cur_max = old_max;
-      FT_Memory  memory  = border->memory;
-
-
-      while ( cur_max < new_max )
-        cur_max += ( cur_max >> 1 ) + 16;
-
-      if ( FT_RENEW_ARRAY( border->points, old_max, cur_max ) ||
-           FT_RENEW_ARRAY( border->tags,   old_max, cur_max ) )
-        goto Exit;
-
-      border->max_points = cur_max;
-    }
-  Exit:
-    return error;
-  }
-
-
-  static void
-  ft_stroke_border_close( FT_StrokeBorder  border )
-  {
-    FT_ASSERT( border->start >= 0 );
-
-    /* don't record empty paths! */
-    if ( border->num_points > (FT_UInt)border->start )
-    {
-      border->tags[border->start         ] |= FT_STROKE_TAG_BEGIN;
-      border->tags[border->num_points - 1] |= FT_STROKE_TAG_END;
-    }
-
-    border->start   = -1;
-    border->movable = 0;
-  }
-
-
-  static FT_Error
-  ft_stroke_border_lineto( FT_StrokeBorder  border,
-                           FT_Vector*       to,
-                           FT_Bool          movable )
-  {
-    FT_Error  error = 0;
-
-
-    FT_ASSERT( border->start >= 0 );
-
-    if ( border->movable )
-    {
-      /* move last point */
-      border->points[border->num_points - 1] = *to;
-    }
-    else
-    {
-      /* add one point */
-      error = ft_stroke_border_grow( border, 1 );
-      if ( !error )
-      {
-        FT_Vector*  vec = border->points + border->num_points;
-        FT_Byte*    tag = border->tags   + border->num_points;
-
-
-        vec[0] = *to;
-        tag[0] = FT_STROKE_TAG_ON;
-
-        border->num_points += 1;
-      }
-    }
-    border->movable = movable;
-    return error;
-  }
-
-
-  static FT_Error
-  ft_stroke_border_conicto( FT_StrokeBorder  border,
-                            FT_Vector*       control,
-                            FT_Vector*       to )
-  {
-    FT_Error  error;
-
-
-    FT_ASSERT( border->start >= 0 );
-
-    error = ft_stroke_border_grow( border, 2 );
-    if ( !error )
-    {
-      FT_Vector*  vec = border->points + border->num_points;
-      FT_Byte*    tag = border->tags   + border->num_points;
-
-      vec[0] = *control;
-      vec[1] = *to;
-
-      tag[0] = 0;
-      tag[1] = FT_STROKE_TAG_ON;
-
-      border->num_points += 2;
-    }
-    border->movable = 0;
-    return error;
-  }
-
-
-  static FT_Error
-  ft_stroke_border_cubicto( FT_StrokeBorder  border,
-                            FT_Vector*       control1,
-                            FT_Vector*       control2,
-                            FT_Vector*       to )
-  {
-    FT_Error  error;
-
-
-    FT_ASSERT( border->start >= 0 );
-
-    error = ft_stroke_border_grow( border, 3 );
-    if ( !error )
-    {
-      FT_Vector*  vec = border->points + border->num_points;
-      FT_Byte*    tag = border->tags   + border->num_points;
-
-
-      vec[0] = *control1;
-      vec[1] = *control2;
-      vec[2] = *to;
-
-      tag[0] = FT_STROKE_TAG_CUBIC;
-      tag[1] = FT_STROKE_TAG_CUBIC;
-      tag[2] = FT_STROKE_TAG_ON;
-
-      border->num_points += 3;
-    }
-    border->movable = 0;
-    return error;
-  }
-
-
-#define FT_ARC_CUBIC_ANGLE  ( FT_ANGLE_PI / 2 )
-
-
-  static FT_Error
-  ft_stroke_border_arcto( FT_StrokeBorder  border,
-                          FT_Vector*       center,
-                          FT_Fixed         radius,
-                          FT_Angle         angle_start,
-                          FT_Angle         angle_diff )
-  {
-    FT_Angle   total, angle, step, rotate, next, theta;
-    FT_Vector  a, b, a2, b2;
-    FT_Fixed   length;
-    FT_Error   error = 0;
-
-
-    /* compute start point */
-    FT_Vector_From_Polar( &a, radius, angle_start );
-    a.x += center->x;
-    a.y += center->y;
-
-    total  = angle_diff;
-    angle  = angle_start;
-    rotate = ( angle_diff >= 0 ) ? FT_ANGLE_PI2 : -FT_ANGLE_PI2;
-
-    while ( total != 0 )
-    {
-      step = total;
-      if ( step > FT_ARC_CUBIC_ANGLE )
-        step = FT_ARC_CUBIC_ANGLE;
-
-      else if ( step < -FT_ARC_CUBIC_ANGLE )
-        step = -FT_ARC_CUBIC_ANGLE;
-
-      next  = angle + step;
-      theta = step;
-      if ( theta < 0 )
-        theta = -theta;
-
-      theta >>= 1;
-
-      /* compute end point */
-      FT_Vector_From_Polar( &b, radius, next );
-      b.x += center->x;
-      b.y += center->y;
-
-      /* compute first and second control points */
-      length = FT_MulDiv( radius, FT_Sin( theta ) * 4,
-                          ( 0x10000L + FT_Cos( theta ) ) * 3 );
-
-      FT_Vector_From_Polar( &a2, length, angle + rotate );
-      a2.x += a.x;
-      a2.y += a.y;
-
-      FT_Vector_From_Polar( &b2, length, next - rotate );
-      b2.x += b.x;
-      b2.y += b.y;
-
-      /* add cubic arc */
-      error = ft_stroke_border_cubicto( border, &a2, &b2, &b );
-      if ( error )
-        break;
-
-      /* process the rest of the arc ?? */
-      a      = b;
-      total -= step;
-      angle  = next;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  ft_stroke_border_moveto( FT_StrokeBorder  border,
-                           FT_Vector*       to )
-  {
-    /* close current open path if any ? */
-    if ( border->start >= 0 )
-      ft_stroke_border_close( border );
-
-    border->start   = border->num_points;
-    border->movable = 0;
-
-    return ft_stroke_border_lineto( border, to, 0 );
-  }
-
-
-  static void
-  ft_stroke_border_init( FT_StrokeBorder  border,
-                         FT_Memory        memory )
-  {
-    border->memory = memory;
-    border->points = NULL;
-    border->tags   = NULL;
-
-    border->num_points = 0;
-    border->max_points = 0;
-    border->start      = -1;
-    border->valid      = 0;
-  }
-
-
-  static void
-  ft_stroke_border_reset( FT_StrokeBorder  border )
-  {
-    border->num_points = 0;
-    border->start      = -1;
-    border->valid      = 0;
-  }
-
-
-  static void
-  ft_stroke_border_done( FT_StrokeBorder  border )
-  {
-    FT_Memory  memory = border->memory;
-
-
-    FT_FREE( border->points );
-    FT_FREE( border->tags );
-
-    border->num_points = 0;
-    border->max_points = 0;
-    border->start      = -1;
-    border->valid      = 0;
-  }
-
-
-  static FT_Error
-  ft_stroke_border_get_counts( FT_StrokeBorder  border,
-                               FT_UInt         *anum_points,
-                               FT_UInt         *anum_contours )
-  {
-    FT_Error  error        = 0;
-    FT_UInt   num_points   = 0;
-    FT_UInt   num_contours = 0;
-
-    FT_UInt     count      = border->num_points;
-    FT_Vector*  point      = border->points;
-    FT_Byte*    tags       = border->tags;
-    FT_Int      in_contour = 0;
-
-
-    for ( ; count > 0; count--, num_points++, point++, tags++ )
-    {
-      if ( tags[0] & FT_STROKE_TAG_BEGIN )
-      {
-        if ( in_contour != 0 )
-          goto Fail;
-
-        in_contour = 1;
-      }
-      else if ( in_contour == 0 )
-        goto Fail;
-
-      if ( tags[0] & FT_STROKE_TAG_END )
-      {
-        if ( in_contour == 0 )
-          goto Fail;
-
-        in_contour = 0;
-        num_contours++;
-      }
-    }
-
-    if ( in_contour != 0 )
-      goto Fail;
-
-    border->valid = 1;
-
-  Exit:
-    *anum_points   = num_points;
-    *anum_contours = num_contours;
-    return error;
-
-  Fail:
-    num_points   = 0;
-    num_contours = 0;
-    goto Exit;
-  }
-
-
-  static void
-  ft_stroke_border_export( FT_StrokeBorder  border,
-                           FT_Outline*      outline )
-  {
-    /* copy point locations */
-    FT_ARRAY_COPY( outline->points + outline->n_points,
-                   border->points,
-                   border->num_points );
-
-    /* copy tags */
-    {
-      FT_UInt   count = border->num_points;
-      FT_Byte*  read  = border->tags;
-      FT_Byte*  write = (FT_Byte*)outline->tags + outline->n_points;
-
-
-      for ( ; count > 0; count--, read++, write++ )
-      {
-        if ( *read & FT_STROKE_TAG_ON )
-          *write = FT_CURVE_TAG_ON;
-        else if ( *read & FT_STROKE_TAG_CUBIC )
-          *write = FT_CURVE_TAG_CUBIC;
-        else
-          *write = FT_CURVE_TAG_CONIC;
-      }
-    }
-
-    /* copy contours */
-    {
-      FT_UInt    count = border->num_points;
-      FT_Byte*   tags  = border->tags;
-      FT_Short*  write = outline->contours + outline->n_contours;
-      FT_Short   idx   = (FT_Short)outline->n_points;
-
-
-      for ( ; count > 0; count--, tags++, idx++ )
-      {
-        if ( *tags & FT_STROKE_TAG_END )
-        {
-          *write++ = idx;
-          outline->n_contours++;
-        }
-      }
-    }
-
-    outline->n_points  = (short)( outline->n_points + border->num_points );
-
-    FT_ASSERT( FT_Outline_Check( outline ) == 0 );
-  }
-
-
- /***************************************************************************/
- /***************************************************************************/
- /*****                                                                 *****/
- /*****                           STROKER                               *****/
- /*****                                                                 *****/
- /***************************************************************************/
- /***************************************************************************/
-
-#define FT_SIDE_TO_ROTATE( s )   ( FT_ANGLE_PI2 - (s) * FT_ANGLE_PI )
-
-  typedef struct  FT_StrokerRec_
-  {
-    FT_Angle             angle_in;
-    FT_Angle             angle_out;
-    FT_Vector            center;
-    FT_Bool              first_point;
-    FT_Bool              subpath_open;
-    FT_Angle             subpath_angle;
-    FT_Vector            subpath_start;
-
-    FT_Stroker_LineCap   line_cap;
-    FT_Stroker_LineJoin  line_join;
-    FT_Fixed             miter_limit;
-    FT_Fixed             radius;
-
-    FT_Bool              valid;
-    FT_StrokeBorderRec   borders[2];
-    FT_Memory            memory;
-
-  } FT_StrokerRec;
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_New( FT_Memory    memory,
-                  FT_Stroker  *astroker )
-  {
-    FT_Error    error;
-    FT_Stroker  stroker;
-
-
-    if ( !FT_NEW( stroker ) )
-    {
-      stroker->memory = memory;
-
-      ft_stroke_border_init( &stroker->borders[0], memory );
-      ft_stroke_border_init( &stroker->borders[1], memory );
-    }
-    *astroker = stroker;
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Stroker_Set( FT_Stroker           stroker,
-                  FT_Fixed             radius,
-                  FT_Stroker_LineCap   line_cap,
-                  FT_Stroker_LineJoin  line_join,
-                  FT_Fixed             miter_limit )
-  {
-    stroker->radius      = radius;
-    stroker->line_cap    = line_cap;
-    stroker->line_join   = line_join;
-    stroker->miter_limit = miter_limit;
-
-    FT_Stroker_Rewind( stroker );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Stroker_Rewind( FT_Stroker  stroker )
-  {
-    if ( stroker )
-    {
-      ft_stroke_border_reset( &stroker->borders[0] );
-      ft_stroke_border_reset( &stroker->borders[1] );
-    }
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Stroker_Done( FT_Stroker  stroker )
-  {
-    if ( stroker )
-    {
-      FT_Memory  memory = stroker->memory;
-
-
-      ft_stroke_border_done( &stroker->borders[0] );
-      ft_stroke_border_done( &stroker->borders[1] );
-
-      stroker->memory = NULL;
-      FT_FREE( stroker );
-    }
-  }
-
-
-  /* creates a circular arc at a corner or cap */
-  static FT_Error
-  ft_stroker_arcto( FT_Stroker  stroker,
-                    FT_Int      side )
-  {
-    FT_Angle         total, rotate;
-    FT_Fixed         radius = stroker->radius;
-    FT_Error         error  = 0;
-    FT_StrokeBorder  border = stroker->borders + side;
-
-
-    rotate = FT_SIDE_TO_ROTATE( side );
-
-    total = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
-    if ( total == FT_ANGLE_PI )
-      total = -rotate * 2;
-
-    error = ft_stroke_border_arcto( border,
-                                    &stroker->center,
-                                    radius,
-                                    stroker->angle_in + rotate,
-                                    total );
-    border->movable = 0;
-    return error;
-  }
-
-
-  /* adds a cap at the end of an opened path */
-  static FT_Error
-  ft_stroker_cap( FT_Stroker  stroker,
-                  FT_Angle    angle,
-                  FT_Int      side )
-  {
-    FT_Error  error  = 0;
-
-
-    if ( stroker->line_cap == FT_STROKER_LINECAP_ROUND )
-    {
-      /* add a round cap */
-      stroker->angle_in  = angle;
-      stroker->angle_out = angle + FT_ANGLE_PI;
-      error = ft_stroker_arcto( stroker, side );
-    }
-    else if ( stroker->line_cap == FT_STROKER_LINECAP_SQUARE )
-    {
-      /* add a square cap */
-      FT_Vector        delta, delta2;
-      FT_Angle         rotate = FT_SIDE_TO_ROTATE( side );
-      FT_Fixed         radius = stroker->radius;
-      FT_StrokeBorder  border = stroker->borders + side;
-
-
-      FT_Vector_From_Polar( &delta2, radius, angle + rotate );
-      FT_Vector_From_Polar( &delta,  radius, angle );
-
-      delta.x += stroker->center.x + delta2.x;
-      delta.y += stroker->center.y + delta2.y;
-
-      error = ft_stroke_border_lineto( border, &delta, 0 );
-      if ( error )
-        goto Exit;
-
-      FT_Vector_From_Polar( &delta2, radius, angle - rotate );
-      FT_Vector_From_Polar( &delta,  radius, angle );
-
-      delta.x += delta2.x + stroker->center.x;
-      delta.y += delta2.y + stroker->center.y;
-
-      error = ft_stroke_border_lineto( border, &delta, 0 );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* process an inside corner, i.e. compute intersection */
-  static FT_Error
-  ft_stroker_inside( FT_Stroker  stroker,
-                     FT_Int      side)
-  {
-    FT_StrokeBorder  border = stroker->borders + side;
-    FT_Angle         phi, theta, rotate;
-    FT_Fixed         length, thcos, sigma;
-    FT_Vector        delta;
-    FT_Error         error = 0;
-
-
-    rotate = FT_SIDE_TO_ROTATE( side );
-
-    /* compute median angle */
-    theta = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
-    if ( theta == FT_ANGLE_PI )
-      theta = rotate;
-    else
-      theta = theta / 2;
-
-    phi = stroker->angle_in + theta;
-
-    thcos  = FT_Cos( theta );
-    sigma  = FT_MulFix( stroker->miter_limit, thcos );
-
-    if ( sigma < 0x10000L )
-    {
-      FT_Vector_From_Polar( &delta, stroker->radius,
-                            stroker->angle_out + rotate );
-      delta.x += stroker->center.x;
-      delta.y += stroker->center.y;
-      border->movable = 0;
-    }
-    else
-    {
-      length = FT_DivFix( stroker->radius, thcos );
-
-      FT_Vector_From_Polar( &delta, length, phi + rotate );
-      delta.x += stroker->center.x;
-      delta.y += stroker->center.y;
-    }
-
-    error = ft_stroke_border_lineto( border, &delta, 0 );
-
-    return error;
-  }
-
-
-  /* process an outside corner, i.e. compute bevel/miter/round */
-  static FT_Error
-  ft_stroker_outside( FT_Stroker  stroker,
-                      FT_Int      side )
-  {
-    FT_StrokeBorder  border = stroker->borders + side;
-    FT_Error         error;
-    FT_Angle         rotate;
-
-
-    if ( stroker->line_join == FT_STROKER_LINEJOIN_ROUND )
-    {
-      error = ft_stroker_arcto( stroker, side );
-    }
-    else
-    {
-      /* this is a mitered or beveled corner */
-      FT_Fixed  sigma, radius = stroker->radius;
-      FT_Angle  theta, phi;
-      FT_Fixed  thcos;
-      FT_Bool   miter;
-
-
-      rotate = FT_SIDE_TO_ROTATE( side );
-      miter  = FT_BOOL( stroker->line_join == FT_STROKER_LINEJOIN_MITER );
-
-      theta  = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
-      if ( theta == FT_ANGLE_PI )
-      {
-        theta = rotate;
-        phi   = stroker->angle_in;
-      }
-      else
-      {
-        theta = theta / 2;
-        phi   = stroker->angle_in + theta + rotate;
-      }
-
-      thcos = FT_Cos( theta );
-      sigma = FT_MulFix( stroker->miter_limit, thcos );
-
-      if ( sigma >= 0x10000L )
-        miter = 0;
-
-      if ( miter )  /* this is a miter (broken angle) */
-      {
-        FT_Vector  middle, delta;
-        FT_Fixed   length;
-
-
-        /* compute middle point */
-        FT_Vector_From_Polar( &middle,
-                              FT_MulFix( radius, stroker->miter_limit ),
-                              phi );
-        middle.x += stroker->center.x;
-        middle.y += stroker->center.y;
-
-        /* compute first angle point */
-        length = FT_MulFix( radius,
-                            FT_DivFix( 0x10000L - sigma,
-                                       ft_pos_abs( FT_Sin( theta ) ) ) );
-
-        FT_Vector_From_Polar( &delta, length, phi + rotate );
-        delta.x += middle.x;
-        delta.y += middle.y;
-
-        error = ft_stroke_border_lineto( border, &delta, 0 );
-        if ( error )
-          goto Exit;
-
-        /* compute second angle point */
-        FT_Vector_From_Polar( &delta, length, phi - rotate );
-        delta.x += middle.x;
-        delta.y += middle.y;
-
-        error = ft_stroke_border_lineto( border, &delta, 0 );
-        if ( error )
-          goto Exit;
-
-        /* finally, add a movable end point */
-        FT_Vector_From_Polar( &delta, radius, stroker->angle_out + rotate );
-        delta.x += stroker->center.x;
-        delta.y += stroker->center.y;
-
-        error = ft_stroke_border_lineto( border, &delta, 1 );
-      }
-
-      else /* this is a bevel (intersection) */
-      {
-        FT_Fixed   length;
-        FT_Vector  delta;
-
-
-        length = FT_DivFix( stroker->radius, thcos );
-
-        FT_Vector_From_Polar( &delta, length, phi );
-        delta.x += stroker->center.x;
-        delta.y += stroker->center.y;
-
-        error = ft_stroke_border_lineto( border, &delta, 0 );
-        if (error) goto Exit;
-
-        /* now add end point */
-        FT_Vector_From_Polar( &delta, stroker->radius,
-                              stroker->angle_out + rotate );
-        delta.x += stroker->center.x;
-        delta.y += stroker->center.y;
-
-        error = ft_stroke_border_lineto( border, &delta, 1 );
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  ft_stroker_process_corner( FT_Stroker  stroker )
-  {
-    FT_Error  error = 0;
-    FT_Angle  turn;
-    FT_Int    inside_side;
-
-
-    turn = FT_Angle_Diff( stroker->angle_in, stroker->angle_out );
-
-    /* no specific corner processing is required if the turn is 0 */
-    if ( turn == 0 )
-      goto Exit;
-
-    /* when we turn to the right, the inside side is 0 */
-    inside_side = 0;
-
-    /* otherwise, the inside side is 1 */
-    if ( turn < 0 )
-      inside_side = 1;
-
-    /* process the inside side */
-    error = ft_stroker_inside( stroker, inside_side );
-    if ( error )
-      goto Exit;
-
-    /* process the outside side */
-    error = ft_stroker_outside( stroker, 1 - inside_side );
-
-  Exit:
-    return error;
-  }
-
-
-  /* add two points to the left and right borders corresponding to the */
-  /* start of the subpath..                                            */
-  static FT_Error
-  ft_stroker_subpath_start( FT_Stroker  stroker,
-                            FT_Angle    start_angle )
-  {
-    FT_Vector        delta;
-    FT_Vector        point;
-    FT_Error         error;
-    FT_StrokeBorder  border;
-
-
-    FT_Vector_From_Polar( &delta, stroker->radius,
-                          start_angle + FT_ANGLE_PI2 );
-
-    point.x = stroker->center.x + delta.x;
-    point.y = stroker->center.y + delta.y;
-
-    border = stroker->borders;
-    error = ft_stroke_border_moveto( border, &point );
-    if ( error )
-      goto Exit;
-
-    point.x = stroker->center.x - delta.x;
-    point.y = stroker->center.y - delta.y;
-
-    border++;
-    error = ft_stroke_border_moveto( border, &point );
-
-    /* save angle for last cap */
-    stroker->subpath_angle = start_angle;
-    stroker->first_point   = 0;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_LineTo( FT_Stroker  stroker,
-                     FT_Vector*  to )
-  {
-    FT_Error         error = 0;
-    FT_StrokeBorder  border;
-    FT_Vector        delta;
-    FT_Angle         angle;
-    FT_Int           side;
-
-    delta.x = to->x - stroker->center.x;
-    delta.y = to->y - stroker->center.y;
-
-    angle = FT_Atan2( delta.x, delta.y );
-    FT_Vector_From_Polar( &delta, stroker->radius, angle + FT_ANGLE_PI2 );
-
-    /* process corner if necessary */
-    if ( stroker->first_point )
-    {
-      /* This is the first segment of a subpath.  We need to     */
-      /* add a point to each border at their respective starting */
-      /* point locations.                                        */
-      error = ft_stroker_subpath_start( stroker, angle );
-      if ( error )
-        goto Exit;
-    }
-    else
-    {
-      /* process the current corner */
-      stroker->angle_out = angle;
-      error = ft_stroker_process_corner( stroker );
-      if ( error )
-        goto Exit;
-    }
-
-    /* now add a line segment to both the "inside" and "outside" paths */
-
-    for ( border = stroker->borders, side = 1; side >= 0; side--, border++ )
-    {
-      FT_Vector  point;
-
-
-      point.x = to->x + delta.x;
-      point.y = to->y + delta.y;
-
-      error = ft_stroke_border_lineto( border, &point, 1 );
-      if ( error )
-        goto Exit;
-
-      delta.x = -delta.x;
-      delta.y = -delta.y;
-    }
-
-    stroker->angle_in = angle;
-    stroker->center   = *to;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_ConicTo( FT_Stroker  stroker,
-                      FT_Vector*  control,
-                      FT_Vector*  to )
-  {
-    FT_Error    error = 0;
-    FT_Vector   bez_stack[34];
-    FT_Vector*  arc;
-    FT_Vector*  limit = bez_stack + 30;
-    FT_Angle    start_angle;
-    FT_Bool     first_arc = 1;
-
-
-    arc    = bez_stack;
-    arc[0] = *to;
-    arc[1] = *control;
-    arc[2] = stroker->center;
-
-    while ( arc >= bez_stack )
-    {
-      FT_Angle  angle_in, angle_out;
-
-
-      angle_in = angle_out = 0;  /* remove compiler warnings */
-
-      if ( arc < limit                                             &&
-           !ft_conic_is_small_enough( arc, &angle_in, &angle_out ) )
-      {
-        ft_conic_split( arc );
-        arc += 2;
-        continue;
-      }
-
-      if ( first_arc )
-      {
-        first_arc = 0;
-
-        start_angle = angle_in;
-
-        /* process corner if necessary */
-        if ( stroker->first_point )
-          error = ft_stroker_subpath_start( stroker, start_angle );
-        else
-        {
-          stroker->angle_out = start_angle;
-          error = ft_stroker_process_corner( stroker );
-        }
-      }
-
-      /* the arc's angle is small enough; we can add it directly to each */
-      /* border                                                          */
-      {
-        FT_Vector  ctrl, end;
-        FT_Angle   theta, phi, rotate;
-        FT_Fixed   length;
-        FT_Int     side;
-
-
-        theta  = FT_Angle_Diff( angle_in, angle_out ) / 2;
-        phi    = angle_in + theta;
-        length = FT_DivFix( stroker->radius, FT_Cos( theta ) );
-
-        for ( side = 0; side <= 1; side++ )
-        {
-          rotate = FT_SIDE_TO_ROTATE( side );
-
-          /* compute control point */
-          FT_Vector_From_Polar( &ctrl, length, phi + rotate );
-          ctrl.x += arc[1].x;
-          ctrl.y += arc[1].y;
-
-          /* compute end point */
-          FT_Vector_From_Polar( &end, stroker->radius, angle_out + rotate );
-          end.x += arc[0].x;
-          end.y += arc[0].y;
-
-          error = ft_stroke_border_conicto( stroker->borders + side,
-                                            &ctrl, &end );
-          if ( error )
-            goto Exit;
-        }
-      }
-
-      arc -= 2;
-
-      if ( arc < bez_stack )
-        stroker->angle_in = angle_out;
-    }
-
-    stroker->center = *to;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_CubicTo( FT_Stroker  stroker,
-                      FT_Vector*  control1,
-                      FT_Vector*  control2,
-                      FT_Vector*  to )
-  {
-    FT_Error    error = 0;
-    FT_Vector   bez_stack[37];
-    FT_Vector*  arc;
-    FT_Vector*  limit = bez_stack + 32;
-    FT_Angle    start_angle;
-    FT_Bool     first_arc = 1;
-
-
-    arc    = bez_stack;
-    arc[0] = *to;
-    arc[1] = *control2;
-    arc[2] = *control1;
-    arc[3] = stroker->center;
-
-    while ( arc >= bez_stack )
-    {
-      FT_Angle  angle_in, angle_mid, angle_out;
-
-
-      /* remove compiler warnings */
-      angle_in = angle_out = angle_mid = 0;
-
-      if ( arc < limit                                         &&
-           !ft_cubic_is_small_enough( arc, &angle_in,
-                                      &angle_mid, &angle_out ) )
-      {
-        ft_cubic_split( arc );
-        arc += 3;
-        continue;
-      }
-
-      if ( first_arc )
-      {
-        first_arc = 0;
-
-        /* process corner if necessary */
-        start_angle = angle_in;
-
-        if ( stroker->first_point )
-          error = ft_stroker_subpath_start( stroker, start_angle );
-        else
-        {
-          stroker->angle_out = start_angle;
-          error = ft_stroker_process_corner( stroker );
-        }
-        if ( error )
-          goto Exit;
-      }
-
-      /* the arc's angle is small enough; we can add it directly to each */
-      /* border                                                          */
-      {
-        FT_Vector  ctrl1, ctrl2, end;
-        FT_Angle   theta1, phi1, theta2, phi2, rotate;
-        FT_Fixed   length1, length2;
-        FT_Int     side;
-
-
-        theta1  = ft_pos_abs( angle_mid - angle_in ) / 2;
-        theta2  = ft_pos_abs( angle_out - angle_mid ) / 2;
-        phi1    = (angle_mid + angle_in ) / 2;
-        phi2    = (angle_mid + angle_out ) / 2;
-        length1 = FT_DivFix( stroker->radius, FT_Cos( theta1 ) );
-        length2 = FT_DivFix( stroker->radius, FT_Cos(theta2) );
-
-        for ( side = 0; side <= 1; side++ )
-        {
-          rotate = FT_SIDE_TO_ROTATE( side );
-
-          /* compute control points */
-          FT_Vector_From_Polar( &ctrl1, length1, phi1 + rotate );
-          ctrl1.x += arc[2].x;
-          ctrl1.y += arc[2].y;
-
-          FT_Vector_From_Polar( &ctrl2, length2, phi2 + rotate );
-          ctrl2.x += arc[1].x;
-          ctrl2.y += arc[1].y;
-
-          /* compute end point */
-          FT_Vector_From_Polar( &end, stroker->radius, angle_out + rotate );
-          end.x += arc[0].x;
-          end.y += arc[0].y;
-
-          error = ft_stroke_border_cubicto( stroker->borders + side,
-                                            &ctrl1, &ctrl2, &end );
-          if ( error )
-            goto Exit;
-        }
-      }
-
-      arc -= 3;
-      if ( arc < bez_stack )
-        stroker->angle_in = angle_out;
-    }
-
-    stroker->center = *to;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_BeginSubPath( FT_Stroker  stroker,
-                           FT_Vector*  to,
-                           FT_Bool     open )
-  {
-    /* We cannot process the first point, because there is not enough      */
-    /* information regarding its corner/cap.  The latter will be processed */
-    /* in the "end_subpath" routine.                                       */
-    /*                                                                     */
-    stroker->first_point   = 1;
-    stroker->center        = *to;
-    stroker->subpath_open  = open;
-
-    /* record the subpath start point index for each border */
-    stroker->subpath_start = *to;
-    return 0;
-  }
-
-
-  static FT_Error
-  ft_stroker_add_reverse_left( FT_Stroker  stroker,
-                               FT_Bool     open )
-  {
-    FT_StrokeBorder  right  = stroker->borders + 0;
-    FT_StrokeBorder  left   = stroker->borders + 1;
-    FT_Int           new_points;
-    FT_Error         error  = 0;
-
-
-    FT_ASSERT( left->start >= 0 );
-
-    new_points = left->num_points - left->start;
-    if ( new_points > 0 )
-    {
-      error = ft_stroke_border_grow( right, (FT_UInt)new_points );
-      if ( error )
-        goto Exit;
-
-      {
-        FT_Vector*  dst_point = right->points + right->num_points;
-        FT_Byte*    dst_tag   = right->tags   + right->num_points;
-        FT_Vector*  src_point = left->points  + left->num_points - 1;
-        FT_Byte*    src_tag   = left->tags    + left->num_points - 1;
-
-        while ( src_point >= left->points + left->start )
-        {
-          *dst_point = *src_point;
-          *dst_tag   = *src_tag;
-
-          if ( open )
-            dst_tag[0] &= ~( FT_STROKE_TAG_BEGIN | FT_STROKE_TAG_END );
-          else
-          {
-            /* switch begin/end tags if necessary.. */
-            if ( dst_tag[0] & ( FT_STROKE_TAG_BEGIN | FT_STROKE_TAG_END ) )
-              dst_tag[0] ^= ( FT_STROKE_TAG_BEGIN | FT_STROKE_TAG_END );
-          }
-
-          src_point--;
-          src_tag--;
-          dst_point++;
-          dst_tag++;
-        }
-      }
-
-      left->num_points   = left->start;
-      right->num_points += new_points;
-
-      right->movable = 0;
-      left->movable  = 0;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* there's a lot of magic in this function! */
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_EndSubPath( FT_Stroker  stroker )
-  {
-    FT_Error  error  = 0;
-
-    if ( stroker->subpath_open )
-    {
-      FT_StrokeBorder  right = stroker->borders;
-
-      /* All right, this is an opened path, we need to add a cap between */
-      /* right & left, add the reverse of left, then add a final cap     */
-      /* between left & right.                                           */
-      error = ft_stroker_cap( stroker, stroker->angle_in, 0 );
-      if ( error )
-        goto Exit;
-
-      /* add reversed points from "left" to "right" */
-      error = ft_stroker_add_reverse_left( stroker, 1 );
-      if ( error )
-        goto Exit;
-
-      /* now add the final cap */
-      stroker->center = stroker->subpath_start;
-      error = ft_stroker_cap( stroker,
-                              stroker->subpath_angle + FT_ANGLE_PI, 0 );
-      if ( error )
-        goto Exit;
-
-      /* Now end the right subpath accordingly.  The left one is */
-      /* rewind and doesn't need further processing.             */
-      ft_stroke_border_close( right );
-    }
-    else
-    {
-      FT_Angle  turn;
-      FT_Int    inside_side;
-
-      /* close the path if needed */
-      if ( stroker->center.x != stroker->subpath_start.x ||
-           stroker->center.y != stroker->subpath_start.y )
-      {
-        error = FT_Stroker_LineTo( stroker, &stroker->subpath_start );
-        if ( error )
-          goto Exit;
-      }
-
-      /* process the corner */
-      stroker->angle_out = stroker->subpath_angle;
-      turn               = FT_Angle_Diff( stroker->angle_in,
-                                          stroker->angle_out );
-
-      /* no specific corner processing is required if the turn is 0 */
-      if ( turn != 0 )
-      {
-        /* when we turn to the right, the inside side is 0 */
-        inside_side = 0;
-
-        /* otherwise, the inside side is 1 */
-        if ( turn < 0 )
-          inside_side = 1;
-
-        /* IMPORTANT: WE DO NOT PROCESS THE INSIDE BORDER HERE! */
-        /* process the inside side                              */
-        /* error = ft_stroker_inside( stroker, inside_side );   */
-        /* if ( error )                                         */
-        /*   goto Exit;                                         */
-
-        /* process the outside side */
-        error = ft_stroker_outside( stroker, 1 - inside_side );
-        if ( error )
-          goto Exit;
-      }
-
-      /* then end our two subpaths */
-      ft_stroke_border_close( stroker->borders + 0 );
-      ft_stroke_border_close( stroker->borders + 1 );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_GetBorderCounts( FT_Stroker        stroker,
-                              FT_StrokerBorder  border,
-                              FT_UInt          *anum_points,
-                              FT_UInt          *anum_contours )
-  {
-    FT_UInt   num_points = 0, num_contours = 0;
-    FT_Error  error;
-
-
-    if ( !stroker || border > 1 )
-    {
-      error = FT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    error = ft_stroke_border_get_counts( stroker->borders + border,
-                                         &num_points, &num_contours );
-  Exit:
-    if ( anum_points )
-      *anum_points = num_points;
-
-    if ( anum_contours )
-      *anum_contours = num_contours;
-
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_GetCounts( FT_Stroker  stroker,
-                        FT_UInt    *anum_points,
-                        FT_UInt    *anum_contours )
-  {
-    FT_UInt   count1, count2, num_points   = 0;
-    FT_UInt   count3, count4, num_contours = 0;
-    FT_Error  error;
-
-
-    error = ft_stroke_border_get_counts( stroker->borders + 0,
-                                         &count1, &count2 );
-    if ( error )
-      goto Exit;
-
-    error = ft_stroke_border_get_counts( stroker->borders + 1,
-                                         &count3, &count4 );
-    if ( error )
-      goto Exit;
-
-    num_points   = count1 + count3;
-    num_contours = count2 + count4;
-
-  Exit:
-    *anum_points   = num_points;
-    *anum_contours = num_contours;
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Stroker_ExportBorder( FT_Stroker        stroker,
-                           FT_StrokerBorder  border,
-                           FT_Outline*       outline )
-  {
-    if ( border == FT_STROKER_BORDER_LEFT  ||
-         border == FT_STROKER_BORDER_RIGHT )
-    {
-      FT_StrokeBorder  sborder = & stroker->borders[border];
-
-
-      if ( sborder->valid )
-        ft_stroke_border_export( sborder, outline );
-    }
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_Stroker_Export( FT_Stroker   stroker,
-                     FT_Outline*  outline )
-  {
-    FT_Stroker_ExportBorder( stroker, FT_STROKER_BORDER_LEFT, outline );
-    FT_Stroker_ExportBorder( stroker, FT_STROKER_BORDER_RIGHT, outline );
-  }
-
-
-  /*
-   *  The following is very similar to FT_Outline_Decompose, except
-   *  that we do support opened paths, and do not scale the outline.
-   */
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stroker_ParseOutline( FT_Stroker   stroker,
-                           FT_Outline*  outline,
-                           FT_Bool      opened )
-  {
-    FT_Vector   v_last;
-    FT_Vector   v_control;
-    FT_Vector   v_start;
-
-    FT_Vector*  point;
-    FT_Vector*  limit;
-    char*       tags;
-
-    FT_Error    error;
-
-    FT_Int   n;         /* index of contour in outline     */
-    FT_UInt  first;     /* index of first point in contour */
-    FT_Int   tag;       /* current point's state           */
-
-
-    if ( !outline || !stroker )
-      return FT_Err_Invalid_Argument;
-
-    FT_Stroker_Rewind( stroker );
-
-    first = 0;
-
-    for ( n = 0; n < outline->n_contours; n++ )
-    {
-      FT_Int  last;  /* index of last point in contour */
-
-
-      last  = outline->contours[n];
-      limit = outline->points + last;
-
-      v_start = outline->points[first];
-      v_last  = outline->points[last];
-
-      v_control = v_start;
-
-      point = outline->points + first;
-      tags  = outline->tags  + first;
-      tag   = FT_CURVE_TAG( tags[0] );
-
-      /* A contour cannot start with a cubic control point! */
-      if ( tag == FT_CURVE_TAG_CUBIC )
-        goto Invalid_Outline;
-
-      /* check first point to determine origin */
-      if ( tag == FT_CURVE_TAG_CONIC )
-      {
-        /* First point is conic control.  Yes, this happens. */
-        if ( FT_CURVE_TAG( outline->tags[last] ) == FT_CURVE_TAG_ON )
-        {
-          /* start at last point if it is on the curve */
-          v_start = v_last;
-          limit--;
-        }
-        else
-        {
-          /* if both first and last points are conic,         */
-          /* start at their middle and record its position    */
-          /* for closure                                      */
-          v_start.x = ( v_start.x + v_last.x ) / 2;
-          v_start.y = ( v_start.y + v_last.y ) / 2;
-
-          v_last = v_start;
-        }
-        point--;
-        tags--;
-      }
-
-      error = FT_Stroker_BeginSubPath( stroker, &v_start, opened );
-      if ( error )
-        goto Exit;
-
-      while ( point < limit )
-      {
-        point++;
-        tags++;
-
-        tag = FT_CURVE_TAG( tags[0] );
-        switch ( tag )
-        {
-        case FT_CURVE_TAG_ON:  /* emit a single line_to */
-          {
-            FT_Vector  vec;
-
-
-            vec.x = point->x;
-            vec.y = point->y;
-
-            error = FT_Stroker_LineTo( stroker, &vec );
-            if ( error )
-              goto Exit;
-            continue;
-          }
-
-        case FT_CURVE_TAG_CONIC:  /* consume conic arcs */
-          v_control.x = point->x;
-          v_control.y = point->y;
-
-        Do_Conic:
-          if ( point < limit )
-          {
-            FT_Vector  vec;
-            FT_Vector  v_middle;
-
-
-            point++;
-            tags++;
-            tag = FT_CURVE_TAG( tags[0] );
-
-            vec = point[0];
-
-            if ( tag == FT_CURVE_TAG_ON )
-            {
-              error = FT_Stroker_ConicTo( stroker, &v_control, &vec );
-              if ( error )
-                goto Exit;
-              continue;
-            }
-
-            if ( tag != FT_CURVE_TAG_CONIC )
-              goto Invalid_Outline;
-
-            v_middle.x = ( v_control.x + vec.x ) / 2;
-            v_middle.y = ( v_control.y + vec.y ) / 2;
-
-            error = FT_Stroker_ConicTo( stroker, &v_control, &v_middle );
-            if ( error )
-              goto Exit;
-
-            v_control = vec;
-            goto Do_Conic;
-          }
-
-          error = FT_Stroker_ConicTo( stroker, &v_control, &v_start );
-          goto Close;
-
-        default:  /* FT_CURVE_TAG_CUBIC */
-          {
-            FT_Vector  vec1, vec2;
-
-
-            if ( point + 1 > limit                             ||
-                 FT_CURVE_TAG( tags[1] ) != FT_CURVE_TAG_CUBIC )
-              goto Invalid_Outline;
-
-            point += 2;
-            tags  += 2;
-
-            vec1 = point[-2];
-            vec2 = point[-1];
-
-            if ( point <= limit )
-            {
-              FT_Vector  vec;
-
-
-              vec = point[0];
-
-              error = FT_Stroker_CubicTo( stroker, &vec1, &vec2, &vec );
-              if ( error )
-                goto Exit;
-              continue;
-            }
-
-            error = FT_Stroker_CubicTo( stroker, &vec1, &vec2, &v_start );
-            goto Close;
-          }
-        }
-      }
-
-    Close:
-      if ( error )
-        goto Exit;
-
-      error = FT_Stroker_EndSubPath( stroker );
-      if ( error )
-        goto Exit;
-
-      first = last + 1;
-    }
-
-    return 0;
-
-  Exit:
-    return error;
-
-  Invalid_Outline:
-    return FT_Err_Invalid_Outline;
-  }
-
-
-  extern const FT_Glyph_Class  ft_outline_glyph_class;
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Glyph_Stroke( FT_Glyph    *pglyph,
-                   FT_Stroker   stroker,
-                   FT_Bool      destroy )
-  {
-    FT_Error  error = FT_Err_Invalid_Argument;
-    FT_Glyph  glyph = NULL;
-
-
-    if ( pglyph == NULL )
-      goto Exit;
-
-    glyph = *pglyph;
-    if ( glyph == NULL || glyph->clazz != &ft_outline_glyph_class )
-      goto Exit;
-
-    {
-      FT_Glyph  copy;
-
-
-      error = FT_Glyph_Copy( glyph, &copy );
-      if ( error )
-        goto Exit;
-
-      glyph = copy;
-    }
-
-    {
-      FT_OutlineGlyph  oglyph  = (FT_OutlineGlyph) glyph;
-      FT_Outline*      outline = &oglyph->outline;
-      FT_UInt          num_points, num_contours;
-
-
-      error = FT_Stroker_ParseOutline( stroker, outline, 0 );
-      if ( error )
-        goto Fail;
-
-      (void)FT_Stroker_GetCounts( stroker, &num_points, &num_contours );
-
-      FT_Outline_Done( glyph->library, outline );
-
-      error = FT_Outline_New( glyph->library,
-                              num_points, num_contours, outline );
-      if ( error )
-        goto Fail;
-
-      outline->n_points   = 0;
-      outline->n_contours = 0;
-
-      FT_Stroker_Export( stroker, outline );
-    }
-
-    if ( destroy )
-      FT_Done_Glyph( *pglyph );
-
-    *pglyph = glyph;
-    goto Exit;
-
-  Fail:
-    FT_Done_Glyph( glyph );
-    glyph = NULL;
-
-    if ( !destroy )
-      *pglyph = NULL;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Glyph_StrokeBorder( FT_Glyph    *pglyph,
-                         FT_Stroker   stroker,
-                         FT_Bool      inside,
-                         FT_Bool      destroy )
-  {
-    FT_Error  error = FT_Err_Invalid_Argument;
-    FT_Glyph  glyph = NULL;
-
-
-    if ( pglyph == NULL )
-      goto Exit;
-
-    glyph = *pglyph;
-    if ( glyph == NULL || glyph->clazz != &ft_outline_glyph_class )
-      goto Exit;
-
-    {
-      FT_Glyph  copy;
-
-
-      error = FT_Glyph_Copy( glyph, &copy );
-      if ( error )
-        goto Exit;
-
-      glyph = copy;
-    }
-
-    {
-      FT_OutlineGlyph   oglyph  = (FT_OutlineGlyph) glyph;
-      FT_StrokerBorder  border;
-      FT_Outline*       outline = &oglyph->outline;
-      FT_UInt           num_points, num_contours;
-
-
-      border = FT_Outline_GetOutsideBorder( outline );
-      if ( inside )
-      {
-        if ( border == FT_STROKER_BORDER_LEFT )
-          border = FT_STROKER_BORDER_RIGHT;
-        else
-          border = FT_STROKER_BORDER_LEFT;
-      }
-
-      error = FT_Stroker_ParseOutline( stroker, outline, 0 );
-      if ( error )
-        goto Fail;
-
-      (void)FT_Stroker_GetBorderCounts( stroker, border,
-                                        &num_points, &num_contours );
-
-      FT_Outline_Done( glyph->library, outline );
-
-      error = FT_Outline_New( glyph->library,
-                              num_points,
-                              num_contours,
-                              outline );
-      if ( error )
-        goto Fail;
-
-      outline->n_points   = 0;
-      outline->n_contours = 0;
-
-      FT_Stroker_ExportBorder( stroker, border, outline );
-    }
-
-    if ( destroy )
-      FT_Done_Glyph( *pglyph );
-
-    *pglyph = glyph;
-    goto Exit;
-
-  Fail:
-    FT_Done_Glyph( glyph );
-    glyph = NULL;
-
-    if ( !destroy )
-      *pglyph = NULL;
-
-  Exit:
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftsynth.c b/nx-X11/extras/freetype2/src/base/ftsynth.c
deleted file mode 100644
index cee36822f..000000000
--- a/nx-X11/extras/freetype2/src/base/ftsynth.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsynth.c                                                              */
-/*                                                                         */
-/*    FreeType synthesizing code for emboldening and slanting (body).      */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_CALC_H
-#include FT_OUTLINE_H
-#include FT_TRIGONOMETRY_H
-#include FT_SYNTHESIS_H
-
-
-#define FT_BOLD_THRESHOLD  0x0100
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   EXPERIMENTAL OBLIQUING SUPPORT                                ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_EXPORT_DEF( void )
-  FT_GlyphSlot_Oblique( FT_GlyphSlot  slot )
-  {
-    FT_Matrix    transform;
-    FT_Outline*  outline = &slot->outline;
-
-
-    /* only oblique outline glyphs */
-    if ( slot->format != FT_GLYPH_FORMAT_OUTLINE )
-      return;
-
-    /* we don't touch the advance width */
-
-    /* For italic, simply apply a shear transform, with an angle */
-    /* of about 12 degrees.                                      */
-
-    transform.xx = 0x10000L;
-    transform.yx = 0x00000L;
-
-    transform.xy = 0x06000L;
-    transform.yy = 0x10000L;
-
-    FT_Outline_Transform( outline, &transform );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****   EXPERIMENTAL EMBOLDENING/OUTLINING SUPPORT                    ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-
-  static int
-  ft_test_extrema( FT_Outline*  outline,
-                   int          n )
-  {
-    FT_Vector  *prev, *cur, *next;
-    FT_Pos      product;
-    FT_Int      c, first, last;
-
-
-    /* we need to compute the `previous' and `next' point */
-    /* for these extrema.                                 */
-    cur  = outline->points + n;
-    prev = cur - 1;
-    next = cur + 1;
-
-    first = 0;
-    for ( c = 0; c < outline->n_contours; c++ )
-    {
-      last = outline->contours[c];
-
-      if ( n == first )
-        prev = outline->points + last;
-
-      if ( n == last )
-        next = outline->points + first;
-
-      first = last + 1;
-    }
-
-    product = FT_MulDiv( cur->x - prev->x,   /* in.x  */
-                         next->y - cur->y,   /* out.y */
-                         0x40 )
-              -
-              FT_MulDiv( cur->y - prev->y,   /* in.y  */
-                         next->x - cur->x,   /* out.x */
-                         0x40 );
-
-    if ( product )
-      product = product > 0 ? 1 : -1;
-
-    return product;
-  }
-
-
-  /* Compute the orientation of path filling.  It differs between TrueType */
-  /* and Type1 formats.  We could use the `FT_OUTLINE_REVERSE_FILL' flag,  */
-  /* but it is better to re-compute it directly (it seems that this flag   */
-  /* isn't correctly set for some weird composite glyphs currently).       */
-  /*                                                                       */
-  /* We do this by computing bounding box points, and computing their      */
-  /* curvature.                                                            */
-  /*                                                                       */
-  /* The function returns either 1 or -1.                                  */
-  /*                                                                       */
-  static int
-  ft_get_orientation( FT_Outline*  outline )
-  {
-    FT_BBox  box;
-    FT_BBox  indices;
-    int      n, last;
-
-
-    indices.xMin = -1;
-    indices.yMin = -1;
-    indices.xMax = -1;
-    indices.yMax = -1;
-
-    box.xMin = box.yMin =  32767;
-    box.xMax = box.yMax = -32768;
-
-    /* is it empty ? */
-    if ( outline->n_contours < 1 )
-      return 1;
-
-    last = outline->contours[outline->n_contours - 1];
-
-    for ( n = 0; n <= last; n++ )
-    {
-      FT_Pos  x, y;
-
-
-      x = outline->points[n].x;
-      if ( x < box.xMin )
-      {
-        box.xMin     = x;
-        indices.xMin = n;
-      }
-      if ( x > box.xMax )
-      {
-        box.xMax     = x;
-        indices.xMax = n;
-      }
-
-      y = outline->points[n].y;
-      if ( y < box.yMin )
-      {
-        box.yMin     = y;
-        indices.yMin = n;
-      }
-      if ( y > box.yMax )
-      {
-        box.yMax     = y;
-        indices.yMax = n;
-      }
-    }
-
-    /* test orientation of the xmin */
-    n = ft_test_extrema( outline, indices.xMin );
-    if ( n )
-      goto Exit;
-
-    n = ft_test_extrema( outline, indices.yMin );
-    if ( n )
-      goto Exit;
-
-    n = ft_test_extrema( outline, indices.xMax );
-    if ( n )
-      goto Exit;
-
-    n = ft_test_extrema( outline, indices.yMax );
-    if ( !n )
-      n = 1;
-
-  Exit:
-    return n;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FT_GlyphSlot_Embolden( FT_GlyphSlot  slot )
-  {
-    FT_Vector*   points;
-    FT_Vector    v_prev, v_first, v_next, v_cur;
-    FT_Pos       distance;
-    FT_Outline*  outline = &slot->outline;
-    FT_Face      face = FT_SLOT_FACE( slot );
-    FT_Angle     rotate, angle_in, angle_out;
-    FT_Int       c, n, first, orientation;
-
-
-    /* only embolden outline glyph images */
-    if ( slot->format != FT_GLYPH_FORMAT_OUTLINE )
-      return;
-
-    /* compute control distance */
-    distance = FT_MulFix( face->units_per_EM / 60,
-                          face->size->metrics.y_scale );
-
-    orientation = ft_get_orientation( outline );
-    rotate      = FT_ANGLE_PI2*orientation;
-
-    points = outline->points;
-
-    first = 0;
-    for ( c = 0; c < outline->n_contours; c++ )
-    {
-      int  last = outline->contours[c];
-
-
-      v_first = points[first];
-      v_prev  = points[last];
-      v_cur   = v_first;
-
-      for ( n = first; n <= last; n++ )
-      {
-        FT_Pos     d;
-        FT_Vector  in, out;
-        FT_Fixed   scale;
-        FT_Angle   angle_diff;
-
-
-        if ( n < last ) v_next = points[n + 1];
-        else            v_next = v_first;
-
-        /* compute the in and out vectors */
-        in.x  = v_cur.x - v_prev.x;
-        in.y  = v_cur.y - v_prev.y;
-
-        out.x = v_next.x - v_cur.x;
-        out.y = v_next.y - v_cur.y;
-
-        angle_in   = FT_Atan2( in.x, in.y );
-        angle_out  = FT_Atan2( out.x, out.y );
-        angle_diff = FT_Angle_Diff( angle_in, angle_out );
-        scale      = FT_Cos( angle_diff/2 );
-
-        if ( scale < 0x400L && scale > -0x400L )
-        {
-          if ( scale >= 0 )
-            scale = 0x400L;
-          else
-            scale = -0x400L;
-        }
-
-        d = FT_DivFix( distance, scale );
-
-        FT_Vector_From_Polar( &in, d, angle_in + angle_diff/2 - rotate );
-
-        outline->points[n].x = v_cur.x + distance + in.x;
-        outline->points[n].y = v_cur.y + distance + in.y;
-
-        v_prev = v_cur;
-        v_cur  = v_next;
-      }
-
-      first = last + 1;
-    }
-
-    slot->metrics.horiAdvance =
-      ( slot->metrics.horiAdvance + distance*4 ) & ~63;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftsystem.c b/nx-X11/extras/freetype2/src/base/ftsystem.c
deleted file mode 100644
index 2365de257..000000000
--- a/nx-X11/extras/freetype2/src/base/ftsystem.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsystem.c                                                             */
-/*                                                                         */
-/*    ANSI-specific FreeType low-level system interface (body).            */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file contains the default interface used by FreeType to access   */
-  /* low-level, i.e. memory management, i/o access as well as thread       */
-  /* synchronisation.  It can be replaced by user-specific routines if     */
-  /* necessary.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_SYSTEM_H
-#include FT_ERRORS_H
-#include FT_TYPES_H
-
-#include <stdio.h>
-#include <stdlib.h>
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                       MEMORY MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* It is not necessary to do any error checking for the                  */
-  /* allocation-related functions.  This will be done by the higher level  */
-  /* routines like FT_Alloc() or FT_Realloc().                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_alloc                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory allocation function.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A pointer to the memory object.                          */
-  /*                                                                       */
-  /*    size   :: The requested size in bytes.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of newly allocated block.                              */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_alloc( FT_Memory  memory,
-            long       size )
-  {
-    FT_UNUSED( memory );
-
-    return malloc( size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_realloc                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory reallocation function.                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory   :: A pointer to the memory object.                        */
-  /*                                                                       */
-  /*    cur_size :: The current size of the allocated memory block.        */
-  /*                                                                       */
-  /*    new_size :: The newly requested size in bytes.                     */
-  /*                                                                       */
-  /*    block    :: The current address of the block in memory.            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The address of the reallocated memory block.                       */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void* )
-  ft_realloc( FT_Memory  memory,
-              long       cur_size,
-              long       new_size,
-              void*      block )
-  {
-    FT_UNUSED( memory );
-    FT_UNUSED( cur_size );
-
-    return realloc( block, new_size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_free                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The memory release function.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory  :: A pointer to the memory object.                         */
-  /*                                                                       */
-  /*    block   :: The address of block in memory to be freed.             */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_free( FT_Memory  memory,
-           void*      block )
-  {
-    FT_UNUSED( memory );
-
-    free( block );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                     RESOURCE MANAGEMENT INTERFACE                     */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_io
-
-  /* We use the macro STREAM_FILE for convenience to extract the       */
-  /* system-specific stream handle from a given FreeType stream object */
-#define STREAM_FILE( stream )  ( (FILE*)stream->descriptor.pointer )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_ansi_stream_close                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to close a stream.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  FT_CALLBACK_DEF( void )
-  ft_ansi_stream_close( FT_Stream  stream )
-  {
-    fclose( STREAM_FILE( stream ) );
-
-    stream->descriptor.pointer = NULL;
-    stream->size               = 0;
-    stream->base               = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_ansi_stream_io                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The function to open a stream.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A pointer to the stream object.                          */
-  /*                                                                       */
-  /*    offset :: The position in the data stream to start reading.        */
-  /*                                                                       */
-  /*    buffer :: The address of buffer to store the read data.            */
-  /*                                                                       */
-  /*    count  :: The number of bytes to read from the stream.             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The number of bytes actually read.                                 */
-  /*                                                                       */
-  FT_CALLBACK_DEF( unsigned long )
-  ft_ansi_stream_io( FT_Stream       stream,
-                     unsigned long   offset,
-                     unsigned char*  buffer,
-                     unsigned long   count )
-  {
-    FILE*  file;
-
-
-    file = STREAM_FILE( stream );
-
-    fseek( file, offset, SEEK_SET );
-
-    return (unsigned long)fread( buffer, 1, count, file );
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_Open( FT_Stream    stream,
-                  const char*  filepathname )
-  {
-    FILE*  file;
-
-
-    if ( !stream )
-      return FT_Err_Invalid_Stream_Handle;
-
-    file = fopen( filepathname, "rb" );
-    if ( !file )
-    {
-      FT_ERROR(( "FT_Stream_Open:" ));
-      FT_ERROR(( " could not open `%s'\n", filepathname ));
-
-      return FT_Err_Cannot_Open_Resource;
-    }
-
-    fseek( file, 0, SEEK_END );
-    stream->size = ftell( file );
-    fseek( file, 0, SEEK_SET );
-
-    stream->descriptor.pointer = file;
-    stream->pathname.pointer   = (char*)filepathname;
-    stream->pos                = 0;
-
-    stream->read  = ft_ansi_stream_io;
-    stream->close = ft_ansi_stream_close;
-
-    FT_TRACE1(( "FT_Stream_Open:" ));
-    FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
-                filepathname, stream->size ));
-
-    return FT_Err_Ok;
-  }
-
-
-#ifdef FT_DEBUG_MEMORY
-
-  extern FT_Int
-  ft_mem_debug_init( FT_Memory  memory );
-
-  extern void
-  ft_mem_debug_done( FT_Memory  memory );
-
-#endif
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( FT_Memory )
-  FT_New_Memory( void )
-  {
-    FT_Memory  memory;
-
-
-    memory = (FT_Memory)malloc( sizeof ( *memory ) );
-    if ( memory )
-    {
-      memory->user    = 0;
-      memory->alloc   = ft_alloc;
-      memory->realloc = ft_realloc;
-      memory->free    = ft_free;
-#ifdef FT_DEBUG_MEMORY
-      ft_mem_debug_init( memory );
-#endif
-    }
-
-    return memory;
-  }
-
-
-  /* documentation is in ftobjs.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Done_Memory( FT_Memory  memory )
-  {
-#ifdef FT_DEBUG_MEMORY
-    ft_mem_debug_done( memory );
-#endif
-    memory->free( memory, memory );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/fttrigon.c b/nx-X11/extras/freetype2/src/base/fttrigon.c
deleted file mode 100644
index 5347dd852..000000000
--- a/nx-X11/extras/freetype2/src/base/fttrigon.c
+++ /dev/null
@@ -1,499 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fttrigon.c                                                             */
-/*                                                                         */
-/*    FreeType trigonometric functions (body).                             */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_TRIGONOMETRY_H
-
-
-  /* the following is 0.2715717684432231 * 2^30 */
-#define FT_TRIG_COSCALE  0x11616E8EUL
-
-  /* this table was generated for FT_PI = 180L << 16, i.e. degrees */
-#define FT_TRIG_MAX_ITERS  23
-
-  static const FT_Fixed
-  ft_trig_arctan_table[24] =
-  {
-    4157273L, 2949120L, 1740967L, 919879L, 466945L, 234379L, 117304L,
-    58666L, 29335L, 14668L, 7334L, 3667L, 1833L, 917L, 458L, 229L, 115L,
-    57L, 29L, 14L, 7L, 4L, 2L, 1L
-  };
-
-  /* the Cordic shrink factor, multiplied by 2^32 */
-#define FT_TRIG_SCALE    1166391785UL  /* 0x4585BA38UL */
-
-
-#ifdef FT_CONFIG_HAS_INT64
-
-  /* multiply a given value by the CORDIC shrink factor */
-  static FT_Fixed
-  ft_trig_downscale( FT_Fixed  val )
-  {
-    FT_Fixed  s;
-    FT_Int64  v;
-
-
-    s   = val;
-    val = ( val >= 0 ) ? val : -val;
-
-    v   = ( val * (FT_Int64)FT_TRIG_SCALE ) + 0x100000000UL;
-    val = (FT_Fixed)( v >> 32 );
-
-    return ( s >= 0 ) ? val : -val;
-  }
-
-#else /* !FT_CONFIG_HAS_INT64 */
-
-  /* multiply a given value by the CORDIC shrink factor */
-  static FT_Fixed
-  ft_trig_downscale( FT_Fixed  val )
-  {
-    FT_Fixed   s;
-    FT_UInt32  v1, v2, k1, k2, hi, lo1, lo2, lo3;
-
-
-    s   = val;
-    val = ( val >= 0 ) ? val : -val;
-
-    v1 = (FT_UInt32)val >> 16;
-    v2 = (FT_UInt32)val & 0xFFFFL;
-
-    k1 = FT_TRIG_SCALE >> 16;       /* constant */
-    k2 = FT_TRIG_SCALE & 0xFFFFL;   /* constant */
-
-    hi   = k1 * v1;
-    lo1  = k1 * v2 + k2 * v1;       /* can't overflow */
-
-    lo2  = ( k2 * v2 ) >> 16;
-    lo3  = ( lo1 >= lo2 ) ? lo1 : lo2;
-    lo1 += lo2;
-
-    hi  += lo1 >> 16;
-    if ( lo1 < lo3 )
-      hi += 0x10000UL;
-
-    val  = (FT_Fixed)hi;
-
-    return ( s >= 0 ) ? val : -val;
-  }
-
-#endif /* !FT_CONFIG_HAS_INT64 */
-
-
-  static FT_Int
-  ft_trig_prenorm( FT_Vector*  vec )
-  {
-    FT_Fixed  x, y, z;
-    FT_Int    shift;
-
-
-    x = vec->x;
-    y = vec->y;
-
-    z     = ( ( x >= 0 ) ? x : - x ) | ( (y >= 0) ? y : -y );
-    shift = 0;
-
-    if ( z < ( 1L << 27 ) )
-    {
-      do
-      {
-        shift++;
-        z <<= 1;
-      } while ( z < ( 1L << 27 ) );
-
-      vec->x = x << shift;
-      vec->y = y << shift;
-    }
-    else if ( z > ( 1L << 28 ) )
-    {
-      do
-      {
-        shift++;
-        z >>= 1;
-      } while ( z > ( 1L << 28 ) );
-
-      vec->x = x >> shift;
-      vec->y = y >> shift;
-      shift  = -shift;
-    }
-    return shift;
-  }
-
-
-  static void
-  ft_trig_pseudo_rotate( FT_Vector*  vec,
-                         FT_Angle    theta )
-  {
-    FT_Int           i;
-    FT_Fixed         x, y, xtemp;
-    const FT_Fixed  *arctanptr;
-
-
-    x = vec->x;
-    y = vec->y;
-
-    /* Get angle between -90 and 90 degrees */
-    while ( theta <= -FT_ANGLE_PI2 )
-    {
-      x = -x;
-      y = -y;
-      theta += FT_ANGLE_PI;
-    }
-
-    while ( theta > FT_ANGLE_PI2 )
-    {
-      x = -x;
-      y = -y;
-      theta -= FT_ANGLE_PI;
-    }
-
-    /* Initial pseudorotation, with left shift */
-    arctanptr = ft_trig_arctan_table;
-
-    if ( theta < 0 )
-    {
-      xtemp  = x + ( y << 1 );
-      y      = y - ( x << 1 );
-      x      = xtemp;
-      theta += *arctanptr++;
-    }
-    else
-    {
-      xtemp  = x - ( y << 1 );
-      y      = y + ( x << 1 );
-      x      = xtemp;
-      theta -= *arctanptr++;
-    }
-
-    /* Subsequent pseudorotations, with right shifts */
-    i = 0;
-    do
-    {
-      if ( theta < 0 )
-      {
-        xtemp  = x + ( y >> i );
-        y      = y - ( x >> i );
-        x      = xtemp;
-        theta += *arctanptr++;
-      }
-      else
-      {
-        xtemp  = x - ( y >> i );
-        y      = y + ( x >> i );
-        x      = xtemp;
-        theta -= *arctanptr++;
-      }
-    } while ( ++i < FT_TRIG_MAX_ITERS );
-
-    vec->x = x;
-    vec->y = y;
-  }
-
-
-  static void
-  ft_trig_pseudo_polarize( FT_Vector*  vec )
-  {
-    FT_Fixed         theta;
-    FT_Fixed         yi, i;
-    FT_Fixed         x, y;
-    const FT_Fixed  *arctanptr;
-
-
-    x = vec->x;
-    y = vec->y;
-
-    /* Get the vector into the right half plane */
-    theta = 0;
-    if ( x < 0 )
-    {
-      x = -x;
-      y = -y;
-      theta = 2 * FT_ANGLE_PI2;
-    }
-
-    if ( y > 0 )
-      theta = - theta;
-
-    arctanptr = ft_trig_arctan_table;
-
-    if ( y < 0 )
-    {
-      /* Rotate positive */
-      yi     = y + ( x << 1 );
-      x      = x - ( y << 1 );
-      y      = yi;
-      theta -= *arctanptr++;  /* Subtract angle */
-    }
-    else
-    {
-      /* Rotate negative */
-      yi     = y - ( x << 1 );
-      x      = x + ( y << 1 );
-      y      = yi;
-      theta += *arctanptr++;  /* Add angle */
-    }
-
-    i = 0;
-    do
-    {
-      if ( y < 0 )
-      {
-        /* Rotate positive */
-        yi     = y + ( x >> i );
-        x      = x - ( y >> i );
-        y      = yi;
-        theta -= *arctanptr++;
-      }
-      else
-      {
-        /* Rotate negative */
-        yi     = y - ( x >> i );
-        x      = x + ( y >> i );
-        y      = yi;
-        theta += *arctanptr++;
-      }
-    } while ( ++i < FT_TRIG_MAX_ITERS );
-
-    /* round theta */
-    if ( theta >= 0 )
-      theta = FT_PAD_ROUND( theta, 32 );
-    else
-      theta = - FT_PAD_ROUND( -theta, 32 );
-
-    vec->x = x;
-    vec->y = theta;
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_Cos( FT_Angle  angle )
-  {
-    FT_Vector  v;
-
-
-    v.x = FT_TRIG_COSCALE >> 2;
-    v.y = 0;
-    ft_trig_pseudo_rotate( &v, angle );
-
-    return v.x / ( 1 << 12 );
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_Sin( FT_Angle  angle )
-  {
-    return FT_Cos( FT_ANGLE_PI2 - angle );
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_Tan( FT_Angle  angle )
-  {
-    FT_Vector  v;
-
-
-    v.x = FT_TRIG_COSCALE >> 2;
-    v.y = 0;
-    ft_trig_pseudo_rotate( &v, angle );
-
-    return FT_DivFix( v.y, v.x );
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( FT_Angle )
-  FT_Atan2( FT_Fixed  dx,
-            FT_Fixed  dy )
-  {
-    FT_Vector  v;
-
-
-    if ( dx == 0 && dy == 0 )
-      return 0;
-
-    v.x = dx;
-    v.y = dy;
-    ft_trig_prenorm( &v );
-    ft_trig_pseudo_polarize( &v );
-
-    return v.y;
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Vector_Unit( FT_Vector*  vec,
-                  FT_Angle    angle )
-  {
-    vec->x = FT_TRIG_COSCALE >> 2;
-    vec->y = 0;
-    ft_trig_pseudo_rotate( vec, angle );
-    vec->x >>= 12;
-    vec->y >>= 12;
-  }
-
-
-  /* these macros return 0 for positive numbers,
-     and -1 for negative ones */
-#define FT_SIGN_LONG( x )   ( (x) >> ( FT_SIZEOF_LONG * 8 - 1 ) )
-#define FT_SIGN_INT( x )    ( (x) >> ( FT_SIZEOF_INT * 8 - 1 ) )
-#define FT_SIGN_INT32( x )  ( (x) >> 31 )
-#define FT_SIGN_INT16( x )  ( (x) >> 15 )
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Vector_Rotate( FT_Vector*  vec,
-                    FT_Angle    angle )
-  {
-    FT_Int     shift;
-    FT_Vector  v;
-
-
-    v.x   = vec->x;
-    v.y   = vec->y;
-
-    if ( angle && ( v.x != 0 || v.y != 0 ) )
-    {
-      shift = ft_trig_prenorm( &v );
-      ft_trig_pseudo_rotate( &v, angle );
-      v.x = ft_trig_downscale( v.x );
-      v.y = ft_trig_downscale( v.y );
-
-      if ( shift > 0 )
-      {
-        FT_Int32  half = 1L << ( shift - 1 );
-
-
-        vec->x = ( v.x + half + FT_SIGN_LONG( v.x ) ) >> shift;
-        vec->y = ( v.y + half + FT_SIGN_LONG( v.y ) ) >> shift;
-      }
-      else
-      {
-        shift  = -shift;
-        vec->x = v.x << shift;
-        vec->y = v.y << shift;
-      }
-    }
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( FT_Fixed )
-  FT_Vector_Length( FT_Vector*  vec )
-  {
-    FT_Int     shift;
-    FT_Vector  v;
-
-
-    v = *vec;
-
-    /* handle trivial cases */
-    if ( v.x == 0 )
-    {
-      return ( v.y >= 0 ) ? v.y : -v.y;
-    }
-    else if ( v.y == 0 )
-    {
-      return ( v.x >= 0 ) ? v.x : -v.x;
-    }
-
-    /* general case */
-    shift = ft_trig_prenorm( &v );
-    ft_trig_pseudo_polarize( &v );
-
-    v.x = ft_trig_downscale( v.x );
-
-    if ( shift > 0 )
-      return ( v.x + ( 1 << ( shift - 1 ) ) ) >> shift;
-
-    return v.x << -shift;
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Vector_Polarize( FT_Vector*  vec,
-                      FT_Fixed   *length,
-                      FT_Angle   *angle )
-  {
-    FT_Int     shift;
-    FT_Vector  v;
-
-
-    v = *vec;
-
-    if ( v.x == 0 && v.y == 0 )
-      return;
-
-    shift = ft_trig_prenorm( &v );
-    ft_trig_pseudo_polarize( &v );
-
-    v.x = ft_trig_downscale( v.x );
-
-    *length = ( shift >= 0 ) ? ( v.x >> shift ) : ( v.x << -shift );
-    *angle  = v.y;
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( void )
-  FT_Vector_From_Polar( FT_Vector*  vec,
-                        FT_Fixed    length,
-                        FT_Angle    angle )
-  {
-    vec->x = length;
-    vec->y = 0;
-
-    FT_Vector_Rotate( vec, angle );
-  }
-
-
-  /* documentation is in fttrigon.h */
-
-  FT_EXPORT_DEF( FT_Angle )
-  FT_Angle_Diff( FT_Angle  angle1,
-                 FT_Angle  angle2 )
-  {
-    FT_Angle  delta = angle2 - angle1;
-
-    delta %= FT_ANGLE_2PI;
-    if ( delta < 0 )
-      delta += FT_ANGLE_2PI;
-
-    if ( delta > FT_ANGLE_PI )
-      delta -= FT_ANGLE_2PI;
-
-    return delta;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/fttype1.c b/nx-X11/extras/freetype2/src/base/fttype1.c
deleted file mode 100644
index 553b84f56..000000000
--- a/nx-X11/extras/freetype2/src/base/fttype1.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fttype1.c                                                              */
-/*                                                                         */
-/*    FreeType utility file for PS names support (body).                   */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_SERVICE_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
-
-
-  /* documentation is in t1tables.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_PS_Font_Info( FT_Face          face,
-                       PS_FontInfoRec*  afont_info )
-  {
-    FT_Error  error = FT_Err_Invalid_Argument;
-
-
-    if ( face )
-    {
-      FT_Service_PsInfo  service = NULL;
-
-
-      FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
-
-      if ( service && service->ps_get_font_info )
-        error = service->ps_get_font_info( face, afont_info );
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in t1tables.h */
-
-  FT_EXPORT_DEF( FT_Int )
-  FT_Has_PS_Glyph_Names( FT_Face  face )
-  {
-    FT_Int             result  = 0;
-    FT_Service_PsInfo  service = NULL;
-
-
-    if ( face )
-    {
-      FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO );
-
-      if ( service && service->ps_has_glyph_names )
-        result = service->ps_has_glyph_names( face );
-    }
-
-    return result;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftutil.c b/nx-X11/extras/freetype2/src/base/ftutil.c
deleted file mode 100644
index 9d3ec43d7..000000000
--- a/nx-X11/extras/freetype2/src/base/ftutil.c
+++ /dev/null
@@ -1,397 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftutil.c                                                               */
-/*                                                                         */
-/*    FreeType utility file for memory and list management (body).         */
-/*                                                                         */
-/*  Copyright 2002, 2004 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_LIST_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_memory
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                                                               *****/
-  /*****               M E M O R Y   M A N A G E M E N T               *****/
-  /*****                                                               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* documentation is in ftmemory.h */
-
-  FT_BASE_DEF( FT_Error )
-  FT_Alloc( FT_Memory  memory,
-            FT_Long    size,
-            void*     *P )
-  {
-    FT_ASSERT( P != 0 );
-
-    if ( size > 0 )
-    {
-      *P = memory->alloc( memory, size );
-      if ( !*P )
-      {
-        FT_ERROR(( "FT_Alloc:" ));
-        FT_ERROR(( " Out of memory? (%ld requested)\n",
-                   size ));
-
-        return FT_Err_Out_Of_Memory;
-      }
-      FT_MEM_ZERO( *P, size );
-    }
-    else
-      *P = NULL;
-
-    FT_TRACE7(( "FT_Alloc:" ));
-    FT_TRACE7(( " size = %ld, block = 0x%08p, ref = 0x%08p\n",
-                size, *P, P ));
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_QAlloc( FT_Memory  memory,
-             FT_Long    size,
-             void*     *P )
-  {
-    FT_ASSERT( P != 0 );
-
-    if ( size > 0 )
-    {
-      *P = memory->alloc( memory, size );
-      if ( !*P )
-      {
-        FT_ERROR(( "FT_QAlloc:" ));
-        FT_ERROR(( " Out of memory? (%ld requested)\n",
-                   size ));
-
-        return FT_Err_Out_Of_Memory;
-      }
-    }
-    else
-      *P = NULL;
-
-    FT_TRACE7(( "FT_QAlloc:" ));
-    FT_TRACE7(( " size = %ld, block = 0x%08p, ref = 0x%08p\n",
-                size, *P, P ));
-
-    return FT_Err_Ok;
-  }
-
-
-  /* documentation is in ftmemory.h */
-
-  FT_BASE_DEF( FT_Error )
-  FT_Realloc( FT_Memory  memory,
-              FT_Long    current,
-              FT_Long    size,
-              void**     P )
-  {
-    void*  Q;
-
-
-    FT_ASSERT( P != 0 );
-
-    /* if the original pointer is NULL, call FT_Alloc() */
-    if ( !*P )
-      return FT_Alloc( memory, size, P );
-
-    /* if the new block if zero-sized, clear the current one */
-    if ( size <= 0 )
-    {
-      FT_Free( memory, P );
-      return FT_Err_Ok;
-    }
-
-    Q = memory->realloc( memory, current, size, *P );
-    if ( !Q )
-      goto Fail;
-
-    if ( size > current )
-      FT_MEM_ZERO( (char*)Q + current, size - current );
-
-    *P = Q;
-    return FT_Err_Ok;
-
-  Fail:
-    FT_ERROR(( "FT_Realloc:" ));
-    FT_ERROR(( " Failed (current %ld, requested %ld)\n",
-               current, size ));
-    return FT_Err_Out_Of_Memory;
-  }
-
-
-  FT_BASE_DEF( FT_Error )
-  FT_QRealloc( FT_Memory  memory,
-               FT_Long    current,
-               FT_Long    size,
-               void**     P )
-  {
-    void*  Q;
-
-
-    FT_ASSERT( P != 0 );
-
-    /* if the original pointer is NULL, call FT_QAlloc() */
-    if ( !*P )
-      return FT_QAlloc( memory, size, P );
-
-    /* if the new block if zero-sized, clear the current one */
-    if ( size <= 0 )
-    {
-      FT_Free( memory, P );
-      return FT_Err_Ok;
-    }
-
-    Q = memory->realloc( memory, current, size, *P );
-    if ( !Q )
-      goto Fail;
-
-    *P = Q;
-    return FT_Err_Ok;
-
-  Fail:
-    FT_ERROR(( "FT_QRealloc:" ));
-    FT_ERROR(( " Failed (current %ld, requested %ld)\n",
-               current, size ));
-    return FT_Err_Out_Of_Memory;
-  }
-
-
-  /* documentation is in ftmemory.h */
-
-  FT_BASE_DEF( void )
-  FT_Free( FT_Memory  memory,
-           void**     P )
-  {
-    FT_TRACE7(( "FT_Free:" ));
-    FT_TRACE7(( " Freeing block 0x%08p, ref 0x%08p\n",
-                P, P ? *P : (void*)0 ));
-
-    if ( P && *P )
-    {
-      memory->free( memory, *P );
-      *P = 0;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                                                               *****/
-  /*****            D O U B L Y   L I N K E D   L I S T S              *****/
-  /*****                                                               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_list
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( FT_ListNode )
-  FT_List_Find( FT_List  list,
-                void*    data )
-  {
-    FT_ListNode  cur;
-
-
-    cur = list->head;
-    while ( cur )
-    {
-      if ( cur->data == data )
-        return cur;
-
-      cur = cur->next;
-    }
-
-    return (FT_ListNode)0;
-  }
-
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( void )
-  FT_List_Add( FT_List      list,
-               FT_ListNode  node )
-  {
-    FT_ListNode  before = list->tail;
-
-
-    node->next = 0;
-    node->prev = before;
-
-    if ( before )
-      before->next = node;
-    else
-      list->head = node;
-
-    list->tail = node;
-  }
-
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( void )
-  FT_List_Insert( FT_List      list,
-                  FT_ListNode  node )
-  {
-    FT_ListNode  after = list->head;
-
-
-    node->next = after;
-    node->prev = 0;
-
-    if ( !after )
-      list->tail = node;
-    else
-      after->prev = node;
-
-    list->head = node;
-  }
-
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( void )
-  FT_List_Remove( FT_List      list,
-                  FT_ListNode  node )
-  {
-    FT_ListNode  before, after;
-
-
-    before = node->prev;
-    after  = node->next;
-
-    if ( before )
-      before->next = after;
-    else
-      list->head = after;
-
-    if ( after )
-      after->prev = before;
-    else
-      list->tail = before;
-  }
-
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( void )
-  FT_List_Up( FT_List      list,
-              FT_ListNode  node )
-  {
-    FT_ListNode  before, after;
-
-
-    before = node->prev;
-    after  = node->next;
-
-    /* check whether we are already on top of the list */
-    if ( !before )
-      return;
-
-    before->next = after;
-
-    if ( after )
-      after->prev = before;
-    else
-      list->tail = before;
-
-    node->prev       = 0;
-    node->next       = list->head;
-    list->head->prev = node;
-    list->head       = node;
-  }
-
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_List_Iterate( FT_List            list,
-                   FT_List_Iterator   iterator,
-                   void*              user )
-  {
-    FT_ListNode  cur   = list->head;
-    FT_Error     error = FT_Err_Ok;
-
-
-    while ( cur )
-    {
-      FT_ListNode  next = cur->next;
-
-
-      error = iterator( cur, user );
-      if ( error )
-        break;
-
-      cur = next;
-    }
-
-    return error;
-  }
-
-
-  /* documentation is in ftlist.h */
-
-  FT_EXPORT_DEF( void )
-  FT_List_Finalize( FT_List             list,
-                    FT_List_Destructor  destroy,
-                    FT_Memory           memory,
-                    void*               user )
-  {
-    FT_ListNode  cur;
-
-
-    cur = list->head;
-    while ( cur )
-    {
-      FT_ListNode  next = cur->next;
-      void*        data = cur->data;
-
-
-      if ( destroy )
-        destroy( memory, data, user );
-
-      FT_FREE( cur );
-      cur = next;
-    }
-
-    list->head = 0;
-    list->tail = 0;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftwinfnt.c b/nx-X11/extras/freetype2/src/base/ftwinfnt.c
deleted file mode 100644
index 46f618c51..000000000
--- a/nx-X11/extras/freetype2/src/base/ftwinfnt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftwinfnt.c                                                             */
-/*                                                                         */
-/*    FreeType API for accessing Windows FNT specific info (body).         */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_WINFONTS_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_WINFNT_H
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Get_WinFNT_Header( FT_Face               face,
-                        FT_WinFNT_HeaderRec  *header )
-  {
-    FT_Service_WinFnt  service;
-    FT_Error           error;
-
-
-    error = FT_Err_Invalid_Argument;
-
-    if ( face != NULL )
-    {
-      FT_FACE_LOOKUP_SERVICE( face, service, WINFNT );
-
-      if ( service != NULL )
-      {
-        error = service->get_header( face, header );
-      }
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/ftxf86.c b/nx-X11/extras/freetype2/src/base/ftxf86.c
deleted file mode 100644
index 04e80236e..000000000
--- a/nx-X11/extras/freetype2/src/base/ftxf86.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftxf86.c                                                               */
-/*                                                                         */
-/*    FreeType utility file for X11 support (body).                        */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_XFREE86_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_XFREE86_NAME_H
-
-  FT_EXPORT_DEF( const char* )
-  FT_Get_X11_Font_Format( FT_Face  face )
-  {
-    const char*  result = NULL;
-
-
-    if ( face )
-      FT_FACE_FIND_SERVICE( face, result, XF86_NAME );
-
-    return result;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/base/rules.mk b/nx-X11/extras/freetype2/src/base/rules.mk
deleted file mode 100644
index 8017e8589..000000000
--- a/nx-X11/extras/freetype2/src/base/rules.mk
+++ /dev/null
@@ -1,96 +0,0 @@
-#
-# FreeType 2 base layer configuration rules
-#
-
-
-# Copyright 1996-2000, 2002, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# It sets the following variables which are used by the master Makefile
-# after the call:
-#
-#   BASE_OBJ_S:   The single-object base layer.
-#   BASE_OBJ_M:   A list of all objects for a multiple-objects build.
-#   BASE_EXT_OBJ: A list of base layer extensions, i.e., components found
-#                 in `freetype/src/base' which are not compiled within the
-#                 base layer proper.
-#
-# BASE_H is defined in freetype.mk to simplify the dependency rules.
-
-
-BASE_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SRC_DIR)/base)
-
-
-# Base layer sources
-#
-#   ftsystem, ftinit, and ftdebug are handled by freetype.mk
-#
-BASE_SRC := $(BASE_DIR)/ftapi.c    \
-            $(BASE_DIR)/ftcalc.c   \
-            $(BASE_DIR)/ftdbgmem.c \
-            $(BASE_DIR)/ftgloadr.c \
-            $(BASE_DIR)/ftnames.c  \
-            $(BASE_DIR)/ftobjs.c   \
-            $(BASE_DIR)/ftoutln.c  \
-            $(BASE_DIR)/ftrfork.c  \
-            $(BASE_DIR)/ftstream.c \
-            $(BASE_DIR)/fttrigon.c \
-            $(BASE_DIR)/ftutil.c
-
-# Base layer `extensions' sources
-#
-# An extension is added to the library file (.a or .lib) as a separate
-# object.  It will then be linked to the final executable only if one of its
-# symbols is used by the application.
-#
-BASE_EXT_SRC := $(BASE_DIR)/ftbbox.c   \
-                $(BASE_DIR)/ftbdf.c    \
-                $(BASE_DIR)/ftglyph.c  \
-                $(BASE_DIR)/ftmm.c     \
-                $(BASE_DIR)/ftpfr.c    \
-                $(BASE_DIR)/ftstroke.c \
-                $(BASE_DIR)/fttype1.c  \
-                $(BASE_DIR)/ftwinfnt.c \
-                $(BASE_DIR)/ftxf86.c
-
-# Default extensions objects
-#
-BASE_EXT_OBJ := $(BASE_EXT_SRC:$(BASE_DIR)/%.c=$(OBJ_DIR)/%.$O)
-
-
-# Base layer object(s)
-#
-#   BASE_OBJ_M is used during `multi' builds (each base source file compiles
-#   to a single object file).
-#
-#   BASE_OBJ_S is used during `single' builds (the whole base layer is
-#   compiled as a single object file using ftbase.c).
-#
-BASE_OBJ_M := $(BASE_SRC:$(BASE_DIR)/%.c=$(OBJ_DIR)/%.$O)
-BASE_OBJ_S := $(OBJ_DIR)/ftbase.$O
-
-# Base layer root source file for single build
-#
-BASE_SRC_S := $(BASE_DIR)/ftbase.c
-
-
-# Base layer - single object build
-#
-$(BASE_OBJ_S): $(BASE_SRC_S) $(BASE_SRC) $(FREETYPE_H)
-	$(BASE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(BASE_SRC_S))
-
-
-# Multiple objects build + extensions
-#
-$(OBJ_DIR)/%.$O: $(BASE_DIR)/%.c $(FREETYPE_H)
-	$(BASE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/bdf/Jamfile b/nx-X11/extras/freetype2/src/bdf/Jamfile
deleted file mode 100644
index 8b1714d98..000000000
--- a/nx-X11/extras/freetype2/src/bdf/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/bdf Jamfile (c) 2002 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) bdf ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = bdfdrivr bdflib ;
-  }
-  else
-  {
-    _sources = bdf ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/bdf Jamfile
diff --git a/nx-X11/extras/freetype2/src/bdf/README b/nx-X11/extras/freetype2/src/bdf/README
deleted file mode 100644
index d45e4fb15..000000000
--- a/nx-X11/extras/freetype2/src/bdf/README
+++ /dev/null
@@ -1,148 +0,0 @@
-                  FreeType font driver for BDF fonts
-
-                       Francesco Zappa Nardelli
-                  <francesco.zappa.nardelli@ens.fr>
-
-
-Introduction
-************
-
-BDF (Bitmap Distribution Format) is a bitmap font format defined by Adobe,
-which is intended to be easily understood by both humans and computers. 
-This code implements a BDF driver for the FreeType library, following the
-Adobe Specification V 2.2.  The specification of the BDF font format is
-available from Adobe's web site:
-
-  http://partners.adobe.com/asn/developer/PDFS/TN/5005.BDF_Spec.pdf
-
-Many good bitmap fonts in bdf format come with XFree86 (www.XFree86.org). 
-They do not define vertical metrics, because the X Consortium BDF
-specification has removed them.
-
-
-Encodings
-*********
-
-The variety of encodings that accompanies bdf fonts appears to encompass the
-small set defined in freetype.h.  On the other hand, two properties that
-specify encoding and registry are usually defined in bdf fonts.
-
-I decided to make these two properties directly accessible, leaving to the
-client application the work of interpreting them.  For instance:
-
-
-  #include FT_INTERNAL_BDF_TYPES_H
-
-  FT_Face          face;
-  BDF_Public_Face  bdfface;
-
-
-  FT_New_Face( library, ..., &face );
-
-  bdfface = (BDF_Public_Face)face;
-  
-  if ( ( bdfface->charset_registry == "ISO10646" ) && 
-       ( bdfface->charset_encoding == "1" )        )
-    [..]
-
-
-Thus the driver always exports `ft_encoding_none' as face->charmap.encoding. 
-FT_Get_Char_Index's behavior is unmodified, that is, it converts the ULong
-value given as argument into the corresponding glyph number.
-
-If the two properties are not available, Adobe Standard Encoding should be
-assumed.
-
-
-Anti-Aliased Bitmaps
-********************
-
-The driver supports an extension to the BDF format as used in Mark Leisher's
-xmbdfed bitmap font editor.  Microsoft's SBIT tool expects bitmap fonts in
-that format for adding anti-aliased them to TrueType fonts.  It introduces a
-fourth field to the `SIZE' keyword which gives the bpp value (bits per
-pixel) of the glyph data in the font.  Possible values are 1 (the default),
-2 (four gray levels), 4 (16 gray levels), and 8 (256 gray levels).  The
-driver returns either a bitmap with 1 bit per pixel or a pixmap with 8bits
-per pixel (using 4, 16, and 256 gray levels, respectively).
-
-
-Known problems
-**************
-
-- A font is entirely loaded into memory.  Obviously, this is not the Right
-  Thing(TM).  If you have big fonts I suggest you convert them into PCF
-  format (using the bdftopcf utility): the PCF font drive of FreeType can
-  perform incremental glyph loading.
-
-When I have some time, I will implement on-demand glyph parsing.
-
-- Except for encodings properties, client applications have no visibility of
-  the PCF_Face object.  This means that applications cannot directly access
-  font tables and must trust FreeType.
-
-- Currently, glyph names are ignored.
-
-  I plan to give full visibility of the BDF_Face object in an upcoming
-  revision of the driver, thus implementing also glyph names.
-
-- As I have never seen a BDF font that defines vertical metrics, vertical
-  metrics are (parsed and) discarded.  If you own a BDF font that defines
-  vertical metrics, please let me know (I will implement them in 5-10
-  minutes).
-
-
-License
-*******
-
-Copyright (C) 2001-2002 by Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-*** Portions of the driver (that is, bdflib.c and bdf.h):
-
-Copyright 2000 Computing Research Labs, New Mexico State University
-Copyright 2001-2002 Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
-OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
-THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Credits
-*******
-
-This driver is based on excellent Mark Leisher's bdf library.  If you
-find something good in this driver you should probably thank him, not
-me.
diff --git a/nx-X11/extras/freetype2/src/bdf/bdf.c b/nx-X11/extras/freetype2/src/bdf/bdf.c
deleted file mode 100644
index 9c828853e..000000000
--- a/nx-X11/extras/freetype2/src/bdf/bdf.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*  bdf.c
-
-    FreeType font driver for bdf files
-
-    Copyright (C) 2001, 2002 by
-    Francesco Zappa Nardelli 
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "bdflib.c"
-#include "bdfdrivr.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/bdf/bdf.h b/nx-X11/extras/freetype2/src/bdf/bdf.h
deleted file mode 100644
index b42baa6e0..000000000
--- a/nx-X11/extras/freetype2/src/bdf/bdf.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright 2000 Computing Research Labs, New Mexico State University
- * Copyright 2001, 2002, 2003, 2004 Francesco Zappa Nardelli
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
- * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-#ifndef __BDF_H__
-#define __BDF_H__
-
-
-/*
- * Based on bdf.h,v 1.16 2000/03/16 20:08:51 mleisher
- */
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
-
-
-FT_BEGIN_HEADER
-
-
-/* Imported from bdfP.h */
-
-#define _bdf_glyph_modified( map, e )                 \
-          ( (map)[(e) >> 5] & ( 1 << ( (e) & 31 ) ) )
-#define _bdf_set_glyph_modified( map, e )              \
-          ( (map)[(e) >> 5] |= ( 1 << ( (e) & 31 ) ) )
-#define _bdf_clear_glyph_modified( map, e )             \
-          ( (map)[(e) >> 5] &= ~( 1 << ( (e) & 31 ) ) )
-
-/* end of bdfP.h */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* BDF font options macros and types.                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define BDF_CORRECT_METRICS  0x01 /* Correct invalid metrics when loading. */
-#define BDF_KEEP_COMMENTS    0x02 /* Preserve the font comments.           */
-#define BDF_KEEP_UNENCODED   0x04 /* Keep the unencoded glyphs.            */
-#define BDF_PROPORTIONAL     0x08 /* Font has proportional spacing.        */
-#define BDF_MONOWIDTH        0x10 /* Font has mono width.                  */
-#define BDF_CHARCELL         0x20 /* Font has charcell spacing.            */
-
-#define BDF_ALL_SPACING  ( BDF_PROPORTIONAL | \
-                           BDF_MONOWIDTH    | \
-                           BDF_CHARCELL     )
-
-#define BDF_DEFAULT_LOAD_OPTIONS  ( BDF_CORRECT_METRICS | \
-                                    BDF_KEEP_COMMENTS   | \
-                                    BDF_KEEP_UNENCODED  | \
-                                    BDF_PROPORTIONAL    )
-
-
-  typedef struct  bdf_options_t_
-  {
-    int            correct_metrics;
-    int            keep_unencoded;
-    int            keep_comments;
-    int            font_spacing;
-
-  } bdf_options_t;
-
-
-  /* Callback function type for unknown configuration options. */
-  typedef int
-  (*bdf_options_callback_t)( bdf_options_t*  opts,
-                             char**          params,
-                             unsigned long   nparams,
-                             void*           client_data );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* BDF font property macros and types.                                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define BDF_ATOM      1
-#define BDF_INTEGER   2
-#define BDF_CARDINAL  3
-
-
-  /* This structure represents a particular property of a font. */
-  /* There are a set of defaults and each font has their own.   */
-  typedef struct  bdf_property_t_
-  {
-    char*  name;         /* Name of the property.   */
-    int    format;       /* Format of the property. */
-    int    builtin;      /* A builtin property.     */
-    union
-    {
-      char*          atom;
-      long           int32;
-      unsigned long  card32;
-
-    } value;             /* Value of the property.  */
-
-  } bdf_property_t;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* BDF font metric and glyph types.                                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  typedef struct  bdf_bbx_t_
-  {
-    unsigned short  width;
-    unsigned short  height;
-
-    short           x_offset;
-    short           y_offset;
-
-    short           ascent;
-    short           descent;
-
-  } bdf_bbx_t;
-
-
-  typedef struct  bdf_glyph_t_
-  {
-    char*           name;        /* Glyph name.                          */
-    long            encoding;    /* Glyph encoding.                      */
-    unsigned short  swidth;      /* Scalable width.                      */
-    unsigned short  dwidth;      /* Device width.                        */
-    bdf_bbx_t       bbx;         /* Glyph bounding box.                  */
-    unsigned char*  bitmap;      /* Glyph bitmap.                        */
-    unsigned long   bpr;         /* Number of bytes used per row.        */
-    unsigned short  bytes;       /* Number of bytes used for the bitmap. */
-
-  } bdf_glyph_t;
-
-
-  typedef struct  _hashnode_
-  {
-    const char*  key;
-    void*        data;
-  
-  } _hashnode, *hashnode;
-
-
-  typedef struct  hashtable_
-  {
-    int        limit;
-    int        size;
-    int        used;
-    hashnode*  table;
-
-  } hashtable;
-
-
-  typedef struct  bdf_glyphlist_t_
-  {
-    unsigned short  pad;          /* Pad to 4-byte boundary.              */
-    unsigned short  bpp;          /* Bits per pixel.                      */
-    long            start;        /* Beginning encoding value of glyphs.  */
-    long            end;          /* Ending encoding value of glyphs.     */
-    bdf_glyph_t*    glyphs;       /* Glyphs themselves.                   */
-    unsigned long   glyphs_size;  /* Glyph structures allocated.          */
-    unsigned long   glyphs_used;  /* Glyph structures used.               */
-    bdf_bbx_t       bbx;          /* Overall bounding box of glyphs.      */
-
-  } bdf_glyphlist_t;
-
-
-  typedef struct  bdf_font_t_
-  {
-    char*            name;           /* Name of the font.                   */
-    bdf_bbx_t        bbx;            /* Font bounding box.                  */
-
-    long             point_size;     /* Point size of the font.             */
-    unsigned long    resolution_x;   /* Font horizontal resolution.         */
-    unsigned long    resolution_y;   /* Font vertical resolution.           */
-
-    int              spacing;        /* Font spacing value.                 */
-
-    unsigned short   monowidth;      /* Logical width for monowidth font.   */
-
-    long             default_char;   /* Encoding of the default glyph.      */
-
-    long             font_ascent;    /* Font ascent.                        */
-    long             font_descent;   /* Font descent.                       */
-
-    unsigned long    glyphs_size;    /* Glyph structures allocated.         */
-    unsigned long    glyphs_used;    /* Glyph structures used.              */
-    bdf_glyph_t*     glyphs;         /* Glyphs themselves.                  */
-
-    unsigned long    unencoded_size; /* Unencoded glyph struct. allocated.  */
-    unsigned long    unencoded_used; /* Unencoded glyph struct. used.       */
-    bdf_glyph_t*     unencoded;      /* Unencoded glyphs themselves.        */
-
-    unsigned long    props_size;     /* Font properties allocated.          */
-    unsigned long    props_used;     /* Font properties used.               */
-    bdf_property_t*  props;          /* Font properties themselves.         */
-
-    char*            comments;       /* Font comments.                      */
-    unsigned long    comments_len;   /* Length of comment string.           */
-
-    bdf_glyphlist_t  overflow;       /* Storage used for glyph insertion.   */
-
-    void*            internal;       /* Internal data for the font.         */
-
-    unsigned long    nmod[2048];     /* Bitmap indicating modified glyphs.  */
-    unsigned long    umod[2048];     /* Bitmap indicating modified          */
-                                     /* unencoded glyphs.                   */
-    unsigned short   modified;       /* Boolean indicating font modified.   */
-    unsigned short   bpp;            /* Bits per pixel.                     */
-
-    FT_Memory        memory;
-
-    bdf_property_t*  user_props;
-    unsigned long    nuser_props;
-    hashtable        proptbl;
-
-  } bdf_font_t;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Types for load/save callbacks.                                        */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* Error codes. */
-#define BDF_MISSING_START       -1
-#define BDF_MISSING_FONTNAME    -2
-#define BDF_MISSING_SIZE        -3
-#define BDF_MISSING_CHARS       -4
-#define BDF_MISSING_STARTCHAR   -5
-#define BDF_MISSING_ENCODING    -6
-#define BDF_MISSING_BBX         -7
-
-#define BDF_OUT_OF_MEMORY      -20
-
-#define BDF_INVALID_LINE      -100
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* BDF font API.                                                         */
-  /*                                                                       */
-  /*************************************************************************/
-
-  FT_LOCAL( FT_Error )
-  bdf_load_font( FT_Stream       stream,
-                 FT_Memory       memory,
-                 bdf_options_t*  opts,
-                 bdf_font_t*    *font );
-
-  FT_LOCAL( void )
-  bdf_free_font( bdf_font_t*  font );
-
-  FT_LOCAL( bdf_property_t * )
-  bdf_get_property( char*        name,
-                    bdf_font_t*  font );
-
-  FT_LOCAL( bdf_property_t * )
-  bdf_get_font_property( bdf_font_t*  font,
-                         const char*  name );
-
-
-FT_END_HEADER
-
-
-#endif /* __BDF_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/bdf/bdfdrivr.c b/nx-X11/extras/freetype2/src/bdf/bdfdrivr.c
deleted file mode 100644
index 8f33d537e..000000000
--- a/nx-X11/extras/freetype2/src/bdf/bdfdrivr.c
+++ /dev/null
@@ -1,915 +0,0 @@
-/*  bdfdrivr.c
-
-    FreeType font driver for bdf files
-
-    Copyright (C) 2001, 2002, 2003, 2004 by
-    Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-#include <ft2build.h>
-
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_BDF_H
-
-#include FT_SERVICE_BDF_H
-#include FT_SERVICE_XFREE86_NAME_H
-
-#include "bdf.h"
-#include "bdfdrivr.h"
-
-#include "bdferror.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_bdfdriver
-
-
-  typedef struct  BDF_CMapRec_
-  {
-    FT_CMapRec        cmap;
-    FT_UInt           num_encodings;
-    BDF_encoding_el*  encodings;
-
-  } BDF_CMapRec, *BDF_CMap;
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  bdf_cmap_init( FT_CMap     bdfcmap,
-                 FT_Pointer  init_data )
-  {
-    BDF_CMap  cmap = (BDF_CMap)bdfcmap;
-    BDF_Face  face = (BDF_Face)FT_CMAP_FACE( cmap );
-    FT_UNUSED( init_data );
-
-
-    cmap->num_encodings = face->bdffont->glyphs_used;
-    cmap->encodings     = face->en_table;
-
-    return BDF_Err_Ok;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  bdf_cmap_done( FT_CMap  bdfcmap )
-  {
-    BDF_CMap  cmap = (BDF_CMap)bdfcmap;
-
-
-    cmap->encodings     = NULL;
-    cmap->num_encodings = 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  bdf_cmap_char_index( FT_CMap    bdfcmap,
-                       FT_UInt32  charcode )
-  {
-    BDF_CMap          cmap      = (BDF_CMap)bdfcmap;
-    BDF_encoding_el*  encodings = cmap->encodings;
-    FT_UInt           min, max, mid;
-    FT_UInt           result    = 0;
-
-
-    min = 0;
-    max = cmap->num_encodings;
-
-    while ( min < max )
-    {
-      FT_UInt32  code;
-
-
-      mid  = ( min + max ) >> 1;
-      code = encodings[mid].enc;
-
-      if ( charcode == code )
-      {
-        /* increase glyph index by 1 --              */
-        /* we reserve slot 0 for the undefined glyph */
-        result = encodings[mid].glyph + 1;
-        break;
-      }
-
-      if ( charcode < code )
-        max = mid;
-      else
-        min = mid + 1;
-    }
-
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  bdf_cmap_char_next( FT_CMap     bdfcmap,
-                      FT_UInt32  *acharcode )
-  {
-    BDF_CMap          cmap      = (BDF_CMap)bdfcmap;
-    BDF_encoding_el*  encodings = cmap->encodings;
-    FT_UInt           min, max, mid;
-    FT_UInt32         charcode = *acharcode + 1;
-    FT_UInt           result   = 0;
-
-
-    min = 0;
-    max = cmap->num_encodings;
-
-    while ( min < max )
-    {
-      FT_UInt32  code;
-
-
-      mid  = ( min + max ) >> 1;
-      code = encodings[mid].enc;
-
-      if ( charcode == code )
-      {
-        /* increase glyph index by 1 --              */
-        /* we reserve slot 0 for the undefined glyph */
-        result = encodings[mid].glyph + 1;
-        goto Exit;
-      }
-
-      if ( charcode < code )
-        max = mid;
-      else
-        min = mid + 1;
-    }
-
-    charcode = 0;
-    if ( min < cmap->num_encodings )
-    {
-      charcode = encodings[min].enc;
-      result   = encodings[min].glyph + 1;
-    }
-
-  Exit:
-    *acharcode = charcode;
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_CMap_ClassRec  bdf_cmap_class =
-  {
-    sizeof ( BDF_CMapRec ),
-    bdf_cmap_init,
-    bdf_cmap_done,
-    bdf_cmap_char_index,
-    bdf_cmap_char_next
-  };
-
-
-  static FT_Error
-  bdf_interpret_style( BDF_Face  bdf )
-  {
-    FT_Error         error  = BDF_Err_Ok;
-    FT_Face          face   = FT_FACE( bdf );
-    FT_Memory        memory = face->memory;
-    bdf_font_t*      font   = bdf->bdffont;
-    bdf_property_t*  prop;
-
-    char  *istr = NULL, *bstr = NULL;
-    char  *sstr = NULL, *astr = NULL;
-
-    int  parts = 0, len = 0;
-
-
-    face->style_flags = 0;
-
-    prop = bdf_get_font_property( font, (char *)"SLANT" );
-    if ( prop && prop->format == BDF_ATOM                             &&
-         prop->value.atom                                             &&
-         ( *(prop->value.atom) == 'O' || *(prop->value.atom) == 'o' ||
-           *(prop->value.atom) == 'I' || *(prop->value.atom) == 'i' ) )
-    {
-      face->style_flags |= FT_STYLE_FLAG_ITALIC;
-      istr = ( *(prop->value.atom) == 'O' || *(prop->value.atom) == 'o' )
-               ? (char *)"Oblique"
-               : (char *)"Italic";
-      len += ft_strlen( istr );
-      parts++;
-    }
-
-    prop = bdf_get_font_property( font, (char *)"WEIGHT_NAME" );
-    if ( prop && prop->format == BDF_ATOM                             &&
-         prop->value.atom                                             &&
-         ( *(prop->value.atom) == 'B' || *(prop->value.atom) == 'b' ) )
-    {
-      face->style_flags |= FT_STYLE_FLAG_BOLD;
-      bstr = (char *)"Bold";
-      len += ft_strlen( bstr );
-      parts++;
-    }
-
-    prop = bdf_get_font_property( font, (char *)"SETWIDTH_NAME" );
-    if ( prop && prop->format == BDF_ATOM                              &&
-         prop->value.atom && *(prop->value.atom)                       &&
-         !( *(prop->value.atom) == 'N' || *(prop->value.atom) == 'n' ) )
-    {
-      sstr = (char *)(prop->value.atom);
-      len += ft_strlen( sstr );
-      parts++;
-    }
-
-    prop = bdf_get_font_property( font, (char *)"ADD_STYLE_NAME" );
-    if ( prop && prop->format == BDF_ATOM                              &&
-         prop->value.atom && *(prop->value.atom)                       &&
-         !( *(prop->value.atom) == 'N' || *(prop->value.atom) == 'n' ) )
-    {
-      astr = (char *)(prop->value.atom);
-      len += ft_strlen( astr );
-      parts++;
-    }
-
-    if ( !parts || !len )
-      face->style_name = (char *)"Regular";
-    else
-    {
-      char          *style, *s;
-      unsigned int  i;
-
-
-      if ( FT_ALLOC( style, len + parts ) )
-        return error;
-
-      s = style;
-
-      if ( astr )
-      {
-        ft_strcpy( s, astr );
-        for ( i = 0; i < ft_strlen( astr ); i++, s++ )
-          if ( *s == ' ' )
-            *s = '-';                     /* replace spaces with dashes */
-        *(s++) = ' ';
-      }
-      if ( bstr )
-      {
-        ft_strcpy( s, bstr );
-        s += ft_strlen( bstr );
-        *(s++) = ' ';
-      }
-      if ( istr )
-      {
-        ft_strcpy( s, istr );
-        s += ft_strlen( istr );
-        *(s++) = ' ';
-      }
-      if ( sstr )
-      {
-        ft_strcpy( s, sstr );
-        for ( i = 0; i < ft_strlen( sstr ); i++, s++ )
-          if ( *s == ' ' )
-            *s = '-';                     /* replace spaces with dashes */
-        *(s++) = ' ';
-      }
-      *(--s) = '\0';        /* overwrite last ' ', terminate the string */
-
-      face->style_name = style;                     /* allocated string */
-    }
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  BDF_Face_Done( FT_Face  bdfface )         /* BDF_Face */
-  {
-    BDF_Face   face   = (BDF_Face)bdfface;
-    FT_Memory  memory = FT_FACE_MEMORY( face );
-
-
-    bdf_free_font( face->bdffont );
-
-    FT_FREE( face->en_table );
-
-    FT_FREE( face->charset_encoding );
-    FT_FREE( face->charset_registry );
-    FT_FREE( bdfface->family_name );
-
-    FT_FREE( bdfface->available_sizes );
-
-    FT_FREE( face->bdffont );
-
-    FT_TRACE4(( "BDF_Face_Done: done face\n" ));
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  BDF_Face_Init( FT_Stream      stream,
-                 FT_Face        bdfface,        /* BDF_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    FT_Error       error  = BDF_Err_Ok;
-    BDF_Face       face   = (BDF_Face)bdfface;
-    FT_Memory      memory = FT_FACE_MEMORY( face );
-
-    bdf_font_t*    font;
-    bdf_options_t  options;
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-    FT_UNUSED( face_index );
-
-
-    if ( FT_STREAM_SEEK( 0 ) )
-      goto Exit;
-
-    options.correct_metrics = 1;   /* FZ XXX: options semantics */
-    options.keep_unencoded  = 1;
-    options.keep_comments   = 0;
-    options.font_spacing    = BDF_PROPORTIONAL;
-
-    error = bdf_load_font( stream, memory, &options, &font );
-    if ( error == BDF_Err_Missing_Startfont_Field )
-    {
-      FT_TRACE2(( "[not a valid BDF file]\n" ));
-      goto Fail;
-    }
-    else if ( error )
-      goto Exit;
-
-    /* we have a bdf font: let's construct the face object */
-    face->bdffont = font;
-    {
-      bdf_property_t*  prop = NULL;
-
-
-      FT_TRACE4(( "number of glyphs: %d (%d)\n",
-                  font->glyphs_size,
-                  font->glyphs_used ));
-      FT_TRACE4(( "number of unencoded glyphs: %d (%d)\n",
-                  font->unencoded_size,
-                  font->unencoded_used ));
-
-      bdfface->num_faces  = 1;
-      bdfface->face_index = 0;
-      bdfface->face_flags = FT_FACE_FLAG_FIXED_SIZES |
-                            FT_FACE_FLAG_HORIZONTAL  |
-                            FT_FACE_FLAG_FAST_GLYPHS;
-
-      prop = bdf_get_font_property( font, "SPACING" );
-      if ( prop && prop->format == BDF_ATOM                             &&
-           prop->value.atom                                             &&
-           ( *(prop->value.atom) == 'M' || *(prop->value.atom) == 'm' ||
-             *(prop->value.atom) == 'C' || *(prop->value.atom) == 'c' ) )
-        bdfface->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      /* FZ XXX: TO DO: FT_FACE_FLAGS_VERTICAL   */
-      /* FZ XXX: I need a font to implement this */
-
-      prop = bdf_get_font_property( font, "FAMILY_NAME" );
-      if ( prop && prop->value.atom )
-      {
-        int  l = ft_strlen( prop->value.atom ) + 1;
-
-
-        if ( FT_NEW_ARRAY( bdfface->family_name, l ) )
-          goto Exit;
-        ft_strcpy( bdfface->family_name, prop->value.atom );
-      }
-      else
-        bdfface->family_name = 0;
-
-      if ( ( error = bdf_interpret_style( face ) ) != 0 )
-        goto Exit;
-
-      /* the number of glyphs (with one slot for the undefined glyph */
-      /* at position 0 and all unencoded glyphs)                     */
-      bdfface->num_glyphs = font->glyphs_size + 1;
-
-      bdfface->num_fixed_sizes = 1;
-      if ( FT_NEW_ARRAY( bdfface->available_sizes, 1 ) )
-        goto Exit;
-
-      {
-        FT_Bitmap_Size*  bsize = bdfface->available_sizes;
-        FT_Short         resolution_x = 0, resolution_y = 0;
-
-
-        FT_MEM_ZERO( bsize, sizeof ( FT_Bitmap_Size ) );
-
-        bsize->height = font->font_ascent + font->font_descent;
-
-        prop = bdf_get_font_property( font, "AVERAGE_WIDTH" );
-        if ( prop )
-          bsize->width = (FT_Short)( ( prop->value.int32 + 5 ) / 10 );
-        else
-          bsize->width = bsize->height * 2/3;
-
-        prop = bdf_get_font_property( font, "POINT_SIZE" );
-        if ( prop )
-          /* convert from 722.7 decipoints to 72 points per inch */
-          bsize->size =
-            (FT_Pos)( ( prop->value.int32 * 64 * 7200 + 36135L ) / 72270L );
-
-        prop = bdf_get_font_property( font, "PIXEL_SIZE" );
-        if ( prop )
-          bsize->y_ppem = (FT_Short)prop->value.int32 << 6;
-
-        prop = bdf_get_font_property( font, "RESOLUTION_X" );
-        if ( prop )
-          resolution_x = (FT_Short)prop->value.int32;
-
-        prop = bdf_get_font_property( font, "RESOLUTION_Y" );
-        if ( prop )
-          resolution_y = (FT_Short)prop->value.int32;
-
-        if ( bsize->y_ppem == 0 )
-        {
-          bsize->y_ppem = bsize->size;
-          if ( resolution_y )
-            bsize->y_ppem = bsize->y_ppem * resolution_y / 72;
-        }
-        if ( resolution_x && resolution_y )
-          bsize->x_ppem = bsize->y_ppem * resolution_x / resolution_y;
-        else
-          bsize->x_ppem = bsize->y_ppem;
-      }
-
-      /* encoding table */
-      {
-        bdf_glyph_t*   cur = font->glyphs;
-        unsigned long  n;
-
-
-        if ( FT_NEW_ARRAY( face->en_table, font->glyphs_size ) )
-          goto Exit;
-
-        face->default_glyph = 0;
-        for ( n = 0; n < font->glyphs_size; n++ )
-        {
-          (face->en_table[n]).enc = cur[n].encoding;
-          FT_TRACE4(( "idx %d, val 0x%lX\n", n, cur[n].encoding ));
-          (face->en_table[n]).glyph = (FT_Short)n;
-  
-          if ( cur[n].encoding == font->default_char )
-            face->default_glyph = n;
-        }
-      }
-
-      /* charmaps */
-      {
-        bdf_property_t  *charset_registry = 0, *charset_encoding = 0;
-        FT_Bool          unicode_charmap  = 0;
-
-
-        charset_registry =
-          bdf_get_font_property( font, "CHARSET_REGISTRY" );
-        charset_encoding =
-          bdf_get_font_property( font, "CHARSET_ENCODING" );
-        if ( charset_registry && charset_encoding )
-        {
-          if ( charset_registry->format == BDF_ATOM &&
-               charset_encoding->format == BDF_ATOM &&
-               charset_registry->value.atom         &&
-               charset_encoding->value.atom         )
-          {
-            const char*  s;
-
-
-            if ( FT_NEW_ARRAY( face->charset_encoding,
-                               ft_strlen( charset_encoding->value.atom ) + 1 ) )
-              goto Exit;
-            if ( FT_NEW_ARRAY( face->charset_registry,
-                               ft_strlen( charset_registry->value.atom ) + 1 ) )
-              goto Exit;
-
-            ft_strcpy( face->charset_registry, charset_registry->value.atom );
-            ft_strcpy( face->charset_encoding, charset_encoding->value.atom );
-
-            /* Uh, oh, compare first letters manually to avoid dependency
-               on locales. */
-            s = face->charset_registry;
-            if ( ( s[0] == 'i' || s[0] == 'I' ) &&
-                 ( s[1] == 's' || s[1] == 'S' ) &&
-                 ( s[2] == 'o' || s[2] == 'O' ) )
-            {
-              s += 3;
-              if ( !ft_strcmp( s, "10646" )                      ||
-                   ( !ft_strcmp( s, "8859" ) &&
-                     !ft_strcmp( face->charset_encoding, "1" ) ) )
-              unicode_charmap = 1;
-            }
-
-            {
-              FT_CharMapRec  charmap;
-
-
-              charmap.face        = FT_FACE( face );
-              charmap.encoding    = FT_ENCODING_NONE;
-              charmap.platform_id = 0;
-              charmap.encoding_id = 0;
-
-              if ( unicode_charmap )
-              {
-                charmap.encoding    = FT_ENCODING_UNICODE;
-                charmap.platform_id = 3;
-                charmap.encoding_id = 1;
-              }
-
-              error = FT_CMap_New( &bdf_cmap_class, NULL, &charmap, NULL );
-
-#if 0
-              /* Select default charmap */
-              if ( bdfface->num_charmaps )
-                bdfface->charmap = bdfface->charmaps[0];
-#endif
-            }
-
-            goto Exit;
-          }
-        }
-
-        /* otherwise assume Adobe standard encoding */
-
-        {
-          FT_CharMapRec  charmap;
-
-
-          charmap.face        = FT_FACE( face );
-          charmap.encoding    = FT_ENCODING_ADOBE_STANDARD;
-          charmap.platform_id = 7;
-          charmap.encoding_id = 0;
-
-          error = FT_CMap_New( &bdf_cmap_class, NULL, &charmap, NULL );
-
-          /* Select default charmap */
-          if ( bdfface->num_charmaps )
-            bdfface->charmap = bdfface->charmaps[0];
-        }
-      }
-    }
-
-  Exit:
-    return error;
-
-  Fail:
-    BDF_Face_Done( bdfface );
-    return BDF_Err_Unknown_File_Format;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  BDF_Set_Pixel_Size( FT_Size  size,
-                      FT_UInt  char_width,
-                      FT_UInt  char_height )
-  {
-    BDF_Face  face = (BDF_Face)FT_SIZE_FACE( size );
-    FT_Face   root = FT_FACE( face );
-
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-
-
-    FT_TRACE4(( "rec %d - pres %d\n",
-                size->metrics.y_ppem, root->available_sizes->y_ppem ));
-
-    if ( size->metrics.y_ppem == root->available_sizes->y_ppem >> 6 )
-    {
-      size->metrics.ascender    = face->bdffont->font_ascent << 6;
-      size->metrics.descender   = -face->bdffont->font_descent << 6;
-      size->metrics.height      = ( face->bdffont->font_ascent +
-                                    face->bdffont->font_descent ) << 6;
-      size->metrics.max_advance = face->bdffont->bbx.width << 6;
-
-      return BDF_Err_Ok;
-    }
-    else
-      return BDF_Err_Invalid_Pixel_Size;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  BDF_Set_Point_Size( FT_Size     size,
-                      FT_F26Dot6  char_width,
-                      FT_F26Dot6  char_height,
-                      FT_UInt     horz_resolution,
-                      FT_UInt     vert_resolution )
-  {
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-    FT_UNUSED( horz_resolution );
-    FT_UNUSED( vert_resolution );
-
-    return BDF_Set_Pixel_Size( size, 0, 0 );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  BDF_Glyph_Load( FT_GlyphSlot  slot,
-                  FT_Size       size,
-                  FT_UInt       glyph_index,
-                  FT_Int32      load_flags )
-  {
-    BDF_Face        face   = (BDF_Face)FT_SIZE_FACE( size );
-    FT_Error        error  = BDF_Err_Ok;
-    FT_Bitmap*      bitmap = &slot->bitmap;
-    bdf_glyph_t     glyph;
-    int             bpp    = face->bdffont->bpp;
-    int             i, j, count;
-    unsigned char   *p, *pp;
-
-    FT_UNUSED( load_flags );
-
-
-    if ( !face )
-    {
-      error = BDF_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* index 0 is the undefined glyph */
-    if ( glyph_index == 0 )
-      glyph_index = face->default_glyph;
-    else
-      glyph_index--;
-
-    /* slot, bitmap => freetype, glyph => bdflib */
-    glyph = face->bdffont->glyphs[glyph_index];
-
-    bitmap->rows  = glyph.bbx.height;
-    bitmap->width = glyph.bbx.width;
-
-    if ( bpp == 1 )
-    {
-      bitmap->pixel_mode = FT_PIXEL_MODE_MONO;
-      bitmap->pitch      = glyph.bpr;
-
-     /* note: we don't allocate a new array to hold the bitmap, we */
-     /*       can simply point to it                               */
-      ft_glyphslot_set_bitmap( slot, glyph.bitmap );
-    }
-    else
-    {
-      /* blow up pixmap to have 8 bits per pixel */
-      bitmap->pixel_mode = FT_PIXEL_MODE_GRAY;
-      bitmap->pitch      = bitmap->width;
-
-      error = ft_glyphslot_alloc_bitmap( slot, bitmap->rows * bitmap->pitch );
-      if ( error )
-        goto Exit;
-
-      switch ( bpp )
-      {
-      case 2:
-        bitmap->num_grays = 4;
-
-        count = 0;
-        p     = glyph.bitmap;
-
-        for ( i = 0; i < bitmap->rows; i++ )
-        {
-          pp = p;
-
-          /* get the full bytes */
-          for ( j = 0; j < ( bitmap->width >> 2 ); j++ )
-          {
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0xC0 ) >> 6 );
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0x30 ) >> 4 );
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0x0C ) >> 2 );
-            bitmap->buffer[count++] = (FT_Byte)(   *pp & 0x03 );
-
-            pp++;
-          }
-
-          /* get remaining pixels (if any) */
-          switch ( bitmap->width & 3 )
-          {
-          case 3:
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0xC0 ) >> 6 );
-            /* fall through */
-          case 2:
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0x30 ) >> 4 );
-            /* fall through */
-          case 1:
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0x0C ) >> 2 );
-            /* fall through */
-          case 0:
-            break;
-          }
-
-          p += glyph.bpr;
-        }
-        break;
-
-      case 4:
-        bitmap->num_grays = 16;
-
-        count = 0;
-        p     = glyph.bitmap;
-
-        for ( i = 0; i < bitmap->rows; i++ )
-        {
-          pp = p;
-
-          /* get the full bytes */
-          for ( j = 0; j < ( bitmap->width >> 1 ); j++ )
-          {
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0xF0 ) >> 4 );
-            bitmap->buffer[count++] = (FT_Byte)(   *pp & 0x0F );
-
-            pp++;
-          }
-
-          /* get remaining pixel (if any) */
-          switch ( bitmap->width & 1 )
-          {
-          case 1:
-            bitmap->buffer[count++] = (FT_Byte)( ( *pp & 0xF0 ) >> 4 );
-            /* fall through */
-          case 0:
-            break;
-          }
-
-          p += glyph.bpr;
-        }
-        break;
-
-      case 8:
-        bitmap->num_grays = 256;
-
-        FT_MEM_COPY( bitmap->buffer, glyph.bitmap,
-                     bitmap->rows * bitmap->pitch );
-        break;
-      }
-    }
-
-    slot->bitmap_left = glyph.bbx.x_offset;
-    slot->bitmap_top  = glyph.bbx.ascent;
-
-    /* FZ XXX: TODO: vertical metrics */
-    slot->metrics.horiAdvance  = glyph.dwidth << 6;
-    slot->metrics.horiBearingX = glyph.bbx.x_offset << 6;
-    slot->metrics.horiBearingY = glyph.bbx.ascent << 6;
-    slot->metrics.width        = bitmap->width << 6;
-    slot->metrics.height       = bitmap->rows << 6;
-
-    slot->linearHoriAdvance = (FT_Fixed)glyph.dwidth << 16;
-    slot->format            = FT_GLYPH_FORMAT_BITMAP;
-
-  Exit:
-    return error;
-  }
-
-
- /*
-  *
-  *  BDF SERVICE
-  *
-  */
-
-  static FT_Error
-  bdf_get_bdf_property( BDF_Face          face,
-                        const char*       prop_name,
-                        BDF_PropertyRec  *aproperty )
-  {
-    bdf_property_t*  prop;
-
-
-    FT_ASSERT( face && face->bdffont );
-
-    prop = bdf_get_font_property( face->bdffont, prop_name );
-    if ( prop )
-    {
-      switch ( prop->format )
-      {
-      case BDF_ATOM:
-        aproperty->type   = BDF_PROPERTY_TYPE_ATOM;
-        aproperty->u.atom = prop->value.atom;
-        break;
-
-      case BDF_INTEGER:
-        aproperty->type      = BDF_PROPERTY_TYPE_INTEGER;
-        aproperty->u.integer = prop->value.int32;
-        break;
-
-      case BDF_CARDINAL:
-        aproperty->type       = BDF_PROPERTY_TYPE_CARDINAL;
-        aproperty->u.cardinal = prop->value.card32;
-        break;
-
-      default:
-        goto Fail;
-      }
-      return 0;
-    }
-
-  Fail:
-    return BDF_Err_Invalid_Argument;
-  }
-
-
-  static FT_Error
-  bdf_get_charset_id( BDF_Face      face,
-                      const char*  *acharset_encoding,
-                      const char*  *acharset_registry )
-  {
-    *acharset_encoding = face->charset_encoding;
-    *acharset_registry = face->charset_registry;
-
-    return 0;
-  }
-
-
-  static const FT_Service_BDFRec  bdf_service_bdf =
-  {
-    (FT_BDF_GetCharsetIdFunc)bdf_get_charset_id,
-    (FT_BDF_GetPropertyFunc) bdf_get_bdf_property
-  };
-
-
- /*
-  *
-  *  SERVICES LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  bdf_services[] =
-  {
-    { FT_SERVICE_ID_BDF,       &bdf_service_bdf },
-    { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_BDF },
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  bdf_driver_requester( FT_Module    module,
-                        const char*  name )
-  {
-    FT_UNUSED( module );
-
-    return ft_service_list_lookup( bdf_services, name );
-  }
-
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  bdf_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER         |
-      FT_MODULE_DRIVER_NO_OUTLINES,
-      sizeof ( FT_DriverRec ),
-
-      "bdf",
-      0x10000L,
-      0x20000L,
-
-      0,
-
-      (FT_Module_Constructor)0,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  bdf_driver_requester
-    },
-
-    sizeof ( BDF_FaceRec ),
-    sizeof ( FT_SizeRec ),
-    sizeof ( FT_GlyphSlotRec ),
-
-    BDF_Face_Init,
-    BDF_Face_Done,
-    0,                          /* FT_Size_InitFunc */
-    0,                          /* FT_Size_DoneFunc */
-    0,                          /* FT_Slot_InitFunc */
-    0,                          /* FT_Slot_DoneFunc */
-
-    BDF_Set_Point_Size,
-    BDF_Set_Pixel_Size,
-
-    BDF_Glyph_Load,
-
-    0,                          /* FT_Face_GetKerningFunc   */
-    0,                          /* FT_Face_AttachFunc       */
-    0,                          /* FT_Face_GetAdvancesFunc  */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/bdf/bdfdrivr.h b/nx-X11/extras/freetype2/src/bdf/bdfdrivr.h
deleted file mode 100644
index 86f40ee4a..000000000
--- a/nx-X11/extras/freetype2/src/bdf/bdfdrivr.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*  bdfdrivr.h
-
-    FreeType font driver for bdf fonts
-
-  Copyright (C) 2001, 2002, 2003, 2004 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#ifndef __BDFDRIVR_H__
-#define __BDFDRIVR_H__
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-#include "bdf.h"
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct  BDF_encoding_el_
-  {
-    FT_ULong   enc;
-    FT_UShort  glyph;
-
-  } BDF_encoding_el;
-
-
-  typedef struct  BDF_FaceRec_
-  {
-    FT_FaceRec        root;
-
-    char*             charset_encoding;
-    char*             charset_registry;
-
-    bdf_font_t*       bdffont;
-
-    BDF_encoding_el*  en_table;
-
-    FT_CharMap        charmap_handle;
-    FT_CharMapRec     charmap;  /* a single charmap per face */
-
-    FT_UInt           default_glyph;
-
-  } BDF_FaceRec, *BDF_Face;
-
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  bdf_driver_class;
-
-
-FT_END_HEADER
-
-
-#endif /* __BDFDRIVR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/bdf/bdferror.h b/nx-X11/extras/freetype2/src/bdf/bdferror.h
deleted file mode 100644
index b27fa333b..000000000
--- a/nx-X11/extras/freetype2/src/bdf/bdferror.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2001, 2002 Francesco Zappa Nardelli
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
- * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the BDF error enumeration constants.      */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __BDFERROR_H__
-#define __BDFERROR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  BDF_Err_
-#define FT_ERR_BASE    FT_Mod_Err_BDF
-
-#include FT_ERRORS_H
-
-#endif /* __BDFERROR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/bdf/bdflib.c b/nx-X11/extras/freetype2/src/bdf/bdflib.c
deleted file mode 100644
index 825385e1d..000000000
--- a/nx-X11/extras/freetype2/src/bdf/bdflib.c
+++ /dev/null
@@ -1,2435 +0,0 @@
-/*
- * Copyright 2000 Computing Research Labs, New Mexico State University
- * Copyright 2001, 2002, 2003, 2004 Francesco Zappa Nardelli
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
- * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  This file is based on bdf.c,v 1.22 2000/03/16 20:08:50               */
-  /*                                                                       */
-  /*  taken from Mark Leisher's xmbdfed package                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-
-#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
-
-#include "bdf.h"
-#include "bdferror.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_bdflib
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Default BDF font options.                                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static const bdf_options_t  _bdf_opts =
-  {
-    1,                /* Correct metrics.               */
-    1,                /* Preserve unencoded glyphs.     */
-    0,                /* Preserve comments.             */
-    BDF_PROPORTIONAL  /* Default spacing.               */
-  };
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Builtin BDF font properties.                                          */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /* List of most properties that might appear in a font.  Doesn't include */
-  /* the RAW_* and AXIS_* properties in X11R6 polymorphic fonts.           */
-
-  static const bdf_property_t  _bdf_properties[] =
-  {
-    { (char *)"ADD_STYLE_NAME",          BDF_ATOM,     1, { 0 } },
-    { (char *)"AVERAGE_WIDTH",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"AVG_CAPITAL_WIDTH",       BDF_INTEGER,  1, { 0 } },
-    { (char *)"AVG_LOWERCASE_WIDTH",     BDF_INTEGER,  1, { 0 } },
-    { (char *)"CAP_HEIGHT",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"CHARSET_COLLECTIONS",     BDF_ATOM,     1, { 0 } },
-    { (char *)"CHARSET_ENCODING",        BDF_ATOM,     1, { 0 } },
-    { (char *)"CHARSET_REGISTRY",        BDF_ATOM,     1, { 0 } },
-    { (char *)"COMMENT",                 BDF_ATOM,     1, { 0 } },
-    { (char *)"COPYRIGHT",               BDF_ATOM,     1, { 0 } },
-    { (char *)"DEFAULT_CHAR",            BDF_CARDINAL, 1, { 0 } },
-    { (char *)"DESTINATION",             BDF_CARDINAL, 1, { 0 } },
-    { (char *)"DEVICE_FONT_NAME",        BDF_ATOM,     1, { 0 } },
-    { (char *)"END_SPACE",               BDF_INTEGER,  1, { 0 } },
-    { (char *)"FACE_NAME",               BDF_ATOM,     1, { 0 } },
-    { (char *)"FAMILY_NAME",             BDF_ATOM,     1, { 0 } },
-    { (char *)"FIGURE_WIDTH",            BDF_INTEGER,  1, { 0 } },
-    { (char *)"FONT",                    BDF_ATOM,     1, { 0 } },
-    { (char *)"FONTNAME_REGISTRY",       BDF_ATOM,     1, { 0 } },
-    { (char *)"FONT_ASCENT",             BDF_INTEGER,  1, { 0 } },
-    { (char *)"FONT_DESCENT",            BDF_INTEGER,  1, { 0 } },
-    { (char *)"FOUNDRY",                 BDF_ATOM,     1, { 0 } },
-    { (char *)"FULL_NAME",               BDF_ATOM,     1, { 0 } },
-    { (char *)"ITALIC_ANGLE",            BDF_INTEGER,  1, { 0 } },
-    { (char *)"MAX_SPACE",               BDF_INTEGER,  1, { 0 } },
-    { (char *)"MIN_SPACE",               BDF_INTEGER,  1, { 0 } },
-    { (char *)"NORM_SPACE",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"NOTICE",                  BDF_ATOM,     1, { 0 } },
-    { (char *)"PIXEL_SIZE",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"POINT_SIZE",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"QUAD_WIDTH",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_ASCENT",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_AVERAGE_WIDTH",       BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_AVG_CAPITAL_WIDTH",   BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_AVG_LOWERCASE_WIDTH", BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_CAP_HEIGHT",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_DESCENT",             BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_END_SPACE",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_FIGURE_WIDTH",        BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_MAX_SPACE",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_MIN_SPACE",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_NORM_SPACE",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_PIXEL_SIZE",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_POINT_SIZE",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_PIXELSIZE",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_POINTSIZE",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_QUAD_WIDTH",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SMALL_CAP_SIZE",      BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_STRIKEOUT_ASCENT",    BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_STRIKEOUT_DESCENT",   BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SUBSCRIPT_SIZE",      BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SUBSCRIPT_X",         BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SUBSCRIPT_Y",         BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SUPERSCRIPT_SIZE",    BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SUPERSCRIPT_X",       BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_SUPERSCRIPT_Y",       BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_UNDERLINE_POSITION",  BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_UNDERLINE_THICKNESS", BDF_INTEGER,  1, { 0 } },
-    { (char *)"RAW_X_HEIGHT",            BDF_INTEGER,  1, { 0 } },
-    { (char *)"RELATIVE_SETWIDTH",       BDF_CARDINAL, 1, { 0 } },
-    { (char *)"RELATIVE_WEIGHT",         BDF_CARDINAL, 1, { 0 } },
-    { (char *)"RESOLUTION",              BDF_INTEGER,  1, { 0 } },
-    { (char *)"RESOLUTION_X",            BDF_CARDINAL, 1, { 0 } },
-    { (char *)"RESOLUTION_Y",            BDF_CARDINAL, 1, { 0 } },
-    { (char *)"SETWIDTH_NAME",           BDF_ATOM,     1, { 0 } },
-    { (char *)"SLANT",                   BDF_ATOM,     1, { 0 } },
-    { (char *)"SMALL_CAP_SIZE",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"SPACING",                 BDF_ATOM,     1, { 0 } },
-    { (char *)"STRIKEOUT_ASCENT",        BDF_INTEGER,  1, { 0 } },
-    { (char *)"STRIKEOUT_DESCENT",       BDF_INTEGER,  1, { 0 } },
-    { (char *)"SUBSCRIPT_SIZE",          BDF_INTEGER,  1, { 0 } },
-    { (char *)"SUBSCRIPT_X",             BDF_INTEGER,  1, { 0 } },
-    { (char *)"SUBSCRIPT_Y",             BDF_INTEGER,  1, { 0 } },
-    { (char *)"SUPERSCRIPT_SIZE",        BDF_INTEGER,  1, { 0 } },
-    { (char *)"SUPERSCRIPT_X",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"SUPERSCRIPT_Y",           BDF_INTEGER,  1, { 0 } },
-    { (char *)"UNDERLINE_POSITION",      BDF_INTEGER,  1, { 0 } },
-    { (char *)"UNDERLINE_THICKNESS",     BDF_INTEGER,  1, { 0 } },
-    { (char *)"WEIGHT",                  BDF_CARDINAL, 1, { 0 } },
-    { (char *)"WEIGHT_NAME",             BDF_ATOM,     1, { 0 } },
-    { (char *)"X_HEIGHT",                BDF_INTEGER,  1, { 0 } },
-    { (char *)"_MULE_BASELINE_OFFSET",   BDF_INTEGER,  1, { 0 } },
-    { (char *)"_MULE_RELATIVE_COMPOSE",  BDF_INTEGER,  1, { 0 } },
-  };
-
-  static const unsigned long
-  _num_bdf_properties = sizeof ( _bdf_properties ) /
-                        sizeof ( _bdf_properties[0] );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Hash table utilities for the properties.                              */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /* XXX: Replace this with FreeType's hash functions */
-
-
-#define INITIAL_HT_SIZE  241
-
-  typedef void
-  (*hash_free_func)( hashnode  node );
-
-  static hashnode*
-  hash_bucket( const char*  key,
-               hashtable*   ht )
-  {
-    const char*    kp  = key;
-    unsigned long  res = 0;
-    hashnode*      bp  = ht->table, *ndp;
-
-
-    /* Mocklisp hash function. */
-    while ( *kp )
-      res = ( res << 5 ) - res + *kp++;
-
-    ndp = bp + ( res % ht->size );
-    while ( *ndp )
-    {
-      kp = (*ndp)->key;
-      if ( kp[0] == key[0] && ft_strcmp( kp, key ) == 0 )
-        break;
-      ndp--;
-      if ( ndp < bp )
-        ndp = bp + ( ht->size - 1 );
-    }
-
-    return ndp;
-  }
-
-
-  static FT_Error
-  hash_rehash( hashtable*  ht,
-               FT_Memory   memory )
-  {
-    hashnode*  obp = ht->table, *bp, *nbp;
-    int        i, sz = ht->size;
-    FT_Error   error = BDF_Err_Ok;
-
-
-    ht->size <<= 1;
-    ht->limit  = ht->size / 3;
-
-    if ( FT_NEW_ARRAY( ht->table, ht->size ) )
-      goto Exit;
-    FT_MEM_ZERO( ht->table, sizeof ( hashnode ) * ht->size );
-
-    for ( i = 0, bp = obp; i < sz; i++, bp++ )
-    {
-      if ( *bp )
-      {
-        nbp = hash_bucket( (*bp)->key, ht );
-        *nbp = *bp;
-      }
-    }
-    FT_FREE( obp );
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  hash_init( hashtable*  ht,
-             FT_Memory   memory )
-  {
-    int       sz = INITIAL_HT_SIZE;
-    FT_Error  error = BDF_Err_Ok;
-
-
-    ht->size  = sz;
-    ht->limit = sz / 3;
-    ht->used  = 0;
-
-    if ( FT_NEW_ARRAY( ht->table, sz ) )
-      goto Exit;
-    FT_MEM_ZERO( ht->table, sizeof ( hashnode ) * sz );
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  hash_free( hashtable*  ht,
-             FT_Memory   memory )
-  {
-    if ( ht != 0 )
-    {
-      int        i, sz = ht->size;
-      hashnode*  bp = ht->table;
-
-
-      for ( i = 0; i < sz; i++, bp++ )
-        FT_FREE( *bp );
-
-      FT_FREE( ht->table );
-    }
-  }
-
-
-  static FT_Error
-  hash_insert( char*       key,
-               void*       data,
-               hashtable*  ht,
-               FT_Memory   memory )
-  {
-    hashnode  nn, *bp = hash_bucket( key, ht );
-    FT_Error  error = BDF_Err_Ok;
-
-
-    nn = *bp;
-    if ( !nn )
-    {
-      if ( FT_NEW( nn ) )
-        goto Exit;
-      *bp = nn;
-
-      nn->key  = key;
-      nn->data = data;
-
-      if ( ht->used >= ht->limit )
-      {
-        error = hash_rehash( ht, memory );
-        if ( error )
-          goto Exit;
-      }
-      ht->used++;
-    }
-    else
-      nn->data = data;
-
-  Exit:
-    return error;
-  }
-
-
-  static hashnode
-  hash_lookup( const char* key,
-               hashtable*  ht )
-  {
-    hashnode *np = hash_bucket( key, ht );
-
-
-    return *np;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Utility types and functions.                                          */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* Function type for parsing lines of a BDF font. */
-
-  typedef FT_Error
-  (*_bdf_line_func_t)( char*          line,
-                       unsigned long  linelen,
-                       unsigned long  lineno,
-                       void*          call_data,
-                       void*          client_data );
-
-
-  /* List structure for splitting lines into fields. */
-
-  typedef struct  _bdf_list_t_
-  {
-    char**         field;
-    unsigned long  size;
-    unsigned long  used;
-
-  } _bdf_list_t;
-
-
-  /* Structure used while loading BDF fonts. */
-
-  typedef struct  _bdf_parse_t_
-  {
-    unsigned long   flags;
-    unsigned long   cnt;
-    unsigned long   row;
-
-    short           minlb;
-    short           maxlb;
-    short           maxrb;
-    short           maxas;
-    short           maxds;
-
-    short           rbearing;
-
-    char*           glyph_name;
-    long            glyph_enc;
-
-    bdf_font_t*     font;
-    bdf_options_t*  opts;
-
-    unsigned long   have[2048];
-    _bdf_list_t     list;
-
-    FT_Memory       memory;
-
-  } _bdf_parse_t;
-
-
-#define setsbit( m, cc )  ( m[(cc) >> 3] |= (FT_Byte)( 1 << ( (cc) & 7 ) ) )
-#define sbitset( m, cc )  ( m[(cc) >> 3]  & ( 1 << ( (cc) & 7 ) ) )
-
-
-  /* An empty string for empty fields. */
-
-  static const char  empty[1] = { 0 };      /* XXX eliminate this */
-
-
-  /* Assume the line is NULL-terminated and that the `list' parameter */
-  /* was initialized the first time it was used.                      */
-
-  static FT_Error
-  _bdf_split( char*          separators,
-              char*          line,
-              unsigned long  linelen,
-              _bdf_list_t*   list,
-              FT_Memory      memory )
-  {
-    int       mult, final_empty;
-    char      *sp, *ep, *end;
-    char      seps[32];
-    FT_Error  error = BDF_Err_Ok;
-
-
-    /* Initialize the list. */
-    list->used = 0;
-
-    /* If the line is empty, then simply return. */
-    if ( linelen == 0 || line[0] == 0 )
-      goto Exit;
-
-    /* In the original code, if the `separators' parameter is NULL or */
-    /* empty, the list is split into individual bytes.  We don't need */
-    /* this, so an error is signaled.                                 */
-    if ( separators == 0 || *separators == 0 )
-    {
-      error = BDF_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* Prepare the separator bitmap. */
-    FT_MEM_ZERO( seps, 32 );
-
-    /* If the very last character of the separator string is a plus, then */
-    /* set the `mult' flag to indicate that multiple separators should be */
-    /* collapsed into one.                                                */
-    for ( mult = 0, sp = separators; sp && *sp; sp++ )
-    {
-      if ( *sp == '+' && *( sp + 1 ) == 0 )
-        mult = 1;
-      else
-        setsbit( seps, *sp );
-    }
-
-    /* Break the line up into fields. */
-    for ( final_empty = 0, sp = ep = line, end = sp + linelen;
-          sp < end && *sp; )
-    {
-      /* Collect everything that is not a separator. */
-      for ( ; *ep && !sbitset( seps, *ep ); ep++ )
-        ;
-
-      /* Resize the list if necessary. */
-      if ( list->used == list->size )
-      {
-        if ( list->size == 0 )
-        {
-          if ( FT_NEW_ARRAY( list->field, 5 ) )
-            goto Exit;
-        }
-        else
-        {
-          if ( FT_RENEW_ARRAY ( list->field ,
-                                list->size,
-                                list->size + 5 ) )
-            goto Exit;
-        }
-
-        list->size += 5;
-      }
-
-      /* Assign the field appropriately. */
-      list->field[list->used++] = ( ep > sp ) ? sp : (char*)empty;
-
-      sp = ep;
-
-      if ( mult )
-      {
-        /* If multiple separators should be collapsed, do it now by */
-        /* setting all the separator characters to 0.               */
-        for ( ; *ep && sbitset( seps, *ep ); ep++ )
-          *ep = 0;
-      }
-      else if ( *ep != 0 )
-        /* Don't collapse multiple separators by making them 0, so just */
-        /* make the one encountered 0.                                  */
-        *ep++ = 0;
-
-      final_empty = ( ep > sp && *ep == 0 );
-      sp = ep;
-    }
-
-    /* Finally, NULL-terminate the list. */
-    if ( list->used + final_empty + 1 >= list->size )
-    {
-      if ( list->used == list->size )
-      {
-        if ( list->size == 0 )
-        {
-          if ( FT_NEW_ARRAY( list->field, 5 ) )
-            goto Exit;
-        }
-        else
-        {
-          if ( FT_RENEW_ARRAY( list->field,
-                               list->size,
-                               list->size + 5 ) )
-            goto Exit;
-        }
-
-        list->size += 5;
-      }
-    }
-
-    if ( final_empty )
-      list->field[list->used++] = (char*)empty;
-
-    if ( list->used == list->size )
-    {
-      if ( list->size == 0 )
-      {
-        if ( FT_NEW_ARRAY( list->field, 5 ) )
-          goto Exit;
-      }
-      else
-      {
-        if ( FT_RENEW_ARRAY( list->field,
-                             list->size,
-                             list->size + 5 ) )
-          goto Exit;
-      }
-
-      list->size += 5;
-    }
-
-    list->field[list->used] = 0;
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  _bdf_shift( unsigned long  n,
-              _bdf_list_t*   list )
-  {
-    unsigned long  i, u;
-
-
-    if ( list == 0 || list->used == 0 || n == 0 )
-      return;
-
-    if ( n >= list->used )
-    {
-      list->used = 0;
-      return;
-    }
-
-    for ( u = n, i = 0; u < list->used; i++, u++ )
-      list->field[i] = list->field[u];
-    list->used -= n;
-  }
-
-
-  static char *
-  _bdf_join( int             c,
-             unsigned long*  len,
-             _bdf_list_t*    list )
-  {
-    unsigned long  i, j;
-    char           *fp, *dp;
-
-
-    if ( list == 0 || list->used == 0 )
-      return 0;
-
-    *len = 0;
-
-    dp = list->field[0];
-    for ( i = j = 0; i < list->used; i++ )
-    {
-      fp = list->field[i];
-      while ( *fp )
-        dp[j++] = *fp++;
-
-      if ( i + 1 < list->used )
-        dp[j++] = (char)c;
-    }
-    dp[j] = 0;
-
-    *len = j;
-    return dp;
-  }
-
-
-  /* High speed file reader that passes each line to a callback. */
-  static FT_Error
-  bdf_internal_readstream( FT_Stream  stream,
-                           char*      buffer,
-                           int        count,
-                           int       *read_bytes )
-  {
-    int            rbytes;
-    unsigned long  pos   = stream->pos;
-    FT_Error       error = BDF_Err_Ok;
-
-
-    if ( pos > stream->size )
-    {
-      FT_ERROR(( "bdf_internal_readstream:" ));
-      FT_ERROR(( " invalid i/o; pos = 0x%lx, size = 0x%lx\n",
-                 pos, stream->size ));
-      error = BDF_Err_Invalid_Stream_Operation;
-      goto Exit;
-    }
-
-    if ( stream->read )
-      rbytes = stream->read( stream, pos,
-                             (unsigned char *)buffer, count );
-    else
-    {
-      rbytes = stream->size - pos;
-      if ( rbytes > count )
-        rbytes = count;
-
-      FT_MEM_COPY( buffer, stream->base + pos, rbytes );
-    }
-
-    stream->pos = pos + rbytes;
-
-    *read_bytes = rbytes;
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  _bdf_readstream( FT_Stream         stream,
-                   _bdf_line_func_t  callback,
-                   void*             client_data,
-                   unsigned long    *lno )
-  {
-    _bdf_line_func_t  cb;
-    unsigned long     lineno;
-    int               n, done, refill, bytes, hold;
-    char              *ls, *le, *pp, *pe, *hp;
-    char              *buf = 0;
-    FT_Memory         memory = stream->memory;
-    FT_Error          error = BDF_Err_Ok;
-
-
-    if ( callback == 0 )
-    {
-      error = BDF_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    if ( FT_NEW_ARRAY( buf, 65536L ) )
-      goto Exit;
-
-    cb     = callback;
-    lineno = 1;
-    buf[0] = 0;
-
-    done = 0;
-    pp = ls = le = buf;
-
-    bytes = 65536L;
-
-    while ( !done )
-    {
-      error = bdf_internal_readstream( stream, pp, bytes, &n );
-      if ( error )
-        goto Exit;
-
-      if ( n == 0 )
-        break;
-
-      /* Determine the new end of the buffer pages. */
-      pe = pp + n;
-
-      for ( refill = 0; done == 0 && refill == 0; )
-      {
-        while ( le < pe && *le != '\n' && *le != '\r' )
-          le++;
-
-        if ( le == pe )
-        {
-          /* Hit the end of the last page in the buffer.  Need to find */
-          /* out how many pages to shift and how many pages need to be */
-          /* read in.  Adjust the line start and end pointers down to  */
-          /* point to the right places in the pages.                   */
-
-          pp  = buf + ( ( ( ls - buf ) >> 13 ) << 13 );
-          n   = pp - buf;
-          ls -= n;
-          le -= n;
-          n   = pe - pp;
-
-          FT_MEM_MOVE( buf, pp, n );
-
-          pp     = buf + n;
-          bytes  = 65536L - n;
-          refill = 1;
-        }
-        else
-        {
-          /* Temporarily NULL-terminate the line. */
-          hp   = le;
-          hold = *le;
-          *le  = 0;
-
-          /* XXX: Use encoding independent value for 0x1a */
-          if ( *ls != '#' && *ls != 0x1a                          &&
-               le > ls                                            &&
-               ( error = (*cb)( ls, le - ls, lineno, (void *)&cb,
-                                client_data ) ) != BDF_Err_Ok     )
-            done = 1;
-          else
-          {
-            ls = ++le;
-            /* Handle the case of DOS crlf sequences. */
-            if ( le < pe && hold == '\n' && *le =='\r' )
-              ls = ++le;
-          }
-
-          /* Increment the line number. */
-          lineno++;
-
-          /* Restore the character at the end of the line. */
-          *hp = (char)hold;
-        }
-      }
-    }
-
-    *lno             = lineno;
-
-  Exit:
-    FT_FREE( buf );
-    return error;
-  }
-
-
-  /* XXX: make this work with EBCDIC also */
-
-  static const unsigned char  a2i[128] =
-  {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-  };
-
-  static const unsigned char  odigits[32] =
-  {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  };
-
-  static const unsigned char  ddigits[32] =
-  {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  };
-
-  static const unsigned char  hdigits[32] =
-  {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03,
-    0x7e, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-  };
-
-
-#define isdigok( m, d )  (m[(d) >> 3] & ( 1 << ( (d) & 7 ) ) )
-
-
-  /* Routine to convert an ASCII string into an unsigned long integer. */
-  static unsigned long
-  _bdf_atoul( char*   s,
-              char**  end,
-              int     base )
-  {
-    unsigned long         v;
-    const unsigned char*  dmap;
-
-
-    if ( s == 0 || *s == 0 )
-      return 0;
-
-    /* Make sure the radix is something recognizable.  Default to 10. */
-    switch ( base )
-    {
-    case 8:
-      dmap = odigits;
-      break;
-    case 16:
-      dmap = hdigits;
-      break;
-    default:
-      base = 10;
-      dmap = ddigits;
-      break;
-    }
-
-    /* Check for the special hex prefix. */
-    if ( *s == '0'                                  &&
-         ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) )
-    {
-      base = 16;
-      dmap = hdigits;
-      s   += 2;
-    }
-
-    for ( v = 0; isdigok( dmap, *s ); s++ )
-      v = v * base + a2i[(int)*s];
-
-    if ( end != 0 )
-      *end = s;
-
-    return v;
-  }
-
-
-  /* Routine to convert an ASCII string into an signed long integer. */
-  static long
-  _bdf_atol( char*   s,
-             char**  end,
-             int     base )
-  {
-    long                  v, neg;
-    const unsigned char*  dmap;
-
-
-    if ( s == 0 || *s == 0 )
-      return 0;
-
-    /* Make sure the radix is something recognizable.  Default to 10. */
-    switch ( base )
-    {
-    case 8:
-      dmap = odigits;
-      break;
-    case 16:
-      dmap = hdigits;
-      break;
-    default:
-      base = 10;
-      dmap = ddigits;
-      break;
-    }
-
-    /* Check for a minus sign. */
-    neg = 0;
-    if ( *s == '-' )
-    {
-      s++;
-      neg = 1;
-    }
-
-    /* Check for the special hex prefix. */
-    if ( *s == '0'                                  &&
-         ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) )
-    {
-      base = 16;
-      dmap = hdigits;
-      s   += 2;
-    }
-
-    for ( v = 0; isdigok( dmap, *s ); s++ )
-      v = v * base + a2i[(int)*s];
-
-    if ( end != 0 )
-      *end = s;
-
-    return ( !neg ) ? v : -v;
-  }
-
-
-  /* Routine to convert an ASCII string into an signed short integer. */
-  static short
-  _bdf_atos( char*   s,
-             char**  end,
-             int     base )
-  {
-    short                 v, neg;
-    const unsigned char*  dmap;
-
-
-    if ( s == 0 || *s == 0 )
-      return 0;
-
-    /* Make sure the radix is something recognizable.  Default to 10. */
-    switch ( base )
-    {
-    case 8:
-      dmap = odigits;
-      break;
-    case 16:
-      dmap = hdigits;
-      break;
-    default:
-      base = 10;
-      dmap = ddigits;
-      break;
-    }
-
-    /* Check for a minus. */
-    neg = 0;
-    if ( *s == '-' )
-    {
-      s++;
-      neg = 1;
-    }
-
-    /* Check for the special hex prefix. */
-    if ( *s == '0'                                  &&
-         ( *( s + 1 ) == 'x' || *( s + 1 ) == 'X' ) )
-    {
-      base = 16;
-      dmap = hdigits;
-      s   += 2;
-    }
-
-    for ( v = 0; isdigok( dmap, *s ); s++ )
-      v = (short)( v * base + a2i[(int)*s] );
-
-    if ( end != 0 )
-      *end = s;
-
-    return (short)( ( !neg ) ? v : -v );
-  }
-
-
-  /* Routine to compare two glyphs by encoding so they can be sorted. */
-  static int
-  by_encoding( const void*  a,
-               const void*  b )
-  {
-    bdf_glyph_t  *c1, *c2;
-
-
-    c1 = (bdf_glyph_t *)a;
-    c2 = (bdf_glyph_t *)b;
-
-    if ( c1->encoding < c2->encoding )
-      return -1;
-    else if ( c1->encoding > c2->encoding )
-      return 1;
-
-    return 0;
-  }
-
-
-  static FT_Error
-  bdf_create_property( char*        name,
-                       int          format,
-                       bdf_font_t*  font )
-  {
-    unsigned long    n;
-    bdf_property_t*  p;
-    FT_Memory        memory = font->memory;
-    FT_Error         error = BDF_Err_Ok;
-
-
-    /* First check to see if the property has      */
-    /* already been added or not.  If it has, then */
-    /* simply ignore it.                           */
-    if ( hash_lookup( name, &(font->proptbl) ) )
-      goto Exit;
-
-    if ( font->nuser_props == 0 )
-    {
-      if ( FT_NEW_ARRAY( font->user_props, 1 ) )
-        goto Exit;
-    }
-    else
-    {
-      if ( FT_RENEW_ARRAY( font->user_props,
-                           font->nuser_props,
-                           font->nuser_props + 1 ) )
-        goto Exit;
-    }
-
-    p = font->user_props + font->nuser_props;
-    FT_MEM_ZERO( p, sizeof ( bdf_property_t ) );
-
-    n = (unsigned long)( ft_strlen( name ) + 1 );
-    if ( FT_NEW_ARRAY( p->name, n ) )
-      goto Exit;
-
-    FT_MEM_COPY( (char *)p->name, name, n );
-
-    p->format  = format;
-    p->builtin = 0;
-
-    n = _num_bdf_properties + font->nuser_props;
-
-    error = hash_insert( p->name, (void *)n, &(font->proptbl), memory );
-    if ( error )
-      goto Exit;
-
-    font->nuser_props++;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( bdf_property_t * )
-  bdf_get_property( char*        name,
-                    bdf_font_t*  font )
-  {
-    hashnode       hn;
-    unsigned long  propid;
-
-
-    if ( name == 0 || *name == 0 )
-      return 0;
-
-    if ( ( hn = hash_lookup( name, &(font->proptbl) ) ) == 0 )
-      return 0;
-
-    propid = (unsigned long)hn->data;
-    if ( propid >= _num_bdf_properties )
-      return font->user_props + ( propid - _num_bdf_properties );
-
-    return (bdf_property_t*)_bdf_properties + propid;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* BDF font file parsing flags and functions.                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* Parse flags. */
-
-#define _BDF_START      0x0001
-#define _BDF_FONT_NAME  0x0002
-#define _BDF_SIZE       0x0004
-#define _BDF_FONT_BBX   0x0008
-#define _BDF_PROPS      0x0010
-#define _BDF_GLYPHS     0x0020
-#define _BDF_GLYPH      0x0040
-#define _BDF_ENCODING   0x0080
-#define _BDF_SWIDTH     0x0100
-#define _BDF_DWIDTH     0x0200
-#define _BDF_BBX        0x0400
-#define _BDF_BITMAP     0x0800
-
-#define _BDF_SWIDTH_ADJ  0x1000
-
-#define _BDF_GLYPH_BITS ( _BDF_GLYPH    | \
-                          _BDF_ENCODING | \
-                          _BDF_SWIDTH   | \
-                          _BDF_DWIDTH   | \
-                          _BDF_BBX      | \
-                          _BDF_BITMAP   )
-
-#define _BDF_GLYPH_WIDTH_CHECK   0x40000000L
-#define _BDF_GLYPH_HEIGHT_CHECK  0x80000000L
-
-
-  /* Auto correction messages. */
-#define ACMSG1   "FONT_ASCENT property missing.  " \
-                 "Added \"FONT_ASCENT %hd\".\n"
-#define ACMSG2   "FONT_DESCENT property missing.  " \
-                 "Added \"FONT_DESCENT %hd\".\n"
-#define ACMSG3   "Font width != actual width.  Old: %hd New: %hd.\n"
-#define ACMSG4   "Font left bearing != actual left bearing.  " \
-                 "Old: %hd New: %hd.\n"
-#define ACMSG5   "Font ascent != actual ascent.  Old: %hd New: %hd.\n"
-#define ACMSG6   "Font descent != actual descent.  Old: %hd New: %hd.\n"
-#define ACMSG7   "Font height != actual height. Old: %hd New: %hd.\n"
-#define ACMSG8   "Glyph scalable width (SWIDTH) adjustments made.\n"
-#define ACMSG9   "SWIDTH field missing at line %ld.  Set automatically.\n"
-#define ACMSG10  "DWIDTH field missing at line %ld.  Set to glyph width.\n"
-#define ACMSG11  "SIZE bits per pixel field adjusted to %hd.\n"
-#define ACMSG12  "Duplicate encoding %ld (%s) changed to unencoded.\n"
-#define ACMSG13  "Glyph %ld extra rows removed.\n"
-#define ACMSG14  "Glyph %ld extra columns removed.\n"
-#define ACMSG15  "Incorrect glyph count: %ld indicated but %ld found.\n"
-
-  /* Error messages. */
-#define ERRMSG1  "[line %ld] Missing \"%s\" line.\n"
-#define ERRMSG2  "[line %ld] Font header corrupted or missing fields.\n"
-#define ERRMSG3  "[line %ld] Font glyphs corrupted or missing fields.\n"
-
-
-  static FT_Error
-  _bdf_add_comment( bdf_font_t*    font,
-                    char*          comment,
-                    unsigned long  len )
-  {
-    char*      cp;
-    FT_Memory  memory = font->memory;
-    FT_Error   error = BDF_Err_Ok;
-
-
-    if ( font->comments_len == 0 )
-    {
-      if ( FT_NEW_ARRAY( font->comments, len + 1 ) )
-        goto Exit;
-    }
-    else
-    {
-      if ( FT_RENEW_ARRAY( font->comments,
-                           font->comments_len,
-                           font->comments_len + len + 1 ) )
-        goto Exit;
-    }
-
-    cp = font->comments + font->comments_len;
-    FT_MEM_COPY( cp, comment, len );
-    cp   += len;
-    *cp++ = '\n';
-    font->comments_len += len + 1;
-
-  Exit:
-    return error;
-  }
-
-
-  /* Set the spacing from the font name if it exists, or set it to the */
-  /* default specified in the options.                                 */
-  static FT_Error
-  _bdf_set_default_spacing( bdf_font_t*     font,
-                            bdf_options_t*  opts )
-  {
-    unsigned long  len;
-    char           name[128];
-    _bdf_list_t    list;
-    FT_Memory      memory;
-    FT_Error       error = BDF_Err_Ok;
-
-
-    if ( font == 0 || font->name == 0 || font->name[0] == 0 )
-    {
-      error = BDF_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    memory = font->memory;
-
-    font->spacing = opts->font_spacing;
-
-    len = (unsigned long)( ft_strlen( font->name ) + 1 );
-    FT_MEM_COPY( name, font->name, len );
-
-    list.size = list.used = 0;
-
-    error = _bdf_split( (char *)"-", name, len, &list, memory );
-    if ( error )
-      goto Exit;
-
-    if ( list.used == 15 )
-    {
-      switch ( list.field[11][0] )
-      {
-      case 'C':
-      case 'c':
-        font->spacing = BDF_CHARCELL;
-        break;
-      case 'M':
-      case 'm':
-        font->spacing = BDF_MONOWIDTH;
-        break;
-      case 'P':
-      case 'p':
-        font->spacing = BDF_PROPORTIONAL;
-        break;
-      }
-    }
-
-    FT_FREE( list.field );
-
-  Exit:
-    return error;
-  }
-
-
-  /* Determine whether the property is an atom or not.  If it is, then */
-  /* clean it up so the double quotes are removed if they exist.       */
-  static int
-  _bdf_is_atom( char*          line,
-                unsigned long  linelen,
-                char**         name,
-                char**         value,
-                bdf_font_t*    font )
-  {
-    int              hold;
-    char             *sp, *ep;
-    bdf_property_t*  p;
-
-
-    *name = sp = ep = line;
-
-    while ( *ep && *ep != ' ' && *ep != '\t' )
-      ep++;
-
-    hold = -1;
-    if ( *ep )
-    {
-      hold = *ep;
-      *ep  = 0;
-    }
-
-    p = bdf_get_property( sp, font );
-
-    /* Restore the character that was saved before any return can happen. */
-    if ( hold != -1 )
-      *ep = (char)hold;
-
-    /* If the property exists and is not an atom, just return here. */
-    if ( p && p->format != BDF_ATOM )
-      return 0;
-
-    /* The property is an atom.  Trim all leading and trailing whitespace */
-    /* and double quotes for the atom value.                              */
-    sp = ep;
-    ep = line + linelen;
-
-    /* Trim the leading whitespace if it exists. */
-    *sp++ = 0;
-    while ( *sp                           &&
-            ( *sp == ' ' || *sp == '\t' ) )
-      sp++;
-
-    /* Trim the leading double quote if it exists. */
-    if ( *sp == '"' )
-      sp++;
-    *value = sp;
-
-    /* Trim the trailing whitespace if it exists. */
-    while ( ep > sp                                       &&
-            ( *( ep - 1 ) == ' ' || *( ep - 1 ) == '\t' ) )
-      *--ep = 0;
-
-    /* Trim the trailing double quote if it exists. */
-    if ( ep > sp && *( ep - 1 ) == '"' )
-      *--ep = 0;
-
-    return 1;
-  }
-
-
-  static FT_Error
-  _bdf_add_property( bdf_font_t*  font,
-                     char*        name,
-                     char*        value )
-  {
-    unsigned long   propid;
-    hashnode        hn;
-    int             len;
-    bdf_property_t  *prop, *fp;
-    FT_Memory       memory = font->memory;
-    FT_Error        error = BDF_Err_Ok;
-
-
-    /* First, check to see if the property already exists in the font. */
-    if ( ( hn = hash_lookup( name, (hashtable *)font->internal ) ) != 0 )
-    {
-      /* The property already exists in the font, so simply replace */
-      /* the value of the property with the current value.          */
-      fp = font->props + (unsigned long)hn->data;
-
-      switch ( fp->format )
-      {
-      case BDF_ATOM:
-        /* Delete the current atom if it exists. */
-        FT_FREE( fp->value.atom );
-
-        if ( value == 0 )
-          len = 1;
-        else
-          len = ft_strlen( value ) + 1;
-
-        if ( len > 1 )
-        {
-          if ( FT_NEW_ARRAY( fp->value.atom, len ) )
-            goto Exit;
-          FT_MEM_COPY( fp->value.atom, value, len );
-        }
-        else
-          fp->value.atom = 0;
-        break;
-
-      case BDF_INTEGER:
-        fp->value.int32 = _bdf_atol( value, 0, 10 );
-        break;
-
-      case BDF_CARDINAL:
-        fp->value.card32 = _bdf_atoul( value, 0, 10 );
-        break;
-
-      default:
-        ;
-      }
-
-      goto Exit;
-    }
-
-    /* See whether this property type exists yet or not. */
-    /* If not, create it.                                */
-    hn = hash_lookup( name, &(font->proptbl) );
-    if ( hn == 0 )
-    {
-      error = bdf_create_property( name, BDF_ATOM, font );
-      if ( error )
-        goto Exit;
-      hn = hash_lookup( name, &(font->proptbl) );
-    }
-
-    /* Allocate another property if this is overflow. */
-    if ( font->props_used == font->props_size )
-    {
-      if ( font->props_size == 0 )
-      {
-        if ( FT_NEW_ARRAY( font->props, 1 ) )
-          goto Exit;
-      }
-      else
-      {
-        if ( FT_RENEW_ARRAY( font->props,
-                             font->props_size,
-                             font->props_size + 1 ) )
-          goto Exit;
-      }
-
-      fp = font->props + font->props_size;
-      FT_MEM_ZERO( fp, sizeof ( bdf_property_t ) );
-      font->props_size++;
-    }
-
-    propid = (unsigned long)hn->data;
-    if ( propid >= _num_bdf_properties )
-      prop = font->user_props + ( propid - _num_bdf_properties );
-    else
-      prop = (bdf_property_t*)_bdf_properties + propid;
-
-    fp = font->props + font->props_used;
-
-    fp->name    = prop->name;
-    fp->format  = prop->format;
-    fp->builtin = prop->builtin;
-
-    switch ( prop->format )
-    {
-    case BDF_ATOM:
-      if ( value == 0 )
-        len = 1;
-      else
-        len = ft_strlen( value ) + 1;
-
-      if ( len > 1 )
-      {
-        if ( FT_NEW_ARRAY( fp->value.atom, len ) )
-          goto Exit;
-        FT_MEM_COPY( fp->value.atom, value, len );
-      }
-      else
-        fp->value.atom = 0;
-      break;
-
-    case BDF_INTEGER:
-      fp->value.int32 = _bdf_atol( value, 0, 10 );
-      break;
-
-    case BDF_CARDINAL:
-      fp->value.card32 = _bdf_atoul( value, 0, 10 );
-      break;
-    }
-
-    /* If the property happens to be a comment, then it doesn't need */
-    /* to be added to the internal hash table.                       */
-    if ( ft_memcmp( name, "COMMENT", 7 ) != 0 ) {
-      /* Add the property to the font property table. */
-      error = hash_insert( fp->name,
-                           (void *)font->props_used,
-                           (hashtable *)font->internal,
-                           memory );
-      if ( error )
-        goto Exit;
-    }
-
-    font->props_used++;
-
-    /* Some special cases need to be handled here.  The DEFAULT_CHAR       */
-    /* property needs to be located if it exists in the property list, the */
-    /* FONT_ASCENT and FONT_DESCENT need to be assigned if they are        */
-    /* present, and the SPACING property should override the default       */
-    /* spacing.                                                            */
-    if ( ft_memcmp( name, "DEFAULT_CHAR", 12 ) == 0 )
-      font->default_char = fp->value.int32;
-    else if ( ft_memcmp( name, "FONT_ASCENT", 11 ) == 0 )
-      font->font_ascent = fp->value.int32;
-    else if ( ft_memcmp( name, "FONT_DESCENT", 12 ) == 0 )
-      font->font_descent = fp->value.int32;
-    else if ( ft_memcmp( name, "SPACING", 7 ) == 0 )
-    {
-      if ( fp->value.atom[0] == 'p' || fp->value.atom[0] == 'P' )
-        font->spacing = BDF_PROPORTIONAL;
-      else if ( fp->value.atom[0] == 'm' || fp->value.atom[0] == 'M' )
-        font->spacing = BDF_MONOWIDTH;
-      else if ( fp->value.atom[0] == 'c' || fp->value.atom[0] == 'C' )
-        font->spacing = BDF_CHARCELL;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static const unsigned char nibble_mask[8] =
-  {
-    0xFF, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE
-  };
-
-
-  /* Actually parse the glyph info and bitmaps. */
-  static FT_Error
-  _bdf_parse_glyphs( char*          line,
-                     unsigned long  linelen,
-                     unsigned long  lineno,
-                     void*          call_data,
-                     void*          client_data )
-  {
-    int                c, mask_index;
-    char*              s;
-    unsigned char*     bp;
-    unsigned long      i, slen, nibbles;
-
-    _bdf_parse_t*      p;
-    bdf_glyph_t*       glyph;
-    bdf_font_t*        font;
-
-    FT_Memory          memory;
-    FT_Error           error = BDF_Err_Ok;
-
-    FT_UNUSED( call_data );
-    FT_UNUSED( lineno );        /* only used in debug mode */
-
-
-    p = (_bdf_parse_t *)client_data;
-
-    font   = p->font;
-    memory = font->memory;
-
-    /* Check for a comment. */
-    if ( ft_memcmp( line, "COMMENT", 7 ) == 0 )
-    {
-      linelen -= 7;
-
-      s = line + 7;
-      if ( *s != 0 )
-      {
-        s++;
-        linelen--;
-      }
-      error = _bdf_add_comment( p->font, s, linelen );
-      goto Exit;
-    }
-
-    /* The very first thing expected is the number of glyphs. */
-    if ( !( p->flags & _BDF_GLYPHS ) )
-    {
-      if ( ft_memcmp( line, "CHARS", 5 ) != 0 )
-      {
-        FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "CHARS" ));
-        error = BDF_Err_Missing_Chars_Field;
-        goto Exit;
-      }
-
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-      p->cnt = font->glyphs_size = _bdf_atoul( p->list.field[1], 0, 10 );
-
-      /* Make sure the number of glyphs is non-zero. */
-      if ( p->cnt == 0 )
-        font->glyphs_size = 64;
-
-      if ( FT_NEW_ARRAY( font->glyphs, font->glyphs_size ) )
-        goto Exit;
-
-      p->flags |= _BDF_GLYPHS;
-
-      goto Exit;
-    }
-
-    /* Check for the ENDFONT field. */
-    if ( ft_memcmp( line, "ENDFONT", 7 ) == 0 )
-    {
-      /* Sort the glyphs by encoding. */
-      ft_qsort( (char *)font->glyphs,
-                font->glyphs_used,
-                sizeof ( bdf_glyph_t ),
-                by_encoding );
-
-      p->flags &= ~_BDF_START;
-
-      goto Exit;
-    }
-
-    /* Check for the ENDCHAR field. */
-    if ( ft_memcmp( line, "ENDCHAR", 7 ) == 0 )
-    {
-      p->glyph_enc = 0;
-      p->flags    &= ~_BDF_GLYPH_BITS;
-
-      goto Exit;
-    }
-
-    /* Check to see whether a glyph is being scanned but should be */
-    /* ignored because it is an unencoded glyph.                   */
-    if ( ( p->flags & _BDF_GLYPH )     &&
-         p->glyph_enc            == -1 &&
-         p->opts->keep_unencoded == 0  )
-      goto Exit;
-
-    /* Check for the STARTCHAR field. */
-    if ( ft_memcmp( line, "STARTCHAR", 9 ) == 0 )
-    {
-      /* Set the character name in the parse info first until the */
-      /* encoding can be checked for an unencoded character.      */
-      FT_FREE( p->glyph_name );
-
-      error = _bdf_split( (char *)" +", line, linelen, &p->list,memory );
-      if ( error )
-        goto Exit;
-      _bdf_shift( 1, &p->list );
-
-      s = _bdf_join( ' ', &slen, &p->list );
-
-      if ( FT_NEW_ARRAY( p->glyph_name, slen + 1 ) )
-        goto Exit;
-      FT_MEM_COPY( p->glyph_name, s, slen + 1 );
-
-      p->flags |= _BDF_GLYPH;
-
-      goto Exit;
-    }
-
-    /* Check for the ENCODING field. */
-    if ( ft_memcmp( line, "ENCODING", 8 ) == 0 )
-    {
-      if ( !( p->flags & _BDF_GLYPH ) )
-      {
-        /* Missing STARTCHAR field. */
-        FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "STARTCHAR" ));
-        error = BDF_Err_Missing_Startchar_Field;
-        goto Exit;
-      }
-
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-      p->glyph_enc = _bdf_atol( p->list.field[1], 0, 10 );
-
-      /* Check to see whether this encoding has already been encountered. */
-      /* If it has then change it to unencoded so it gets added if        */
-      /* indicated.                                                       */
-      if ( p->glyph_enc >= 0 )
-      {
-        if ( _bdf_glyph_modified( p->have, p->glyph_enc ) )
-        {
-          /* Emit a message saying a glyph has been moved to the */
-          /* unencoded area.                                     */
-          FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG12,
-                      p->glyph_enc, p->glyph_name ));
-          p->glyph_enc = -1;
-          font->modified = 1;
-        }
-        else
-          _bdf_set_glyph_modified( p->have, p->glyph_enc );
-      }
-
-      if ( p->glyph_enc >= 0 )
-      {
-        /* Make sure there are enough glyphs allocated in case the */
-        /* number of characters happen to be wrong.                */
-        if ( font->glyphs_used == font->glyphs_size )
-        {
-          if ( FT_RENEW_ARRAY( font->glyphs,
-                               font->glyphs_size,
-                               font->glyphs_size + 64 ) )
-            goto Exit;
-          FT_MEM_ZERO( font->glyphs + font->glyphs_size,
-                       sizeof ( bdf_glyph_t ) * 64 ); /* FZ inutile */
-          font->glyphs_size += 64;
-        }
-
-        glyph           = font->glyphs + font->glyphs_used++;
-        glyph->name     = p->glyph_name;
-        glyph->encoding = p->glyph_enc;
-
-        /* Reset the initial glyph info. */
-        p->glyph_name = 0;
-      }
-      else
-      {
-        /* Unencoded glyph.  Check to see whether it should */
-        /* be added or not.                                 */
-        if ( p->opts->keep_unencoded != 0 )
-        {
-          /* Allocate the next unencoded glyph. */
-          if ( font->unencoded_used == font->unencoded_size )
-          {
-            if ( font->unencoded_size == 0 )
-            {
-              if ( FT_NEW_ARRAY( font->unencoded, 4 ) )
-                goto Exit;
-            }
-            else
-            {
-              if ( FT_RENEW_ARRAY( font->unencoded ,
-                                   font->unencoded_size,
-                                   font->unencoded_size + 4 ) )
-                goto Exit;
-            }
-            font->unencoded_size += 4;
-          }
-
-          glyph           = font->unencoded + font->unencoded_used;
-          glyph->name     = p->glyph_name;
-          glyph->encoding = font->unencoded_used++;
-        }
-        else
-          /* Free up the glyph name if the unencoded shouldn't be */
-          /* kept.                                                */
-          FT_FREE( p->glyph_name );
-
-        p->glyph_name = 0;
-      }
-
-      /* Clear the flags that might be added when width and height are */
-      /* checked for consistency.                                      */
-      p->flags &= ~( _BDF_GLYPH_WIDTH_CHECK | _BDF_GLYPH_HEIGHT_CHECK );
-
-      p->flags |= _BDF_ENCODING;
-
-      goto Exit;
-    }
-
-    /* Point at the glyph being constructed. */
-    if ( p->glyph_enc == -1 )
-      glyph = font->unencoded + ( font->unencoded_used - 1 );
-    else
-      glyph = font->glyphs + ( font->glyphs_used - 1 );
-
-    /* Check to see whether a bitmap is being constructed. */
-    if ( p->flags & _BDF_BITMAP )
-    {
-      /* If there are more rows than are specified in the glyph metrics, */
-      /* ignore the remaining lines.                                     */
-      if ( p->row >= (unsigned long)glyph->bbx.height )
-      {
-        if ( !( p->flags & _BDF_GLYPH_HEIGHT_CHECK ) )
-        {
-          FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG13, glyph->encoding ));
-          p->flags |= _BDF_GLYPH_HEIGHT_CHECK;
-          font->modified = 1;
-        }
-
-        goto Exit;
-      }
-
-      /* Only collect the number of nibbles indicated by the glyph     */
-      /* metrics.  If there are more columns, they are simply ignored. */
-      nibbles = glyph->bpr << 1;
-      bp      = glyph->bitmap + p->row * glyph->bpr;
-
-      for ( i = 0, *bp = 0; i < nibbles; i++ )
-      {
-        c = line[i];
-        *bp = (FT_Byte)( ( *bp << 4 ) + a2i[c] );
-        if ( i + 1 < nibbles && ( i & 1 ) )
-          *++bp = 0;
-      }
-
-      /* Remove possible garbage at the right. */
-      mask_index = ( glyph->bbx.width * p->font->bpp ) & 7;
-      *bp &= nibble_mask[mask_index];
-
-      /* If any line has extra columns, indicate they have been removed. */
-      if ( ( line[nibbles] == '0' || a2i[(int)line[nibbles]] != 0 ) &&
-           !( p->flags & _BDF_GLYPH_WIDTH_CHECK )                   )
-      {
-        FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG14, glyph->encoding ));
-        p->flags       |= _BDF_GLYPH_WIDTH_CHECK;
-        font->modified  = 1;
-      }
-
-      p->row++;
-      goto Exit;
-    }
-
-    /* Expect the SWIDTH (scalable width) field next. */
-    if ( ft_memcmp( line, "SWIDTH", 6 ) == 0 )
-    {
-      if ( !( p->flags & _BDF_ENCODING ) )
-      {
-        /* Missing ENCODING field. */
-        FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "ENCODING" ));
-        error = BDF_Err_Missing_Encoding_Field;
-        goto Exit;
-      }
-
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-      glyph->swidth = (unsigned short)_bdf_atoul( p->list.field[1], 0, 10 );
-      p->flags |= _BDF_SWIDTH;
-
-      goto Exit;
-    }
-
-    /* Expect the DWIDTH (scalable width) field next. */
-    if ( ft_memcmp( line, "DWIDTH", 6 ) == 0 )
-    {
-      error = _bdf_split( (char *)" +", line, linelen, &p->list,memory );
-      if ( error )
-        goto Exit;
-      glyph->dwidth = (unsigned short)_bdf_atoul( p->list.field[1], 0, 10 );
-
-      if ( !( p->flags & _BDF_SWIDTH ) )
-      {
-        /* Missing SWIDTH field.  Emit an auto correction message and set */
-        /* the scalable width from the device width.                      */
-        FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG9, lineno ));
-
-        glyph->swidth = (unsigned short)FT_MulDiv(
-                          glyph->dwidth, 72000L,
-                          (FT_Long)( font->point_size *
-                                     font->resolution_x ) );
-      }
-
-      p->flags |= _BDF_DWIDTH;
-      goto Exit;
-    }
-
-    /* Expect the BBX field next. */
-    if ( ft_memcmp( line, "BBX", 3 ) == 0 )
-    {
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-
-      glyph->bbx.width    = _bdf_atos( p->list.field[1], 0, 10 );
-      glyph->bbx.height   = _bdf_atos( p->list.field[2], 0, 10 );
-      glyph->bbx.x_offset = _bdf_atos( p->list.field[3], 0, 10 );
-      glyph->bbx.y_offset = _bdf_atos( p->list.field[4], 0, 10 );
-
-      /* Generate the ascent and descent of the character. */
-      glyph->bbx.ascent  = (short)( glyph->bbx.height + glyph->bbx.y_offset );
-      glyph->bbx.descent = (short)( -glyph->bbx.y_offset );
-
-      /* Determine the overall font bounding box as the characters are */
-      /* loaded so corrections can be done later if indicated.         */
-      p->maxas    = (short)FT_MAX( glyph->bbx.ascent, p->maxas );
-      p->maxds    = (short)FT_MAX( glyph->bbx.descent, p->maxds );
-
-      p->rbearing = (short)( glyph->bbx.width + glyph->bbx.x_offset );
-
-      p->maxrb    = (short)FT_MAX( p->rbearing, p->maxrb );
-      p->minlb    = (short)FT_MIN( glyph->bbx.x_offset, p->minlb );
-      p->maxlb    = (short)FT_MAX( glyph->bbx.x_offset, p->maxlb );
-
-      if ( !( p->flags & _BDF_DWIDTH ) )
-      {
-        /* Missing DWIDTH field.  Emit an auto correction message and set */
-        /* the device width to the glyph width.                           */
-        FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG10, lineno ));
-        glyph->dwidth = glyph->bbx.width;
-      }
-
-      /* If the BDF_CORRECT_METRICS flag is set, then adjust the SWIDTH */
-      /* value if necessary.                                            */
-      if ( p->opts->correct_metrics != 0 )
-      {
-        /* Determine the point size of the glyph. */
-        unsigned short  sw = (unsigned short)FT_MulDiv(
-                               glyph->dwidth, 72000L,
-                               (FT_Long)( font->point_size *
-                                          font->resolution_x ) );
-
-
-        if ( sw != glyph->swidth )
-        {
-          glyph->swidth = sw;
-
-          if ( p->glyph_enc == -1 )
-            _bdf_set_glyph_modified( font->umod,
-                                     font->unencoded_used - 1 );
-          else
-            _bdf_set_glyph_modified( font->nmod, glyph->encoding );
-
-          p->flags       |= _BDF_SWIDTH_ADJ;
-          font->modified  = 1;
-        }
-      }
-
-      p->flags |= _BDF_BBX;
-      goto Exit;
-    }
-
-    /* And finally, gather up the bitmap. */
-    if ( ft_memcmp( line, "BITMAP", 6 ) == 0 )
-    {
-      if ( !( p->flags & _BDF_BBX ) )
-      {
-        /* Missing BBX field. */
-        FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "BBX" ));
-        error = BDF_Err_Missing_Bbx_Field;
-        goto Exit;
-      }
-
-      /* Allocate enough space for the bitmap. */
-      glyph->bpr   = ( glyph->bbx.width * p->font->bpp + 7 ) >> 3;
-      glyph->bytes = (unsigned short)( glyph->bpr * glyph->bbx.height );
-
-      if ( FT_NEW_ARRAY( glyph->bitmap, glyph->bytes ) )
-        goto Exit;
-
-      p->row    = 0;
-      p->flags |= _BDF_BITMAP;
-
-      goto Exit;
-    }
-
-    error = BDF_Err_Invalid_File_Format;
-
-  Exit:
-    return error;
-  }
-
-
-  /* Load the font properties. */
-  static FT_Error
-  _bdf_parse_properties( char*          line,
-                         unsigned long  linelen,
-                         unsigned long  lineno,
-                         void*          call_data,
-                         void*          client_data )
-  {
-    unsigned long      vlen;
-    _bdf_line_func_t*  next;
-    _bdf_parse_t*      p;
-    char*              name;
-    char*              value;
-    char               nbuf[128];
-    FT_Memory          memory;
-    FT_Error           error = BDF_Err_Ok;
-
-    FT_UNUSED( lineno );
-
-
-    next = (_bdf_line_func_t *)call_data;
-    p    = (_bdf_parse_t *)    client_data;
-
-    memory = p->font->memory;
-
-    /* Check for the end of the properties. */
-    if ( ft_memcmp( line, "ENDPROPERTIES", 13 ) == 0 )
-    {
-      /* If the FONT_ASCENT or FONT_DESCENT properties have not been      */
-      /* encountered yet, then make sure they are added as properties and */
-      /* make sure they are set from the font bounding box info.          */
-      /*                                                                  */
-      /* This is *always* done regardless of the options, because X11     */
-      /* requires these two fields to compile fonts.                      */
-      if ( bdf_get_font_property( p->font, "FONT_ASCENT" ) == 0 )
-      {
-        p->font->font_ascent = p->font->bbx.ascent;
-        ft_sprintf( nbuf, "%hd", p->font->bbx.ascent );
-        error = _bdf_add_property( p->font, (char *)"FONT_ASCENT", nbuf );
-        if ( error )
-          goto Exit;
-
-        FT_TRACE2(( "_bdf_parse_properties: " ACMSG1, p->font->bbx.ascent ));
-        p->font->modified = 1;
-      }
-
-      if ( bdf_get_font_property( p->font, "FONT_DESCENT" ) == 0 )
-      {
-        p->font->font_descent = p->font->bbx.descent;
-        ft_sprintf( nbuf, "%hd", p->font->bbx.descent );
-        error = _bdf_add_property( p->font, (char *)"FONT_DESCENT", nbuf );
-        if ( error )
-          goto Exit;
-
-        FT_TRACE2(( "_bdf_parse_properties: " ACMSG2, p->font->bbx.descent ));
-        p->font->modified = 1;
-      }
-
-      p->flags &= ~_BDF_PROPS;
-      *next     = _bdf_parse_glyphs;
-
-      goto Exit;
-    }
-
-    /* Ignore the _XFREE86_GLYPH_RANGES properties. */
-    if ( ft_memcmp( line, "_XFREE86_GLYPH_RANGES", 21 ) == 0 )
-      goto Exit;
-
-    /* Handle COMMENT fields and properties in a special way to preserve */
-    /* the spacing.                                                      */
-    if ( ft_memcmp( line, "COMMENT", 7 ) == 0 )
-    {
-      name = value = line;
-      value += 7;
-      if ( *value )
-        *value++ = 0;
-      error = _bdf_add_property( p->font, name, value );
-      if ( error )
-        goto Exit;
-    }
-    else if ( _bdf_is_atom( line, linelen, &name, &value, p->font ) )
-    {
-      error = _bdf_add_property( p->font, name, value );
-      if ( error )
-        goto Exit;
-    }
-    else
-    {
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-      name = p->list.field[0];
-
-      _bdf_shift( 1, &p->list );
-      value = _bdf_join( ' ', &vlen, &p->list );
-
-      error = _bdf_add_property( p->font, name, value );
-      if ( error )
-        goto Exit;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* Load the font header. */
-  static FT_Error
-  _bdf_parse_start( char*          line,
-                    unsigned long  linelen,
-                    unsigned long  lineno,
-                    void*          call_data,
-                    void*          client_data )
-  {
-    unsigned long      slen;
-    _bdf_line_func_t*  next;
-    _bdf_parse_t*      p;
-    bdf_font_t*        font;
-    char               *s;
-
-    FT_Memory          memory = NULL;
-    FT_Error           error  = BDF_Err_Ok;
-
-    FT_UNUSED( lineno );            /* only used in debug mode */
-
-
-    next = (_bdf_line_func_t *)call_data;
-    p    = (_bdf_parse_t *)    client_data;
-
-    if ( p->font )
-      memory = p->font->memory;
-
-    /* Check for a comment.  This is done to handle those fonts that have */
-    /* comments before the STARTFONT line for some reason.                */
-    if ( ft_memcmp( line, "COMMENT", 7 ) == 0 )
-    {
-      if ( p->opts->keep_comments != 0 && p->font != 0 )
-      {
-        linelen -= 7;
-
-        s = line + 7;
-        if ( *s != 0 )
-        {
-          s++;
-          linelen--;
-        }
-
-        error = _bdf_add_comment( p->font, s, linelen );
-        if ( error )
-          goto Exit;
-        /* here font is not defined! */
-      }
-
-      goto Exit;
-    }
-
-    if ( !( p->flags & _BDF_START ) )
-    {
-      memory = p->memory;
-
-      if ( ft_memcmp( line, "STARTFONT", 9 ) != 0 )
-      {
-        /* No STARTFONT field is a good indication of a problem. */
-        error = BDF_Err_Missing_Startfont_Field;
-        goto Exit;
-      }
-
-      p->flags = _BDF_START;
-      font = p->font = 0;
-
-      if ( FT_NEW( font ) )
-        goto Exit;
-      p->font = font;
-
-      font->memory = p->memory;
-      p->memory    = 0;
-
-      { /* setup */
-        unsigned long    i;
-        bdf_property_t*  prop;
-
-
-        error = hash_init( &(font->proptbl), memory );
-        if ( error )
-          goto Exit;
-        for ( i = 0, prop = (bdf_property_t*)_bdf_properties;
-              i < _num_bdf_properties; i++, prop++ )
-        {
-          error = hash_insert( prop->name, (void *)i,
-                               &(font->proptbl), memory );
-          if ( error )
-            goto Exit;
-        }
-      }
-
-      if ( FT_ALLOC( p->font->internal, sizeof ( hashtable ) ) )
-        goto Exit;
-      error = hash_init( (hashtable *)p->font->internal,memory );
-      if ( error )
-        goto Exit;
-      p->font->spacing      = p->opts->font_spacing;
-      p->font->default_char = -1;
-
-      goto Exit;
-    }
-
-    /* Check for the start of the properties. */
-    if ( ft_memcmp( line, "STARTPROPERTIES", 15 ) == 0 )
-    {
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-      p->cnt = p->font->props_size = _bdf_atoul( p->list.field[1], 0, 10 );
-
-      if ( FT_NEW_ARRAY( p->font->props, p->cnt ) )
-        goto Exit;
-
-      p->flags |= _BDF_PROPS;
-      *next     = _bdf_parse_properties;
-
-      goto Exit;
-    }
-
-    /* Check for the FONTBOUNDINGBOX field. */
-    if ( ft_memcmp( line, "FONTBOUNDINGBOX", 15 ) == 0 )
-    {
-      if ( !(p->flags & _BDF_SIZE ) )
-      {
-        /* Missing the SIZE field. */
-        FT_ERROR(( "_bdf_parse_start: " ERRMSG1, lineno, "SIZE" ));
-        error = BDF_Err_Missing_Size_Field;
-        goto Exit;
-      }
-
-      error = _bdf_split( (char *)" +", line, linelen, &p->list , memory );
-      if ( error )
-        goto Exit;
-
-      p->font->bbx.width  = _bdf_atos( p->list.field[1], 0, 10 );
-      p->font->bbx.height = _bdf_atos( p->list.field[2], 0, 10 );
-
-      p->font->bbx.x_offset = _bdf_atos( p->list.field[3], 0, 10 );
-      p->font->bbx.y_offset = _bdf_atos( p->list.field[4], 0, 10 );
-
-      p->font->bbx.ascent  = (short)( p->font->bbx.height +
-                                      p->font->bbx.y_offset );
-
-      p->font->bbx.descent = (short)( -p->font->bbx.y_offset );
-
-      p->flags |= _BDF_FONT_BBX;
-
-      goto Exit;
-    }
-
-    /* The next thing to check for is the FONT field. */
-    if ( ft_memcmp( line, "FONT", 4 ) == 0 )
-    {
-      error = _bdf_split( (char *)" +", line, linelen, &p->list , memory );
-      if ( error )
-        goto Exit;
-      _bdf_shift( 1, &p->list );
-
-      s = _bdf_join( ' ', &slen, &p->list );
-      if ( FT_NEW_ARRAY( p->font->name, slen + 1 ) )
-        goto Exit;
-      FT_MEM_COPY( p->font->name, s, slen + 1 );
-
-      /* If the font name is an XLFD name, set the spacing to the one in  */
-      /* the font name.  If there is no spacing fall back on the default. */
-      error = _bdf_set_default_spacing( p->font, p->opts );
-      if ( error )
-        goto Exit;
-
-      p->flags |= _BDF_FONT_NAME;
-
-      goto Exit;
-    }
-
-    /* Check for the SIZE field. */
-    if ( ft_memcmp( line, "SIZE", 4 ) == 0 )
-    {
-      if ( !( p->flags & _BDF_FONT_NAME ) )
-      {
-        /* Missing the FONT field. */
-        FT_ERROR(( "_bdf_parse_start: " ERRMSG1, lineno, "FONT" ));
-        error = BDF_Err_Missing_Font_Field;
-        goto Exit;
-      }
-
-      error = _bdf_split( (char *)" +", line, linelen, &p->list, memory );
-      if ( error )
-        goto Exit;
-
-      p->font->point_size   = _bdf_atoul( p->list.field[1], 0, 10 );
-      p->font->resolution_x = _bdf_atoul( p->list.field[2], 0, 10 );
-      p->font->resolution_y = _bdf_atoul( p->list.field[3], 0, 10 );
-
-      /* Check for the bits per pixel field. */
-      if ( p->list.used == 5 )
-      {
-        unsigned short bitcount, i, shift;
-
-
-        p->font->bpp = (unsigned short)_bdf_atos( p->list.field[4], 0, 10 );
-
-        /* Only values 1, 2, 4, 8 are allowed. */
-        shift = p->font->bpp;
-        bitcount = 0;
-        for ( i = 0; shift > 0; i++ )
-        {
-          if ( shift & 1 )
-            bitcount = i;
-          shift >>= 1;
-        }
-
-        shift = (short)( ( bitcount > 3 ) ? 8 : ( 1 << bitcount ) );
-
-        if ( p->font->bpp > shift || p->font->bpp != shift )
-        {
-          /* select next higher value */
-          p->font->bpp = (unsigned short)( shift << 1 );
-          FT_TRACE2(( "_bdf_parse_start: " ACMSG11, p->font->bpp ));
-        }
-      }
-      else
-        p->font->bpp = 1;
-
-      p->flags |= _BDF_SIZE;
-
-      goto Exit;
-    }
-
-    error = BDF_Err_Invalid_File_Format;
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* API.                                                                  */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  bdf_load_font( FT_Stream       stream,
-                 FT_Memory       extmemory,
-                 bdf_options_t*  opts,
-                 bdf_font_t*    *font )
-  {
-    unsigned long  lineno;
-    _bdf_parse_t   *p;
-
-    FT_Memory      memory = extmemory;
-    FT_Error       error  = BDF_Err_Ok;
-
-
-    if ( FT_ALLOC( p, sizeof ( _bdf_parse_t ) ) )
-      goto Exit;
-
-    memory    = NULL;
-    p->opts   = (bdf_options_t*)( ( opts != 0 ) ? opts : &_bdf_opts );
-    p->minlb  = 32767;
-    p->memory = extmemory;  /* only during font creation */
-
-    error = _bdf_readstream( stream, _bdf_parse_start,
-                             (void *)p, &lineno );
-    if ( error )
-      goto Exit;
-
-    if ( p->font != 0 )
-    {
-      /* If the font is not proportional, set the font's monowidth */
-      /* field to the width of the font bounding box.              */
-      memory = p->font->memory;
-
-      if ( p->font->spacing != BDF_PROPORTIONAL )
-        p->font->monowidth = p->font->bbx.width;
-
-      /* If the number of glyphs loaded is not that of the original count, */
-      /* indicate the difference.                                          */
-      if ( p->cnt != p->font->glyphs_used + p->font->unencoded_used )
-      {
-        FT_TRACE2(( "bdf_load_font: " ACMSG15, p->cnt,
-                    p->font->glyphs_used + p->font->unencoded_used ));
-        p->font->modified = 1;
-      }
-
-      /* Once the font has been loaded, adjust the overall font metrics if */
-      /* necessary.                                                        */
-      if ( p->opts->correct_metrics != 0 &&
-           ( p->font->glyphs_used > 0 || p->font->unencoded_used > 0 ) )
-      {
-        if ( p->maxrb - p->minlb != p->font->bbx.width )
-        {
-          FT_TRACE2(( "bdf_load_font: " ACMSG3,
-                      p->font->bbx.width, p->maxrb - p->minlb ));
-          p->font->bbx.width = (unsigned short)( p->maxrb - p->minlb );
-          p->font->modified  = 1;
-        }
-
-        if ( p->font->bbx.x_offset != p->minlb )
-        {
-          FT_TRACE2(( "bdf_load_font: " ACMSG4,
-                      p->font->bbx.x_offset, p->minlb ));
-          p->font->bbx.x_offset = p->minlb;
-          p->font->modified     = 1;
-        }
-
-        if ( p->font->bbx.ascent != p->maxas )
-        {
-          FT_TRACE2(( "bdf_load_font: " ACMSG5,
-                      p->font->bbx.ascent, p->maxas ));
-          p->font->bbx.ascent = p->maxas;
-          p->font->modified   = 1;
-        }
-
-        if ( p->font->bbx.descent != p->maxds )
-        {
-          FT_TRACE2(( "bdf_load_font: " ACMSG6,
-                      p->font->bbx.descent, p->maxds ));
-          p->font->bbx.descent  = p->maxds;
-          p->font->bbx.y_offset = (short)( -p->maxds );
-          p->font->modified     = 1;
-        }
-
-        if ( p->maxas + p->maxds != p->font->bbx.height )
-        {
-          FT_TRACE2(( "bdf_load_font: " ACMSG7,
-                      p->font->bbx.height, p->maxas + p->maxds ));
-          p->font->bbx.height = (unsigned short)( p->maxas + p->maxds );
-        }
-
-        if ( p->flags & _BDF_SWIDTH_ADJ )
-          FT_TRACE2(( "bdf_load_font: " ACMSG8 ));
-      }
-    }
-
-    if ( p->flags & _BDF_START )
-    {
-      {
-        /* The ENDFONT field was never reached or did not exist. */
-        if ( !( p->flags & _BDF_GLYPHS ) )
-          /* Error happened while parsing header. */
-          FT_ERROR(( "bdf_load_font: " ERRMSG2, lineno ));
-        else
-          /* Error happened when parsing glyphs. */
-          FT_ERROR(( "bdf_load_font: " ERRMSG3, lineno ));
-      }
-    }
-
-    /* Free up the list used during the parsing. */
-    if ( memory != NULL )
-      FT_FREE( p->list.field );
-
-    if ( p->font != 0 )
-    {
-      /* Make sure the comments are NULL terminated if they exist. */
-      memory = p->font->memory;
-
-      if ( p->font->comments_len > 0 ) {
-        if ( FT_RENEW_ARRAY( p->font->comments,
-                             p->font->comments_len,
-                             p->font->comments_len + 1 ) )
-          goto Exit;
-
-        p->font->comments[p->font->comments_len] = 0;
-      }
-    }
-    else if ( error == BDF_Err_Ok )
-      error = BDF_Err_Invalid_File_Format;
-
-    *font = p->font;
-
-  Exit:
-    if ( p )
-    {
-      memory = extmemory;
-      FT_FREE( p );
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  bdf_free_font( bdf_font_t*  font )
-  {
-    bdf_property_t*  prop;
-    unsigned long    i;
-    bdf_glyph_t*     glyphs;
-    FT_Memory        memory;
-
-
-    if ( font == 0 )
-      return;
-
-    memory = font->memory;
-
-    FT_FREE( font->name );
-
-    /* Free up the internal hash table of property names. */
-    if ( font->internal )
-    {
-      hash_free( (hashtable *)font->internal, memory );
-      FT_FREE( font->internal );
-    }
-
-    /* Free up the comment info. */
-    FT_FREE( font->comments );
-
-    /* Free up the properties. */
-    for ( i = 0; i < font->props_size; i++ )
-    {
-      if ( font->props[i].format == BDF_ATOM )
-        FT_FREE( font->props[i].value.atom );
-    }
-
-    FT_FREE( font->props );
-
-    /* Free up the character info. */
-    for ( i = 0, glyphs = font->glyphs;
-          i < font->glyphs_used; i++, glyphs++ )
-    {
-      FT_FREE( glyphs->name );
-      FT_FREE( glyphs->bitmap );
-    }
-
-    for ( i = 0, glyphs = font->unencoded; i < font->unencoded_used;
-          i++, glyphs++ )
-    {
-      FT_FREE( glyphs->name );
-      FT_FREE( glyphs->bitmap );
-    }
-
-    FT_FREE( font->glyphs );
-    FT_FREE( font->unencoded );
-
-    /* Free up the overflow storage if it was used. */
-    for ( i = 0, glyphs = font->overflow.glyphs;
-          i < font->overflow.glyphs_used; i++, glyphs++ )
-    {
-      FT_FREE( glyphs->name );
-      FT_FREE( glyphs->bitmap );
-    }
-
-    FT_FREE( font->overflow.glyphs );
-
-    /* bdf_cleanup */
-    hash_free( &(font->proptbl), memory );
-
-    /* Free up the user defined properties. */
-    for (prop = font->user_props, i = 0;
-         i < font->nuser_props; i++, prop++ )
-    {
-      FT_FREE( prop->name );
-      if ( prop->format == BDF_ATOM )
-        FT_FREE( prop->value.atom );
-    }
-
-    FT_FREE( font->user_props );
-
-    /* FREE( font ); */ /* XXX Fixme */
-  }
-
-
-  FT_LOCAL_DEF( bdf_property_t * )
-  bdf_get_font_property( bdf_font_t*  font,
-                         const char*  name )
-  {
-    hashnode  hn;
-
-
-    if ( font == 0 || font->props_size == 0 || name == 0 || *name == 0 )
-      return 0;
-
-    hn = hash_lookup( name, (hashtable *)font->internal );
-
-    return hn ? ( font->props + (unsigned long)hn->data ) : 0;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/bdf/descrip.mms b/nx-X11/extras/freetype2/src/bdf/descrip.mms
deleted file mode 100644
index 4c32dc449..000000000
--- a/nx-X11/extras/freetype2/src/bdf/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 BDF driver compilation rules for VMS
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.bdf])
-
-OBJS=bdf.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/bdf/module.mk b/nx-X11/extras/freetype2/src/bdf/module.mk
deleted file mode 100644
index 24115e75d..000000000
--- a/nx-X11/extras/freetype2/src/bdf/module.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-#
-# FreeType 2 BDF module definition
-#
-
-# Copyright 2001, 2002 by
-# Francesco Zappa Nardelli
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-make_module_list: add_bdf_driver
-
-add_bdf_driver:
-	$(OPEN_DRIVER)bdf_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)bdf    $(ECHO_DRIVER_DESC)bdf bitmap fonts$(ECHO_DRIVER_DONE)
-
diff --git a/nx-X11/extras/freetype2/src/bdf/rules.mk b/nx-X11/extras/freetype2/src/bdf/rules.mk
deleted file mode 100644
index 25d98e55b..000000000
--- a/nx-X11/extras/freetype2/src/bdf/rules.mk
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# FreeType 2 bdf driver configuration rules
-#
-
-
-# Copyright (C) 2001, 2002, 2003 by
-# Francesco Zappa Nardelli
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-
-
-
-# bdf driver directory
-#
-BDF_DIR  := $(SRC_DIR)/bdf
-
-
-BDF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(BDF_DIR))
-
-
-# bdf driver sources (i.e., C files)
-#
-BDF_DRV_SRC := $(BDF_DIR)/bdflib.c \
-               $(BDF_DIR)/bdfdrivr.c
-
-
-# bdf driver headers
-#
-BDF_DRV_H := $(BDF_DIR)/bdf.h \
-             $(BDF_DIR)/bdfdrivr.h
-
-# bdf driver object(s)
-#
-#   BDF_DRV_OBJ_M is used during `multi' builds
-#   BDF_DRV_OBJ_S is used during `single' builds
-#
-BDF_DRV_OBJ_M := $(BDF_DRV_SRC:$(BDF_DIR)/%.c=$(OBJ_DIR)/%.$O)
-BDF_DRV_OBJ_S := $(OBJ_DIR)/bdf.$O
-
-# bdf driver source file for single build
-#
-BDF_DRV_SRC_S := $(BDF_DIR)/bdf.c
-
-
-# bdf driver - single object
-#
-$(BDF_DRV_OBJ_S): $(BDF_DRV_SRC_S) $(BDF_DRV_SRC) $(FREETYPE_H) $(BDF_DRV_H)
-	$(BDF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(BDF_DRV_SRC_S))
-
-
-# bdf driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(BDF_DIR)/%.c $(FREETYPE_H) $(BDF_DRV_H)
-	$(BDF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(BDF_DRV_OBJ_S)
-DRV_OBJS_M += $(BDF_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cache/Jamfile b/nx-X11/extras/freetype2/src/cache/Jamfile
deleted file mode 100644
index b269c9557..000000000
--- a/nx-X11/extras/freetype2/src/cache/Jamfile
+++ /dev/null
@@ -1,35 +0,0 @@
-# FreeType 2 src/cache Jamfile (c) 2001, 2003, 2004 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) cache ;
-
-# The file <freetype/ftcache.h> contains some macro definitions that are
-# later used in #include statements related to the cache sub-system.  It
-# needs to be parsed through a HDRMACRO rule for macro definitions.
-#
-HDRMACRO  [ FT2_SubDir  include ftcache.h ] ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = ftcmru
-               ftcmanag
-               ftccache
-               ftcglyph
-               ftcsbits
-               ftcimage
-               ftcbasic
-               ftccmap
-               ;
-  }
-  else
-  {
-    _sources = ftcache ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/cache Jamfile
diff --git a/nx-X11/extras/freetype2/src/cache/descrip.mms b/nx-X11/extras/freetype2/src/cache/descrip.mms
deleted file mode 100644
index 4d967dc18..000000000
--- a/nx-X11/extras/freetype2/src/cache/descrip.mms
+++ /dev/null
@@ -1,25 +0,0 @@
-#
-# FreeType 2 Cache compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cache])
-
-OBJS=ftcache.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-ftcache.obj : ftcache.c
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cache/ftcache.c b/nx-X11/extras/freetype2/src/cache/ftcache.c
deleted file mode 100644
index d41e91e5e..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcache.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcache.c                                                              */
-/*                                                                         */
-/*    The FreeType Caching sub-system (body only).                         */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "ftcmru.c"
-#include "ftcmanag.c"
-#include "ftccache.c"
-#include "ftccmap.c"
-#include "ftcglyph.c"
-#include "ftcimage.c"
-#include "ftcsbits.c"
-#include "ftcbasic.c"
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcbasic.c b/nx-X11/extras/freetype2/src/cache/ftcbasic.c
deleted file mode 100644
index 9a91f357b..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcbasic.c
+++ /dev/null
@@ -1,445 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcbasic.c                                                             */
-/*                                                                         */
-/*    The FreeType basic cache interface (body).                           */
-/*                                                                         */
-/*  Copyright 2003, 2004 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_GLYPH_H
-#include FT_CACHE_INTERNAL_IMAGE_H
-#include FT_CACHE_INTERNAL_SBITS_H
-#include FT_INTERNAL_MEMORY_H
-
-#include "ftccback.h"
-#include "ftcerror.h"
-
-
-  /*
-   *  Basic Families
-   *
-   */
-  typedef struct  FTC_BasicAttrRec_
-  {
-    FTC_ScalerRec  scaler;
-    FT_UInt        load_flags;
-
-  } FTC_BasicAttrRec, *FTC_BasicAttrs;
-
-#define FTC_BASIC_ATTR_COMPARE( a, b )                           \
-          ( FTC_SCALER_COMPARE( &(a)->scaler, &(b)->scaler ) &&  \
-            (a)->load_flags == (b)->load_flags               )
-
-#define FTC_BASIC_ATTR_HASH( a )                                   \
-          ( FTC_SCALER_HASH( &(a)->scaler ) + 31*(a)->load_flags )
-
-
-  typedef struct  FTC_BasicQueryRec_
-  {
-    FTC_GQueryRec     gquery;
-    FTC_BasicAttrRec  attrs;
-
-  } FTC_BasicQueryRec, *FTC_BasicQuery;
-
-
-  typedef struct  FTC_BasicFamilyRec_
-  {
-    FTC_FamilyRec     family;
-    FTC_BasicAttrRec  attrs;
-
-  } FTC_BasicFamilyRec, *FTC_BasicFamily;
-
-
-  FT_CALLBACK_DEF( FT_Bool )
-  ftc_basic_family_compare( FTC_MruNode  ftcfamily,
-                            FT_Pointer   ftcquery )
-  {
-    FTC_BasicFamily  family = (FTC_BasicFamily)ftcfamily;
-    FTC_BasicQuery   query  = (FTC_BasicQuery)ftcquery;
-
-
-    return FTC_BASIC_ATTR_COMPARE( &family->attrs, &query->attrs );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_basic_family_init( FTC_MruNode  ftcfamily,
-                         FT_Pointer   ftcquery,
-                         FT_Pointer   ftccache )
-  {
-    FTC_BasicFamily  family = (FTC_BasicFamily)ftcfamily;
-    FTC_BasicQuery   query  = (FTC_BasicQuery)ftcquery;
-    FTC_Cache        cache  = (FTC_Cache)ftccache;
-
-
-    FTC_Family_Init( FTC_FAMILY( family ), cache );
-    family->attrs = query->attrs;
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  ftc_basic_family_get_count( FTC_Family   ftcfamily,
-                              FTC_Manager  manager )
-  {
-    FTC_BasicFamily  family = (FTC_BasicFamily)ftcfamily;
-    FT_Error         error;
-    FT_Face          face;
-    FT_UInt          result = 0;
-
-
-    error = FTC_Manager_LookupFace( manager, family->attrs.scaler.face_id,
-                                    &face );
-    if ( !error )
-      result = face->num_glyphs;
-
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_basic_family_load_bitmap( FTC_Family   ftcfamily,
-                                FT_UInt      gindex,
-                                FTC_Manager  manager,
-                                FT_Face     *aface )
-  {
-    FTC_BasicFamily  family = (FTC_BasicFamily)ftcfamily;
-    FT_Error         error;
-    FT_Size          size;
-
-
-    error = FTC_Manager_LookupSize( manager, &family->attrs.scaler, &size );
-    if ( !error )
-    {
-      FT_Face  face = size->face;
-
-
-      error = FT_Load_Glyph( face, gindex,
-                             family->attrs.load_flags | FT_LOAD_RENDER );
-      if ( !error )
-        *aface = face;
-    }
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_basic_family_load_glyph( FTC_Family  ftcfamily,
-                               FT_UInt     gindex,
-                               FTC_Cache   cache,
-                               FT_Glyph   *aglyph )
-  {
-    FTC_BasicFamily  family = (FTC_BasicFamily)ftcfamily;
-    FT_Error         error;
-    FTC_Scaler       scaler = &family->attrs.scaler;
-    FT_Face          face;
-    FT_Size          size;
-
-
-    /* we will now load the glyph image */
-    error = FTC_Manager_LookupSize( cache->manager,
-                                    scaler,
-                                    &size );
-    if ( !error )
-    {
-      face = size->face;
-
-      error = FT_Load_Glyph( face, gindex, family->attrs.load_flags );
-      if ( !error )
-      {
-        if ( face->glyph->format == FT_GLYPH_FORMAT_BITMAP  ||
-             face->glyph->format == FT_GLYPH_FORMAT_OUTLINE )
-        {
-          /* ok, copy it */
-          FT_Glyph  glyph;
-
-
-          error = FT_Get_Glyph( face->glyph, &glyph );
-          if ( !error )
-          {
-            *aglyph = glyph;
-            goto Exit;
-          }
-        }
-        else
-          error = FTC_Err_Invalid_Argument;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Bool )
-  ftc_basic_gnode_compare_faceid( FTC_Node    ftcgnode,
-                                  FT_Pointer  ftcface_id,
-                                  FTC_Cache   cache )
-  {
-    FTC_GNode        gnode   = (FTC_GNode)ftcgnode;
-    FTC_FaceID       face_id = (FTC_FaceID)ftcface_id;
-    FTC_BasicFamily  family  = (FTC_BasicFamily)gnode->family;
-    FT_Bool          result;
-
-
-    result = FT_BOOL( family->attrs.scaler.face_id == face_id );
-    if ( result )
-    {
-      /* we must call this function to avoid this node from appearing
-       * in later lookups with the same face_id!
-       */
-      FTC_GNode_UnselectFamily( gnode, cache );
-    }
-    return result;
-  }
-
-
- /*
-  *
-  * basic image cache
-  *
-  */
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_IFamilyClassRec  ftc_basic_image_family_class =
-  {
-    {
-      sizeof ( FTC_BasicFamilyRec ),
-      ftc_basic_family_compare,
-      ftc_basic_family_init,
-      0,                        /* FTC_MruNode_ResetFunc */
-      0                         /* FTC_MruNode_DoneFunc  */
-    },
-    ftc_basic_family_load_glyph
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_GCacheClassRec  ftc_basic_image_cache_class =
-  {
-    {
-      ftc_inode_new,
-      ftc_inode_weight,
-      ftc_gnode_compare,
-      ftc_basic_gnode_compare_faceid,
-      ftc_inode_free,
-
-      sizeof ( FTC_GCacheRec ),
-      ftc_gcache_init,
-      ftc_gcache_done
-    },
-    (FTC_MruListClass)&ftc_basic_image_family_class
-  };
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_ImageCache_New( FTC_Manager      manager,
-                      FTC_ImageCache  *acache )
-  {
-    return FTC_GCache_New( manager, &ftc_basic_image_cache_class,
-                           (FTC_GCache*)acache );
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_ImageCache_Lookup( FTC_ImageCache  cache,
-                         FTC_ImageType   type,
-                         FT_UInt         gindex,
-                         FT_Glyph       *aglyph,
-                         FTC_Node       *anode )
-  {
-    FTC_BasicQueryRec  query;
-    FTC_INode          node;
-    FT_Error           error;
-    FT_UInt32          hash;
-
-
-    /* some argument checks are delayed to FTC_Cache_Lookup */
-    if ( !aglyph )
-    {
-      error = FTC_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    *aglyph = NULL;
-    if ( anode )
-      *anode  = NULL;
-
-    query.attrs.scaler.face_id = type->face_id;
-    query.attrs.scaler.width   = type->width;
-    query.attrs.scaler.height  = type->height;
-    query.attrs.scaler.pixel   = 1;
-    query.attrs.load_flags     = type->flags;
-
-    query.attrs.scaler.x_res   = 0;  /* make compilers happy */
-    query.attrs.scaler.y_res   = 0;
-
-    hash = FTC_BASIC_ATTR_HASH( &query.attrs ) + gindex;
-
-#if 1  /* inlining is about 50% faster! */
-    FTC_GCACHE_LOOKUP_CMP( cache,
-                           ftc_basic_family_compare,
-                           FTC_GNode_Compare,
-                           hash, gindex,
-                           &query,
-                           node,
-                           error );
-#else
-    error = FTC_GCache_Lookup( FTC_GCACHE( cache ),
-                               hash, gindex,
-                               FTC_GQUERY( &query ),
-                               (FTC_Node*) &node );
-#endif
-    if ( !error )
-    {
-      *aglyph = FTC_INODE( node )->glyph;
-
-      if ( anode )
-      {
-        *anode = FTC_NODE( node );
-        FTC_NODE( node )->ref_count++;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
- /*
-  *
-  * basic small bitmap cache
-  *
-  */
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_SFamilyClassRec  ftc_basic_sbit_family_class =
-  {
-    {
-      sizeof( FTC_BasicFamilyRec ),
-      ftc_basic_family_compare,
-      ftc_basic_family_init,
-      0,                            /* FTC_MruNode_ResetFunc */
-      0                             /* FTC_MruNode_DoneFunc  */
-    },
-    ftc_basic_family_get_count,
-    ftc_basic_family_load_bitmap
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_GCacheClassRec  ftc_basic_sbit_cache_class =
-  {
-    {
-      ftc_snode_new,
-      ftc_snode_weight,
-      ftc_snode_compare,
-      ftc_basic_gnode_compare_faceid,
-      ftc_snode_free,
-
-      sizeof ( FTC_GCacheRec ),
-      ftc_gcache_init,
-      ftc_gcache_done
-    },
-    (FTC_MruListClass)&ftc_basic_sbit_family_class
-  };
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_SBitCache_New( FTC_Manager     manager,
-                     FTC_SBitCache  *acache )
-  {
-    return FTC_GCache_New( manager, &ftc_basic_sbit_cache_class,
-                           (FTC_GCache*)acache );
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_SBitCache_Lookup( FTC_SBitCache  cache,
-                        FTC_ImageType  type,
-                        FT_UInt        gindex,
-                        FTC_SBit      *ansbit,
-                        FTC_Node      *anode )
-  {
-    FT_Error           error;
-    FTC_BasicQueryRec  query;
-    FTC_SNode          node;
-    FT_UInt32          hash;
-
-
-    if ( anode )
-      *anode = NULL;
-
-    /* other argument checks delayed to FTC_Cache_Lookup */
-    if ( !ansbit )
-      return FTC_Err_Invalid_Argument;
-
-    *ansbit = NULL;
-
-    query.attrs.scaler.face_id = type->face_id;
-    query.attrs.scaler.width   = type->width;
-    query.attrs.scaler.height  = type->height;
-    query.attrs.scaler.pixel   = 1;
-    query.attrs.load_flags     = type->flags;
-
-    query.attrs.scaler.x_res   = 0;  /* make compilers happy */
-    query.attrs.scaler.y_res   = 0;
-
-    /* beware, the hash must be the same for all glyph ranges! */
-    hash = FTC_BASIC_ATTR_HASH( &query.attrs ) +
-           gindex / FTC_SBIT_ITEMS_PER_NODE;
-
-#if 1  /* inlining is about 50% faster! */
-    FTC_GCACHE_LOOKUP_CMP( cache,
-                           ftc_basic_family_compare,
-                           FTC_SNode_Compare,
-                           hash, gindex,
-                           &query,
-                           node,
-                           error );
-#else
-    error = FTC_GCache_Lookup( FTC_GCACHE( cache ),
-                               hash,
-                               gindex,
-                               FTC_GQUERY( &query ),
-                               (FTC_Node*)&node );
-#endif
-    if ( error )
-      goto Exit;
-
-    *ansbit = node->sbits + ( gindex - FTC_GNODE( node )->gindex );
-
-    if ( anode )
-    {
-      *anode = FTC_NODE( node );
-      FTC_NODE( node )->ref_count++;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftccache.c b/nx-X11/extras/freetype2/src/cache/ftccache.c
deleted file mode 100644
index 3a8a40c00..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftccache.c
+++ /dev/null
@@ -1,604 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftccache.c                                                             */
-/*                                                                         */
-/*    The FreeType internal cache interface (body).                        */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_INTERNAL_MANAGER_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-
-#include "ftccback.h"
-#include "ftcerror.h"
-
-
-#define FTC_HASH_MAX_LOAD  2
-#define FTC_HASH_MIN_LOAD  1
-#define FTC_HASH_SUB_LOAD  ( FTC_HASH_MAX_LOAD - FTC_HASH_MIN_LOAD )
-
-/* this one _must_ be a power of 2! */
-#define FTC_HASH_INITIAL_SIZE  8
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                   CACHE NODE DEFINITIONS                      *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* add a new node to the head of the manager's circular MRU list */
-  static void
-  ftc_node_mru_link( FTC_Node     node,
-                     FTC_Manager  manager )
-  {
-    FTC_MruNode_Prepend( (FTC_MruNode*)&manager->nodes_list,
-                         (FTC_MruNode)node );
-    manager->num_nodes++;
-  }
-
-
-  /* remove a node from the manager's MRU list */
-  static void
-  ftc_node_mru_unlink( FTC_Node     node,
-                       FTC_Manager  manager )
-  {
-    FTC_MruNode_Remove( (FTC_MruNode*)&manager->nodes_list,
-                        (FTC_MruNode)node );
-    manager->num_nodes--;
-  }
-
-
-  /* move a node to the head of the manager's MRU list */
-  static void
-  ftc_node_mru_up( FTC_Node     node,
-                   FTC_Manager  manager )
-  {
-    FTC_MruNode_Up( (FTC_MruNode*)&manager->nodes_list,
-                    (FTC_MruNode)node );
-  }
-
-
-  /* Note that this function cannot fail.  If we cannot re-size the
-   * buckets array appropriately, we simply degrade the hash table's
-   * performance!
-   */
-  static void
-  ftc_cache_resize( FTC_Cache  cache )
-  {
-    for (;;)
-    {
-      FTC_Node  node, *pnode;
-      FT_UInt   p      = cache->p;
-      FT_UInt   mask   = cache->mask;
-      FT_UInt   count  = mask + p + 1;    /* number of buckets */
-
-
-      /* do we need to shrink the buckets array? */
-      if ( cache->slack < 0 )
-      {
-        FTC_Node  new_list = NULL;
-
-
-        /* try to expand the buckets array _before_ splitting
-         * the bucket lists
-         */
-        if ( p >= mask )
-        {
-          FT_Memory  memory = cache->memory;
-
-
-          /* if we can't expand the array, leave immediately */
-          if ( FT_MEM_RENEW_ARRAY( cache->buckets, (mask+1)*2, (mask+1)*4 ) )
-            break;
-        }
-
-        /* split a single bucket */
-        pnode = cache->buckets + p;
-
-        for (;;)
-        {
-          node = *pnode;
-          if ( node == NULL )
-            break;
-
-          if ( node->hash & ( mask + 1 ) )
-          {
-            *pnode     = node->link;
-            node->link = new_list;
-            new_list   = node;
-          }
-          else
-            pnode = &node->link;
-        }
-
-        cache->buckets[p + mask + 1] = new_list;
-
-        cache->slack += FTC_HASH_MAX_LOAD;
-
-        if ( p >= mask )
-        {
-          cache->mask = 2 * mask + 1;
-          cache->p    = 0;
-        }
-        else
-          cache->p = p + 1;
-      }
-
-      /* do we need to expand the buckets array? */
-      else if ( cache->slack > (FT_Long)count * FTC_HASH_SUB_LOAD )
-      {
-        FT_UInt    old_index = p + mask;
-        FTC_Node*  pold;
-
-
-        if ( old_index + 1 <= FTC_HASH_INITIAL_SIZE )
-          break;
-
-        if ( p == 0 )
-        {
-          FT_Memory  memory = cache->memory;
-
-
-          /* if we can't shrink the array, leave immediately */
-          if ( FT_MEM_RENEW_ARRAY( cache->buckets,
-                                   ( mask + 1 ) * 2, mask + 1 ) )
-            break;
-
-          cache->mask >>= 1;
-          p             = cache->mask;
-        }
-        else
-          p--;
-
-        pnode = cache->buckets + p;
-        while ( *pnode )
-          pnode = &(*pnode)->link;
-
-        pold   = cache->buckets + old_index;
-        *pnode = *pold;
-        *pold  = NULL;
-
-        cache->slack -= FTC_HASH_MAX_LOAD;
-        cache->p      = p;
-      }
-      else /* the hash table is balanced */
-        break;
-    }
-  }
-
-
-  /* remove a node from its cache's hash table */
-  static void
-  ftc_node_hash_unlink( FTC_Node   node0,
-                        FTC_Cache  cache )
-  {
-    FTC_Node  *pnode;
-    FT_UInt    idx;
-
-
-    idx = (FT_UInt)( node0->hash & cache->mask );
-    if ( idx < cache->p )
-      idx = (FT_UInt)( node0->hash & ( 2 * cache->mask + 1 ) );
-
-    pnode = cache->buckets + idx;
-
-    for (;;)
-    {
-      FTC_Node  node = *pnode;
-
-
-      if ( node == NULL )
-      {
-        FT_ERROR(( "ftc_node_hash_unlink: unknown node!\n" ));
-        return;
-      }
-
-      if ( node == node0 )
-        break;
-
-      pnode = &(*pnode)->link;
-    }
-
-    *pnode      = node0->link;
-    node0->link = NULL;
-
-    cache->slack++;
-    ftc_cache_resize( cache );
-  }
-
-
-  /* add a node to the `top' of its cache's hash table */
-  static void
-  ftc_node_hash_link( FTC_Node   node,
-                      FTC_Cache  cache )
-  {
-    FTC_Node  *pnode;
-    FT_UInt    idx;
-
-
-    idx = (FT_UInt)( node->hash & cache->mask );
-    if ( idx < cache->p )
-      idx = (FT_UInt)( node->hash & (2 * cache->mask + 1 ) );
-
-    pnode = cache->buckets + idx;
-
-    node->link = *pnode;
-    *pnode     = node;
-
-    cache->slack--;
-    ftc_cache_resize( cache );
-  }
-
-
-  /* remove a node from the cache manager */
-  FT_EXPORT_DEF( void )
-  ftc_node_destroy( FTC_Node     node,
-                    FTC_Manager  manager )
-  {
-    FTC_Cache  cache;
-
-
-#ifdef FT_DEBUG_ERROR
-    /* find node's cache */
-    if ( node->cache_index >= manager->num_caches )
-    {
-      FT_ERROR(( "ftc_node_destroy: invalid node handle\n" ));
-      return;
-    }
-#endif
-
-    cache = manager->caches[node->cache_index];
-
-#ifdef FT_DEBUG_ERROR
-    if ( cache == NULL )
-    {
-      FT_ERROR(( "ftc_node_destroy: invalid node handle\n" ));
-      return;
-    }
-#endif
-
-    manager->cur_weight -= cache->clazz.node_weight( node, cache );
-
-    /* remove node from mru list */
-    ftc_node_mru_unlink( node, manager );
-
-    /* remove node from cache's hash table */
-    ftc_node_hash_unlink( node, cache );
-
-    /* now finalize it */
-    cache->clazz.node_free( node, cache );
-
-#if 0
-    /* check, just in case of general corruption :-) */
-    if ( manager->num_nodes == 0 )
-      FT_ERROR(( "ftc_node_destroy: invalid cache node count! = %d\n",
-                  manager->num_nodes ));
-#endif
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    ABSTRACT CACHE CLASS                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Cache_Init( FTC_Cache  cache )
-  {
-    return ftc_cache_init( cache );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ftc_cache_init( FTC_Cache  cache )
-  {
-    FT_Memory  memory = cache->memory;
-
-
-    cache->p     = 0;
-    cache->mask  = FTC_HASH_INITIAL_SIZE - 1;
-    cache->slack = FTC_HASH_INITIAL_SIZE * FTC_HASH_MAX_LOAD;
-
-    return ( FT_MEM_NEW_ARRAY( cache->buckets, FTC_HASH_INITIAL_SIZE * 2 ) );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_Cache_Clear( FTC_Cache  cache )
-  {
-    if ( cache )
-    {
-      FTC_Manager  manager = cache->manager;
-      FT_UFast     i;
-      FT_UInt      count;
-
-
-      count = cache->p + cache->mask + 1;
-
-      for ( i = 0; i < count; i++ )
-      {
-        FTC_Node  *pnode = cache->buckets + i, next, node = *pnode;
-
-
-        while ( node )
-        {
-          next        = node->link;
-          node->link  = NULL;
-
-          /* remove node from mru list */
-          ftc_node_mru_unlink( node, manager );
-
-          /* now finalize it */
-          manager->cur_weight -= cache->clazz.node_weight( node, cache );
-
-          cache->clazz.node_free( node, cache );
-          node = next;
-        }
-        cache->buckets[i] = NULL;
-      }
-      ftc_cache_resize( cache );
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ftc_cache_done( FTC_Cache  cache )
-  {
-    if ( cache->memory )
-    {
-      FT_Memory  memory = cache->memory;
-
-
-      FTC_Cache_Clear( cache );
-
-      FT_FREE( cache->buckets );
-      cache->mask  = 0;
-      cache->p     = 0;
-      cache->slack = 0;
-
-      cache->memory = NULL;
-    }
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_Cache_Done( FTC_Cache  cache )
-  {
-    ftc_cache_done( cache );
-  }
-
-
-  static void
-  ftc_cache_add( FTC_Cache  cache,
-                 FT_UInt32  hash,
-                 FTC_Node   node )
-  {
-    node->hash = hash;
-    node->cache_index = (FT_UInt16) cache->index;
-    node->ref_count   = 0;
-
-    ftc_node_hash_link( node, cache );
-    ftc_node_mru_link( node, cache->manager );
-
-    {
-      FTC_Manager  manager = cache->manager;
-
-
-      manager->cur_weight += cache->clazz.node_weight( node, cache );
-
-      if ( manager->cur_weight >= manager->max_weight )
-      {
-        node->ref_count++;
-        FTC_Manager_Compress( manager );
-        node->ref_count--;
-      }
-    }
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Cache_NewNode( FTC_Cache   cache,
-                     FT_UInt32   hash,
-                     FT_Pointer  query,
-                     FTC_Node   *anode )
-  {
-    FT_Error  error;
-    FTC_Node  node;
-
-    /*
-     *  Try to allocate a new cache node.  Note that in case of
-     *  out-of-memory error (OOM), we'll flush the cache a bit,
-     *  then try again.
-     *
-     *  On each try, the `tries' variable gives the number
-     *  of old nodes we want to flush from the manager's global list
-     *  before the next allocation attempt.  It barely doubles on
-     *  each iteration.
-     *
-     */
-    error = cache->clazz.node_new( &node, query, cache );
-    if ( error )
-      goto FlushCache;
-
-  AddNode:
-    /* don't assume that the cache has the same number of buckets, since
-     * our allocation request might have triggered global cache flushing
-     */
-    ftc_cache_add( cache, hash, node );
-
-  Exit:
-    *anode = node;
-    return error;
-
-  FlushCache:
-    node = NULL;
-    if ( error != FT_Err_Out_Of_Memory )
-      goto Exit;
-
-    {
-      FTC_Manager  manager = cache->manager;
-      FT_UInt      count, tries = 1;
-
-
-      for (;;)
-      {
-        error = cache->clazz.node_new( &node, query, cache );
-        if ( !error )
-          break;
-
-        node = NULL;
-        if ( error != FT_Err_Out_Of_Memory )
-          goto Exit;
-
-        count = FTC_Manager_FlushN( manager, tries );
-        if ( count == 0 )
-          goto Exit;
-
-        if ( count == tries )
-        {
-          count = tries * 2;
-          if ( count < tries || count > manager->num_nodes )
-            count = manager->num_nodes;
-        }
-        tries = count;
-      }
-    }
-    goto AddNode;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Cache_Lookup( FTC_Cache   cache,
-                    FT_UInt32   hash,
-                    FT_Pointer  query,
-                    FTC_Node   *anode )
-  {
-    FT_UFast   idx;
-    FTC_Node*  bucket;
-    FTC_Node*  pnode;
-    FTC_Node   node;
-    FT_Error   error = 0;
-
-    FTC_Node_CompareFunc  compare = cache->clazz.node_compare;
-
-
-    if ( cache == NULL || anode == NULL )
-      return FT_Err_Invalid_Argument;
-
-    idx = hash & cache->mask;
-    if ( idx < cache->p )
-      idx = hash & ( cache->mask * 2 + 1 );
-
-    bucket = cache->buckets + idx;
-    pnode  = bucket;
-    for (;;)
-    {
-      node = *pnode;
-      if ( node == NULL )
-        goto NewNode;
-
-      if ( node->hash == hash && compare( node, query, cache ) )
-        break;
-
-      pnode = &node->link;
-    }
-
-    if ( node != *bucket )
-    {
-      *pnode     = node->link;
-      node->link = *bucket;
-      *bucket    = node;
-    }
-
-    /* move to head of MRU list */
-    {
-      FTC_Manager  manager = cache->manager;
-
-
-      if ( node != manager->nodes_list )
-        ftc_node_mru_up( node, manager );
-    }
-    *anode = node;
-    return error;
-
-  NewNode:
-    return FTC_Cache_NewNode( cache, hash, query, anode );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_Cache_RemoveFaceID( FTC_Cache   cache,
-                          FTC_FaceID  face_id )
-  {
-    FT_UFast     i, count;
-    FTC_Manager  manager = cache->manager;
-    FTC_Node     frees   = NULL;
-
-
-    count = cache->p + cache->mask;
-    for ( i = 0; i < count; i++ )
-    {
-      FTC_Node*  bucket = cache->buckets + i;
-      FTC_Node*  pnode  = bucket;
-
-
-      for ( ;; )
-      {
-        FTC_Node  node = *pnode;
-
-
-        if ( node == NULL )
-          break;
-
-        if ( cache->clazz.node_remove_faceid( node, face_id, cache ) )
-        {
-          *pnode     = node->link;
-          node->link = frees;
-          frees      = node;
-        }
-        else
-          pnode = &node->link;
-      }
-    }
-
-    /* remove all nodes in the free list */
-    while ( frees )
-    {
-      FTC_Node  node;
-
-
-      node  = frees;
-      frees = node->link;
-
-      manager->cur_weight -= cache->clazz.node_weight( node, cache );
-      ftc_node_mru_unlink( node, manager );
-
-      cache->clazz.node_free( node, cache );
-
-      cache->slack++;
-    }
-
-    ftc_cache_resize( cache );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftccback.h b/nx-X11/extras/freetype2/src/cache/ftccback.h
deleted file mode 100644
index 6b47e095e..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftccback.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftccback.h                                                             */
-/*                                                                         */
-/*    Callback functions of the caching sub-system (specification only).   */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-#ifndef __FTCCBACK_H__
-#define __FTCCBACK_H__
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_MRU_H
-#include FT_CACHE_INTERNAL_IMAGE_H
-#include FT_CACHE_INTERNAL_MANAGER_H
-#include FT_CACHE_INTERNAL_GLYPH_H
-#include FT_CACHE_INTERNAL_SBITS_H
-
-
-  FT_LOCAL( void )
-  ftc_inode_free( FTC_Node   inode,
-                  FTC_Cache  cache );
-
-  FT_LOCAL( FT_Error )
-  ftc_inode_new( FTC_Node   *pinode,
-                 FT_Pointer  gquery,
-                 FTC_Cache   cache );
-
-  FT_LOCAL( FT_ULong )
-  ftc_inode_weight( FTC_Node   inode,
-                    FTC_Cache  cache );
-
-
-  FT_LOCAL( void )
-  ftc_snode_free( FTC_Node   snode,
-                  FTC_Cache  cache );
-
-  FT_LOCAL( FT_Error )
-  ftc_snode_new( FTC_Node   *psnode,
-                 FT_Pointer  gquery,
-                 FTC_Cache   cache );
-
-  FT_LOCAL( FT_ULong )
-  ftc_snode_weight( FTC_Node   snode,
-                    FTC_Cache  cache );
-
-  FT_LOCAL( FT_Bool )
-  ftc_snode_compare( FTC_Node    snode,
-                     FT_Pointer  gquery,
-                     FTC_Cache   cache );
-
-
-  FT_LOCAL( FT_Bool )
-  ftc_gnode_compare( FTC_Node    gnode,
-                     FT_Pointer  gquery,
-                     FTC_Cache   cache );
-
-
-  FT_LOCAL( FT_Error )
-  ftc_gcache_init( FTC_Cache  cache );
-
-  FT_LOCAL( void )
-  ftc_gcache_done( FTC_Cache  cache );
-
-
-  FT_LOCAL( FT_Error )
-  ftc_cache_init( FTC_Cache  cache );
-
-  FT_LOCAL( void )
-  ftc_cache_done( FTC_Cache  cache );
-
-
-#endif /* __FTCCBACK_H__ */
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftccmap.c b/nx-X11/extras/freetype2/src/cache/ftccmap.c
deleted file mode 100644
index b2812c951..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftccmap.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftccmap.c                                                              */
-/*                                                                         */
-/*    FreeType CharMap cache (body)                                        */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_MANAGER_H
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_TRUETYPE_IDS_H
-
-#include "ftccback.h"
-#include "ftcerror.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cache
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Each FTC_CMapNode contains a simple array to map a range of character */
-  /* codes to equivalent glyph indices.                                    */
-  /*                                                                       */
-  /* For now, the implementation is very basic: Each node maps a range of  */
-  /* 128 consecutive character codes to their corresponding glyph indices. */
-  /*                                                                       */
-  /* We could do more complex things, but I don't think it is really very  */
-  /* useful.                                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* number of glyph indices / character code per node */
-#define FTC_CMAP_INDICES_MAX  128
-
-  /* compute a query/node hash */
-#define FTC_CMAP_HASH( faceid, index, charcode )           \
-          ( FTC_FACE_ID_HASH( faceid ) + 211 * ( index ) + \
-            ( (char_code) / FTC_CMAP_INDICES_MAX )       )
-
-  /* the charmap query */
-  typedef struct  FTC_CMapQueryRec_
-  {
-    FTC_FaceID  face_id;
-    FT_UInt     cmap_index;
-    FT_UInt32   char_code;
-
-  } FTC_CMapQueryRec, *FTC_CMapQuery;
-
-#define FTC_CMAP_QUERY( x )  ((FTC_CMapQuery)(x))
-#define FTC_CMAP_QUERY_HASH( x )                                         \
-          FTC_CMAP_HASH( (x)->face_id, (x)->cmap_index, (x)->char_code )
-
-  /* the cmap cache node */
-  typedef struct  FTC_CMapNodeRec_
-  {
-    FTC_NodeRec  node;
-    FTC_FaceID   face_id;
-    FT_UInt      cmap_index;
-    FT_UInt32    first;                         /* first character in node */
-    FT_UInt16    indices[FTC_CMAP_INDICES_MAX]; /* array of glyph indices  */
-
-  } FTC_CMapNodeRec, *FTC_CMapNode;
-
-#define FTC_CMAP_NODE( x ) ( (FTC_CMapNode)( x ) )
-#define FTC_CMAP_NODE_HASH( x )                                      \
-          FTC_CMAP_HASH( (x)->face_id, (x)->cmap_index, (x)->first )
-
-  /* if (indices[n] == FTC_CMAP_UNKNOWN), we assume that the corresponding */
-  /* glyph indices haven't been queried through FT_Get_Glyph_Index() yet   */
-#define FTC_CMAP_UNKNOWN  ( (FT_UInt16)-1 )
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        CHARMAP NODES                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* no need for specific finalizer; we use `ftc_node_done' directly */
-
-  FT_CALLBACK_DEF( void )
-  ftc_cmap_node_free( FTC_Node   ftcnode,
-                      FTC_Cache  cache )
-  {
-    FTC_CMapNode  node   = (FTC_CMapNode)ftcnode;
-    FT_Memory     memory = cache->memory;
-
-
-    FT_FREE( node );
-  }
-
-
-  /* initialize a new cmap node */
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_cmap_node_new( FTC_Node   *ftcanode,
-                     FT_Pointer  ftcquery,
-                     FTC_Cache   cache )
-  {
-    FTC_CMapNode  *anode  = (FTC_CMapNode*)ftcanode;
-    FTC_CMapQuery  query  = (FTC_CMapQuery)ftcquery;
-    FT_Error       error;
-    FT_Memory      memory = cache->memory;
-    FTC_CMapNode   node;
-    FT_UInt        nn;
-
-
-    if ( !FT_NEW( node ) )
-    {
-      node->face_id    = query->face_id;
-      node->cmap_index = query->cmap_index;
-      node->first      = (query->char_code / FTC_CMAP_INDICES_MAX) *
-                         FTC_CMAP_INDICES_MAX;
-
-      for ( nn = 0; nn < FTC_CMAP_INDICES_MAX; nn++ )
-        node->indices[nn] = FTC_CMAP_UNKNOWN;
-    }
-
-    *anode = node;
-    return error;
-  }
-
-
-  /* compute the weight of a given cmap node */
-  FT_CALLBACK_DEF( FT_ULong )
-  ftc_cmap_node_weight( FTC_Node   cnode,
-                        FTC_Cache  cache )
-  {
-    FT_UNUSED( cnode );
-    FT_UNUSED( cache );
-
-    return sizeof ( *cnode );
-  }
-
-
-  /* compare a cmap node to a given query */
-  FT_CALLBACK_DEF( FT_Bool )
-  ftc_cmap_node_compare( FTC_Node    ftcnode,
-                         FT_Pointer  ftcquery,
-                         FTC_Cache   cache )
-  {
-    FTC_CMapNode   node  = (FTC_CMapNode)ftcnode;
-    FTC_CMapQuery  query = (FTC_CMapQuery)ftcquery;
-    FT_UNUSED( cache );
-
-
-    if ( node->face_id    == query->face_id    &&
-         node->cmap_index == query->cmap_index )
-    {
-      FT_UInt32  offset = (FT_UInt32)( query->char_code - node->first );
-
-
-      return FT_BOOL( offset < FTC_CMAP_INDICES_MAX );
-    }
-
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Bool )
-  ftc_cmap_node_remove_faceid( FTC_Node    ftcnode,
-                               FT_Pointer  ftcface_id,
-                               FTC_Cache   cache )
-  {
-    FTC_CMapNode  node    = (FTC_CMapNode)ftcnode;
-    FTC_FaceID    face_id = (FTC_FaceID)ftcface_id;
-    FT_UNUSED( cache );
-
-    return FT_BOOL( node->face_id == face_id );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    GLYPH IMAGE CACHE                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_CacheClassRec  ftc_cmap_cache_class =
-  {
-    ftc_cmap_node_new,
-    ftc_cmap_node_weight,
-    ftc_cmap_node_compare,
-    ftc_cmap_node_remove_faceid,
-    ftc_cmap_node_free,
-
-    sizeof ( FTC_CacheRec ),
-    ftc_cache_init,
-    ftc_cache_done,
-  };
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_CMapCache_New( FTC_Manager     manager,
-                     FTC_CMapCache  *acache )
-  {
-    return FTC_Manager_RegisterCache( manager,
-                                      &ftc_cmap_cache_class,
-                                      FTC_CACHE_P( acache ) );
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_UInt )
-  FTC_CMapCache_Lookup( FTC_CMapCache  cmap_cache,
-                        FTC_FaceID     face_id,
-                        FT_Int         cmap_index,
-                        FT_UInt32      char_code )
-  {
-    FTC_Cache         cache = FTC_CACHE( cmap_cache );
-    FTC_CMapQueryRec  query;
-    FTC_CMapNode      node;
-    FT_Error          error;
-    FT_UInt           gindex = 0;
-    FT_UInt32         hash;
-
-
-    if ( !cache )
-    {
-      FT_ERROR(( "FTC_CMapCache_Lookup: bad arguments, returning 0!\n" ));
-      return 0;
-    }
-
-    query.face_id    = face_id;
-    query.cmap_index = (FT_UInt)cmap_index;
-    query.char_code  = char_code;
-
-    hash = FTC_CMAP_HASH( face_id, cmap_index, char_code );
-
-#if 1
-    FTC_CACHE_LOOKUP_CMP( cache, ftc_cmap_node_compare, hash, &query,
-                          node, error );
-#else
-    error = FTC_Cache_Lookup( cache, hash, &query, (FTC_Node*) &node );
-#endif
-    if ( error )
-      goto Exit;
-
-    FT_ASSERT( (FT_UInt)( char_code - node->first ) < FTC_CMAP_INDICES_MAX );
-
-    gindex = node->indices[char_code - node->first];
-    if ( gindex == FTC_CMAP_UNKNOWN )
-    {
-      FT_Face  face;
-
-
-      gindex = 0;
-
-      error = FTC_Manager_LookupFace( cache->manager, node->face_id, &face );
-      if ( error )
-        goto Exit;
-
-      if ( (FT_UInt)cmap_index < (FT_UInt)face->num_charmaps )
-      {
-        FT_CharMap  old, cmap  = NULL;
-
-
-        old  = face->charmap;
-        cmap = face->charmaps[cmap_index];
-
-        if ( old != cmap )
-          FT_Set_Charmap( face, cmap );
-
-        gindex = FT_Get_Char_Index( face, char_code );
-
-        if ( old != cmap )
-          FT_Set_Charmap( face, old );
-      }
-
-      node->indices[char_code - node->first] = gindex;
-    }
-
-  Exit:
-    return gindex;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcerror.h b/nx-X11/extras/freetype2/src/cache/ftcerror.h
deleted file mode 100644
index 5998d42da..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcerror.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcerror.h                                                             */
-/*                                                                         */
-/*    Caching sub-system error codes (specification only).                 */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the caching sub-system error enumeration  */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __FTCERROR_H__
-#define __FTCERROR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  FTC_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Cache
-
-#include FT_ERRORS_H
-
-#endif /* __FTCERROR_H__ */
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcglyph.c b/nx-X11/extras/freetype2/src/cache/ftcglyph.c
deleted file mode 100644
index 1f3158e79..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcglyph.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcglyph.c                                                             */
-/*                                                                         */
-/*    FreeType Glyph Image (FT_Glyph) cache (body).                        */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_GLYPH_H
-#include FT_ERRORS_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-
-#include "ftccback.h"
-#include "ftcerror.h"
-
-
-  /* create a new chunk node, setting its cache index and ref count */
-  FT_EXPORT_DEF( void )
-  FTC_GNode_Init( FTC_GNode   gnode,
-                  FT_UInt     gindex,
-                  FTC_Family  family )
-  {
-    gnode->family = family;
-    gnode->gindex = gindex;
-    family->num_nodes++;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_GNode_UnselectFamily( FTC_GNode  gnode,
-                            FTC_Cache  cache )
-  {
-    FTC_Family  family = gnode->family;
-
-
-    gnode->family = NULL;
-    if ( family && --family->num_nodes <= 0 )
-      FTC_MruList_Remove( &FTC_GCACHE( cache )->families,
-                          (FTC_MruNode)family );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_GNode_Done( FTC_GNode  gnode,
-                  FTC_Cache  cache )
-  {
-    /* finalize the node */
-    gnode->gindex = 0;
-
-    FTC_GNode_UnselectFamily( gnode, cache );
-  }
-
-
-  FT_LOCAL_DEF( FT_Bool )
-  ftc_gnode_compare( FTC_Node    ftcgnode,
-                     FT_Pointer  ftcgquery,
-                     FTC_Cache   cache )
-  {
-    FTC_GNode   gnode  = (FTC_GNode)ftcgnode;
-    FTC_GQuery  gquery = (FTC_GQuery)ftcgquery;
-    FT_UNUSED( cache );
-
-
-    return FT_BOOL(  gnode->family == gquery->family &&
-                     gnode->gindex == gquery->gindex );
-  }
-
-
-  FT_EXPORT_DEF( FT_Bool )
-  FTC_GNode_Compare( FTC_GNode   gnode,
-                     FTC_GQuery  gquery )
-  {
-    return ftc_gnode_compare( FTC_NODE( gnode ), gquery, NULL );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      CHUNK SETS                               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_EXPORT_DEF( void )
-  FTC_Family_Init( FTC_Family  family,
-                   FTC_Cache   cache )
-  {
-    FTC_GCacheClass  clazz = FTC_CACHE__GCACHE_CLASS( cache );
-
-
-    family->clazz     = clazz->family_class;
-    family->num_nodes = 0;
-    family->cache     = cache;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ftc_gcache_init( FTC_Cache  ftccache )
-  {
-    FTC_GCache  cache = (FTC_GCache)ftccache;
-    FT_Error    error;
-
-
-    error = FTC_Cache_Init( FTC_CACHE( cache ) );
-    if ( !error )
-    {
-      FTC_GCacheClass   clazz = (FTC_GCacheClass)FTC_CACHE( cache )->org_class;
-
-      FTC_MruList_Init( &cache->families,
-                        clazz->family_class,
-                        0,  /* no maximum here! */
-                        cache,
-                        FTC_CACHE( cache )->memory );
-    }
-
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_GCache_Init( FTC_GCache  cache )
-  {
-    return ftc_gcache_init( FTC_CACHE( cache ) );
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ftc_gcache_done( FTC_Cache  ftccache )
-  {
-    FTC_GCache  cache = (FTC_GCache)ftccache;
-
-
-    FTC_Cache_Done( (FTC_Cache)cache );
-    FTC_MruList_Done( &cache->families );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_GCache_Done( FTC_GCache  cache )
-  {
-    ftc_gcache_done( FTC_CACHE( cache ) );
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_GCache_New( FTC_Manager       manager,
-                  FTC_GCacheClass   clazz,
-                  FTC_GCache       *acache )
-  {
-    return FTC_Manager_RegisterCache( manager, (FTC_CacheClass)clazz,
-                                      (FTC_Cache*)acache );
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_GCache_Lookup( FTC_GCache   cache,
-                     FT_UInt32    hash,
-                     FT_UInt      gindex,
-                     FTC_GQuery   query,
-                     FTC_Node    *anode )
-  {
-    FT_Error  error;
-
-
-    query->gindex = gindex;
-
-    FTC_MRULIST_LOOKUP( &cache->families, query, query->family, error );
-    if ( !error )
-      error = FTC_Cache_Lookup( FTC_CACHE( cache ), hash, query, anode );
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcimage.c b/nx-X11/extras/freetype2/src/cache/ftcimage.c
deleted file mode 100644
index 508ed6c15..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcimage.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcimage.c                                                             */
-/*                                                                         */
-/*    FreeType Image cache (body).                                         */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_IMAGE_H
-#include FT_INTERNAL_MEMORY_H
-
-#include "ftccback.h"
-#include "ftcerror.h"
-
-
-  /* finalize a given glyph image node */
-  FT_LOCAL_DEF( void )
-  ftc_inode_free( FTC_Node   ftcinode,
-                  FTC_Cache  cache )
-  {
-    FTC_INode  inode = (FTC_INode)ftcinode;
-    FT_Memory  memory = cache->memory;
-
-
-    if ( inode->glyph )
-    {
-      FT_Done_Glyph( inode->glyph );
-      inode->glyph = NULL;
-    }
-
-    FTC_GNode_Done( FTC_GNODE( inode ), cache );
-    FT_FREE( inode );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_INode_Free( FTC_INode  inode,
-                  FTC_Cache  cache )
-  {
-    ftc_inode_free( FTC_NODE( inode ), cache );
-  }
-
-
-  /* initialize a new glyph image node */
-  FT_EXPORT_DEF( FT_Error )
-  FTC_INode_New( FTC_INode   *pinode,
-                 FTC_GQuery   gquery,
-                 FTC_Cache    cache )
-  {
-    FT_Memory  memory = cache->memory;
-    FT_Error   error;
-    FTC_INode  inode;
-
-
-    if ( !FT_NEW( inode ) )
-    {
-      FTC_GNode         gnode  = FTC_GNODE( inode );
-      FTC_Family        family = gquery->family;
-      FT_UInt           gindex = gquery->gindex;
-      FTC_IFamilyClass  clazz  = FTC_CACHE__IFAMILY_CLASS( cache );
-
-
-      /* initialize its inner fields */
-      FTC_GNode_Init( gnode, gindex, family );
-
-      /* we will now load the glyph image */
-      error = clazz->family_load_glyph( family, gindex, cache,
-                                        &inode->glyph );
-    }
-
-    *pinode = inode;
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ftc_inode_new( FTC_Node   *ftcpinode,
-                 FT_Pointer  ftcgquery,
-                 FTC_Cache   cache )
-  {
-    FTC_INode  *pinode = (FTC_INode*)ftcpinode;
-    FTC_GQuery  gquery = (FTC_GQuery)ftcgquery;
-
-
-    return FTC_INode_New( pinode, gquery, cache );
-  }
-
-
-  FT_LOCAL_DEF( FT_ULong )
-  ftc_inode_weight( FTC_Node   ftcinode,
-                    FTC_Cache  ftccache )
-  {
-    FTC_INode  inode = (FTC_INode)ftcinode;
-    FT_ULong   size  = 0;
-    FT_Glyph   glyph = inode->glyph;
-
-    FT_UNUSED( ftccache );
-
-
-    switch ( glyph->format )
-    {
-    case FT_GLYPH_FORMAT_BITMAP:
-      {
-        FT_BitmapGlyph  bitg;
-
-
-        bitg = (FT_BitmapGlyph)glyph;
-        size = bitg->bitmap.rows * labs( bitg->bitmap.pitch ) +
-               sizeof ( *bitg );
-      }
-      break;
-
-    case FT_GLYPH_FORMAT_OUTLINE:
-      {
-        FT_OutlineGlyph  outg;
-
-
-        outg = (FT_OutlineGlyph)glyph;
-        size = outg->outline.n_points *
-                 ( sizeof ( FT_Vector ) + sizeof ( FT_Byte ) ) +
-               outg->outline.n_contours * sizeof ( FT_Short ) +
-               sizeof ( *outg );
-      }
-      break;
-
-    default:
-      ;
-    }
-
-    size += sizeof ( *inode );
-    return size;
-  }
-
-
-  FT_EXPORT_DEF( FT_ULong )
-  FTC_INode_Weight( FTC_INode  inode )
-  {
-    return ftc_inode_weight( FTC_NODE( inode ), NULL );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcmanag.c b/nx-X11/extras/freetype2/src/cache/ftcmanag.c
deleted file mode 100644
index 97d324c61..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcmanag.c
+++ /dev/null
@@ -1,680 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcmanag.c                                                             */
-/*                                                                         */
-/*    FreeType Cache Manager (body).                                       */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_MANAGER_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_SIZES_H
-
-#include "ftcerror.h"
-
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cache
-
-#define FTC_LRU_GET_MANAGER( lru )  ( (FTC_Manager)(lru)->user_data )
-
-
-  static FT_Error
-  ftc_scaler_lookup_size( FTC_Manager  manager,
-                          FTC_Scaler   scaler,
-                          FT_Size     *asize )
-  {
-    FT_Face   face;
-    FT_Size   size = NULL;
-    FT_Error  error;
-
-
-    error = FTC_Manager_LookupFace( manager, scaler->face_id, &face );
-    if ( error )
-      goto Exit;
-
-    error = FT_New_Size( face, &size );
-    if ( error )
-      goto Exit;
-
-    FT_Activate_Size( size );
-
-    if ( scaler->pixel )
-      error = FT_Set_Pixel_Sizes( face, scaler->width, scaler->height );
-    else
-      error = FT_Set_Char_Size( face, scaler->width, scaler->height,
-                                scaler->x_res, scaler->y_res );
-    if ( error )
-    {
-      FT_Done_Size( size );
-      size = NULL;
-    }
-
-  Exit:
-    *asize = size;
-    return error;
-  }
-
-
-  typedef struct  FTC_SizeNodeRec_
-  {
-    FTC_MruNodeRec  node;
-    FT_Size         size;
-    FTC_ScalerRec   scaler;
-
-  } FTC_SizeNodeRec, *FTC_SizeNode;
-
-
-  FT_CALLBACK_DEF( void )
-  ftc_size_node_done( FTC_MruNode  ftcnode,
-                      FT_Pointer   data )
-  {
-    FTC_SizeNode  node = (FTC_SizeNode)ftcnode;
-    FT_Size       size = node->size;
-    FT_UNUSED( data );
-
-
-    if ( size )
-      FT_Done_Size( size );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Bool )
-  ftc_size_node_compare( FTC_MruNode  ftcnode,
-                         FT_Pointer   ftcscaler )
-  {
-    FTC_SizeNode  node    = (FTC_SizeNode)ftcnode;
-    FTC_Scaler    scaler  = (FTC_Scaler)ftcscaler;
-    FTC_Scaler    scaler0 = &node->scaler;
-
-
-    if ( FTC_SCALER_COMPARE( scaler0, scaler ) )
-    {
-      FT_Activate_Size( node->size );
-      return 1;
-    }
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_size_node_init( FTC_MruNode  ftcnode,
-                      FT_Pointer   ftcscaler,
-                      FT_Pointer   ftcmanager )
-  {
-    FTC_SizeNode  node    = (FTC_SizeNode)ftcnode;
-    FTC_Scaler    scaler  = (FTC_Scaler)ftcscaler;
-    FTC_Manager   manager = (FTC_Manager)ftcmanager;
-
-
-    node->scaler = scaler[0];
-
-    return ftc_scaler_lookup_size( manager, scaler, &node->size );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_size_node_reset( FTC_MruNode  ftcnode,
-                       FT_Pointer   ftcscaler,
-                       FT_Pointer   ftcmanager )
-  {
-    FTC_SizeNode  node    = (FTC_SizeNode)ftcnode;
-    FTC_Scaler    scaler  = (FTC_Scaler)ftcscaler;
-    FTC_Manager   manager = (FTC_Manager)ftcmanager;
-
-
-    FT_Done_Size( node->size );
-
-    node->scaler = scaler[0];
-
-    return ftc_scaler_lookup_size( manager, scaler, &node->size );
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_MruListClassRec  ftc_size_list_class =
-  {
-    sizeof ( FTC_SizeNodeRec ),
-    ftc_size_node_compare,
-    ftc_size_node_init,
-    ftc_size_node_reset,
-    ftc_size_node_done
-  };
-
-
-  /* helper function used by ftc_face_node_done */
-  static FT_Bool
-  ftc_size_node_compare_faceid( FTC_MruNode  ftcnode,
-                                FT_Pointer   ftcface_id )
-  {
-    FTC_SizeNode  node    = (FTC_SizeNode)ftcnode;
-    FTC_FaceID    face_id = (FTC_FaceID)ftcface_id;
-
-
-    return node->scaler.face_id == face_id;
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Manager_LookupSize( FTC_Manager  manager,
-                          FTC_Scaler   scaler,
-                          FT_Size     *asize )
-  {
-    FT_Error      error;
-    FTC_SizeNode  node;
-
-
-    if ( asize == NULL )
-      return FTC_Err_Bad_Argument;
-
-    *asize = NULL;
-
-    if ( !manager )
-      return FTC_Err_Invalid_Cache_Handle;
-
-#ifdef FTC_INLINE
-
-    FTC_MRULIST_LOOKUP_CMP( &manager->sizes, scaler, ftc_size_node_compare,
-                            node, error );
-
-#else
-    error = FTC_MruList_Lookup( &manager->sizes, scaler, (FTC_MruNode*)&node );
-#endif
-
-    if ( !error )
-      *asize = node->size;
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    FACE MRU IMPLEMENTATION                    *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct  FTC_FaceNodeRec_
-  {
-    FTC_MruNodeRec  node;
-    FTC_FaceID      face_id;
-    FT_Face         face;
-
-  } FTC_FaceNodeRec, *FTC_FaceNode;
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  ftc_face_node_init( FTC_MruNode  ftcnode,
-                      FT_Pointer   ftcface_id,
-                      FT_Pointer   ftcmanager )
-  {
-    FTC_FaceNode  node    = (FTC_FaceNode)ftcnode;
-    FTC_FaceID    face_id = (FTC_FaceID)ftcface_id;
-    FTC_Manager   manager = (FTC_Manager)ftcmanager;
-    FT_Error      error;
-
-
-    node->face_id = face_id;
-
-    error = manager->request_face( face_id,
-                                   manager->library,
-                                   manager->request_data,
-                                   &node->face );
-    if ( !error )
-    {
-      /* destroy initial size object; it will be re-created later */
-      if ( node->face->size )
-        FT_Done_Size( node->face->size );
-    }
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  ftc_face_node_done( FTC_MruNode  ftcnode,
-                      FT_Pointer   ftcmanager )
-  {
-    FTC_FaceNode  node    = (FTC_FaceNode)ftcnode;
-    FTC_Manager   manager = (FTC_Manager)ftcmanager;
-
-
-    /* we must begin by removing all scalers for the target face */
-    /* from the manager's list                                   */
-    FTC_MruList_RemoveSelection( &manager->sizes,
-                                 ftc_size_node_compare_faceid,
-                                 node->face_id );
-
-    /* all right, we can discard the face now */
-    FT_Done_Face( node->face );
-    node->face    = NULL;
-    node->face_id = NULL;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Bool )
-  ftc_face_node_compare( FTC_MruNode  ftcnode,
-                         FT_Pointer   ftcface_id )
-  {
-    FTC_FaceNode  node    = (FTC_FaceNode)ftcnode;
-    FTC_FaceID    face_id = (FTC_FaceID)ftcface_id;
-
-
-    return FT_BOOL( node->face_id == face_id );
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FTC_MruListClassRec  ftc_face_list_class =
-  {
-    sizeof ( FTC_FaceNodeRec),
-
-    ftc_face_node_compare,
-    ftc_face_node_init,
-    0,                          /* FTC_MruNode_ResetFunc */
-    ftc_face_node_done
-  };
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Manager_LookupFace( FTC_Manager  manager,
-                          FTC_FaceID   face_id,
-                          FT_Face     *aface )
-  {
-    FT_Error      error;
-    FTC_FaceNode  node;
-
-
-    if ( aface == NULL )
-      return FTC_Err_Bad_Argument;
-
-    *aface = NULL;
-
-    if ( !manager )
-      return FTC_Err_Invalid_Cache_Handle;
-
-    /* we break encapsulation for the sake of speed */
-#ifdef FTC_INLINE
-
-    FTC_MRULIST_LOOKUP_CMP( &manager->faces, face_id, ftc_face_node_compare,
-                            node, error );
-
-#else
-    error = FTC_MruList_Lookup( &manager->faces, face_id, (FTC_MruNode*)&node );
-#endif
-
-    if ( !error )
-      *aface = node->face;
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    CACHE MANAGER ROUTINES                     *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Manager_New( FT_Library          library,
-                   FT_UInt             max_faces,
-                   FT_UInt             max_sizes,
-                   FT_ULong            max_bytes,
-                   FTC_Face_Requester  requester,
-                   FT_Pointer          req_data,
-                   FTC_Manager        *amanager )
-  {
-    FT_Error     error;
-    FT_Memory    memory;
-    FTC_Manager  manager = 0;
-
-
-    if ( !library )
-      return FTC_Err_Invalid_Library_Handle;
-
-    memory = library->memory;
-
-    if ( FT_NEW( manager ) )
-      goto Exit;
-
-    if ( max_faces == 0 )
-      max_faces = FTC_MAX_FACES_DEFAULT;
-
-    if ( max_sizes == 0 )
-      max_sizes = FTC_MAX_SIZES_DEFAULT;
-
-    if ( max_bytes == 0 )
-      max_bytes = FTC_MAX_BYTES_DEFAULT;
-
-    manager->library      = library;
-    manager->memory       = memory;
-    manager->max_weight   = max_bytes;
-
-    manager->request_face = requester;
-    manager->request_data = req_data;
-
-    FTC_MruList_Init( &manager->faces,
-                      &ftc_face_list_class,
-                      max_faces,
-                      manager,
-                      memory );
-
-    FTC_MruList_Init( &manager->sizes,
-                      &ftc_size_list_class,
-                      max_sizes,
-                      manager,
-                      memory );
-
-    *amanager = manager;
-
-  Exit:
-    return error;
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( void )
-  FTC_Manager_Done( FTC_Manager  manager )
-  {
-    FT_Memory  memory;
-    FT_UInt    idx;
-
-
-    if ( !manager || !manager->library )
-      return;
-
-    memory = manager->memory;
-
-    /* now discard all caches */
-    for (idx = manager->num_caches; idx-- > 0; )
-    {
-      FTC_Cache  cache = manager->caches[idx];
-
-
-      if ( cache )
-      {
-        cache->clazz.cache_done( cache );
-        FT_FREE( cache );
-        manager->caches[idx] = NULL;
-      }
-    }
-    manager->num_caches = 0;
-
-    /* discard faces and sizes */
-    FTC_MruList_Done( &manager->sizes );
-    FTC_MruList_Done( &manager->faces );
-
-    manager->library = NULL;
-    manager->memory  = NULL;
-
-    FT_FREE( manager );
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( void )
-  FTC_Manager_Reset( FTC_Manager  manager )
-  {
-    if ( manager )
-    {
-      FTC_MruList_Reset( &manager->sizes );
-      FTC_MruList_Reset( &manager->faces );
-    }
-    /* XXX: FIXME: flush the caches? */
-  }
-
-
-#ifdef FT_DEBUG_ERROR
-
-  FT_EXPORT_DEF( void )
-  FTC_Manager_Check( FTC_Manager  manager )
-  {
-    FTC_Node  node, first;
-
-
-    first = manager->nodes_list;
-
-    /* check node weights */
-    if ( first )
-    {
-      FT_ULong  weight = 0;
-
-
-      node = first;
-
-      do
-      {
-        FTC_Cache  cache = manager->caches[node->cache_index];
-
-
-        if ( (FT_UInt)node->cache_index >= manager->num_caches )
-          FT_ERROR(( "FTC_Manager_Check: invalid node (cache index = %ld\n",
-                     node->cache_index ));
-        else
-          weight += cache->clazz.node_weight( node, cache );
-
-        node = FTC_NODE__NEXT( node );
-
-      } while ( node != first );
-
-      if ( weight != manager->cur_weight )
-        FT_ERROR(( "FTC_Manager_Check: invalid weight %ld instead of %ld\n",
-                   manager->cur_weight, weight ));
-    }
-
-    /* check circular list */
-    if ( first )
-    {
-      FT_UFast  count = 0;
-
-
-      node = first;
-      do
-      {
-        count++;
-        node = FTC_NODE__NEXT( node );
-
-      } while ( node != first );
-
-      if ( count != manager->num_nodes )
-        FT_ERROR((
-          "FTC_Manager_Check: invalid cache node count %d instead of %d\n",
-          manager->num_nodes, count ));
-    }
-  }
-
-#endif /* FT_DEBUG_ERROR */
-
-
-  /* `Compress' the manager's data, i.e., get rid of old cache nodes */
-  /* that are not referenced anymore in order to limit the total     */
-  /* memory used by the cache.                                       */
-
-  /* documentation is in ftcmanag.h */
-
-  FT_EXPORT_DEF( void )
-  FTC_Manager_Compress( FTC_Manager  manager )
-  {
-    FTC_Node   node, first;
-
-
-    if ( !manager )
-      return;
-
-    first = manager->nodes_list;
-
-#ifdef FT_DEBUG_ERROR
-    FTC_Manager_Check( manager );
-
-    FT_ERROR(( "compressing, weight = %ld, max = %ld, nodes = %d\n",
-               manager->cur_weight, manager->max_weight,
-               manager->num_nodes ));
-#endif
-
-    if ( manager->cur_weight < manager->max_weight || first == NULL )
-      return;
-
-    /* go to last node -- it's a circular list */
-    node = FTC_NODE__PREV( first );
-    do
-    {
-      FTC_Node  prev;
-
-
-      prev = ( node == first ) ? NULL : FTC_NODE__PREV( node );
-
-      if ( node->ref_count <= 0 )
-        ftc_node_destroy( node, manager );
-
-      node = prev;
-
-    } while ( node && manager->cur_weight > manager->max_weight );
-  }
-
-
-  /* documentation is in ftcmanag.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_Manager_RegisterCache( FTC_Manager      manager,
-                             FTC_CacheClass   clazz,
-                             FTC_Cache       *acache )
-  {
-    FT_Error   error = FTC_Err_Invalid_Argument;
-    FTC_Cache  cache = NULL;
-
-
-    if ( manager && clazz && acache )
-    {
-      FT_Memory  memory = manager->memory;
-
-
-      if ( manager->num_caches >= FTC_MAX_CACHES )
-      {
-        error = FTC_Err_Too_Many_Caches;
-        FT_ERROR(( "%s: too many registered caches\n",
-                   "FTC_Manager_Register_Cache" ));
-        goto Exit;
-      }
-
-      if ( !FT_ALLOC( cache, clazz->cache_size ) )
-      {
-        cache->manager   = manager;
-        cache->memory    = memory;
-        cache->clazz     = clazz[0];
-        cache->org_class = clazz;
-
-        /* THIS IS VERY IMPORTANT!  IT WILL WRETCH THE MANAGER */
-        /* IF IT IS NOT SET CORRECTLY                          */
-        cache->index = manager->num_caches;
-
-        error = clazz->cache_init( cache );
-        if ( error )
-        {
-          clazz->cache_done( cache );
-          FT_FREE( cache );
-          goto Exit;
-        }
-
-        manager->caches[manager->num_caches++] = cache;
-      }
-    }
-
-  Exit:
-    *acache = cache;
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_UInt )
-  FTC_Manager_FlushN( FTC_Manager  manager,
-                      FT_UInt      count )
-  {
-    FTC_Node  first = manager->nodes_list;
-    FTC_Node  node;
-    FT_UInt   result;
-
-
-    /* try to remove `count' nodes from the list */
-    if ( first == NULL )  /* empty list! */
-      return 0;
-
-    /* go to last node - it's a circular list */
-    node = FTC_NODE__PREV(first);
-    for ( result = 0; result < count; )
-    {
-      FTC_Node  prev = FTC_NODE__PREV( node );
-
-
-      /* don't touch locked nodes */
-      if ( node->ref_count <= 0 )
-      {
-        ftc_node_destroy( node, manager );
-        result++;
-      }
-
-      if ( prev == manager->nodes_list )
-        break;
-
-      node = prev;
-    }
-    return  result;
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( void )
-  FTC_Manager_RemoveFaceID( FTC_Manager  manager,
-                            FTC_FaceID   face_id )
-  {
-    FT_UInt  nn;
-
-    /* this will remove all FTC_SizeNode that correspond to
-     * the face_id as well
-     */
-    FTC_MruList_RemoveSelection( &manager->faces, NULL, face_id );
-
-    for ( nn = 0; nn < manager->num_caches; nn++ )
-      FTC_Cache_RemoveFaceID( manager->caches[nn], face_id );
-  }
-
-
-  /* documentation is in ftcache.h */
-
-  FT_EXPORT_DEF( void )
-  FTC_Node_Unref( FTC_Node     node,
-                  FTC_Manager  manager )
-  {
-    if ( node && (FT_UInt)node->cache_index < manager->num_caches )
-      node->ref_count--;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcmru.c b/nx-X11/extras/freetype2/src/cache/ftcmru.c
deleted file mode 100644
index d4f733a11..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcmru.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcmru.c                                                               */
-/*                                                                         */
-/*    FreeType MRU support (body).                                         */
-/*                                                                         */
-/*  Copyright 2003, 2004 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_MRU_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-
-#include "ftcerror.h"
-
-
-  FT_EXPORT_DEF( void )
-  FTC_MruNode_Prepend( FTC_MruNode  *plist,
-                       FTC_MruNode   node )
-  {
-    FTC_MruNode  first = *plist;
-
-
-    if ( first )
-    {
-      FTC_MruNode  last = first->prev;
-
-
-#ifdef FT_DEBUG_ERROR
-      {
-        FTC_MruNode  cnode = first;
-
-
-        do
-        {
-          if ( cnode == node )
-          {
-            fprintf( stderr, "FTC_MruNode_Prepend: invalid action!\n" );
-            exit( 2 );
-          }
-          cnode = cnode->next;
-
-        } while ( cnode != first );
-      }
-#endif
-
-      first->prev = node;
-      last->next  = node;
-      node->next  = first;
-      node->prev  = last;
-    }
-    else
-    {
-      node->next = node;
-      node->prev = node;
-    }
-    *plist = node;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_MruNode_Up( FTC_MruNode  *plist,
-                  FTC_MruNode   node )
-  {
-    FTC_MruNode  first = *plist;
-
-
-    FT_ASSERT( first != NULL );
-
-    if ( first != node )
-    {
-      FTC_MruNode  prev, next, last;
-
-
-#ifdef FT_DEBUG_ERROR
-      {
-        FTC_MruNode  cnode = first;
-        do
-        {
-          if ( cnode == node )
-            goto Ok;
-          cnode = cnode->next;
-
-        } while ( cnode != first );
-
-        fprintf( stderr, "FTC_MruNode_Up: invalid action!\n" );
-        exit( 2 );
-      Ok:
-      }
-#endif
-      prev = node->prev;
-      next = node->next;
-
-      prev->next = next;
-      next->prev = prev;
-
-      last = first->prev;
-
-      last->next  = node;
-      first->prev = node;
-
-      node->next = first;
-      node->prev = last;
-
-      *plist = node;
-    }
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_MruNode_Remove( FTC_MruNode  *plist,
-                      FTC_MruNode   node )
-  {
-    FTC_MruNode  first = *plist;
-    FTC_MruNode  prev, next;
-
-
-    FT_ASSERT( first != NULL );
-
-#ifdef FT_DEBUG_ERROR
-      {
-        FTC_MruNode  cnode = first;
-
-
-        do
-        {
-          if ( cnode == node )
-            goto Ok;
-          cnode = cnode->next;
-
-        } while ( cnode != first );
-
-        fprintf( stderr, "FTC_MruNode_Remove: invalid action!\n" );
-        exit( 2 );
-      Ok:
-      }
-#endif
-
-    prev = node->prev;
-    next = node->next;
-
-    prev->next = next;
-    next->prev = prev;
-
-    if ( node == next )
-    {
-      FT_ASSERT( first == node );
-      FT_ASSERT( prev  == node );
-
-      *plist = NULL;
-    }
-    else if ( node == first )
-        *plist = next;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_MruList_Init( FTC_MruList       list,
-                    FTC_MruListClass  clazz,
-                    FT_UInt           max_nodes,
-                    FT_Pointer        data,
-                    FT_Memory         memory )
-  {
-    list->num_nodes = 0;
-    list->max_nodes = max_nodes;
-    list->nodes     = NULL;
-    list->clazz     = *clazz;
-    list->data      = data;
-    list->memory    = memory;
-  }
-
-
-  FT_EXPORT( void )
-  FTC_MruList_Reset( FTC_MruList  list )
-  {
-    while ( list->nodes )
-      FTC_MruList_Remove( list, list->nodes );
-
-    FT_ASSERT( list->num_nodes == 0 );
-  }
-
-
-  FT_EXPORT( void )
-  FTC_MruList_Done( FTC_MruList  list )
-  {
-    FTC_MruList_Reset( list );
-  }
-
-
-  FT_EXPORT_DEF( FTC_MruNode )
-  FTC_MruList_Find( FTC_MruList  list,
-                    FT_Pointer   key )
-  {
-    FTC_MruNode_CompareFunc  compare = list->clazz.node_compare;
-    FTC_MruNode              first, node;
-
-
-    first = list->nodes;
-    node  = NULL;
-
-    if ( first )
-    {
-      node = first;
-      do
-      {
-        if ( compare( node, key ) )
-        {
-          if ( node != first )
-            FTC_MruNode_Up( &list->nodes, node );
-
-          return node;
-        }
-
-        node = node->next;
-
-      } while ( node != first);
-    }
-
-    return NULL;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_MruList_New( FTC_MruList   list,
-                   FT_Pointer    key,
-                   FTC_MruNode  *anode )
-  {
-    FT_Error     error;
-    FTC_MruNode  node;
-    FT_Memory    memory = list->memory;
-
-
-    if ( list->num_nodes >= list->max_nodes && list->max_nodes > 0 )
-    {
-      node = list->nodes->prev;
-
-      FT_ASSERT( node );
-
-      if ( list->clazz.node_reset )
-      {
-        FTC_MruNode_Up( &list->nodes, node );
-
-        error = list->clazz.node_reset( node, key, list->data );
-        if ( !error )
-          goto Exit;
-      }
-
-      FTC_MruNode_Remove( &list->nodes, node );
-      list->num_nodes--;
-
-      if ( list->clazz.node_done )
-        list->clazz.node_done( node, list->data );
-    }
-    else if ( FT_ALLOC( node, list->clazz.node_size ) )
-        goto Exit;
-
-    error = list->clazz.node_init( node, key, list->data );
-    if ( error )
-      goto Fail;
-
-      FTC_MruNode_Prepend( &list->nodes, node );
-      list->num_nodes++;
-
-  Exit:
-    *anode = node;
-    return error;
-
-  Fail:
-    if ( list->clazz.node_done )
-      list->clazz.node_done( node, list->data );
-
-    FT_FREE( node );
-    goto Exit;
-  }
-
-
-  FT_EXPORT( FT_Error )
-  FTC_MruList_Lookup( FTC_MruList   list,
-                      FT_Pointer    key,
-                      FTC_MruNode  *anode )
-  {
-    FTC_MruNode  node;
-
-
-    node = FTC_MruList_Find( list, key );
-    if ( node == NULL )
-      return FTC_MruList_New( list, key, anode );
-
-    *anode = node;
-    return 0;
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_MruList_Remove( FTC_MruList  list,
-                      FTC_MruNode  node )
-  {
-    FTC_MruNode_Remove( &list->nodes, node );
-    list->num_nodes--;
-
-    {
-      FT_Memory  memory = list->memory;
-
-
-      if ( list->clazz.node_done )
-       list->clazz.node_done( node, list->data );
-
-      FT_FREE( node );
-    }
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_MruList_RemoveSelection( FTC_MruList              list,
-                               FTC_MruNode_CompareFunc  selection,
-                               FT_Pointer               key )
-  {
-    FTC_MruNode  first, node, next;
-
-
-    first = list->nodes;
-    while ( first && ( selection == NULL || selection( first, key ) ) )
-    {
-      FTC_MruList_Remove( list, first );
-      first = list->nodes;
-    }
-
-    if ( first )
-    {
-      node = first->next;
-      while ( node != first )
-      {
-        next = node->next;
-
-        if ( selection( node, key ) )
-          FTC_MruList_Remove( list, node );
-
-        node = next;
-      }
-    }
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/ftcsbits.c b/nx-X11/extras/freetype2/src/cache/ftcsbits.c
deleted file mode 100644
index 2f8c5f8c6..000000000
--- a/nx-X11/extras/freetype2/src/cache/ftcsbits.c
+++ /dev/null
@@ -1,344 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftcsbits.c                                                             */
-/*                                                                         */
-/*    FreeType sbits manager (body).                                       */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_CACHE_H
-#include FT_CACHE_INTERNAL_SBITS_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_ERRORS_H
-
-#include "ftccback.h"
-#include "ftcerror.h"
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                     SBIT CACHE NODES                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  static FT_Error
-  ftc_sbit_copy_bitmap( FTC_SBit    sbit,
-                        FT_Bitmap*  bitmap,
-                        FT_Memory   memory )
-  {
-    FT_Error  error;
-    FT_Int    pitch = bitmap->pitch;
-    FT_ULong  size;
-
-
-    if ( pitch < 0 )
-      pitch = -pitch;
-
-    size = (FT_ULong)( pitch * bitmap->rows );
-
-    if ( !FT_ALLOC( sbit->buffer, size ) )
-      FT_MEM_COPY( sbit->buffer, bitmap->buffer, size );
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ftc_snode_free( FTC_Node   ftcsnode,
-                  FTC_Cache  cache )
-  {
-    FTC_SNode  snode  = (FTC_SNode)ftcsnode;
-    FTC_SBit   sbit   = snode->sbits;
-    FT_UInt    count  = snode->count;
-    FT_Memory  memory = cache->memory;
-
-
-    for ( ; count > 0; sbit++, count-- )
-      FT_FREE( sbit->buffer );
-
-    FTC_GNode_Done( FTC_GNODE( snode ), cache );
-
-    FT_FREE( snode );
-  }
-
-
-  FT_EXPORT_DEF( void )
-  FTC_SNode_Free( FTC_SNode  snode,
-                  FTC_Cache  cache )
-  {
-    ftc_snode_free( FTC_NODE( snode ), cache );
-  }
-
-
-  static FT_Error
-  ftc_snode_load( FTC_SNode    snode,
-                  FTC_Manager  manager,
-                  FT_UInt      gindex,
-                  FT_ULong    *asize )
-  {
-    FT_Error          error;
-    FTC_GNode         gnode  = FTC_GNODE( snode );
-    FTC_Family        family = gnode->family;
-    FT_Memory         memory = manager->memory;
-    FT_Face           face;
-    FTC_SBit          sbit;
-    FTC_SFamilyClass  clazz;
-
-
-    if ( (FT_UInt)(gindex - gnode->gindex) >= snode->count )
-    {
-      FT_ERROR(( "ftc_snode_load: invalid glyph index" ));
-      return FTC_Err_Invalid_Argument;
-    }
-
-    sbit  = snode->sbits + ( gindex - gnode->gindex );
-    clazz = (FTC_SFamilyClass)family->clazz;
-
-    sbit->buffer = 0;
-
-    error = clazz->family_load_glyph( family, gindex, manager, &face );
-    if ( error )
-      goto BadGlyph;
-
-    {
-      FT_Int        temp;
-      FT_GlyphSlot  slot   = face->glyph;
-      FT_Bitmap*    bitmap = &slot->bitmap;
-      FT_Int        xadvance, yadvance;
-
-
-      if ( slot->format != FT_GLYPH_FORMAT_BITMAP )
-      {
-        FT_ERROR(( "%s: glyph loaded didn't return a bitmap!\n",
-                   "ftc_snode_load" ));
-        goto BadGlyph;
-      }
-
-      /* Check that our values fit into 8-bit containers!       */
-      /* If this is not the case, our bitmap is too large       */
-      /* and we will leave it as `missing' with sbit.buffer = 0 */
-
-#define CHECK_CHAR( d )  ( temp = (FT_Char)d, temp == d )
-#define CHECK_BYTE( d )  ( temp = (FT_Byte)d, temp == d )
-
-      /* horizontal advance in pixels */
-      xadvance = ( slot->metrics.horiAdvance + 32 ) >> 6;
-      yadvance = ( slot->metrics.vertAdvance + 32 ) >> 6;
-
-      if ( !CHECK_BYTE( bitmap->rows  )     ||
-           !CHECK_BYTE( bitmap->width )     ||
-           !CHECK_CHAR( bitmap->pitch )     ||
-           !CHECK_CHAR( slot->bitmap_left ) ||
-           !CHECK_CHAR( slot->bitmap_top  ) ||
-           !CHECK_CHAR( xadvance )          ||
-           !CHECK_CHAR( yadvance )          )
-        goto BadGlyph;
-
-      sbit->width     = (FT_Byte)bitmap->width;
-      sbit->height    = (FT_Byte)bitmap->rows;
-      sbit->pitch     = (FT_Char)bitmap->pitch;
-      sbit->left      = (FT_Char)slot->bitmap_left;
-      sbit->top       = (FT_Char)slot->bitmap_top;
-      sbit->xadvance  = (FT_Char)xadvance;
-      sbit->yadvance  = (FT_Char)yadvance;
-      sbit->format    = (FT_Byte)bitmap->pixel_mode;
-      sbit->max_grays = (FT_Byte)(bitmap->num_grays - 1);
-
-      /* copy the bitmap into a new buffer -- ignore error */
-      error = ftc_sbit_copy_bitmap( sbit, bitmap, memory );
-
-      /* now, compute size */
-      if ( asize )
-        *asize = FT_ABS( sbit->pitch ) * sbit->height;
-
-    } /* glyph loading successful */
-
-    /* ignore the errors that might have occurred --   */
-    /* we mark unloaded glyphs with `sbit.buffer == 0' */
-    /* and `width == 255', `height == 0'               */
-    /*                                                 */
-    if ( error && error != FTC_Err_Out_Of_Memory )
-    {
-    BadGlyph:
-      sbit->width  = 255;
-      sbit->height = 0;
-      sbit->buffer = NULL;
-      error        = 0;
-      if ( asize )
-        *asize = 0;
-    }
-
-    return error;
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FTC_SNode_New( FTC_SNode  *psnode,
-                 FTC_GQuery  gquery,
-                 FTC_Cache   cache )
-  {
-    FT_Memory   memory = cache->memory;
-    FT_Error    error;
-    FTC_SNode   snode  = NULL;
-    FT_UInt     gindex = gquery->gindex;
-    FTC_Family  family = gquery->family;
-
-    FTC_SFamilyClass  clazz = FTC_CACHE__SFAMILY_CLASS( cache );
-    FT_UInt           total;
-
-
-    total = clazz->family_get_count( family, cache->manager );
-    if ( total == 0 || gindex >= total )
-    {
-      error = FT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    if ( !FT_NEW( snode ) )
-    {
-      FT_UInt  count, start;
-
-
-      start = gindex - ( gindex % FTC_SBIT_ITEMS_PER_NODE );
-      count = total - start;
-      if ( count > FTC_SBIT_ITEMS_PER_NODE )
-        count = FTC_SBIT_ITEMS_PER_NODE;
-
-      FTC_GNode_Init( FTC_GNODE( snode ), start, family );
-
-      snode->count = count;
-
-      error = ftc_snode_load( snode,
-                              cache->manager,
-                              gindex,
-                              NULL );
-      if ( error )
-      {
-        FTC_SNode_Free( snode, cache );
-        snode = NULL;
-      }
-    }
-
-  Exit:
-    *psnode = snode;
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ftc_snode_new( FTC_Node   *ftcpsnode,
-                 FT_Pointer  ftcgquery,
-                 FTC_Cache   cache )
-  {
-    FTC_SNode  *psnode = (FTC_SNode*)ftcpsnode;
-    FTC_GQuery  gquery = (FTC_GQuery)ftcgquery;
-
-
-    return FTC_SNode_New( psnode, gquery, cache );
-  }
-
-
-  FT_LOCAL_DEF( FT_ULong )
-  ftc_snode_weight( FTC_Node   ftcsnode,
-                    FTC_Cache  cache )
-  {
-    FTC_SNode  snode = (FTC_SNode)ftcsnode;
-    FT_UInt    count = snode->count;
-    FTC_SBit   sbit  = snode->sbits;
-    FT_Int     pitch;
-    FT_ULong   size;
-
-    FT_UNUSED( cache );
-
-
-    FT_ASSERT( snode->count <= FTC_SBIT_ITEMS_PER_NODE );
-
-    /* the node itself */
-    size = sizeof ( *snode );
-
-    for ( ; count > 0; count--, sbit++ )
-    {
-      if ( sbit->buffer )
-      {
-        pitch = sbit->pitch;
-        if ( pitch < 0 )
-          pitch = -pitch;
-
-        /* add the size of a given glyph image */
-        size += pitch * sbit->height;
-      }
-    }
-
-    return size;
-  }
-
-
-  FT_EXPORT_DEF( FT_ULong )
-  FTC_SNode_Weight( FTC_SNode  snode )
-  {
-    return ftc_snode_weight( FTC_NODE( snode ), NULL );
-  }
-
-
-  FT_LOCAL_DEF( FT_Bool )
-  ftc_snode_compare( FTC_Node    ftcsnode,
-                     FT_Pointer  ftcgquery,
-                     FTC_Cache   cache )
-  {
-    FTC_SNode   snode  = (FTC_SNode)ftcsnode;
-    FTC_GQuery  gquery = (FTC_GQuery)ftcgquery;
-    FTC_GNode   gnode  = FTC_GNODE( snode );
-    FT_UInt     gindex = gquery->gindex;
-    FT_Bool     result;
-
-
-    result = FT_BOOL( gnode->family == gquery->family                    &&
-                      (FT_UInt)( gindex - gnode->gindex ) < snode->count );
-    if ( result )
-    {
-      /* check if we need to load the glyph bitmap now */
-      FTC_SBit  sbit = snode->sbits + ( gindex - gnode->gindex );
-
-
-      if ( sbit->buffer == NULL && sbit->width != 255 )
-      {
-        FT_ULong  size;
-
-
-        if ( !ftc_snode_load( snode, cache->manager,
-                              gindex, &size ) )
-        {
-          cache->manager->cur_weight += size;
-        }
-      }
-    }
-
-    return result;
-  }
-
-
-  FT_EXPORT_DEF( FT_Bool )
-  FTC_SNode_Compare( FTC_SNode   snode,
-                     FTC_GQuery  gquery,
-                     FTC_Cache   cache )
-  {
-    return ftc_snode_compare( FTC_NODE( snode ), gquery, cache );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cache/rules.mk b/nx-X11/extras/freetype2/src/cache/rules.mk
deleted file mode 100644
index 381104ad6..000000000
--- a/nx-X11/extras/freetype2/src/cache/rules.mk
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# FreeType 2 Cache configuration rules
-#
-
-
-# Copyright 2000, 2001, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Cache driver directory
-#
-CACHE_DIR   := $(SRC_DIR)/cache
-CACHE_H_DIR := $(PUBLIC_DIR)/cache
-
-# compilation flags for the driver
-#
-CACHE_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CACHE_DIR))
-
-
-# Cache driver sources (i.e., C files)
-#
-CACHE_DRV_SRC := $(CACHE_DIR)/ftcmru.c   \
-                 $(CACHE_DIR)/ftcmanag.c \
-                 $(CACHE_DIR)/ftcbasic.c \
-                 $(CACHE_DIR)/ftccache.c \
-                 $(CACHE_DIR)/ftcglyph.c \
-                 $(CACHE_DIR)/ftcsbits.c \
-                 $(CACHE_DIR)/ftcimage.c \
-                 $(CACHE_DIR)/ftccmap.c
-
-# Cache driver headers
-#
-CACHE_DRV_H := $(CACHE_H_DIR)/ftcmru.h   \
-               $(CACHE_H_DIR)/ftcmanag.h \
-               $(CACHE_H_DIR)/ftcglyph.h \
-               $(CACHE_H_DIR)/ftcimage.h \
-               $(CACHE_H_DIR)/ftccmap.h  \
-               $(CACHE_DIR)/ftcerror.h   \
-               $(CACHE_DIR)/ftccback.h
-
-
-# Cache driver object(s)
-#
-#   CACHE_DRV_OBJ_M is used during `multi' builds.
-#   CACHE_DRV_OBJ_S is used during `single' builds.
-#
-CACHE_DRV_OBJ_M := $(CACHE_DRV_SRC:$(CACHE_DIR)/%.c=$(OBJ_DIR)/%.$O)
-CACHE_DRV_OBJ_S := $(OBJ_DIR)/ftcache.$O
-
-# Cache driver source file for single build
-#
-CACHE_DRV_SRC_S := $(CACHE_DIR)/ftcache.c
-
-
-# Cache driver - single object
-#
-$(CACHE_DRV_OBJ_S): $(CACHE_DRV_SRC_S) $(CACHE_DRV_SRC) \
-                   $(FREETYPE_H) $(CACHE_DRV_H)
-	$(CACHE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(CACHE_DRV_SRC_S))
-
-
-# Cache driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(CACHE_DIR)/%.c $(FREETYPE_H) $(CACHE_DRV_H)
-	$(CACHE_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(CACHE_DRV_OBJ_S)
-DRV_OBJS_M += $(CACHE_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cff/Jamfile b/nx-X11/extras/freetype2/src/cff/Jamfile
deleted file mode 100644
index dcf24c818..000000000
--- a/nx-X11/extras/freetype2/src/cff/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/cff Jamfile (c) 2001, 2002 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) cff ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = cffdrivr cffgload cffload cffobjs cffparse cffcmap ;
-  }
-  else
-  {
-    _sources = cff ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/cff Jamfile
diff --git a/nx-X11/extras/freetype2/src/cff/cff.c b/nx-X11/extras/freetype2/src/cff/cff.c
deleted file mode 100644
index e6d8954c9..000000000
--- a/nx-X11/extras/freetype2/src/cff/cff.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cff.c                                                                  */
-/*                                                                         */
-/*    FreeType OpenType driver component (body only).                      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "cffdrivr.c"
-#include "cffparse.c"
-#include "cffload.c"
-#include "cffobjs.c"
-#include "cffgload.c"
-#include "cffcmap.c"
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffcmap.c b/nx-X11/extras/freetype2/src/cff/cffcmap.c
deleted file mode 100644
index 82e04d236..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffcmap.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffcmap.c                                                              */
-/*                                                                         */
-/*    CFF character mapping table (cmap) support (body).                   */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "cffcmap.h"
-#include "cffload.h"
-
-#include "cfferrs.h"
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****           CFF STANDARD (AND EXPERT) ENCODING CMAPS            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_CALLBACK_DEF( FT_Error )
-  cff_cmap_encoding_init( CFF_CMapStd  cmap )
-  {
-    TT_Face       face     = (TT_Face)FT_CMAP_FACE( cmap );
-    CFF_Font      cff      = (CFF_Font)face->extra.data;
-    CFF_Encoding  encoding = &cff->encoding;
-
-
-    cmap->gids  = encoding->codes;
-
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  cff_cmap_encoding_done( CFF_CMapStd  cmap )
-  {
-    cmap->gids  = NULL;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  cff_cmap_encoding_char_index( CFF_CMapStd  cmap,
-                                FT_UInt32    char_code )
-  {
-    FT_UInt  result = 0;
-
-
-    if ( char_code < 256 )
-      result = cmap->gids[char_code];
-
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  cff_cmap_encoding_char_next( CFF_CMapStd   cmap,
-                               FT_UInt32    *pchar_code )
-  {
-    FT_UInt    result    = 0;
-    FT_UInt32  char_code = *pchar_code;
-
-
-    *pchar_code = 0;
-
-    if ( char_code < 255 )
-    {
-      FT_UInt  code = (FT_UInt)(char_code + 1);
-
-
-      for (;;)
-      {
-        if ( code >= 256 )
-          break;
-
-        result = cmap->gids[code];
-        if ( result != 0 )
-        {
-          *pchar_code = code;
-          break;
-        }
-
-        code++;
-      }
-    }
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  cff_cmap_encoding_class_rec =
-  {
-    sizeof ( CFF_CMapStdRec ),
-
-    (FT_CMap_InitFunc)     cff_cmap_encoding_init,
-    (FT_CMap_DoneFunc)     cff_cmap_encoding_done,
-    (FT_CMap_CharIndexFunc)cff_cmap_encoding_char_index,
-    (FT_CMap_CharNextFunc) cff_cmap_encoding_char_next
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****              CFF SYNTHETIC UNICODE ENCODING CMAP              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_CALLBACK_DEF( FT_Int )
-  cff_cmap_uni_pair_compare( const void*  pair1,
-                             const void*  pair2 )
-  {
-    FT_UInt32  u1 = ((CFF_CMapUniPair)pair1)->unicode;
-    FT_UInt32  u2 = ((CFF_CMapUniPair)pair2)->unicode;
-
-
-    if ( u1 < u2 )
-      return -1;
-
-    if ( u1 > u2 )
-      return +1;
-
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  cff_cmap_unicode_init( CFF_CMapUnicode  cmap )
-  {
-    FT_Error            error;
-    FT_UInt             count;
-    TT_Face             face    = (TT_Face)FT_CMAP_FACE( cmap );
-    FT_Memory           memory  = FT_FACE_MEMORY( face );
-    CFF_Font            cff     = (CFF_Font)face->extra.data;
-    CFF_Charset         charset = &cff->charset;
-    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)cff->psnames;
-
-
-    cmap->num_pairs = 0;
-    cmap->pairs     = NULL;
-
-    count = cff->num_glyphs;
-
-    if ( !FT_NEW_ARRAY( cmap->pairs, count ) )
-    {
-      FT_UInt          n, new_count;
-      CFF_CMapUniPair  pair;
-      FT_UInt32        uni_code;
-
-
-      pair = cmap->pairs;
-      for ( n = 0; n < count; n++ )
-      {
-        FT_UInt      sid = charset->sids[n];
-        const char*  gname;
-
-
-        gname = cff_index_get_sid_string( &cff->string_index, sid, psnames );
-
-        /* build unsorted pair table by matching glyph names */
-        if ( gname )
-        {
-          uni_code = psnames->unicode_value( gname );
-
-          if ( uni_code != 0 )
-          {
-            pair->unicode = uni_code;
-            pair->gindex  = n;
-            pair++;
-          }
-
-          FT_FREE( gname );
-        }
-      }
-
-      new_count = (FT_UInt)( pair - cmap->pairs );
-      if ( new_count == 0 )
-      {
-        /* there are no unicode characters in here! */
-        FT_FREE( cmap->pairs );
-        error = CFF_Err_Invalid_Argument;
-      }
-      else
-      {
-        /* re-allocate if the new array is much smaller than the original */
-        /* one                                                            */
-        if ( new_count != count && new_count < count / 2 )
-        {
-          (void)FT_RENEW_ARRAY( cmap->pairs, count, new_count );
-          error = CFF_Err_Ok;
-        }
-
-        /* sort the pairs table to allow efficient binary searches */
-        ft_qsort( cmap->pairs,
-                  new_count,
-                  sizeof ( CFF_CMapUniPairRec ),
-                  cff_cmap_uni_pair_compare );
-
-        cmap->num_pairs = new_count;
-      }
-    }
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  cff_cmap_unicode_done( CFF_CMapUnicode  cmap )
-  {
-    FT_Face    face   = FT_CMAP_FACE( cmap );
-    FT_Memory  memory = FT_FACE_MEMORY( face );
-
-
-    FT_FREE( cmap->pairs );
-    cmap->num_pairs = 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  cff_cmap_unicode_char_index( CFF_CMapUnicode  cmap,
-                               FT_UInt32        char_code )
-  {
-    FT_UInt          min = 0;
-    FT_UInt          max = cmap->num_pairs;
-    FT_UInt          mid;
-    CFF_CMapUniPair  pair;
-
-
-    while ( min < max )
-    {
-      mid  = min + ( max - min ) / 2;
-      pair = cmap->pairs + mid;
-
-      if ( pair->unicode == char_code )
-        return pair->gindex;
-
-      if ( pair->unicode < char_code )
-        min = mid + 1;
-      else
-        max = mid;
-    }
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  cff_cmap_unicode_char_next( CFF_CMapUnicode  cmap,
-                              FT_UInt32       *pchar_code )
-  {
-    FT_UInt    result    = 0;
-    FT_UInt32  char_code = *pchar_code + 1;
-
-
-  Restart:
-    {
-      FT_UInt          min = 0;
-      FT_UInt          max = cmap->num_pairs;
-      FT_UInt          mid;
-      CFF_CMapUniPair  pair;
-
-
-      while ( min < max )
-      {
-        mid  = min + ( ( max - min ) >> 1 );
-        pair = cmap->pairs + mid;
-
-        if ( pair->unicode == char_code )
-        {
-          result = pair->gindex;
-          if ( result != 0 )
-            goto Exit;
-
-          char_code++;
-          goto Restart;
-        }
-
-        if ( pair->unicode < char_code )
-          min = mid+1;
-        else
-          max = mid;
-      }
-
-      /* we didn't find it, but we have a pair just above it */
-      char_code = 0;
-
-      if ( min < cmap->num_pairs )
-      {
-        pair   = cmap->pairs + min;
-        result = pair->gindex;
-        if ( result != 0 )
-          char_code = pair->unicode;
-      }
-    }
-
-  Exit:
-    *pchar_code = char_code;
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  cff_cmap_unicode_class_rec =
-  {
-    sizeof ( CFF_CMapUnicodeRec ),
-
-    (FT_CMap_InitFunc)     cff_cmap_unicode_init,
-    (FT_CMap_DoneFunc)     cff_cmap_unicode_done,
-    (FT_CMap_CharIndexFunc)cff_cmap_unicode_char_index,
-    (FT_CMap_CharNextFunc) cff_cmap_unicode_char_next
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffcmap.h b/nx-X11/extras/freetype2/src/cff/cffcmap.h
deleted file mode 100644
index ceb32cd3c..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffcmap.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffcmap.h                                                              */
-/*                                                                         */
-/*    CFF character mapping table (cmap) support (specification).          */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFFCMAP_H__
-#define __CFFCMAP_H__
-
-#include "cffobjs.h"
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****          TYPE1 STANDARD (AND EXPERT) ENCODING CMAPS           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* standard (and expert) encoding cmaps */
-  typedef struct CFF_CMapStdRec_*  CFF_CMapStd;
-
-  typedef struct  CFF_CMapStdRec_
-  {
-    FT_CMapRec  cmap;
-    FT_UShort*  gids;   /* up to 256 elements */
-    
-  } CFF_CMapStdRec;
-
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec
-  cff_cmap_encoding_class_rec;
-
-  
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****               CFF SYNTHETIC UNICODE ENCODING CMAP             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* unicode (synthetic) cmaps */
-  typedef struct CFF_CMapUnicodeRec_*  CFF_CMapUnicode;
-
-  typedef struct  CFF_CMapUniPairRec_
-  {
-    FT_UInt32  unicode;
-    FT_UInt    gindex;
-  
-  } CFF_CMapUniPairRec, *CFF_CMapUniPair;
-
-
-  typedef struct  CFF_CMapUnicodeRec_
-  {
-    FT_CMapRec       cmap;
-    FT_UInt          num_pairs;
-    CFF_CMapUniPair  pairs;
-
-  } CFF_CMapUnicodeRec;
-
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec
-  cff_cmap_unicode_class_rec;
-
-
-FT_END_HEADER
-
-#endif /* __CFFCMAP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffdrivr.c b/nx-X11/extras/freetype2/src/cff/cffdrivr.c
deleted file mode 100644
index e1f274e84..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffdrivr.c
+++ /dev/null
@@ -1,480 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffdrivr.c                                                             */
-/*                                                                         */
-/*    OpenType font driver implementation (body).                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_IDS_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
-#include FT_SERVICE_TT_CMAP_H
-
-#include "cffdrivr.h"
-#include "cffgload.h"
-#include "cffload.h"
-#include "cffcmap.h"
-
-#include "cfferrs.h"
-
-#include FT_SERVICE_XFREE86_NAME_H
-#include FT_SERVICE_GLYPH_DICT_H
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cffdriver
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                          F A C E S                              ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#undef  PAIR_TAG
-#define PAIR_TAG( left, right )  ( ( (FT_ULong)left << 16 ) | \
-                                     (FT_ULong)right        )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Get_Kerning                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to return the kerning vector between two      */
-  /*    glyphs of the same face.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to the source face object.                 */
-  /*                                                                       */
-  /*    left_glyph  :: The index of the left glyph in the kern pair.       */
-  /*                                                                       */
-  /*    right_glyph :: The index of the right glyph in the kern pair.      */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    kerning     :: The kerning vector.  This is in font units for      */
-  /*                   scalable formats, and in pixels for fixed-sizes     */
-  /*                   formats.                                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only horizontal layouts (left-to-right & right-to-left) are        */
-  /*    supported by this function.  Other layouts, or more sophisticated  */
-  /*    kernings, are out of scope of this method (the basic driver        */
-  /*    interface is meant to be simple).                                  */
-  /*                                                                       */
-  /*    They can be implemented by format-specific interfaces.             */
-  /*                                                                       */
-  FT_CALLBACK_DEF( FT_Error )
-  Get_Kerning( FT_Face     ttface,          /* TT_Face */
-               FT_UInt     left_glyph,
-               FT_UInt     right_glyph,
-               FT_Vector*  kerning )
-  {
-    TT_Face        face = (TT_Face)ttface;
-    TT_Kern0_Pair  pair;
-
-
-    if ( !face )
-      return CFF_Err_Invalid_Face_Handle;
-
-    kerning->x = 0;
-    kerning->y = 0;
-
-    if ( face->kern_pairs )
-    {
-      /* there are some kerning pairs in this font file! */
-      FT_ULong  search_tag = PAIR_TAG( left_glyph, right_glyph );
-      FT_Long   left, right;
-
-
-      left  = 0;
-      right = face->num_kern_pairs - 1;
-
-      while ( left <= right )
-      {
-        FT_Long   middle = left + ( ( right - left ) >> 1 );
-        FT_ULong  cur_pair;
-
-
-        pair     = face->kern_pairs + middle;
-        cur_pair = PAIR_TAG( pair->left, pair->right );
-
-        if ( cur_pair == search_tag )
-          goto Found;
-
-        if ( cur_pair < search_tag )
-          left = middle + 1;
-        else
-          right = middle - 1;
-      }
-    }
-
-  Exit:
-    return CFF_Err_Ok;
-
-  Found:
-    kerning->x = pair->value;
-    goto Exit;
-  }
-
-
-#undef PAIR_TAG
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Load_Glyph                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to load a glyph within a given glyph slot.    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    slot        :: A handle to the target slot object where the glyph  */
-  /*                   will be loaded.                                     */
-  /*                                                                       */
-  /*    size        :: A handle to the source face size at which the glyph */
-  /*                   must be scaled, loaded, etc.                        */
-  /*                                                                       */
-  /*    glyph_index :: The index of the glyph in the font file.            */
-  /*                                                                       */
-  /*    load_flags  :: A flag indicating what to load for this glyph.  The */
-  /*                   FT_LOAD_??? constants can be used to control the    */
-  /*                   glyph loading process (e.g., whether the outline    */
-  /*                   should be scaled, whether to load bitmaps or not,   */
-  /*                   whether to hint the outline, etc).                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_CALLBACK_DEF( FT_Error )
-  Load_Glyph( FT_GlyphSlot  cffslot,        /* CFF_GlyphSlot */
-              FT_Size       cffsize,        /* CFF_Size      */
-              FT_UInt       glyph_index,
-              FT_Int32      load_flags )
-  {
-    FT_Error  error;
-    CFF_GlyphSlot  slot = (CFF_GlyphSlot)cffslot;
-    CFF_Size       size = (CFF_Size)cffsize;
-
-
-    if ( !slot )
-      return CFF_Err_Invalid_Slot_Handle;
-
-    /* check whether we want a scaled outline or bitmap */
-    if ( !size )
-      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
-
-    if ( load_flags & FT_LOAD_NO_SCALE )
-      size = NULL;
-
-    /* reset the size object if necessary */
-    if ( size )
-    {
-      /* these two objects must have the same parent */
-      if ( cffsize->face != cffslot->face )
-        return CFF_Err_Invalid_Face_Handle;
-    }
-
-    /* now load the glyph outline if necessary */
-    error = cff_slot_load( slot, size, glyph_index, load_flags );
-
-    /* force drop-out mode to 2 - irrelevant now */
-    /* slot->outline.dropout_mode = 2; */
-
-    return error;
-  }
-
-
- /*
-  *  GLYPH DICT SERVICE
-  *
-  */
-
-  static FT_Error
-  cff_get_glyph_name( CFF_Face    face,
-                      FT_UInt     glyph_index,
-                      FT_Pointer  buffer,
-                      FT_UInt     buffer_max )
-  {
-    CFF_Font            font   = (CFF_Font)face->extra.data;
-    FT_Memory           memory = FT_FACE_MEMORY( face );
-    FT_String*          gname;
-    FT_UShort           sid;
-    FT_Service_PsCMaps  psnames;
-    FT_Error            error;
-
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-    if ( !psnames )
-    {
-      FT_ERROR(( "cff_get_glyph_name:" ));
-      FT_ERROR(( " cannot get glyph name from CFF & CEF fonts\n" ));
-      FT_ERROR(( "                   " ));
-      FT_ERROR(( " without the `PSNames' module\n" ));
-      error = CFF_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* first, locate the sid in the charset table */
-    sid = font->charset.sids[glyph_index];
-
-    /* now, lookup the name itself */
-    gname = cff_index_get_sid_string( &font->string_index, sid, psnames );
-
-    if ( gname && buffer_max > 0 )
-    {
-      FT_UInt  len = (FT_UInt)ft_strlen( gname );
-
-
-      if ( len >= buffer_max )
-        len = buffer_max - 1;
-
-      FT_MEM_COPY( buffer, gname, len );
-      ((FT_Byte*)buffer)[len] = 0;
-    }
-
-    FT_FREE( gname );
-    error = CFF_Err_Ok;
-
-    Exit:
-      return error;
-  }
-
-
-  static FT_UInt
-  cff_get_name_index( CFF_Face    face,
-                      FT_String*  glyph_name )
-  {
-    CFF_Font            cff;
-    CFF_Charset         charset;
-    FT_Service_PsCMaps  psnames;
-    FT_Memory           memory = FT_FACE_MEMORY( face );
-    FT_String*          name;
-    FT_UShort           sid;
-    FT_UInt             i;
-    FT_Int              result;
-
-
-    cff     = (CFF_FontRec *)face->extra.data;
-    charset = &cff->charset;
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-    if ( !psnames )
-      return 0;
-
-    for ( i = 0; i < cff->num_glyphs; i++ )
-    {
-      sid = charset->sids[i];
-
-      if ( sid > 390 )
-        name = cff_index_get_name( &cff->string_index, sid - 391 );
-      else
-        name = (FT_String *)psnames->adobe_std_strings( sid );
-
-      result = ft_strcmp( glyph_name, name );
-
-      if ( sid > 390 )
-        FT_FREE( name );
-
-      if ( !result )
-        return i;
-    }
-
-    return 0;
-  }
-
-
-  static const FT_Service_GlyphDictRec  cff_service_glyph_dict =
-  {
-    (FT_GlyphDict_GetNameFunc)  cff_get_glyph_name,
-    (FT_GlyphDict_NameIndexFunc)cff_get_name_index,
-  };
-
-
- /*
-  *  POSTSCRIPT INFO SERVICE
-  *
-  */
-
-  static FT_Int
-  cff_ps_has_glyph_names( FT_Face  face )
-  {
-    return ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES ) > 0;
-  }
-
-
-  static const FT_Service_PsInfoRec  cff_service_ps_info =
-  {
-    (PS_GetFontInfoFunc)  NULL,         /* unsupported with CFF fonts */
-    (PS_HasGlyphNamesFunc)cff_ps_has_glyph_names
-  };
-
-
-  /*
-   * TT CMAP INFO
-   *
-   * If the charmap is a synthetic Unicode encoding cmap or 
-   * a Type 1 standard (or expert) encoding cmap, hide TT CMAP INFO 
-   * service defined in SFNT module.
-   *
-   * Otherwise call the service function in the sfnt module.
-   *
-   */
-  static FT_Error
-  cff_get_cmap_info( FT_CharMap    charmap,
-                     TT_CMapInfo  *cmap_info )
-  {
-    FT_CMap   cmap  = FT_CMAP( charmap );
-    FT_Error  error = CFF_Err_Ok;
-
-
-    cmap_info->language = 0;
-
-    if ( cmap->clazz != &cff_cmap_encoding_class_rec && 
-         cmap->clazz != &cff_cmap_unicode_class_rec  )
-    {
-      FT_Face             face    = FT_CMAP_FACE( cmap );
-      FT_Library          library = FT_FACE_LIBRARY( face );
-      FT_Module           sfnt    = FT_Get_Module( library, "sfnt" );
-      FT_Service_TTCMaps  service =
-        (FT_Service_TTCMaps)ft_module_get_service( sfnt,
-                                                   FT_SERVICE_ID_TT_CMAP );
-
-
-      if ( service && service->get_cmap_info )
-        error = service->get_cmap_info( charmap, cmap_info );
-    }
-
-    return error;
-  }
-
-
-  static const FT_Service_TTCMapsRec  cff_service_get_cmap_info =
-  {
-    (TT_CMap_Info_GetFunc)cff_get_cmap_info
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                D R I V E R  I N T E R F A C E                   ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static const FT_ServiceDescRec  cff_services[] =
-  {
-    { FT_SERVICE_ID_XF86_NAME,       FT_XF86_FORMAT_CFF },
-    { FT_SERVICE_ID_POSTSCRIPT_INFO, &cff_service_ps_info },
-#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
-    { FT_SERVICE_ID_GLYPH_DICT,      &cff_service_glyph_dict },
-#endif
-    { FT_SERVICE_ID_TT_CMAP,         &cff_service_get_cmap_info },
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  cff_get_interface( FT_Module    driver,       /* CFF_Driver */
-                     const char*  module_interface )
-  {
-    FT_Module            sfnt;
-    FT_Module_Interface  result;
-
-
-    result = ft_service_list_lookup( cff_services, module_interface );
-    if ( result != NULL )
-      return  result;
-
-    /* we pass our request to the `sfnt' module */
-    sfnt = FT_Get_Module( driver->library, "sfnt" );
-
-    return sfnt ? sfnt->clazz->get_interface( sfnt, module_interface ) : 0;
-  }
-
-
-  /* The FT_DriverInterface structure is defined in ftdriver.h. */
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  cff_driver_class =
-  {
-    /* begin with the FT_Module_Class fields */
-    {
-      FT_MODULE_FONT_DRIVER       |
-      FT_MODULE_DRIVER_SCALABLE   |
-      FT_MODULE_DRIVER_HAS_HINTER,
-
-      sizeof( CFF_DriverRec ),
-      "cff",
-      0x10000L,
-      0x20000L,
-
-      0,   /* module-specific interface */
-
-      cff_driver_init,
-      cff_driver_done,
-      cff_get_interface,
-    },
-
-    /* now the specific driver fields */
-    sizeof( TT_FaceRec ),
-    sizeof( CFF_SizeRec ),
-    sizeof( CFF_GlyphSlotRec ),
-
-    cff_face_init,
-    cff_face_done,
-    cff_size_init,
-    cff_size_done,
-    cff_slot_init,
-    cff_slot_done,
-
-    cff_point_size_reset,
-    cff_size_reset,
-
-    Load_Glyph,
-
-    Get_Kerning,
-    0,                      /* FT_Face_AttachFunc      */
-    0                       /* FT_Face_GetAdvancesFunc */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffdrivr.h b/nx-X11/extras/freetype2/src/cff/cffdrivr.h
deleted file mode 100644
index 553848c0a..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffdrivr.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffdrivr.h                                                             */
-/*                                                                         */
-/*    High-level OpenType driver interface (specification).                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFFDRIVER_H__
-#define __CFFDRIVER_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_CALLBACK_TABLE
-  const FT_Driver_ClassRec  cff_driver_class;
-
-
-FT_END_HEADER
-
-#endif /* __CFFDRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cfferrs.h b/nx-X11/extras/freetype2/src/cff/cfferrs.h
deleted file mode 100644
index 1b2a5c95c..000000000
--- a/nx-X11/extras/freetype2/src/cff/cfferrs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cfferrs.h                                                              */
-/*                                                                         */
-/*    CFF error codes (specification only).                                */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the CFF error enumeration constants.      */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __CFFERRS_H__
-#define __CFFERRS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  CFF_Err_
-#define FT_ERR_BASE    FT_Mod_Err_CFF
-
-
-#include FT_ERRORS_H
-
-#endif /* __CFFERRS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffgload.c b/nx-X11/extras/freetype2/src/cff/cffgload.c
deleted file mode 100644
index 934dcb07d..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffgload.c
+++ /dev/null
@@ -1,2594 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffgload.c                                                             */
-/*                                                                         */
-/*    OpenType Glyph Loader (body).                                        */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_OUTLINE_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-
-#include "cffobjs.h"
-#include "cffload.h"
-#include "cffgload.h"
-
-#include "cfferrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cffgload
-
-
-  typedef enum  CFF_Operator_
-  {
-    cff_op_unknown = 0,
-
-    cff_op_rmoveto,
-    cff_op_hmoveto,
-    cff_op_vmoveto,
-
-    cff_op_rlineto,
-    cff_op_hlineto,
-    cff_op_vlineto,
-
-    cff_op_rrcurveto,
-    cff_op_hhcurveto,
-    cff_op_hvcurveto,
-    cff_op_rcurveline,
-    cff_op_rlinecurve,
-    cff_op_vhcurveto,
-    cff_op_vvcurveto,
-
-    cff_op_flex,
-    cff_op_hflex,
-    cff_op_hflex1,
-    cff_op_flex1,
-
-    cff_op_endchar,
-
-    cff_op_hstem,
-    cff_op_vstem,
-    cff_op_hstemhm,
-    cff_op_vstemhm,
-
-    cff_op_hintmask,
-    cff_op_cntrmask,
-    cff_op_dotsection,  /* deprecated, acts as no-op */
-
-    cff_op_abs,
-    cff_op_add,
-    cff_op_sub,
-    cff_op_div,
-    cff_op_neg,
-    cff_op_random,
-    cff_op_mul,
-    cff_op_sqrt,
-
-    cff_op_blend,
-
-    cff_op_drop,
-    cff_op_exch,
-    cff_op_index,
-    cff_op_roll,
-    cff_op_dup,
-
-    cff_op_put,
-    cff_op_get,
-    cff_op_store,
-    cff_op_load,
-
-    cff_op_and,
-    cff_op_or,
-    cff_op_not,
-    cff_op_eq,
-    cff_op_ifelse,
-
-    cff_op_callsubr,
-    cff_op_callgsubr,
-    cff_op_return,
-
-    /* do not remove */
-    cff_op_max
-
-  } CFF_Operator;
-
-
-#define CFF_COUNT_CHECK_WIDTH  0x80
-#define CFF_COUNT_EXACT        0x40
-#define CFF_COUNT_CLEAR_STACK  0x20
-
-
-  static const FT_Byte  cff_argument_counts[] =
-  {
-    0,  /* unknown */
-
-    2 | CFF_COUNT_CHECK_WIDTH | CFF_COUNT_EXACT, /* rmoveto */
-    1 | CFF_COUNT_CHECK_WIDTH | CFF_COUNT_EXACT,
-    1 | CFF_COUNT_CHECK_WIDTH | CFF_COUNT_EXACT,
-
-    0 | CFF_COUNT_CLEAR_STACK, /* rlineto */
-    0 | CFF_COUNT_CLEAR_STACK,
-    0 | CFF_COUNT_CLEAR_STACK,
-
-    0 | CFF_COUNT_CLEAR_STACK, /* rrcurveto */
-    0 | CFF_COUNT_CLEAR_STACK,
-    0 | CFF_COUNT_CLEAR_STACK,
-    0 | CFF_COUNT_CLEAR_STACK,
-    0 | CFF_COUNT_CLEAR_STACK,
-    0 | CFF_COUNT_CLEAR_STACK,
-    0 | CFF_COUNT_CLEAR_STACK,
-
-    13, /* flex */
-    7,
-    9,
-    11,
-
-    0 | CFF_COUNT_CHECK_WIDTH, /* endchar */
-
-    2 | CFF_COUNT_CHECK_WIDTH, /* hstem */
-    2 | CFF_COUNT_CHECK_WIDTH,
-    2 | CFF_COUNT_CHECK_WIDTH,
-    2 | CFF_COUNT_CHECK_WIDTH,
-
-    0 | CFF_COUNT_CHECK_WIDTH, /* hintmask */
-    0 | CFF_COUNT_CHECK_WIDTH, /* cntrmask */
-    0, /* dotsection */
-
-    1, /* abs */
-    2,
-    2,
-    2,
-    1,
-    0,
-    2,
-    1,
-
-    1, /* blend */
-
-    1, /* drop */
-    2,
-    1,
-    2,
-    1,
-
-    2, /* put */
-    1,
-    4,
-    3,
-
-    2, /* and */
-    2,
-    1,
-    2,
-    4,
-
-    1, /* callsubr */
-    1,
-    0
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********                                                      *********/
-  /**********             GENERIC CHARSTRING PARSING               *********/
-  /**********                                                      *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cff_builder_init                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given glyph builder.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    builder :: A pointer to the glyph builder to initialize.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face    :: The current face object.                                */
-  /*                                                                       */
-  /*    size    :: The current size object.                                */
-  /*                                                                       */
-  /*    glyph   :: The current glyph object.                               */
-  /*                                                                       */
-  static void
-  cff_builder_init( CFF_Builder*   builder,
-                    TT_Face        face,
-                    CFF_Size       size,
-                    CFF_GlyphSlot  glyph,
-                    FT_Bool        hinting )
-  {
-    builder->path_begun  = 0;
-    builder->load_points = 1;
-
-    builder->face   = face;
-    builder->glyph  = glyph;
-    builder->memory = face->root.memory;
-
-    if ( glyph )
-    {
-      FT_GlyphLoader  loader = glyph->root.internal->loader;
-
-
-      builder->loader  = loader;
-      builder->base    = &loader->base.outline;
-      builder->current = &loader->current.outline;
-      FT_GlyphLoader_Rewind( loader );
-
-      builder->hints_globals = 0;
-      builder->hints_funcs   = 0;
-
-      if ( hinting && size )
-      {
-        builder->hints_globals = size->root.internal;
-        builder->hints_funcs   = glyph->root.internal->glyph_hints;
-      }
-    }
-
-    if ( size )
-    {
-      builder->scale_x = size->root.metrics.x_scale;
-      builder->scale_y = size->root.metrics.y_scale;
-    }
-
-    builder->pos_x = 0;
-    builder->pos_y = 0;
-
-    builder->left_bearing.x = 0;
-    builder->left_bearing.y = 0;
-    builder->advance.x      = 0;
-    builder->advance.y      = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cff_builder_done                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given glyph builder.  Its contents can still be used   */
-  /*    after the call, but the function saves important information       */
-  /*    within the corresponding glyph slot.                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    builder :: A pointer to the glyph builder to finalize.             */
-  /*                                                                       */
-  static void
-  cff_builder_done( CFF_Builder*  builder )
-  {
-    CFF_GlyphSlot  glyph = builder->glyph;
-
-
-    if ( glyph )
-      glyph->root.outline = *builder->base;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cff_compute_bias                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the bias value in dependence of the number of glyph       */
-  /*    subroutines.                                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    num_subrs :: The number of glyph subroutines.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The bias value.                                                    */
-  static FT_Int
-  cff_compute_bias( FT_UInt  num_subrs )
-  {
-    FT_Int  result;
-
-
-    if ( num_subrs < 1240 )
-      result = 107;
-    else if ( num_subrs < 33900U )
-      result = 1131;
-    else
-      result = 32768U;
-
-    return result;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cff_decoder_init                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given glyph decoder.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    decoder :: A pointer to the glyph builder to initialize.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face    :: The current face object.                                */
-  /*                                                                       */
-  /*    size    :: The current size object.                                */
-  /*                                                                       */
-  /*    slot    :: The current glyph object.                               */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  cff_decoder_init( CFF_Decoder*    decoder,
-                    TT_Face         face,
-                    CFF_Size        size,
-                    CFF_GlyphSlot   slot,
-                    FT_Bool         hinting,
-                    FT_Render_Mode  hint_mode )
-  {
-    CFF_Font  cff = (CFF_Font)face->extra.data;
-
-
-    /* clear everything */
-    FT_MEM_ZERO( decoder, sizeof ( *decoder ) );
-
-    /* initialize builder */
-    cff_builder_init( &decoder->builder, face, size, slot, hinting );
-
-    /* initialize Type2 decoder */
-    decoder->num_globals  = cff->num_global_subrs;
-    decoder->globals      = cff->global_subrs;
-    decoder->globals_bias = cff_compute_bias( decoder->num_globals );
-
-    decoder->hint_mode    = hint_mode;
-  }
-
-
-  /* this function is used to select the locals subrs array */
-  FT_LOCAL_DEF( void )
-  cff_decoder_prepare( CFF_Decoder*  decoder,
-                       FT_UInt       glyph_index )
-  {
-    CFF_Font     cff = (CFF_Font)decoder->builder.face->extra.data;
-    CFF_SubFont  sub = &cff->top_font;
-
-
-    /* manage CID fonts */
-    if ( cff->num_subfonts >= 1 )
-    {
-      FT_Byte  fd_index = cff_fd_select_get( &cff->fd_select, glyph_index );
-
-
-      sub = cff->subfonts[fd_index];
-    }
-
-    decoder->num_locals    = sub->num_local_subrs;
-    decoder->locals        = sub->local_subrs;
-    decoder->locals_bias   = cff_compute_bias( decoder->num_locals );
-
-    decoder->glyph_width   = sub->private_dict.default_width;
-    decoder->nominal_width = sub->private_dict.nominal_width;
-  }
-
-
-  /* check that there is enough space for `count' more points */
-  static FT_Error
-  check_points( CFF_Builder*  builder,
-                FT_Int        count )
-  {
-    return FT_GlyphLoader_CheckPoints( builder->loader, count, 0 );
-  }
-
-
-  /* add a new point, do not check space */
-  static void
-  cff_builder_add_point( CFF_Builder*  builder,
-                         FT_Pos        x,
-                         FT_Pos        y,
-                         FT_Byte       flag )
-  {
-    FT_Outline*  outline = builder->current;
-
-
-    if ( builder->load_points )
-    {
-      FT_Vector*  point   = outline->points + outline->n_points;
-      FT_Byte*    control = (FT_Byte*)outline->tags + outline->n_points;
-
-
-      point->x = x >> 16;
-      point->y = y >> 16;
-      *control = (FT_Byte)( flag ? FT_CURVE_TAG_ON : FT_CURVE_TAG_CUBIC );
-
-      builder->last = *point;
-    }
-
-    outline->n_points++;
-  }
-
-
-  /* check space for a new on-curve point, then add it */
-  static FT_Error
-  cff_builder_add_point1( CFF_Builder*  builder,
-                          FT_Pos        x,
-                          FT_Pos        y )
-  {
-    FT_Error  error;
-
-
-    error = check_points( builder, 1 );
-    if ( !error )
-      cff_builder_add_point( builder, x, y, 1 );
-
-    return error;
-  }
-
-
-  /* check space for a new contour, then add it */
-  static FT_Error
-  cff_builder_add_contour( CFF_Builder*  builder )
-  {
-    FT_Outline*  outline = builder->current;
-    FT_Error     error;
-
-
-    if ( !builder->load_points )
-    {
-      outline->n_contours++;
-      return CFF_Err_Ok;
-    }
-
-    error = FT_GlyphLoader_CheckPoints( builder->loader, 0, 1 );
-    if ( !error )
-    {
-      if ( outline->n_contours > 0 )
-        outline->contours[outline->n_contours - 1] =
-          (short)( outline->n_points - 1 );
-
-      outline->n_contours++;
-    }
-
-    return error;
-  }
-
-
-  /* if a path was begun, add its first on-curve point */
-  static FT_Error
-  cff_builder_start_point( CFF_Builder*  builder,
-                           FT_Pos        x,
-                           FT_Pos        y )
-  {
-    FT_Error  error = CFF_Err_Ok;
-
-
-    /* test whether we are building a new contour */
-    if ( !builder->path_begun )
-    {
-      builder->path_begun = 1;
-      error = cff_builder_add_contour( builder );
-      if ( !error )
-        error = cff_builder_add_point1( builder, x, y );
-    }
-
-    return error;
-  }
-
-
-  /* close the current contour */
-  static void
-  cff_builder_close_contour( CFF_Builder*  builder )
-  {
-    FT_Outline*  outline = builder->current;
-
-
-    /* XXXX: We must not include the last point in the path if it */
-    /*       is located on the first point.                       */
-    if ( outline->n_points > 1 )
-    {
-      FT_Int      first   = 0;
-      FT_Vector*  p1      = outline->points + first;
-      FT_Vector*  p2      = outline->points + outline->n_points - 1;
-      FT_Byte*    control = (FT_Byte*)outline->tags + outline->n_points - 1;
-
-
-      if ( outline->n_contours > 1 )
-      {
-        first = outline->contours[outline->n_contours - 2] + 1;
-        p1    = outline->points + first;
-      }
-
-      /* `delete' last point only if it coincides with the first    */
-      /* point and if it is not a control point (which can happen). */
-      if ( p1->x == p2->x && p1->y == p2->y )
-        if ( *control == FT_CURVE_TAG_ON )
-          outline->n_points--;
-    }
-
-    if ( outline->n_contours > 0 )
-      outline->contours[outline->n_contours - 1] =
-        (short)( outline->n_points - 1 );
-  }
-
-
-  static FT_Int
-  cff_lookup_glyph_by_stdcharcode( CFF_Font  cff,
-                                   FT_Int    charcode )
-  {
-    FT_UInt    n;
-    FT_UShort  glyph_sid;
-
-
-    /* CID-keyed fonts don't have glyph names */
-    if ( !cff->charset.sids )
-      return -1;
-
-    /* check range of standard char code */
-    if ( charcode < 0 || charcode > 255 )
-      return -1;
-
-    /* Get code to SID mapping from `cff_standard_encoding'. */
-    glyph_sid = cff_get_standard_encoding( (FT_UInt)charcode );
-
-    for ( n = 0; n < cff->num_glyphs; n++ )
-    {
-      if ( cff->charset.sids[n] == glyph_sid )
-        return n;
-    }
-
-    return -1;
-  }
-
-
-  static FT_Error
-  cff_get_glyph_data( TT_Face    face,
-                      FT_UInt    glyph_index,
-                      FT_Byte**  pointer,
-                      FT_ULong*  length )
-  {
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    /* For incremental fonts get the character data using the */
-    /* callback function.                                     */
-    if ( face->root.internal->incremental_interface )
-    {
-      FT_Data   data;
-      FT_Error  error =
-                  face->root.internal->incremental_interface->funcs->get_glyph_data(
-                    face->root.internal->incremental_interface->object,
-                    glyph_index, &data );
-
-
-      *pointer = (FT_Byte*)data.pointer;
-      *length = data.length;
-
-      return error;
-    }
-    else
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    {
-      CFF_Font  cff  = (CFF_Font)(face->extra.data);
-
-
-      return cff_index_access_element( &cff->charstrings_index, glyph_index,
-                                       pointer, length );
-    }
-  }
-
-
-  static void
-  cff_free_glyph_data( TT_Face    face,
-                       FT_Byte**  pointer,
-                       FT_ULong   length )
-  {
-#ifndef FT_CONFIG_OPTION_INCREMENTAL
-    FT_UNUSED( length );
-#endif
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    /* For incremental fonts get the character data using the */
-    /* callback function.                                     */
-    if ( face->root.internal->incremental_interface )
-    {
-      FT_Data data;
-
-
-      data.pointer = *pointer;
-      data.length  = length;
-
-      face->root.internal->incremental_interface->funcs->free_glyph_data(
-        face->root.internal->incremental_interface->object,&data );
-    }
-    else
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    {
-      CFF_Font  cff = (CFF_Font)(face->extra.data);
-
-
-      cff_index_forget_element( &cff->charstrings_index, pointer );
-    }
-  }
-
-
-  static FT_Error
-  cff_operator_seac( CFF_Decoder*  decoder,
-                     FT_Pos        adx,
-                     FT_Pos        ady,
-                     FT_Int        bchar,
-                     FT_Int        achar )
-  {
-    FT_Error      error;
-    CFF_Builder*  builder = &decoder->builder;
-    FT_Int        bchar_index, achar_index;
-    TT_Face       face = decoder->builder.face;
-    FT_Vector     left_bearing, advance;
-    FT_Byte*      charstring;
-    FT_ULong      charstring_len;
-
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    /* Incremental fonts don't necessarily have valid charsets.        */
-    /* They use the character code, not the glyph index, in this case. */
-    if ( face->root.internal->incremental_interface )
-    {
-      bchar_index = bchar;
-      achar_index = achar;
-    }
-    else
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-    {
-      CFF_Font cff = (CFF_Font)(face->extra.data);
-
-
-      bchar_index = cff_lookup_glyph_by_stdcharcode( cff, bchar );
-      achar_index = cff_lookup_glyph_by_stdcharcode( cff, achar );
-    }
-
-    if ( bchar_index < 0 || achar_index < 0 )
-    {
-      FT_ERROR(( "cff_operator_seac:" ));
-      FT_ERROR(( " invalid seac character code arguments\n" ));
-      return CFF_Err_Syntax_Error;
-    }
-
-    /* If we are trying to load a composite glyph, do not load the */
-    /* accent character and return the array of subglyphs.         */
-    if ( builder->no_recurse )
-    {
-      FT_GlyphSlot    glyph  = (FT_GlyphSlot)builder->glyph;
-      FT_GlyphLoader  loader = glyph->internal->loader;
-      FT_SubGlyph     subg;
-
-
-      /* reallocate subglyph array if necessary */
-      error = FT_GlyphLoader_CheckSubGlyphs( loader, 2 );
-      if ( error )
-        goto Exit;
-
-      subg = loader->current.subglyphs;
-
-      /* subglyph 0 = base character */
-      subg->index = bchar_index;
-      subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES |
-                    FT_SUBGLYPH_FLAG_USE_MY_METRICS;
-      subg->arg1  = 0;
-      subg->arg2  = 0;
-      subg++;
-
-      /* subglyph 1 = accent character */
-      subg->index = achar_index;
-      subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES;
-      subg->arg1  = (FT_Int)( adx >> 16 );
-      subg->arg2  = (FT_Int)( ady >> 16 );
-
-      /* set up remaining glyph fields */
-      glyph->num_subglyphs = 2;
-      glyph->subglyphs     = loader->base.subglyphs;
-      glyph->format        = FT_GLYPH_FORMAT_COMPOSITE;
-
-      loader->current.num_subglyphs = 2;
-    }
-
-    FT_GlyphLoader_Prepare( builder->loader );
-
-    /* First load `bchar' in builder */
-    error = cff_get_glyph_data( face, bchar_index,
-                                &charstring, &charstring_len );
-    if ( !error )
-    {
-      error = cff_decoder_parse_charstrings( decoder, charstring,
-                                             charstring_len );
-
-      if ( error )
-        goto Exit;
-
-      cff_free_glyph_data( face, &charstring, charstring_len );
-    }
-
-    /* Save the left bearing and width of the base character */
-    /* as they will be erased by the next load.              */
-
-    left_bearing = builder->left_bearing;
-    advance      = builder->advance;
-
-    builder->left_bearing.x = 0;
-    builder->left_bearing.y = 0;
-
-    builder->pos_x = adx;
-    builder->pos_y = ady;
-
-    /* Now load `achar' on top of the base outline. */
-    error = cff_get_glyph_data( face, achar_index,
-                                &charstring, &charstring_len );
-    if ( !error )
-    {
-      error = cff_decoder_parse_charstrings( decoder, charstring,
-                                             charstring_len );
-
-      if ( error )
-        goto Exit;
-
-      cff_free_glyph_data( face, &charstring, charstring_len );
-    }
-
-    /* Restore the left side bearing and advance width */
-    /* of the base character.                          */
-    builder->left_bearing = left_bearing;
-    builder->advance      = advance;
-
-    builder->pos_x = 0;
-    builder->pos_y = 0;
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cff_decoder_parse_charstrings                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Parses a given Type 2 charstrings program.                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    decoder         :: The current Type 1 decoder.                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    charstring_base :: The base of the charstring stream.              */
-  /*                                                                       */
-  /*    charstring_len  :: The length in bytes of the charstring stream.   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  cff_decoder_parse_charstrings( CFF_Decoder*  decoder,
-                                 FT_Byte*      charstring_base,
-                                 FT_ULong      charstring_len )
-  {
-    FT_Error           error;
-    CFF_Decoder_Zone*  zone;
-    FT_Byte*           ip;
-    FT_Byte*           limit;
-    CFF_Builder*       builder = &decoder->builder;
-    FT_Pos             x, y;
-    FT_Fixed           seed;
-    FT_Fixed*          stack;
-
-    T2_Hints_Funcs     hinter;
-
-
-    /* set default width */
-    decoder->num_hints  = 0;
-    decoder->read_width = 1;
-
-    /* compute random seed from stack address of parameter */
-    seed = (FT_Fixed)(char*)&seed           ^
-           (FT_Fixed)(char*)&decoder        ^
-           (FT_Fixed)(char*)&charstring_base;
-    seed = ( seed ^ ( seed >> 10 ) ^ ( seed >> 20 ) ) & 0xFFFFL;
-    if ( seed == 0 )
-      seed = 0x7384;
-
-    /* initialize the decoder */
-    decoder->top  = decoder->stack;
-    decoder->zone = decoder->zones;
-    zone          = decoder->zones;
-    stack         = decoder->top;
-
-    hinter = (T2_Hints_Funcs)builder->hints_funcs;
-
-    builder->path_begun = 0;
-
-    zone->base           = charstring_base;
-    limit = zone->limit  = charstring_base + charstring_len;
-    ip    = zone->cursor = zone->base;
-
-    error = CFF_Err_Ok;
-
-    x = builder->pos_x;
-    y = builder->pos_y;
-
-    /* begin hints recording session, if any */
-    if ( hinter )
-      hinter->open( hinter->hints );
-
-    /* now execute loop */
-    while ( ip < limit )
-    {
-      CFF_Operator  op;
-      FT_Byte       v;
-
-
-      /********************************************************************/
-      /*                                                                  */
-      /* Decode operator or operand                                       */
-      /*                                                                  */
-      v = *ip++;
-      if ( v >= 32 || v == 28 )
-      {
-        FT_Int    shift = 16;
-        FT_Int32  val;
-
-
-        /* this is an operand, push it on the stack */
-        if ( v == 28 )
-        {
-          if ( ip + 1 >= limit )
-            goto Syntax_Error;
-          val = (FT_Short)( ( (FT_Short)ip[0] << 8 ) | ip[1] );
-          ip += 2;
-        }
-        else if ( v < 247 )
-          val = (FT_Long)v - 139;
-        else if ( v < 251 )
-        {
-          if ( ip >= limit )
-            goto Syntax_Error;
-          val = ( (FT_Long)v - 247 ) * 256 + *ip++ + 108;
-        }
-        else if ( v < 255 )
-        {
-          if ( ip >= limit )
-            goto Syntax_Error;
-          val = -( (FT_Long)v - 251 ) * 256 - *ip++ - 108;
-        }
-        else
-        {
-          if ( ip + 3 >= limit )
-            goto Syntax_Error;
-          val = ( (FT_Int32)ip[0] << 24 ) |
-                ( (FT_Int32)ip[1] << 16 ) |
-                ( (FT_Int32)ip[2] <<  8 ) |
-                            ip[3];
-          ip    += 4;
-          shift  = 0;
-        }
-        if ( decoder->top - stack >= CFF_MAX_OPERANDS )
-          goto Stack_Overflow;
-
-        val           <<= shift;
-        *decoder->top++ = val;
-
-#ifdef FT_DEBUG_LEVEL_TRACE
-        if ( !( val & 0xFFFFL ) )
-          FT_TRACE4(( " %ld", (FT_Int32)( val >> 16 ) ));
-        else
-          FT_TRACE4(( " %.2f", val / 65536.0 ));
-#endif
-
-      }
-      else
-      {
-        FT_Fixed*  args     = decoder->top;
-        FT_Int     num_args = (FT_Int)( args - decoder->stack );
-        FT_Int     req_args;
-
-
-        /* find operator */
-        op = cff_op_unknown;
-
-        switch ( v )
-        {
-        case 1:
-          op = cff_op_hstem;
-          break;
-        case 3:
-          op = cff_op_vstem;
-          break;
-        case 4:
-          op = cff_op_vmoveto;
-          break;
-        case 5:
-          op = cff_op_rlineto;
-          break;
-        case 6:
-          op = cff_op_hlineto;
-          break;
-        case 7:
-          op = cff_op_vlineto;
-          break;
-        case 8:
-          op = cff_op_rrcurveto;
-          break;
-        case 10:
-          op = cff_op_callsubr;
-          break;
-        case 11:
-          op = cff_op_return;
-          break;
-        case 12:
-          {
-            if ( ip >= limit )
-              goto Syntax_Error;
-            v = *ip++;
-
-            switch ( v )
-            {
-            case 0:
-              op = cff_op_dotsection;
-              break;
-            case 3:
-              op = cff_op_and;
-              break;
-            case 4:
-              op = cff_op_or;
-              break;
-            case 5:
-              op = cff_op_not;
-              break;
-            case 8:
-              op = cff_op_store;
-              break;
-            case 9:
-              op = cff_op_abs;
-              break;
-            case 10:
-              op = cff_op_add;
-              break;
-            case 11:
-              op = cff_op_sub;
-              break;
-            case 12:
-              op = cff_op_div;
-              break;
-            case 13:
-              op = cff_op_load;
-              break;
-            case 14:
-              op = cff_op_neg;
-              break;
-            case 15:
-              op = cff_op_eq;
-              break;
-            case 18:
-              op = cff_op_drop;
-              break;
-            case 20:
-              op = cff_op_put;
-              break;
-            case 21:
-              op = cff_op_get;
-              break;
-            case 22:
-              op = cff_op_ifelse;
-              break;
-            case 23:
-              op = cff_op_random;
-              break;
-            case 24:
-              op = cff_op_mul;
-              break;
-            case 26:
-              op = cff_op_sqrt;
-              break;
-            case 27:
-              op = cff_op_dup;
-              break;
-            case 28:
-              op = cff_op_exch;
-              break;
-            case 29:
-              op = cff_op_index;
-              break;
-            case 30:
-              op = cff_op_roll;
-              break;
-            case 34:
-              op = cff_op_hflex;
-              break;
-            case 35:
-              op = cff_op_flex;
-              break;
-            case 36:
-              op = cff_op_hflex1;
-              break;
-            case 37:
-              op = cff_op_flex1;
-              break;
-            default:
-              /* decrement ip for syntax error message */
-              ip--;
-            }
-          }
-          break;
-        case 14:
-          op = cff_op_endchar;
-          break;
-        case 16:
-          op = cff_op_blend;
-          break;
-        case 18:
-          op = cff_op_hstemhm;
-          break;
-        case 19:
-          op = cff_op_hintmask;
-          break;
-        case 20:
-          op = cff_op_cntrmask;
-          break;
-        case 21:
-          op = cff_op_rmoveto;
-          break;
-        case 22:
-          op = cff_op_hmoveto;
-          break;
-        case 23:
-          op = cff_op_vstemhm;
-          break;
-        case 24:
-          op = cff_op_rcurveline;
-          break;
-        case 25:
-          op = cff_op_rlinecurve;
-          break;
-        case 26:
-          op = cff_op_vvcurveto;
-          break;
-        case 27:
-          op = cff_op_hhcurveto;
-          break;
-        case 29:
-          op = cff_op_callgsubr;
-          break;
-        case 30:
-          op = cff_op_vhcurveto;
-          break;
-        case 31:
-          op = cff_op_hvcurveto;
-          break;
-        default:
-          ;
-        }
-        if ( op == cff_op_unknown )
-          goto Syntax_Error;
-
-        /* check arguments */
-        req_args = cff_argument_counts[op];
-        if ( req_args & CFF_COUNT_CHECK_WIDTH )
-        {
-          args = stack;
-
-          if ( num_args > 0 && decoder->read_width )
-          {
-            /* If `nominal_width' is non-zero, the number is really a      */
-            /* difference against `nominal_width'.  Else, the number here  */
-            /* is truly a width, not a difference against `nominal_width'. */
-            /* If the font does not set `nominal_width', then              */
-            /* `nominal_width' defaults to zero, and so we can set         */
-            /* `glyph_width' to `nominal_width' plus number on the stack   */
-            /* -- for either case.                                         */
-
-            FT_Int  set_width_ok;
-
-
-            switch ( op )
-            {
-            case cff_op_hmoveto:
-            case cff_op_vmoveto:
-              set_width_ok = num_args & 2;
-              break;
-
-            case cff_op_hstem:
-            case cff_op_vstem:
-            case cff_op_hstemhm:
-            case cff_op_vstemhm:
-            case cff_op_rmoveto:
-            case cff_op_hintmask:
-            case cff_op_cntrmask:
-              set_width_ok = num_args & 1;
-              break;
-
-            case cff_op_endchar:
-              /* If there is a width specified for endchar, we either have */
-              /* 1 argument or 5 arguments.  We like to argue.             */
-              set_width_ok = ( ( num_args == 5 ) || ( num_args == 1 ) );
-              break;
-
-            default:
-              set_width_ok = 0;
-              break;
-            }
-
-            if ( set_width_ok )
-            {
-              decoder->glyph_width = decoder->nominal_width +
-                                       ( stack[0] >> 16 );
-
-              /* Consumed an argument. */
-              num_args--;
-              args++;
-            }
-          }
-
-          decoder->read_width = 0;
-          req_args            = 0;
-        }
-
-        req_args &= 15;
-        if ( num_args < req_args )
-          goto Stack_Underflow;
-        args     -= req_args;
-        num_args -= req_args;
-
-        switch ( op )
-        {
-        case cff_op_hstem:
-        case cff_op_vstem:
-        case cff_op_hstemhm:
-        case cff_op_vstemhm:
-          /* the number of arguments is always even here */
-          FT_TRACE4(( op == cff_op_hstem   ? " hstem"   :
-                    ( op == cff_op_vstem   ? " vstem"   :
-                    ( op == cff_op_hstemhm ? " hstemhm" : " vstemhm" ) ) ));
-
-          if ( hinter )
-            hinter->stems( hinter->hints,
-                           ( op == cff_op_hstem || op == cff_op_hstemhm ),
-                           num_args / 2,
-                           args );
-
-          decoder->num_hints += num_args / 2;
-          args = stack;
-          break;
-
-        case cff_op_hintmask:
-        case cff_op_cntrmask:
-          FT_TRACE4(( op == cff_op_hintmask ? " hintmask" : " cntrmask" ));
-
-          /* implement vstem when needed --                        */
-          /* the specification doesn't say it, but this also works */
-          /* with the 'cntrmask' operator                          */
-          /*                                                       */
-          if ( num_args > 0 )
-          {
-            if ( hinter )
-              hinter->stems( hinter->hints,
-                             0,
-                             num_args / 2,
-                             args );
-
-            decoder->num_hints += num_args / 2;
-          }
-
-          if ( hinter )
-          {
-            if ( op == cff_op_hintmask )
-              hinter->hintmask( hinter->hints,
-                                builder->current->n_points,
-                                decoder->num_hints,
-                                ip );
-            else
-              hinter->counter( hinter->hints,
-                               decoder->num_hints,
-                               ip );
-          }
-
-#ifdef FT_DEBUG_LEVEL_TRACE
-          {
-            FT_UInt maskbyte;
-
-
-            FT_TRACE4(( " " ));
-
-            for ( maskbyte = 0;
-                  maskbyte < (FT_UInt)(( decoder->num_hints + 7 ) >> 3);
-                  maskbyte++, ip++ )
-              FT_TRACE4(( "0x%02X", *ip ));
-          }
-#else
-          ip += ( decoder->num_hints + 7 ) >> 3;
-#endif
-          if ( ip >= limit )
-            goto Syntax_Error;
-          args = stack;
-          break;
-
-        case cff_op_rmoveto:
-          FT_TRACE4(( " rmoveto" ));
-
-          cff_builder_close_contour( builder );
-          builder->path_begun = 0;
-          x   += args[0];
-          y   += args[1];
-          args = stack;
-          break;
-
-        case cff_op_vmoveto:
-          FT_TRACE4(( " vmoveto" ));
-
-          cff_builder_close_contour( builder );
-          builder->path_begun = 0;
-          y   += args[0];
-          args = stack;
-          break;
-
-        case cff_op_hmoveto:
-          FT_TRACE4(( " hmoveto" ));
-
-          cff_builder_close_contour( builder );
-          builder->path_begun = 0;
-          x   += args[0];
-          args = stack;
-          break;
-
-        case cff_op_rlineto:
-          FT_TRACE4(( " rlineto" ));
-
-          if ( cff_builder_start_point ( builder, x, y ) ||
-               check_points( builder, num_args / 2 )     )
-            goto Fail;
-
-          if ( num_args < 2 || num_args & 1 )
-            goto Stack_Underflow;
-
-          args = stack;
-          while ( args < decoder->top )
-          {
-            x += args[0];
-            y += args[1];
-            cff_builder_add_point( builder, x, y, 1 );
-            args += 2;
-          }
-          args = stack;
-          break;
-
-        case cff_op_hlineto:
-        case cff_op_vlineto:
-          {
-            FT_Int  phase = ( op == cff_op_hlineto );
-
-
-            FT_TRACE4(( op == cff_op_hlineto ? " hlineto"
-                                             : " vlineto" ));
-
-            if ( cff_builder_start_point ( builder, x, y ) ||
-                 check_points( builder, num_args )         )
-              goto Fail;
-
-            args = stack;
-            while (args < decoder->top )
-            {
-              if ( phase )
-                x += args[0];
-              else
-                y += args[0];
-
-              if ( cff_builder_add_point1( builder, x, y ) )
-                goto Fail;
-
-              args++;
-              phase ^= 1;
-            }
-            args = stack;
-          }
-          break;
-
-        case cff_op_rrcurveto:
-          FT_TRACE4(( " rrcurveto" ));
-
-          /* check number of arguments; must be a multiple of 6 */
-          if ( num_args % 6 != 0 )
-            goto Stack_Underflow;
-
-          if ( cff_builder_start_point ( builder, x, y ) ||
-               check_points( builder, num_args / 2 )     )
-            goto Fail;
-
-          args = stack;
-          while ( args < decoder->top )
-          {
-            x += args[0];
-            y += args[1];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[2];
-            y += args[3];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[4];
-            y += args[5];
-            cff_builder_add_point( builder, x, y, 1 );
-            args += 6;
-          }
-          args = stack;
-          break;
-
-        case cff_op_vvcurveto:
-          FT_TRACE4(( " vvcurveto" ));
-
-          if ( cff_builder_start_point( builder, x, y ) )
-            goto Fail;
-
-          args = stack;
-          if ( num_args & 1 )
-          {
-            x += args[0];
-            args++;
-            num_args--;
-          }
-
-          if ( num_args % 4 != 0 )
-            goto Stack_Underflow;
-
-          if ( check_points( builder, 3 * ( num_args / 4 ) ) )
-            goto Fail;
-
-          while ( args < decoder->top )
-          {
-            y += args[0];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[1];
-            y += args[2];
-            cff_builder_add_point( builder, x, y, 0 );
-            y += args[3];
-            cff_builder_add_point( builder, x, y, 1 );
-            args += 4;
-          }
-          args = stack;
-          break;
-
-        case cff_op_hhcurveto:
-          FT_TRACE4(( " hhcurveto" ));
-
-          if ( cff_builder_start_point( builder, x, y ) )
-            goto Fail;
-
-          args = stack;
-          if ( num_args & 1 )
-          {
-            y += args[0];
-            args++;
-            num_args--;
-          }
-
-          if ( num_args % 4 != 0 )
-            goto Stack_Underflow;
-
-          if ( check_points( builder, 3 * ( num_args / 4 ) ) )
-            goto Fail;
-
-          while ( args < decoder->top )
-          {
-            x += args[0];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[1];
-            y += args[2];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[3];
-            cff_builder_add_point( builder, x, y, 1 );
-            args += 4;
-          }
-          args = stack;
-          break;
-
-        case cff_op_vhcurveto:
-        case cff_op_hvcurveto:
-          {
-            FT_Int  phase;
-
-
-            FT_TRACE4(( op == cff_op_vhcurveto ? " vhcurveto"
-                                               : " hvcurveto" ));
-
-            if ( cff_builder_start_point( builder, x, y ) )
-              goto Fail;
-
-            args = stack;
-            if (num_args < 4 || ( num_args % 4 ) > 1 )
-              goto Stack_Underflow;
-
-            if ( check_points( builder, ( num_args / 4 ) * 3 ) )
-              goto Stack_Underflow;
-
-            phase = ( op == cff_op_hvcurveto );
-
-            while ( num_args >= 4 )
-            {
-              num_args -= 4;
-              if ( phase )
-              {
-                x += args[0];
-                cff_builder_add_point( builder, x, y, 0 );
-                x += args[1];
-                y += args[2];
-                cff_builder_add_point( builder, x, y, 0 );
-                y += args[3];
-                if ( num_args == 1 )
-                  x += args[4];
-                cff_builder_add_point( builder, x, y, 1 );
-              }
-              else
-              {
-                y += args[0];
-                cff_builder_add_point( builder, x, y, 0 );
-                x += args[1];
-                y += args[2];
-                cff_builder_add_point( builder, x, y, 0 );
-                x += args[3];
-                if ( num_args == 1 )
-                  y += args[4];
-                cff_builder_add_point( builder, x, y, 1 );
-              }
-              args  += 4;
-              phase ^= 1;
-            }
-            args = stack;
-          }
-          break;
-
-        case cff_op_rlinecurve:
-          {
-            FT_Int  num_lines = ( num_args - 6 ) / 2;
-
-
-            FT_TRACE4(( " rlinecurve" ));
-
-            if ( num_args < 8 || ( num_args - 6 ) & 1 )
-              goto Stack_Underflow;
-
-            if ( cff_builder_start_point( builder, x, y ) ||
-                 check_points( builder, num_lines + 3 )   )
-              goto Fail;
-
-            args = stack;
-
-            /* first, add the line segments */
-            while ( num_lines > 0 )
-            {
-              x += args[0];
-              y += args[1];
-              cff_builder_add_point( builder, x, y, 1 );
-              args += 2;
-              num_lines--;
-            }
-
-            /* then the curve */
-            x += args[0];
-            y += args[1];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[2];
-            y += args[3];
-            cff_builder_add_point( builder, x, y, 0 );
-            x += args[4];
-            y += args[5];
-            cff_builder_add_point( builder, x, y, 1 );
-            args = stack;
-          }
-          break;
-
-        case cff_op_rcurveline:
-          {
-            FT_Int  num_curves = ( num_args - 2 ) / 6;
-
-
-            FT_TRACE4(( " rcurveline" ));
-
-            if ( num_args < 8 || ( num_args - 2 ) % 6 )
-              goto Stack_Underflow;
-
-            if ( cff_builder_start_point ( builder, x, y ) ||
-                 check_points( builder, num_curves*3 + 2 ) )
-              goto Fail;
-
-            args = stack;
-
-            /* first, add the curves */
-            while ( num_curves > 0 )
-            {
-              x += args[0];
-              y += args[1];
-              cff_builder_add_point( builder, x, y, 0 );
-              x += args[2];
-              y += args[3];
-              cff_builder_add_point( builder, x, y, 0 );
-              x += args[4];
-              y += args[5];
-              cff_builder_add_point( builder, x, y, 1 );
-              args += 6;
-              num_curves--;
-            }
-
-            /* then the final line */
-            x += args[0];
-            y += args[1];
-            cff_builder_add_point( builder, x, y, 1 );
-            args = stack;
-          }
-          break;
-
-        case cff_op_hflex1:
-          {
-            FT_Pos start_y;
-
-
-            FT_TRACE4(( " hflex1" ));
-
-            args = stack;
-
-            /* adding five more points; 4 control points, 1 on-curve point */
-            /* make sure we have enough space for the start point if it    */
-            /* needs to be added                                           */
-            if ( cff_builder_start_point( builder, x, y ) ||
-                 check_points( builder, 6 )               )
-              goto Fail;
-
-            /* Record the starting point's y postion for later use */
-            start_y = y;
-
-            /* first control point */
-            x += args[0];
-            y += args[1];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* second control point */
-            x += args[2];
-            y += args[3];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* join point; on curve, with y-value the same as the last */
-            /* control point's y-value                                 */
-            x += args[4];
-            cff_builder_add_point( builder, x, y, 1 );
-
-            /* third control point, with y-value the same as the join */
-            /* point's y-value                                        */
-            x += args[5];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* fourth control point */
-            x += args[6];
-            y += args[7];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* ending point, with y-value the same as the start   */
-            x += args[8];
-            y  = start_y;
-            cff_builder_add_point( builder, x, y, 1 );
-
-            args = stack;
-            break;
-          }
-
-        case cff_op_hflex:
-          {
-            FT_Pos start_y;
-
-
-            FT_TRACE4(( " hflex" ));
-
-            args = stack;
-
-            /* adding six more points; 4 control points, 2 on-curve points */
-            if ( cff_builder_start_point( builder, x, y ) ||
-                 check_points( builder, 6 )               )
-              goto Fail;
-
-            /* record the starting point's y-position for later use */
-            start_y = y;
-
-            /* first control point */
-            x += args[0];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* second control point */
-            x += args[1];
-            y += args[2];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* join point; on curve, with y-value the same as the last */
-            /* control point's y-value                                 */
-            x += args[3];
-            cff_builder_add_point( builder, x, y, 1 );
-
-            /* third control point, with y-value the same as the join */
-            /* point's y-value                                        */
-            x += args[4];
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* fourth control point */
-            x += args[5];
-            y  = start_y;
-            cff_builder_add_point( builder, x, y, 0 );
-
-            /* ending point, with y-value the same as the start point's */
-            /* y-value -- we don't add this point, though               */
-            x += args[6];
-            cff_builder_add_point( builder, x, y, 1 );
-
-            args = stack;
-            break;
-          }
-
-        case cff_op_flex1:
-          {
-            FT_Pos    start_x, start_y; /* record start x, y values for */
-                                        /* alter use                                */
-            FT_Fixed  dx = 0, dy = 0;   /* used in horizontal/vertical  */
-                                        /* algorithm below              */
-            FT_Int    horizontal, count;
-
-
-            FT_TRACE4(( " flex1" ));
-
-            /* adding six more points; 4 control points, 2 on-curve points */
-            if ( cff_builder_start_point( builder, x, y ) ||
-                 check_points( builder, 6 )               )
-              goto Fail;
-
-            /* record the starting point's x, y postion for later use */
-            start_x = x;
-            start_y = y;
-
-            /* XXX: figure out whether this is supposed to be a horizontal */
-            /*      or vertical flex; the Type 2 specification is vague... */
-
-            args = stack;
-
-            /* grab up to the last argument */
-            for ( count = 5; count > 0; count-- )
-            {
-              dx += args[0];
-              dy += args[1];
-              args += 2;
-            }
-
-            /* rewind */
-            args = stack;
-
-            if ( dx < 0 ) dx = -dx;
-            if ( dy < 0 ) dy = -dy;
-
-            /* strange test, but here it is... */
-            horizontal = ( dx > dy );
-
-            for ( count = 5; count > 0; count-- )
-            {
-              x += args[0];
-              y += args[1];
-              cff_builder_add_point( builder, x, y, (FT_Bool)( count == 3 ) );
-              args += 2;
-            }
-
-            /* is last operand an x- or y-delta? */
-            if ( horizontal )
-            {
-              x += args[0];
-              y  = start_y;
-            }
-            else
-            {
-              x  = start_x;
-              y += args[0];
-            }
-
-            cff_builder_add_point( builder, x, y, 1 );
-
-            args = stack;
-            break;
-           }
-
-        case cff_op_flex:
-          {
-            FT_UInt  count;
-
-
-            FT_TRACE4(( " flex" ));
-
-            if ( cff_builder_start_point( builder, x, y ) ||
-                 check_points( builder, 6 )               )
-              goto Fail;
-
-            args = stack;
-            for ( count = 6; count > 0; count-- )
-            {
-              x += args[0];
-              y += args[1];
-              cff_builder_add_point( builder, x, y,
-                                     (FT_Bool)( count == 4 || count == 1 ) );
-              args += 2;
-            }
-
-            args = stack;
-          }
-          break;
-
-        case cff_op_endchar:
-          FT_TRACE4(( " endchar" ));
-
-          /* We are going to emulate the seac operator. */
-          if ( num_args == 4 )
-          {
-            /* Save glyph width so that the subglyphs don't overwrite it. */
-            FT_Pos  glyph_width = decoder->glyph_width;
-
-
-            error = cff_operator_seac( decoder,
-                                       args[0],
-                                       args[1],
-                                       (FT_Int)( args[2] >> 16 ),
-                                       (FT_Int)( args[3] >> 16 ) );
-            args += 4;
-
-            decoder->glyph_width = glyph_width;
-          }
-          else
-          {
-            if ( !error )
-              error = CFF_Err_Ok;
-
-            cff_builder_close_contour( builder );
-
-            /* close hints recording session */
-            if ( hinter )
-            {
-              if (hinter->close( hinter->hints, builder->current->n_points ) )
-                goto Syntax_Error;
-
-              /* apply hints to the loaded glyph outline now */
-              hinter->apply( hinter->hints,
-                             builder->current,
-                             (PSH_Globals)builder->hints_globals,
-                             decoder->hint_mode );
-            }
-
-            /* add current outline to the glyph slot */
-            FT_GlyphLoader_Add( builder->loader );
-          }
-
-          /* return now! */
-          FT_TRACE4(( "\n\n" ));
-          return error;
-
-        case cff_op_abs:
-          FT_TRACE4(( " abs" ));
-
-          if ( args[0] < 0 )
-            args[0] = -args[0];
-          args++;
-          break;
-
-        case cff_op_add:
-          FT_TRACE4(( " add" ));
-
-          args[0] += args[1];
-          args++;
-          break;
-
-        case cff_op_sub:
-          FT_TRACE4(( " sub" ));
-
-          args[0] -= args[1];
-          args++;
-          break;
-
-        case cff_op_div:
-          FT_TRACE4(( " div" ));
-
-          args[0] = FT_DivFix( args[0], args[1] );
-          args++;
-          break;
-
-        case cff_op_neg:
-          FT_TRACE4(( " neg" ));
-
-          args[0] = -args[0];
-          args++;
-          break;
-
-        case cff_op_random:
-          {
-            FT_Fixed  Rand;
-
-
-            FT_TRACE4(( " rand" ));
-
-            Rand = seed;
-            if ( Rand >= 0x8000L )
-              Rand++;
-
-            args[0] = Rand;
-            seed    = FT_MulFix( seed, 0x10000L - seed );
-            if ( seed == 0 )
-              seed += 0x2873;
-            args++;
-          }
-          break;
-
-        case cff_op_mul:
-          FT_TRACE4(( " mul" ));
-
-          args[0] = FT_MulFix( args[0], args[1] );
-          args++;
-          break;
-
-        case cff_op_sqrt:
-          FT_TRACE4(( " sqrt" ));
-
-          if ( args[0] > 0 )
-          {
-            FT_Int    count = 9;
-            FT_Fixed  root  = args[0];
-            FT_Fixed  new_root;
-
-
-            for (;;)
-            {
-              new_root = ( root + FT_DivFix( args[0], root ) + 1 ) >> 1;
-              if ( new_root == root || count <= 0 )
-                break;
-              root = new_root;
-            }
-            args[0] = new_root;
-          }
-          else
-            args[0] = 0;
-          args++;
-          break;
-
-        case cff_op_drop:
-          /* nothing */
-          FT_TRACE4(( " drop" ));
-
-          break;
-
-        case cff_op_exch:
-          {
-            FT_Fixed  tmp;
-
-
-            FT_TRACE4(( " exch" ));
-
-            tmp     = args[0];
-            args[0] = args[1];
-            args[1] = tmp;
-            args   += 2;
-          }
-          break;
-
-        case cff_op_index:
-          {
-            FT_Int  idx = (FT_Int)( args[0] >> 16 );
-
-
-            FT_TRACE4(( " index" ));
-
-            if ( idx < 0 )
-              idx = 0;
-            else if ( idx > num_args - 2 )
-              idx = num_args - 2;
-            args[0] = args[-( idx + 1 )];
-            args++;
-          }
-          break;
-
-        case cff_op_roll:
-          {
-            FT_Int  count = (FT_Int)( args[0] >> 16 );
-            FT_Int  idx   = (FT_Int)( args[1] >> 16 );
-
-
-            FT_TRACE4(( " roll" ));
-
-            if ( count <= 0 )
-              count = 1;
-
-            args -= count;
-            if ( args < stack )
-              goto Stack_Underflow;
-
-            if ( idx >= 0 )
-            {
-              while ( idx > 0 )
-              {
-                FT_Fixed  tmp = args[count - 1];
-                FT_Int    i;
-
-
-                for ( i = count - 2; i >= 0; i-- )
-                  args[i + 1] = args[i];
-                args[0] = tmp;
-                idx--;
-              }
-            }
-            else
-            {
-              while ( idx < 0 )
-              {
-                FT_Fixed  tmp = args[0];
-                FT_Int    i;
-
-
-                for ( i = 0; i < count - 1; i++ )
-                  args[i] = args[i + 1];
-                args[count - 1] = tmp;
-                idx++;
-              }
-            }
-            args += count;
-          }
-          break;
-
-        case cff_op_dup:
-          FT_TRACE4(( " dup" ));
-
-          args[1] = args[0];
-          args++;
-          break;
-
-        case cff_op_put:
-          {
-            FT_Fixed  val = args[0];
-            FT_Int    idx = (FT_Int)( args[1] >> 16 );
-
-
-            FT_TRACE4(( " put" ));
-
-            if ( idx >= 0 && idx < decoder->len_buildchar )
-              decoder->buildchar[idx] = val;
-          }
-          break;
-
-        case cff_op_get:
-          {
-            FT_Int    idx = (FT_Int)( args[0] >> 16 );
-            FT_Fixed  val = 0;
-
-
-            FT_TRACE4(( " get" ));
-
-            if ( idx >= 0 && idx < decoder->len_buildchar )
-              val = decoder->buildchar[idx];
-
-            args[0] = val;
-            args++;
-          }
-          break;
-
-        case cff_op_store:
-          FT_TRACE4(( " store "));
-
-          goto Unimplemented;
-
-        case cff_op_load:
-          FT_TRACE4(( " load" ));
-
-          goto Unimplemented;
-
-        case cff_op_dotsection:
-          /* this operator is deprecated and ignored by the parser */
-          FT_TRACE4(( " dotsection" ));
-          break;
-
-        case cff_op_and:
-          {
-            FT_Fixed  cond = args[0] && args[1];
-
-
-            FT_TRACE4(( " and" ));
-
-            args[0] = cond ? 0x10000L : 0;
-            args++;
-          }
-          break;
-
-        case cff_op_or:
-          {
-            FT_Fixed  cond = args[0] || args[1];
-
-
-            FT_TRACE4(( " or" ));
-
-            args[0] = cond ? 0x10000L : 0;
-            args++;
-          }
-          break;
-
-        case cff_op_eq:
-          {
-            FT_Fixed  cond = !args[0];
-
-
-            FT_TRACE4(( " eq" ));
-
-            args[0] = cond ? 0x10000L : 0;
-            args++;
-          }
-          break;
-
-        case cff_op_ifelse:
-          {
-            FT_Fixed  cond = (args[2] <= args[3]);
-
-
-            FT_TRACE4(( " ifelse" ));
-
-            if ( !cond )
-              args[0] = args[1];
-            args++;
-          }
-          break;
-
-        case cff_op_callsubr:
-          {
-            FT_UInt  idx = (FT_UInt)( ( args[0] >> 16 ) +
-                                      decoder->locals_bias );
-
-
-            FT_TRACE4(( " callsubr(%d)", idx ));
-
-            if ( idx >= decoder->num_locals )
-            {
-              FT_ERROR(( "cff_decoder_parse_charstrings:" ));
-              FT_ERROR(( "  invalid local subr index\n" ));
-              goto Syntax_Error;
-            }
-
-            if ( zone - decoder->zones >= CFF_MAX_SUBRS_CALLS )
-            {
-              FT_ERROR(( "cff_decoder_parse_charstrings:"
-                         " too many nested subrs\n" ));
-              goto Syntax_Error;
-            }
-
-            zone->cursor = ip;  /* save current instruction pointer */
-
-            zone++;
-            zone->base   = decoder->locals[idx];
-            zone->limit  = decoder->locals[idx + 1];
-            zone->cursor = zone->base;
-
-            if ( !zone->base )
-            {
-              FT_ERROR(( "cff_decoder_parse_charstrings:"
-                         " invoking empty subrs!\n" ));
-              goto Syntax_Error;
-            }
-
-            decoder->zone = zone;
-            ip            = zone->base;
-            limit         = zone->limit;
-          }
-          break;
-
-        case cff_op_callgsubr:
-          {
-            FT_UInt  idx = (FT_UInt)( ( args[0] >> 16 ) +
-                                      decoder->globals_bias );
-
-
-            FT_TRACE4(( " callgsubr(%d)", idx ));
-
-            if ( idx >= decoder->num_globals )
-            {
-              FT_ERROR(( "cff_decoder_parse_charstrings:" ));
-              FT_ERROR(( " invalid global subr index\n" ));
-              goto Syntax_Error;
-            }
-
-            if ( zone - decoder->zones >= CFF_MAX_SUBRS_CALLS )
-            {
-              FT_ERROR(( "cff_decoder_parse_charstrings:"
-                         " too many nested subrs\n" ));
-              goto Syntax_Error;
-            }
-
-            zone->cursor = ip;  /* save current instruction pointer */
-
-            zone++;
-            zone->base   = decoder->globals[idx];
-            zone->limit  = decoder->globals[idx + 1];
-            zone->cursor = zone->base;
-
-            if ( !zone->base )
-            {
-              FT_ERROR(( "cff_decoder_parse_charstrings:"
-                         " invoking empty subrs!\n" ));
-              goto Syntax_Error;
-            }
-
-            decoder->zone = zone;
-            ip            = zone->base;
-            limit         = zone->limit;
-          }
-          break;
-
-        case cff_op_return:
-          FT_TRACE4(( " return" ));
-
-          if ( decoder->zone <= decoder->zones )
-          {
-            FT_ERROR(( "cff_decoder_parse_charstrings:"
-                       " unexpected return\n" ));
-            goto Syntax_Error;
-          }
-
-          decoder->zone--;
-          zone  = decoder->zone;
-          ip    = zone->cursor;
-          limit = zone->limit;
-          break;
-
-        default:
-        Unimplemented:
-          FT_ERROR(( "Unimplemented opcode: %d", ip[-1] ));
-
-          if ( ip[-1] == 12 )
-            FT_ERROR(( " %d", ip[0] ));
-          FT_ERROR(( "\n" ));
-
-          return CFF_Err_Unimplemented_Feature;
-        }
-
-      decoder->top = args;
-
-      } /* general operator processing */
-
-    } /* while ip < limit */
-
-    FT_TRACE4(( "..end..\n\n" ));
-
-  Fail:
-    return error;
-
-  Syntax_Error:
-    FT_TRACE4(( "cff_decoder_parse_charstrings: syntax error!" ));
-    return CFF_Err_Invalid_File_Format;
-
-  Stack_Underflow:
-    FT_TRACE4(( "cff_decoder_parse_charstrings: stack underflow!" ));
-    return CFF_Err_Too_Few_Arguments;
-
-  Stack_Overflow:
-    FT_TRACE4(( "cff_decoder_parse_charstrings: stack overflow!" ));
-    return CFF_Err_Stack_Overflow;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********                                                      *********/
-  /**********            COMPUTE THE MAXIMUM ADVANCE WIDTH         *********/
-  /**********                                                      *********/
-  /**********    The following code is in charge of computing      *********/
-  /**********    the maximum advance width of the font.  It        *********/
-  /**********    quickly processes each glyph charstring to        *********/
-  /**********    extract the value from either a `sbw' or `seac'   *********/
-  /**********    operator.                                         *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#if 0 /* unused until we support pure CFF fonts */
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_compute_max_advance( TT_Face  face,
-                           FT_Int*  max_advance )
-  {
-    FT_Error     error = CFF_Err_Ok;
-    CFF_Decoder  decoder;
-    FT_Int       glyph_index;
-    CFF_Font     cff = (CFF_Font)face->other;
-
-
-    *max_advance = 0;
-
-    /* Initialize load decoder */
-    cff_decoder_init( &decoder, face, 0, 0, 0, 0 );
-
-    decoder.builder.metrics_only = 1;
-    decoder.builder.load_points  = 0;
-
-    /* For each glyph, parse the glyph charstring and extract */
-    /* the advance width.                                     */
-    for ( glyph_index = 0; glyph_index < face->root.num_glyphs;
-          glyph_index++ )
-    {
-      FT_Byte*  charstring;
-      FT_ULong  charstring_len;
-
-
-      /* now get load the unscaled outline */
-      error = cff_get_glyph_data( face, glyph_index,
-                                  &charstring, &charstring_len );
-      if ( !error )
-      {
-        cff_decoder_prepare( &decoder, glyph_index );
-        error = cff_decoder_parse_charstrings( &decoder,
-                                               charstring, charstring_len );
-
-        cff_free_glyph_data( face, &charstring, &charstring_len );
-      }
-
-      /* ignore the error if one has occurred -- skip to next glyph */
-      error = CFF_Err_Ok;
-    }
-
-    *max_advance = decoder.builder.advance.x;
-
-    return CFF_Err_Ok;
-  }
-
-
-#endif /* 0 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********                                                      *********/
-  /**********               UNHINTED GLYPH LOADER                  *********/
-  /**********                                                      *********/
-  /**********    The following code is in charge of loading a      *********/
-  /**********    single outline.  It completely ignores hinting    *********/
-  /**********    and is used when FT_LOAD_NO_HINTING is set.       *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_slot_load( CFF_GlyphSlot  glyph,
-                 CFF_Size       size,
-                 FT_Int         glyph_index,
-                 FT_Int32       load_flags )
-  {
-    FT_Error      error;
-    CFF_Decoder   decoder;
-    TT_Face       face     = (TT_Face)glyph->root.face;
-    FT_Bool       hinting;
-    CFF_Font      cff      = (CFF_Font)face->extra.data;
-
-    FT_Matrix     font_matrix;
-    FT_Vector     font_offset;
-
-
-    if ( load_flags & FT_LOAD_NO_RECURSE )
-      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
-
-    glyph->x_scale = 0x10000L;
-    glyph->y_scale = 0x10000L;
-    if ( size )
-    {
-      glyph->x_scale = size->root.metrics.x_scale;
-      glyph->y_scale = size->root.metrics.y_scale;
-    }
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    /* try to load embedded bitmap if any              */
-    /*                                                 */
-    /* XXX: The convention should be emphasized in     */
-    /*      the documents because it can be confusing. */
-    if ( size )
-    {
-      CFF_Face      cff_face = (CFF_Face)size->root.face;
-      SFNT_Service  sfnt     = (SFNT_Service)cff_face->sfnt;
-      FT_Stream     stream   = cff_face->root.stream;
-
-
-      if ( size->strike_index != 0xFFFFU           &&
-           sfnt->load_sbits                        &&
-           ( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
-      {
-        TT_SBit_MetricsRec  metrics;
-
-
-        error = sfnt->load_sbit_image( face,
-                                       (FT_ULong)size->strike_index,
-                                       (FT_UInt)glyph_index,
-                                       (FT_Int)load_flags,
-                                       stream,
-                                       &glyph->root.bitmap,
-                                       &metrics );
-
-        if ( !error )
-        {
-          glyph->root.outline.n_points   = 0;
-          glyph->root.outline.n_contours = 0;
-
-          glyph->root.metrics.width  = (FT_Pos)metrics.width  << 6;
-          glyph->root.metrics.height = (FT_Pos)metrics.height << 6;
-
-          glyph->root.metrics.horiBearingX = (FT_Pos)metrics.horiBearingX << 6;
-          glyph->root.metrics.horiBearingY = (FT_Pos)metrics.horiBearingY << 6;
-          glyph->root.metrics.horiAdvance  = (FT_Pos)metrics.horiAdvance  << 6;
-
-          glyph->root.metrics.vertBearingX = (FT_Pos)metrics.vertBearingX << 6;
-          glyph->root.metrics.vertBearingY = (FT_Pos)metrics.vertBearingY << 6;
-          glyph->root.metrics.vertAdvance  = (FT_Pos)metrics.vertAdvance  << 6;
-
-          glyph->root.format = FT_GLYPH_FORMAT_BITMAP;
-
-          if ( load_flags & FT_LOAD_VERTICAL_LAYOUT )
-          {
-            glyph->root.bitmap_left = metrics.vertBearingX;
-            glyph->root.bitmap_top  = metrics.vertBearingY;
-          }
-          else
-          {
-            glyph->root.bitmap_left = metrics.horiBearingX;
-            glyph->root.bitmap_top  = metrics.horiBearingY;
-          }
-          return error;
-        }
-      }
-    }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-    /* return immediately if we only want the embedded bitmaps */
-    if ( load_flags & FT_LOAD_SBITS_ONLY )
-      return CFF_Err_Invalid_Argument;
-
-    glyph->root.outline.n_points   = 0;
-    glyph->root.outline.n_contours = 0;
-
-    hinting = FT_BOOL( ( load_flags & FT_LOAD_NO_SCALE   ) == 0 &&
-                       ( load_flags & FT_LOAD_NO_HINTING ) == 0 );
-
-    glyph->root.format = FT_GLYPH_FORMAT_OUTLINE;  /* by default */
-
-    {
-      FT_Byte*  charstring;
-      FT_ULong  charstring_len;
-
-
-      /* in a CID-keyed font, consider `glyph_index' as a CID and map */
-      /* it immediately to the real glyph_index -- if it isn't a      */
-      /* subsetted font, glyph_indices and CIDs are identical, though */
-      if ( cff->top_font.font_dict.cid_registry != 0xFFFFU &&
-           cff->charset.cids )
-        glyph_index = cff->charset.cids[glyph_index];
-
-      cff_decoder_init( &decoder, face, size, glyph, hinting,
-                        FT_LOAD_TARGET_MODE( load_flags ) );
-
-      decoder.builder.no_recurse =
-        (FT_Bool)( ( load_flags & FT_LOAD_NO_RECURSE ) != 0 );
-
-      /* now load the unscaled outline */
-      error = cff_get_glyph_data( face, glyph_index,
-                                  &charstring, &charstring_len );
-      if ( !error )
-      {
-        cff_decoder_prepare( &decoder, glyph_index );
-        error = cff_decoder_parse_charstrings( &decoder,
-                                               charstring, charstring_len );
-
-        cff_free_glyph_data( face, &charstring, charstring_len );
-
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-        /* Control data and length may not be available for incremental   */
-        /* fonts.                                                         */
-        if ( face->root.internal->incremental_interface )
-        {
-          glyph->root.control_data = 0;
-          glyph->root.control_len = 0;
-        }
-        else
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-        /* We set control_data and control_len if charstrings is loaded.  */
-        /* See how charstring loads at cff_index_access_element() in      */
-        /* cffload.c.                                                     */
-        {
-          CFF_IndexRec csindex = cff->charstrings_index;
-
-
-          glyph->root.control_data =
-            csindex.bytes + csindex.offsets[glyph_index] - 1;
-          glyph->root.control_len =
-            charstring_len;
-        }
-      }
-
-      /* save new glyph tables */
-      cff_builder_done( &decoder.builder );
-    }
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* Incremental fonts can optionally override the metrics. */
-    if ( !error                                                              &&
-         face->root.internal->incremental_interface                          &&
-         face->root.internal->incremental_interface->funcs->get_glyph_metrics )
-    {
-      FT_Incremental_MetricsRec  metrics;
-
-
-      metrics.bearing_x = decoder.builder.left_bearing.x;
-      metrics.bearing_y = decoder.builder.left_bearing.y;
-      metrics.advance   = decoder.builder.advance.x;
-      error = face->root.internal->incremental_interface->funcs->get_glyph_metrics(
-                face->root.internal->incremental_interface->object,
-                glyph_index, FALSE, &metrics );
-      decoder.builder.left_bearing.x = metrics.bearing_x;
-      decoder.builder.left_bearing.y = metrics.bearing_y;
-      decoder.builder.advance.x      = metrics.advance;
-      decoder.builder.advance.y      = 0;
-    }
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    font_matrix = cff->top_font.font_dict.font_matrix;
-    font_offset = cff->top_font.font_dict.font_offset;
-
-    /* Now, set the metrics -- this is rather simple, as   */
-    /* the left side bearing is the xMin, and the top side */
-    /* bearing the yMax.                                   */
-    if ( !error )
-    {
-      /* For composite glyphs, return only left side bearing and */
-      /* advance width.                                          */
-      if ( load_flags & FT_LOAD_NO_RECURSE )
-      {
-        FT_Slot_Internal  internal = glyph->root.internal;
-
-
-        glyph->root.metrics.horiBearingX = decoder.builder.left_bearing.x;
-        glyph->root.metrics.horiAdvance  = decoder.glyph_width;
-        internal->glyph_matrix           = font_matrix;
-        internal->glyph_delta            = font_offset;
-        internal->glyph_transformed      = 1;
-      }
-      else
-      {
-        FT_BBox            cbox;
-        FT_Glyph_Metrics*  metrics = &glyph->root.metrics;
-        FT_Vector          advance;
-
-
-        /* copy the _unscaled_ advance width */
-        metrics->horiAdvance                    = decoder.glyph_width;
-        glyph->root.linearHoriAdvance           = decoder.glyph_width;
-        glyph->root.internal->glyph_transformed = 0;
-
-        /* make up vertical metrics */
-        metrics->vertBearingX = 0;
-        metrics->vertBearingY = 0;
-        metrics->vertAdvance  = 0;
-
-        glyph->root.linearVertAdvance = 0;
-
-        glyph->root.format = FT_GLYPH_FORMAT_OUTLINE;
-
-        glyph->root.outline.flags = 0;
-        if ( size && size->root.metrics.y_ppem < 24 )
-          glyph->root.outline.flags |= FT_OUTLINE_HIGH_PRECISION;
-
-        glyph->root.outline.flags |= FT_OUTLINE_REVERSE_FILL;
-
-        /* apply the font matrix */
-        FT_Outline_Transform( &glyph->root.outline, &font_matrix );
-
-        FT_Outline_Translate( &glyph->root.outline,
-                              font_offset.x,
-                              font_offset.y );
-
-        advance.x = metrics->horiAdvance;
-        advance.y = 0;
-        FT_Vector_Transform( &advance, &font_matrix );
-        metrics->horiAdvance = advance.x + font_offset.x;
-        advance.x = 0;
-        advance.y = metrics->vertAdvance;
-        FT_Vector_Transform( &advance, &font_matrix );
-        metrics->vertAdvance = advance.y + font_offset.y;
-
-        if ( ( load_flags & FT_LOAD_NO_SCALE ) == 0 )
-        {
-          /* scale the outline and the metrics */
-          FT_Int       n;
-          FT_Outline*  cur     = &glyph->root.outline;
-          FT_Vector*   vec     = cur->points;
-          FT_Fixed     x_scale = glyph->x_scale;
-          FT_Fixed     y_scale = glyph->y_scale;
-
-
-          /* First of all, scale the points */
-          if ( !hinting )
-            for ( n = cur->n_points; n > 0; n--, vec++ )
-            {
-              vec->x = FT_MulFix( vec->x, x_scale );
-              vec->y = FT_MulFix( vec->y, y_scale );
-            }
-
-          FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
-          /* Then scale the metrics */
-          metrics->horiAdvance  = FT_MulFix( metrics->horiAdvance,  x_scale );
-          metrics->vertAdvance  = FT_MulFix( metrics->vertAdvance,  y_scale );
-
-          metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
-          metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
-
-          if ( hinting )
-          {
-            metrics->horiAdvance  = FT_PIX_ROUND( metrics->horiAdvance );
-            metrics->vertAdvance  = FT_PIX_ROUND( metrics->vertAdvance );
-
-            metrics->vertBearingX = FT_PIX_ROUND( metrics->vertBearingX );
-            metrics->vertBearingY = FT_PIX_ROUND( metrics->vertBearingY );
-          }
-        }
-
-        /* compute the other metrics */
-        FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
-        /* grid fit the bounding box if necessary */
-        if ( hinting )
-        {
-          cbox.xMin &= -64;
-          cbox.yMin &= -64;
-          cbox.xMax  = ( cbox.xMax + 63 ) & -64;
-          cbox.yMax  = ( cbox.yMax + 63 ) & -64;
-        }
-
-        metrics->width  = cbox.xMax - cbox.xMin;
-        metrics->height = cbox.yMax - cbox.yMin;
-
-        metrics->horiBearingX = cbox.xMin;
-        metrics->horiBearingY = cbox.yMax;
-      }
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffgload.h b/nx-X11/extras/freetype2/src/cff/cffgload.h
deleted file mode 100644
index 89ae049b5..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffgload.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffgload.h                                                             */
-/*                                                                         */
-/*    OpenType Glyph Loader (specification).                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFFGLOAD_H__
-#define __CFFGLOAD_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include "cffobjs.h"
-
-
-FT_BEGIN_HEADER
-
-
-#define CFF_MAX_OPERANDS     48
-#define CFF_MAX_SUBRS_CALLS  32
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Structure>                                                           */
-  /*    CFF_Builder                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*     A structure used during glyph loading to store its outline.       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    memory        :: The current memory object.                        */
-  /*                                                                       */
-  /*    face          :: The current face object.                          */
-  /*                                                                       */
-  /*    glyph         :: The current glyph slot.                           */
-  /*                                                                       */
-  /*    loader        :: The current glyph loader.                         */
-  /*                                                                       */
-  /*    base          :: The base glyph outline.                           */
-  /*                                                                       */
-  /*    current       :: The current glyph outline.                        */
-  /*                                                                       */
-  /*    last          :: The last point position.                          */
-  /*                                                                       */
-  /*    scale_x       :: The horizontal scale (FUnits to sub-pixels).      */
-  /*                                                                       */
-  /*    scale_y       :: The vertical scale (FUnits to sub-pixels).        */
-  /*                                                                       */
-  /*    pos_x         :: The horizontal translation (if composite glyph).  */
-  /*                                                                       */
-  /*    pos_y         :: The vertical translation (if composite glyph).    */
-  /*                                                                       */
-  /*    left_bearing  :: The left side bearing point.                      */
-  /*                                                                       */
-  /*    advance       :: The horizontal advance vector.                    */
-  /*                                                                       */
-  /*    bbox          :: Unused.                                           */
-  /*                                                                       */
-  /*    path_begun    :: A flag which indicates that a new path has begun. */
-  /*                                                                       */
-  /*    load_points   :: If this flag is not set, no points are loaded.    */
-  /*                                                                       */
-  /*    no_recurse    :: Set but not used.                                 */
-  /*                                                                       */
-  /*    metrics_only  :: A boolean indicating that we only want to compute */
-  /*                     the metrics of a given glyph, not load all of its */
-  /*                     points.                                           */
-  /*                                                                       */
-  /*    hints_funcs   :: Auxiliary pointer for hinting.                    */
-  /*                                                                       */
-  /*    hints_globals :: Auxiliary pointer for hinting.                    */
-  /*                                                                       */
-  typedef struct  CFF_Builder_
-  {
-    FT_Memory       memory;
-    TT_Face         face;
-    CFF_GlyphSlot   glyph;
-    FT_GlyphLoader  loader;
-    FT_Outline*     base;
-    FT_Outline*     current;
-
-    FT_Vector       last;
-
-    FT_Fixed        scale_x;
-    FT_Fixed        scale_y;
-
-    FT_Pos          pos_x;
-    FT_Pos          pos_y;
-
-    FT_Vector       left_bearing;
-    FT_Vector       advance;
-
-    FT_BBox         bbox;          /* bounding box */
-    FT_Bool         path_begun;
-    FT_Bool         load_points;
-    FT_Bool         no_recurse;
-
-    FT_Bool         metrics_only;
-
-    void*           hints_funcs;    /* hinter-specific */
-    void*           hints_globals;  /* hinter-specific */
-
-  } CFF_Builder;
-
-
-  /* execution context charstring zone */
-
-  typedef struct  CFF_Decoder_Zone_
-  {
-    FT_Byte*  base;
-    FT_Byte*  limit;
-    FT_Byte*  cursor;
-
-  } CFF_Decoder_Zone;
-
-
-  typedef struct  CFF_Decoder_
-  {
-    CFF_Builder        builder;
-    CFF_Font           cff;
-
-    FT_Fixed           stack[CFF_MAX_OPERANDS + 1];
-    FT_Fixed*          top;
-
-    CFF_Decoder_Zone   zones[CFF_MAX_SUBRS_CALLS + 1];
-    CFF_Decoder_Zone*  zone;
-
-    FT_Int             flex_state;
-    FT_Int             num_flex_vectors;
-    FT_Vector          flex_vectors[7];
-
-    FT_Pos             glyph_width;
-    FT_Pos             nominal_width;
-
-    FT_Bool            read_width;
-    FT_Int             num_hints;
-    FT_Fixed*          buildchar;
-    FT_Int             len_buildchar;
-
-    FT_UInt            num_locals;
-    FT_UInt            num_globals;
-
-    FT_Int             locals_bias;
-    FT_Int             globals_bias;
-
-    FT_Byte**          locals;
-    FT_Byte**          globals;
-
-    FT_Byte**          glyph_names;   /* for pure CFF fonts only  */
-    FT_UInt            num_glyphs;    /* number of glyphs in font */
-
-    FT_Render_Mode     hint_mode;
-
-  } CFF_Decoder;
-
-
-  FT_LOCAL( void )
-  cff_decoder_init( CFF_Decoder*    decoder,
-                    TT_Face         face,
-                    CFF_Size        size,
-                    CFF_GlyphSlot   slot,
-                    FT_Bool         hinting,
-                    FT_Render_Mode  hint_mode );
-
-  FT_LOCAL( void )
-  cff_decoder_prepare( CFF_Decoder*  decoder,
-                       FT_UInt       glyph_index );
-
-#if 0  /* unused until we support pure CFF fonts */
-
-  /* Compute the maximum advance width of a font through quick parsing */
-  FT_LOCAL( FT_Error )
-  cff_compute_max_advance( TT_Face  face,
-                           FT_Int*  max_advance );
-
-#endif /* 0 */
-
-  FT_LOCAL( FT_Error )
-  cff_decoder_parse_charstrings( CFF_Decoder*  decoder,
-                                 FT_Byte*      charstring_base,
-                                 FT_ULong      charstring_len );
-
-  FT_LOCAL( FT_Error )
-  cff_slot_load( CFF_GlyphSlot  glyph,
-                 CFF_Size       size,
-                 FT_Int         glyph_index,
-                 FT_Int32       load_flags );
-
-
-FT_END_HEADER
-
-#endif /* __CFFGLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffload.c b/nx-X11/extras/freetype2/src/cff/cffload.c
deleted file mode 100644
index 350e01f3f..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffload.c
+++ /dev/null
@@ -1,2313 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffload.c                                                              */
-/*                                                                         */
-/*    OpenType and CFF data/program tables loader (body).                  */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_TRUETYPE_TAGS_H
-
-#include "cffload.h"
-#include "cffparse.h"
-
-#include "cfferrs.h"
-
-
-#if 1
-  static const FT_UShort  cff_isoadobe_charset[229] =
-  {
-    0,
-    1,
-    2,
-    3,
-    4,
-    5,
-    6,
-    7,
-    8,
-    9,
-    10,
-    11,
-    12,
-    13,
-    14,
-    15,
-    16,
-    17,
-    18,
-    19,
-    20,
-    21,
-    22,
-    23,
-    24,
-    25,
-    26,
-    27,
-    28,
-    29,
-    30,
-    31,
-    32,
-    33,
-    34,
-    35,
-    36,
-    37,
-    38,
-    39,
-    40,
-    41,
-    42,
-    43,
-    44,
-    45,
-    46,
-    47,
-    48,
-    49,
-    50,
-    51,
-    52,
-    53,
-    54,
-    55,
-    56,
-    57,
-    58,
-    59,
-    60,
-    61,
-    62,
-    63,
-    64,
-    65,
-    66,
-    67,
-    68,
-    69,
-    70,
-    71,
-    72,
-    73,
-    74,
-    75,
-    76,
-    77,
-    78,
-    79,
-    80,
-    81,
-    82,
-    83,
-    84,
-    85,
-    86,
-    87,
-    88,
-    89,
-    90,
-    91,
-    92,
-    93,
-    94,
-    95,
-    96,
-    97,
-    98,
-    99,
-    100,
-    101,
-    102,
-    103,
-    104,
-    105,
-    106,
-    107,
-    108,
-    109,
-    110,
-    111,
-    112,
-    113,
-    114,
-    115,
-    116,
-    117,
-    118,
-    119,
-    120,
-    121,
-    122,
-    123,
-    124,
-    125,
-    126,
-    127,
-    128,
-    129,
-    130,
-    131,
-    132,
-    133,
-    134,
-    135,
-    136,
-    137,
-    138,
-    139,
-    140,
-    141,
-    142,
-    143,
-    144,
-    145,
-    146,
-    147,
-    148,
-    149,
-    150,
-    151,
-    152,
-    153,
-    154,
-    155,
-    156,
-    157,
-    158,
-    159,
-    160,
-    161,
-    162,
-    163,
-    164,
-    165,
-    166,
-    167,
-    168,
-    169,
-    170,
-    171,
-    172,
-    173,
-    174,
-    175,
-    176,
-    177,
-    178,
-    179,
-    180,
-    181,
-    182,
-    183,
-    184,
-    185,
-    186,
-    187,
-    188,
-    189,
-    190,
-    191,
-    192,
-    193,
-    194,
-    195,
-    196,
-    197,
-    198,
-    199,
-    200,
-    201,
-    202,
-    203,
-    204,
-    205,
-    206,
-    207,
-    208,
-    209,
-    210,
-    211,
-    212,
-    213,
-    214,
-    215,
-    216,
-    217,
-    218,
-    219,
-    220,
-    221,
-    222,
-    223,
-    224,
-    225,
-    226,
-    227,
-    228
-  };
-
-  static const FT_UShort  cff_expert_charset[166] =
-  {
-    0,
-    1,
-    229,
-    230,
-    231,
-    232,
-    233,
-    234,
-    235,
-    236,
-    237,
-    238,
-    13,
-    14,
-    15,
-    99,
-    239,
-    240,
-    241,
-    242,
-    243,
-    244,
-    245,
-    246,
-    247,
-    248,
-    27,
-    28,
-    249,
-    250,
-    251,
-    252,
-    253,
-    254,
-    255,
-    256,
-    257,
-    258,
-    259,
-    260,
-    261,
-    262,
-    263,
-    264,
-    265,
-    266,
-    109,
-    110,
-    267,
-    268,
-    269,
-    270,
-    271,
-    272,
-    273,
-    274,
-    275,
-    276,
-    277,
-    278,
-    279,
-    280,
-    281,
-    282,
-    283,
-    284,
-    285,
-    286,
-    287,
-    288,
-    289,
-    290,
-    291,
-    292,
-    293,
-    294,
-    295,
-    296,
-    297,
-    298,
-    299,
-    300,
-    301,
-    302,
-    303,
-    304,
-    305,
-    306,
-    307,
-    308,
-    309,
-    310,
-    311,
-    312,
-    313,
-    314,
-    315,
-    316,
-    317,
-    318,
-    158,
-    155,
-    163,
-    319,
-    320,
-    321,
-    322,
-    323,
-    324,
-    325,
-    326,
-    150,
-    164,
-    169,
-    327,
-    328,
-    329,
-    330,
-    331,
-    332,
-    333,
-    334,
-    335,
-    336,
-    337,
-    338,
-    339,
-    340,
-    341,
-    342,
-    343,
-    344,
-    345,
-    346,
-    347,
-    348,
-    349,
-    350,
-    351,
-    352,
-    353,
-    354,
-    355,
-    356,
-    357,
-    358,
-    359,
-    360,
-    361,
-    362,
-    363,
-    364,
-    365,
-    366,
-    367,
-    368,
-    369,
-    370,
-    371,
-    372,
-    373,
-    374,
-    375,
-    376,
-    377,
-    378
-  };
-
-  static const FT_UShort  cff_expertsubset_charset[87] =
-  {
-    0,
-    1,
-    231,
-    232,
-    235,
-    236,
-    237,
-    238,
-    13,
-    14,
-    15,
-    99,
-    239,
-    240,
-    241,
-    242,
-    243,
-    244,
-    245,
-    246,
-    247,
-    248,
-    27,
-    28,
-    249,
-    250,
-    251,
-    253,
-    254,
-    255,
-    256,
-    257,
-    258,
-    259,
-    260,
-    261,
-    262,
-    263,
-    264,
-    265,
-    266,
-    109,
-    110,
-    267,
-    268,
-    269,
-    270,
-    272,
-    300,
-    301,
-    302,
-    305,
-    314,
-    315,
-    158,
-    155,
-    163,
-    320,
-    321,
-    322,
-    323,
-    324,
-    325,
-    326,
-    150,
-    164,
-    169,
-    327,
-    328,
-    329,
-    330,
-    331,
-    332,
-    333,
-    334,
-    335,
-    336,
-    337,
-    338,
-    339,
-    340,
-    341,
-    342,
-    343,
-    344,
-    345,
-    346
-  };
-
-  static const FT_UShort  cff_standard_encoding[256] =
-  {
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    1,
-    2,
-    3,
-    4,
-    5,
-    6,
-    7,
-    8,
-    9,
-    10,
-    11,
-    12,
-    13,
-    14,
-    15,
-    16,
-    17,
-    18,
-    19,
-    20,
-    21,
-    22,
-    23,
-    24,
-    25,
-    26,
-    27,
-    28,
-    29,
-    30,
-    31,
-    32,
-    33,
-    34,
-    35,
-    36,
-    37,
-    38,
-    39,
-    40,
-    41,
-    42,
-    43,
-    44,
-    45,
-    46,
-    47,
-    48,
-    49,
-    50,
-    51,
-    52,
-    53,
-    54,
-    55,
-    56,
-    57,
-    58,
-    59,
-    60,
-    61,
-    62,
-    63,
-    64,
-    65,
-    66,
-    67,
-    68,
-    69,
-    70,
-    71,
-    72,
-    73,
-    74,
-    75,
-    76,
-    77,
-    78,
-    79,
-    80,
-    81,
-    82,
-    83,
-    84,
-    85,
-    86,
-    87,
-    88,
-    89,
-    90,
-    91,
-    92,
-    93,
-    94,
-    95,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    96,
-    97,
-    98,
-    99,
-    100,
-    101,
-    102,
-    103,
-    104,
-    105,
-    106,
-    107,
-    108,
-    109,
-    110,
-    0,
-    111,
-    112,
-    113,
-    114,
-    0,
-    115,
-    116,
-    117,
-    118,
-    119,
-    120,
-    121,
-    122,
-    0,
-    123,
-    0,
-    124,
-    125,
-    126,
-    127,
-    128,
-    129,
-    130,
-    131,
-    0,
-    132,
-    133,
-    0,
-    134,
-    135,
-    136,
-    137,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    138,
-    0,
-    139,
-    0,
-    0,
-    0,
-    0,
-    140,
-    141,
-    142,
-    143,
-    0,
-    0,
-    0,
-    0,
-    0,
-    144,
-    0,
-    0,
-    0,
-    145,
-    0,
-    0,
-    146,
-    147,
-    148,
-    149,
-    0,
-    0,
-    0,
-    0
-  };
-
-  static const FT_UShort  cff_expert_encoding[256] =
-  {
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    1,
-    229,
-    230,
-    0,
-    231,
-    232,
-    233,
-    234,
-    235,
-    236,
-    237,
-    238,
-    13,
-    14,
-    15,
-    99,
-    239,
-    240,
-    241,
-    242,
-    243,
-    244,
-    245,
-    246,
-    247,
-    248,
-    27,
-    28,
-    249,
-    250,
-    251,
-    252,
-    0,
-    253,
-    254,
-    255,
-    256,
-    257,
-    0,
-    0,
-    0,
-    258,
-    0,
-    0,
-    259,
-    260,
-    261,
-    262,
-    0,
-    0,
-    263,
-    264,
-    265,
-    0,
-    266,
-    109,
-    110,
-    267,
-    268,
-    269,
-    0,
-    270,
-    271,
-    272,
-    273,
-    274,
-    275,
-    276,
-    277,
-    278,
-    279,
-    280,
-    281,
-    282,
-    283,
-    284,
-    285,
-    286,
-    287,
-    288,
-    289,
-    290,
-    291,
-    292,
-    293,
-    294,
-    295,
-    296,
-    297,
-    298,
-    299,
-    300,
-    301,
-    302,
-    303,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    304,
-    305,
-    306,
-    0,
-    0,
-    307,
-    308,
-    309,
-    310,
-    311,
-    0,
-    312,
-    0,
-    0,
-    312,
-    0,
-    0,
-    314,
-    315,
-    0,
-    0,
-    316,
-    317,
-    318,
-    0,
-    0,
-    0,
-    158,
-    155,
-    163,
-    319,
-    320,
-    321,
-    322,
-    323,
-    324,
-    325,
-    0,
-    0,
-    326,
-    150,
-    164,
-    169,
-    327,
-    328,
-    329,
-    330,
-    331,
-    332,
-    333,
-    334,
-    335,
-    336,
-    337,
-    338,
-    339,
-    340,
-    341,
-    342,
-    343,
-    344,
-    345,
-    346,
-    347,
-    348,
-    349,
-    350,
-    351,
-    352,
-    353,
-    354,
-    355,
-    356,
-    357,
-    358,
-    359,
-    360,
-    361,
-    362,
-    363,
-    364,
-    365,
-    366,
-    367,
-    368,
-    369,
-    370,
-    371,
-    372,
-    373,
-    374,
-    375,
-    376,
-    377,
-    378
-  };
-#endif
-
-
-  FT_LOCAL_DEF( FT_UShort )
-  cff_get_standard_encoding( FT_UInt  charcode )
-  {
-    return  (FT_UShort)(charcode < 256 ? cff_standard_encoding[charcode] : 0);
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cffload
-
-
-  /* read a CFF offset from memory */
-  static FT_ULong
-  cff_get_offset( FT_Byte*  p,
-                  FT_Byte   off_size )
-  {
-    FT_ULong  result;
-
-
-    for ( result = 0; off_size > 0; off_size-- )
-    {
-      result <<= 8;
-      result  |= *p++;
-    }
-
-    return result;
-  }
-
-
-  static FT_Error
-  cff_new_index( CFF_Index  idx,
-                 FT_Stream  stream,
-                 FT_Bool    load )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-    FT_UShort  count;
-
-
-    FT_MEM_ZERO( idx, sizeof ( *idx ) );
-
-    idx->stream = stream;
-    if ( !FT_READ_USHORT( count ) &&
-         count > 0                )
-    {
-      FT_Byte*   p;
-      FT_Byte    offsize;
-      FT_ULong   data_size;
-      FT_ULong*  poff;
-
-
-      /* there is at least one element; read the offset size,           */
-      /* then access the offset table to compute the index's total size */
-      if ( FT_READ_BYTE( offsize ) )
-        goto Exit;
-
-      idx->stream   = stream;
-      idx->count    = count;
-      idx->off_size = offsize;
-      data_size     = (FT_ULong)( count + 1 ) * offsize;
-
-      if ( FT_NEW_ARRAY( idx->offsets, count + 1 ) ||
-           FT_FRAME_ENTER( data_size )             )
-        goto Exit;
-
-      poff = idx->offsets;
-      p    = (FT_Byte*)stream->cursor;
-
-      for ( ; (FT_Short)count >= 0; count-- )
-      {
-        poff[0] = cff_get_offset( p, offsize );
-        poff++;
-        p += offsize;
-      }
-
-      FT_FRAME_EXIT();
-
-      idx->data_offset = FT_STREAM_POS();
-      data_size        = poff[-1] - 1;
-
-      if ( load )
-      {
-        /* load the data */
-        if ( FT_FRAME_EXTRACT( data_size, idx->bytes ) )
-          goto Exit;
-      }
-      else
-      {
-        /* skip the data */
-        if ( FT_STREAM_SKIP( data_size ) )
-          goto Exit;
-      }
-    }
-
-  Exit:
-    if ( error )
-      FT_FREE( idx->offsets );
-
-    return error;
-  }
-
-
-  static void
-  cff_done_index( CFF_Index  idx )
-  {
-    if ( idx->stream )
-    {
-      FT_Stream  stream = idx->stream;
-      FT_Memory  memory = stream->memory;
-
-
-      if ( idx->bytes )
-        FT_FRAME_RELEASE( idx->bytes );
-
-      FT_FREE( idx->offsets );
-      FT_MEM_ZERO( idx, sizeof ( *idx ) );
-    }
-  }
-
-
-  /* allocate a table containing pointers to an index's elements */
-  static FT_Error
-  cff_index_get_pointers( CFF_Index   idx,
-                          FT_Byte***  table )
-  {
-    FT_Error   error  = CFF_Err_Ok;
-    FT_Memory  memory = idx->stream->memory;
-    FT_ULong   n, offset, old_offset;
-    FT_Byte**  t;
-
-
-    *table = 0;
-
-    if ( idx->count > 0 && !FT_NEW_ARRAY( t, idx->count + 1 ) )
-    {
-      old_offset = 1;
-      for ( n = 0; n <= idx->count; n++ )
-      {
-        offset = idx->offsets[n];
-        if ( !offset )
-          offset = old_offset;
-
-        t[n] = idx->bytes + offset - 1;
-
-        old_offset = offset;
-      }
-      *table = t;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_index_access_element( CFF_Index  idx,
-                            FT_UInt    element,
-                            FT_Byte**  pbytes,
-                            FT_ULong*  pbyte_len )
-  {
-    FT_Error  error = CFF_Err_Ok;
-
-
-    if ( idx && idx->count > element )
-    {
-      /* compute start and end offsets */
-      FT_ULong  off1, off2 = 0;
-
-
-      off1 = idx->offsets[element];
-      if ( off1 )
-      {
-        do
-        {
-          element++;
-          off2 = idx->offsets[element];
-
-        } while ( off2 == 0 && element < idx->count );
-
-        if ( !off2 )
-          off1 = 0;
-      }
-
-      /* access element */
-      if ( off1 )
-      {
-        *pbyte_len = off2 - off1;
-
-        if ( idx->bytes )
-        {
-          /* this index was completely loaded in memory, that's easy */
-          *pbytes = idx->bytes + off1 - 1;
-        }
-        else
-        {
-          /* this index is still on disk/file, access it through a frame */
-          FT_Stream  stream = idx->stream;
-
-
-          if ( FT_STREAM_SEEK( idx->data_offset + off1 - 1 ) ||
-               FT_FRAME_EXTRACT( off2 - off1, *pbytes )      )
-            goto Exit;
-        }
-      }
-      else
-      {
-        /* empty index element */
-        *pbytes    = 0;
-        *pbyte_len = 0;
-      }
-    }
-    else
-      error = CFF_Err_Invalid_Argument;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cff_index_forget_element( CFF_Index  idx,
-                            FT_Byte**  pbytes )
-  {
-    if ( idx->bytes == 0 )
-    {
-      FT_Stream  stream = idx->stream;
-
-
-      FT_FRAME_RELEASE( *pbytes );
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_String* )
-  cff_index_get_name( CFF_Index  idx,
-                      FT_UInt    element )
-  {
-    FT_Memory   memory = idx->stream->memory;
-    FT_Byte*    bytes;
-    FT_ULong    byte_len;
-    FT_Error    error;
-    FT_String*  name = 0;
-
-
-    error = cff_index_access_element( idx, element, &bytes, &byte_len );
-    if ( error )
-      goto Exit;
-
-    if ( !FT_ALLOC( name, byte_len + 1 ) )
-    {
-      FT_MEM_COPY( name, bytes, byte_len );
-      name[byte_len] = 0;
-    }
-    cff_index_forget_element( idx, &bytes );
-
-  Exit:
-    return name;
-  }
-
-
-  FT_LOCAL_DEF( FT_String* )
-  cff_index_get_sid_string( CFF_Index           idx,
-                            FT_UInt             sid,
-                            FT_Service_PsCMaps  psnames )
-  {
-    /* value 0xFFFFU indicates a missing dictionary entry */
-    if ( sid == 0xFFFFU )
-      return 0;
-
-    /* if it is not a standard string, return it */
-    if ( sid > 390 )
-      return cff_index_get_name( idx, sid - 391 );
-
-    /* CID-keyed CFF fonts don't have glyph names */
-    if ( !psnames )
-      return 0;
-
-    /* that's a standard string, fetch a copy from the PSName module */
-    {
-      FT_String*   name       = 0;
-      const char*  adobe_name = psnames->adobe_std_strings( sid );
-      FT_UInt      len;
-
-
-      if ( adobe_name )
-      {
-        FT_Memory  memory = idx->stream->memory;
-        FT_Error   error;
-
-
-        len = (FT_UInt)ft_strlen( adobe_name );
-        if ( !FT_ALLOC( name, len + 1 ) )
-        {
-          FT_MEM_COPY( name, adobe_name, len );
-          name[len] = 0;
-        }
-
-        FT_UNUSED( error );
-      }
-
-      return name;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***   FD Select table support                                         ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  static void
-  CFF_Done_FD_Select( CFF_FDSelect  fdselect,
-                      FT_Stream     stream )
-  {
-    if ( fdselect->data )
-      FT_FRAME_RELEASE( fdselect->data );
-
-    fdselect->data_size   = 0;
-    fdselect->format      = 0;
-    fdselect->range_count = 0;
-  }
-
-
-  static FT_Error
-  CFF_Load_FD_Select( CFF_FDSelect  fdselect,
-                      FT_UInt       num_glyphs,
-                      FT_Stream     stream,
-                      FT_ULong      offset )
-  {
-    FT_Error  error;
-    FT_Byte   format;
-    FT_UInt   num_ranges;
-
-
-    /* read format */
-    if ( FT_STREAM_SEEK( offset ) || FT_READ_BYTE( format ) )
-      goto Exit;
-
-    fdselect->format      = format;
-    fdselect->cache_count = 0;   /* clear cache */
-
-    switch ( format )
-    {
-    case 0:     /* format 0, that's simple */
-      fdselect->data_size = num_glyphs;
-      goto Load_Data;
-
-    case 3:     /* format 3, a tad more complex */
-      if ( FT_READ_USHORT( num_ranges ) )
-        goto Exit;
-
-      fdselect->data_size = num_ranges * 3 + 2;
-
-    Load_Data:
-      if ( FT_FRAME_EXTRACT( fdselect->data_size, fdselect->data ) )
-        goto Exit;
-      break;
-
-    default:    /* hmm... that's wrong */
-      error = CFF_Err_Invalid_File_Format;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Byte )
-  cff_fd_select_get( CFF_FDSelect  fdselect,
-                     FT_UInt       glyph_index )
-  {
-    FT_Byte  fd = 0;
-
-
-    switch ( fdselect->format )
-    {
-    case 0:
-      fd = fdselect->data[glyph_index];
-      break;
-
-    case 3:
-      /* first, compare to cache */
-      if ( (FT_UInt)( glyph_index - fdselect->cache_first ) <
-                        fdselect->cache_count )
-      {
-        fd = fdselect->cache_fd;
-        break;
-      }
-
-      /* then, lookup the ranges array */
-      {
-        FT_Byte*  p       = fdselect->data;
-        FT_Byte*  p_limit = p + fdselect->data_size;
-        FT_Byte   fd2;
-        FT_UInt   first, limit;
-
-
-        first = FT_NEXT_USHORT( p );
-        do
-        {
-          if ( glyph_index < first )
-            break;
-
-          fd2   = *p++;
-          limit = FT_NEXT_USHORT( p );
-
-          if ( glyph_index < limit )
-          {
-            fd = fd2;
-
-            /* update cache */
-            fdselect->cache_first = first;
-            fdselect->cache_count = limit-first;
-            fdselect->cache_fd    = fd2;
-            break;
-          }
-          first = limit;
-
-        } while ( p < p_limit );
-      }
-      break;
-
-    default:
-      ;
-    }
-
-    return fd;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /***                                                                   ***/
-  /***   CFF font support                                                ***/
-  /***                                                                   ***/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  cff_charset_done( CFF_Charset  charset,
-                    FT_Stream    stream )
-  {
-    FT_Memory  memory = stream->memory;
-
-
-    FT_FREE( charset->sids );
-    FT_FREE( charset->cids );
-    charset->format = 0;
-    charset->offset = 0;
-  }
-
-
-  static FT_Error
-  cff_charset_load( CFF_Charset  charset,
-                    FT_UInt      num_glyphs,
-                    FT_Stream    stream,
-                    FT_ULong     base_offset,
-                    FT_ULong     offset,
-                    FT_Bool      invert )
-  {
-    FT_Memory  memory = stream->memory;
-    FT_Error   error  = CFF_Err_Ok;
-    FT_UShort  glyph_sid;
-
-
-    /* If the the offset is greater than 2, we have to parse the */
-    /* charset table.                                            */
-    if ( offset > 2 )
-    {
-      FT_UInt  j;
-
-
-      charset->offset = base_offset + offset;
-
-      /* Get the format of the table. */
-      if ( FT_STREAM_SEEK( charset->offset ) ||
-           FT_READ_BYTE( charset->format )   )
-        goto Exit;
-
-      /* Allocate memory for sids. */
-      if ( FT_NEW_ARRAY( charset->sids, num_glyphs ) )
-        goto Exit;
-
-      /* assign the .notdef glyph */
-      charset->sids[0] = 0;
-
-      switch ( charset->format )
-      {
-      case 0:
-        if ( num_glyphs > 0 )
-        {
-          if ( FT_FRAME_ENTER( ( num_glyphs - 1 ) * 2 ) )
-            goto Exit;
-
-          for ( j = 1; j < num_glyphs; j++ )
-            charset->sids[j] = FT_GET_USHORT();
-
-          FT_FRAME_EXIT();
-        }
-        break;
-
-      case 1:
-      case 2:
-        {
-          FT_UInt  nleft;
-          FT_UInt  i;
-
-
-          j = 1;
-
-          while ( j < num_glyphs )
-          {
-            /* Read the first glyph sid of the range. */
-            if ( FT_READ_USHORT( glyph_sid ) )
-              goto Exit;
-
-            /* Read the number of glyphs in the range.  */
-            if ( charset->format == 2 )
-            {
-              if ( FT_READ_USHORT( nleft ) )
-                goto Exit;
-            }
-            else
-            {
-              if ( FT_READ_BYTE( nleft ) )
-                goto Exit;
-            }
-
-            /* Fill in the range of sids -- `nleft + 1' glyphs. */
-            for ( i = 0; j < num_glyphs && i <= nleft; i++, j++, glyph_sid++ )
-              charset->sids[j] = glyph_sid;
-          }
-        }
-        break;
-
-      default:
-        FT_ERROR(( "cff_charset_load: invalid table format!\n" ));
-        error = CFF_Err_Invalid_File_Format;
-        goto Exit;
-      }
-    }
-    else
-    {
-      /* Parse default tables corresponding to offset == 0, 1, or 2.  */
-      /* CFF specification intimates the following:                   */
-      /*                                                              */
-      /* In order to use a predefined charset, the following must be  */
-      /* true: The charset constructed for the glyphs in the font's   */
-      /* charstrings dictionary must match the predefined charset in  */
-      /* the first num_glyphs.                                        */
-
-      charset->offset = offset;  /* record charset type */
-
-      switch ( (FT_UInt)offset )
-      {
-      case 0:
-        if ( num_glyphs > 229 )
-        {
-          FT_ERROR(( "cff_charset_load: implicit charset larger than\n"
-                     "predefined charset (Adobe ISO-Latin)!\n" ));
-          error = CFF_Err_Invalid_File_Format;
-          goto Exit;
-        }
-
-        /* Allocate memory for sids. */
-        if ( FT_NEW_ARRAY( charset->sids, num_glyphs ) )
-          goto Exit;
-
-        /* Copy the predefined charset into the allocated memory. */
-        FT_ARRAY_COPY( charset->sids, cff_isoadobe_charset, num_glyphs );
-
-        break;
-
-      case 1:
-        if ( num_glyphs > 166 )
-        {
-          FT_ERROR(( "cff_charset_load: implicit charset larger than\n"
-                     "predefined charset (Adobe Expert)!\n" ));
-          error = CFF_Err_Invalid_File_Format;
-          goto Exit;
-        }
-
-        /* Allocate memory for sids. */
-        if ( FT_NEW_ARRAY( charset->sids, num_glyphs ) )
-          goto Exit;
-
-        /* Copy the predefined charset into the allocated memory.     */
-        FT_ARRAY_COPY( charset->sids, cff_expert_charset, num_glyphs );
-
-        break;
-
-      case 2:
-        if ( num_glyphs > 87 )
-        {
-          FT_ERROR(( "cff_charset_load: implicit charset larger than\n"
-                     "predefined charset (Adobe Expert Subset)!\n" ));
-          error = CFF_Err_Invalid_File_Format;
-          goto Exit;
-        }
-
-        /* Allocate memory for sids. */
-        if ( FT_NEW_ARRAY( charset->sids, num_glyphs ) )
-          goto Exit;
-
-        /* Copy the predefined charset into the allocated memory.     */
-        FT_ARRAY_COPY( charset->sids, cff_expertsubset_charset, num_glyphs );
-
-        break;
-
-      default:
-        error = CFF_Err_Invalid_File_Format;
-        goto Exit;
-      }
-    }
-
-    /* we have to invert the `sids' array for subsetted CID-keyed fonts */
-    if ( invert )
-    {
-      FT_UInt    i;
-      FT_UShort  max_cid = 0;
-
-
-      for ( i = 0; i < num_glyphs; i++ )
-        if ( charset->sids[i] > max_cid )
-          max_cid = charset->sids[i];
-      max_cid++;
-
-      if ( FT_NEW_ARRAY( charset->cids, max_cid ) )
-        goto Exit;
-      FT_MEM_ZERO( charset->cids, sizeof ( FT_UShort ) * max_cid );
-
-      for ( i = 0; i < num_glyphs; i++ )
-        charset->cids[charset->sids[i]] = i;
-    }
-
-  Exit:
-    /* Clean up if there was an error. */
-    if ( error )
-    {
-      FT_FREE( charset->sids );
-      FT_FREE( charset->cids );
-      charset->format = 0;
-      charset->offset = 0;
-      charset->sids   = 0;
-    }
-
-    return error;
-  }
-
-
-  static void
-  cff_encoding_done( CFF_Encoding  encoding )
-  {
-    encoding->format = 0;
-    encoding->offset = 0;
-    encoding->count  = 0;
-  }
-
-
-  static FT_Error
-  cff_encoding_load( CFF_Encoding  encoding,
-                     CFF_Charset   charset,
-                     FT_UInt       num_glyphs,
-                     FT_Stream     stream,
-                     FT_ULong      base_offset,
-                     FT_ULong      offset )
-  {
-    FT_Error   error = CFF_Err_Ok;
-    FT_UInt    count;
-    FT_UInt    j;
-    FT_UShort  glyph_sid;
-    FT_UInt    glyph_code;
-
-
-    /* Check for charset->sids.  If we do not have this, we fail. */
-    if ( !charset->sids )
-    {
-      error = CFF_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    /* Zero out the code to gid/sid mappings. */
-    for ( j = 0; j < 256; j++ )
-    {
-      encoding->sids [j] = 0;
-      encoding->codes[j] = 0;
-    }
-
-    /* Note: The encoding table in a CFF font is indexed by glyph index;  */
-    /* the first encoded glyph index is 1.  Hence, we read the character  */
-    /* code (`glyph_code') at index j and make the assignment:            */
-    /*                                                                    */
-    /*    encoding->codes[glyph_code] = j + 1                             */
-    /*                                                                    */
-    /* We also make the assignment:                                       */
-    /*                                                                    */
-    /*    encoding->sids[glyph_code] = charset->sids[j + 1]               */
-    /*                                                                    */
-    /* This gives us both a code to GID and a code to SID mapping.        */
-
-    if ( offset > 1 )
-    {
-      encoding->offset = base_offset + offset;
-
-      /* we need to parse the table to determine its size */
-      if ( FT_STREAM_SEEK( encoding->offset ) ||
-           FT_READ_BYTE( encoding->format )   ||
-           FT_READ_BYTE( count )              )
-        goto Exit;
-
-      switch ( encoding->format & 0x7F )
-      {
-      case 0:
-        {
-          FT_Byte*  p;
-
-
-          /* By convention, GID 0 is always ".notdef" and is never */
-          /* coded in the font.  Hence, the number of codes found  */
-          /* in the table is `count+1'.                            */
-          /*                                                       */
-          encoding->count = count + 1;
-
-          if ( FT_FRAME_ENTER( count ) )
-            goto Exit;
-
-          p = (FT_Byte*)stream->cursor;
-
-          for ( j = 1; j <= count; j++ )
-          {
-            glyph_code = *p++;
-
-            /* Make sure j is not too big. */
-            if ( j < num_glyphs )
-            {
-              /* Assign code to GID mapping. */
-              encoding->codes[glyph_code] = (FT_UShort)j;
-
-              /* Assign code to SID mapping. */
-              encoding->sids[glyph_code] = charset->sids[j];
-            }
-          }
-
-          FT_FRAME_EXIT();
-        }
-        break;
-
-      case 1:
-        {
-          FT_UInt  nleft;
-          FT_UInt  i = 1;
-          FT_UInt  k;
-
-
-          encoding->count = 0;
-
-          /* Parse the Format1 ranges. */
-          for ( j = 0;  j < count; j++, i += nleft )
-          {
-            /* Read the first glyph code of the range. */
-            if ( FT_READ_BYTE( glyph_code ) )
-              goto Exit;
-
-            /* Read the number of codes in the range. */
-            if ( FT_READ_BYTE( nleft ) )
-              goto Exit;
-
-            /* Increment nleft, so we read `nleft + 1' codes/sids. */
-            nleft++;
-
-            /* compute max number of character codes */
-            if ( (FT_UInt)nleft > encoding->count )
-              encoding->count = nleft;
-
-            /* Fill in the range of codes/sids. */
-            for ( k = i; k < nleft + i; k++, glyph_code++ )
-            {
-              /* Make sure k is not too big. */
-              if ( k < num_glyphs && glyph_code < 256 )
-              {
-                /* Assign code to GID mapping. */
-                encoding->codes[glyph_code] = (FT_UShort)k;
-
-                /* Assign code to SID mapping. */
-                encoding->sids[glyph_code] = charset->sids[k];
-              }
-            }
-          }
-
-          /* simple check; one never knows what can be found in a font */
-          if ( encoding->count > 256 )
-            encoding->count = 256;
-        }
-        break;
-
-      default:
-        FT_ERROR(( "cff_encoding_load: invalid table format!\n" ));
-        error = CFF_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      /* Parse supplemental encodings, if any. */
-      if ( encoding->format & 0x80 )
-      {
-        FT_UInt  gindex;
-
-
-        /* count supplements */
-        if ( FT_READ_BYTE( count ) )
-          goto Exit;
-
-        for ( j = 0; j < count; j++ )
-        {
-          /* Read supplemental glyph code. */
-          if ( FT_READ_BYTE( glyph_code ) )
-            goto Exit;
-
-          /* Read the SID associated with this glyph code. */
-          if ( FT_READ_USHORT( glyph_sid ) )
-            goto Exit;
-
-          /* Assign code to SID mapping. */
-          encoding->sids[glyph_code] = glyph_sid;
-
-          /* First, look up GID which has been assigned to */
-          /* SID glyph_sid.                                */
-          for ( gindex = 0; gindex < num_glyphs; gindex++ )
-          {
-            if ( charset->sids[gindex] == glyph_sid )
-            {
-              encoding->codes[glyph_code] = (FT_UShort)gindex;
-              break;
-            }
-          }
-        }
-      }
-    }
-    else
-    {
-      FT_UInt i;
-
-
-      /* We take into account the fact a CFF font can use a predefined */
-      /* encoding without containing all of the glyphs encoded by this */
-      /* encoding (see the note at the end of section 12 in the CFF    */
-      /* specification).                                               */
-
-      switch ( (FT_UInt)offset )
-      {
-      case 0:
-        /* First, copy the code to SID mapping. */
-        FT_ARRAY_COPY( encoding->sids, cff_standard_encoding, 256 );
-        goto Populate;
-
-      case 1:
-        /* First, copy the code to SID mapping. */
-        FT_ARRAY_COPY( encoding->sids, cff_expert_encoding, 256 );
-
-      Populate:
-        /* Construct code to GID mapping from code to SID mapping */
-        /* and charset.                                           */
-
-        encoding->count = 0;
-
-        for ( j = 0; j < 256; j++ )
-        {
-          /* If j is encoded, find the GID for it. */
-          if ( encoding->sids[j] )
-          {
-            for ( i = 1; i < num_glyphs; i++ )
-              /* We matched, so break. */
-              if ( charset->sids[i] == encoding->sids[j] )
-                break;
-
-            /* i will be equal to num_glyphs if we exited the above */
-            /* loop without a match.  In this case, we also have to */
-            /* fix the code to SID mapping.                         */
-            if ( i == num_glyphs )
-            {
-              encoding->codes[j] = 0;
-              encoding->sids [j] = 0;
-            }
-            else
-            {
-              encoding->codes[j] = (FT_UShort)i;
-
-              /* update encoding count */
-              if ( encoding->count < j + 1 )
-                encoding->count = j + 1;
-            }
-          }
-        }
-        break;
-
-      default:
-        FT_ERROR(( "cff_encoding_load: invalid table format!\n" ));
-        error = CFF_Err_Invalid_File_Format;
-        goto Exit;
-      }
-    }
-
-  Exit:
-
-    /* Clean up if there was an error. */
-    return error;
-  }
-
-
-  static FT_Error
-  cff_subfont_load( CFF_SubFont  font,
-                    CFF_Index    idx,
-                    FT_UInt      font_index,
-                    FT_Stream    stream,
-                    FT_ULong     base_offset )
-  {
-    FT_Error         error;
-    CFF_ParserRec    parser;
-    FT_Byte*         dict = NULL;
-    FT_ULong         dict_len;
-    CFF_FontRecDict  top  = &font->font_dict;
-    CFF_Private      priv = &font->private_dict;
-
-
-    cff_parser_init( &parser, CFF_CODE_TOPDICT, &font->font_dict );
-
-    /* set defaults */
-    FT_MEM_ZERO( top, sizeof ( *top ) );
-
-    top->underline_position  = -100L << 16;
-    top->underline_thickness = 50L << 16;
-    top->charstring_type     = 2;
-    top->font_matrix.xx      = 0x10000L;
-    top->font_matrix.yy      = 0x10000L;
-    top->cid_count           = 8720;
-
-    /* we use the implementation specific SID value 0xFFFF to indicate */
-    /* missing entries                                                 */
-    top->version             = 0xFFFFU;
-    top->notice              = 0xFFFFU;
-    top->copyright           = 0xFFFFU;
-    top->full_name           = 0xFFFFU;
-    top->family_name         = 0xFFFFU;
-    top->weight              = 0xFFFFU;
-    top->embedded_postscript = 0xFFFFU;
-
-    top->cid_registry        = 0xFFFFU;
-    top->cid_ordering        = 0xFFFFU;
-    top->cid_font_name       = 0xFFFFU;
-
-    error = cff_index_access_element( idx, font_index, &dict, &dict_len ) ||
-            cff_parser_run( &parser, dict, dict + dict_len );
-
-    cff_index_forget_element( idx, &dict );
-
-    if ( error )
-      goto Exit;
-
-    /* if it is a CID font, we stop there */
-    if ( top->cid_registry != 0xFFFFU )
-      goto Exit;
-
-    /* parse the private dictionary, if any */
-    if ( top->private_offset && top->private_size )
-    {
-      /* set defaults */
-      FT_MEM_ZERO( priv, sizeof ( *priv ) );
-
-      priv->blue_shift       = 7;
-      priv->blue_fuzz        = 1;
-      priv->lenIV            = -1;
-      priv->expansion_factor = (FT_Fixed)( 0.06 * 0x10000L );
-      priv->blue_scale       = (FT_Fixed)( 0.039625 * 0x10000L * 1000 );
-
-      cff_parser_init( &parser, CFF_CODE_PRIVATE, priv );
-
-      if ( FT_STREAM_SEEK( base_offset + font->font_dict.private_offset ) ||
-           FT_FRAME_ENTER( font->font_dict.private_size )                 )
-        goto Exit;
-
-      error = cff_parser_run( &parser,
-                              (FT_Byte*)stream->cursor,
-                              (FT_Byte*)stream->limit );
-      FT_FRAME_EXIT();
-      if ( error )
-        goto Exit;
-    }
-
-    /* read the local subrs, if any */
-    if ( priv->local_subrs_offset )
-    {
-      if ( FT_STREAM_SEEK( base_offset + top->private_offset +
-                           priv->local_subrs_offset ) )
-        goto Exit;
-
-      error = cff_new_index( &font->local_subrs_index, stream, 1 );
-      if ( error )
-        goto Exit;
-
-      font->num_local_subrs = font->local_subrs_index.count;
-      error = cff_index_get_pointers( &font->local_subrs_index,
-                                      &font->local_subrs );
-      if ( error )
-        goto Exit;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  cff_subfont_done( FT_Memory    memory,
-                    CFF_SubFont  subfont )
-  {
-    if ( subfont )
-    {
-      cff_done_index( &subfont->local_subrs_index );
-      FT_FREE( subfont->local_subrs );
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_font_load( FT_Stream  stream,
-                 FT_Int     face_index,
-                 CFF_Font   font )
-  {
-    static const FT_Frame_Field  cff_header_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  CFF_FontRec
-
-      FT_FRAME_START( 4 ),
-        FT_FRAME_BYTE( version_major ),
-        FT_FRAME_BYTE( version_minor ),
-        FT_FRAME_BYTE( header_size ),
-        FT_FRAME_BYTE( absolute_offsize ),
-      FT_FRAME_END
-    };
-
-    FT_Error         error;
-    FT_Memory        memory = stream->memory;
-    FT_ULong         base_offset;
-    CFF_FontRecDict  dict;
-
-    FT_ZERO( font );
-
-    font->stream = stream;
-    font->memory = memory;
-    dict         = &font->top_font.font_dict;
-    base_offset  = FT_STREAM_POS();
-
-    /* read CFF font header */
-    if ( FT_STREAM_READ_FIELDS( cff_header_fields, font ) )
-      goto Exit;
-
-    /* check format */
-    if ( font->version_major   != 1 ||
-         font->header_size      < 4 ||
-         font->absolute_offsize > 4 )
-    {
-      FT_TRACE2(( "[not a CFF font header!]\n" ));
-      error = CFF_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* skip the rest of the header */
-    if ( FT_STREAM_SKIP( font->header_size - 4 ) )
-      goto Exit;
-
-    /* read the name, top dict, string and global subrs index */
-    if ( FT_SET_ERROR( cff_new_index( &font->name_index,         stream, 0 )) ||
-         FT_SET_ERROR( cff_new_index( &font->font_dict_index,    stream, 0 )) ||
-         FT_SET_ERROR( cff_new_index( &font->string_index,       stream, 0 )) ||
-         FT_SET_ERROR( cff_new_index( &font->global_subrs_index, stream, 1 )) )
-      goto Exit;
-
-    /* well, we don't really forget the `disabled' fonts... */
-    font->num_faces = font->name_index.count;
-    if ( face_index >= (FT_Int)font->num_faces )
-    {
-      FT_ERROR(( "cff_font_load: incorrect face index = %d\n",
-                 face_index ));
-      error = CFF_Err_Invalid_Argument;
-    }
-
-    /* in case of a font format check, simply exit now */
-    if ( face_index < 0 )
-      goto Exit;
-
-    /* now, parse the top-level font dictionary */
-    error = cff_subfont_load( &font->top_font,
-                              &font->font_dict_index,
-                              face_index,
-                              stream,
-                              base_offset );
-    if ( error )
-      goto Exit;
-
-    if ( FT_STREAM_SEEK( base_offset + dict->charstrings_offset ) )
-      goto Exit;
-
-    error = cff_new_index( &font->charstrings_index, stream, 0 );
-    if ( error )
-      goto Exit;
-
-    /* now, check for a CID font */
-    if ( dict->cid_registry != 0xFFFFU )
-    {
-      CFF_IndexRec  fd_index;
-      CFF_SubFont   sub;
-      FT_UInt       idx;
-
-
-      /* this is a CID-keyed font, we must now allocate a table of */
-      /* sub-fonts, then load each of them separately              */
-      if ( FT_STREAM_SEEK( base_offset + dict->cid_fd_array_offset ) )
-        goto Exit;
-
-      error = cff_new_index( &fd_index, stream, 0 );
-      if ( error )
-        goto Exit;
-
-      if ( fd_index.count > CFF_MAX_CID_FONTS )
-      {
-        FT_ERROR(( "cff_font_load: FD array too large in CID font\n" ));
-        goto Fail_CID;
-      }
-
-      /* allocate & read each font dict independently */
-      font->num_subfonts = fd_index.count;
-      if ( FT_NEW_ARRAY( sub, fd_index.count ) )
-        goto Fail_CID;
-
-      /* setup pointer table */
-      for ( idx = 0; idx < fd_index.count; idx++ )
-        font->subfonts[idx] = sub + idx;
-
-      /* now load each sub font independently */
-      for ( idx = 0; idx < fd_index.count; idx++ )
-      {
-        sub = font->subfonts[idx];
-        error = cff_subfont_load( sub, &fd_index, idx,
-                                  stream, base_offset );
-        if ( error )
-          goto Fail_CID;
-      }
-
-      /* now load the FD Select array */
-      error = CFF_Load_FD_Select( &font->fd_select,
-                                  font->charstrings_index.count,
-                                  stream,
-                                  base_offset + dict->cid_fd_select_offset );
-
-    Fail_CID:
-      cff_done_index( &fd_index );
-
-      if ( error )
-        goto Exit;
-    }
-    else
-      font->num_subfonts = 0;
-
-    /* read the charstrings index now */
-    if ( dict->charstrings_offset == 0 )
-    {
-      FT_ERROR(( "cff_font_load: no charstrings offset!\n" ));
-      error = CFF_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* explicit the global subrs */
-    font->num_global_subrs = font->global_subrs_index.count;
-    font->num_glyphs       = font->charstrings_index.count;
-
-    error = cff_index_get_pointers( &font->global_subrs_index,
-                                    &font->global_subrs ) ;
-
-    if ( error )
-      goto Exit;
-
-    /* read the Charset and Encoding tables if available */
-    if ( font->num_glyphs > 0 )
-    {
-      FT_Bool  invert;
-
-
-      invert = dict->cid_registry != 0xFFFFU &&
-               font->charstrings_index.count != dict->cid_count;
-      error = cff_charset_load( &font->charset, font->num_glyphs, stream,
-                                base_offset, dict->charset_offset, invert );
-      if ( error )
-        goto Exit;
-
-      /* CID-keyed CFFs don't have an encoding */
-      if ( dict->cid_registry == 0xFFFFU )
-      {
-        error = cff_encoding_load( &font->encoding,
-                                   &font->charset,
-                                   font->num_glyphs,
-                                   stream,
-                                   base_offset,
-                                   dict->encoding_offset );
-        if ( error )
-          goto Exit;
-      }
-      else
-        /* CID-keyed fonts only need CIDs */
-        FT_FREE( font->charset.sids );
-    }
-
-    /* get the font name (/CIDFontName for CID-keyed fonts, */
-    /* /FontName otherwise)                                 */
-    font->font_name = cff_index_get_name( &font->name_index, face_index );
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cff_font_done( CFF_Font  font )
-  {
-    FT_Memory  memory = font->memory;
-    FT_UInt    idx;
-
-
-    cff_done_index( &font->global_subrs_index );
-    cff_done_index( &font->string_index );
-    cff_done_index( &font->font_dict_index );
-    cff_done_index( &font->name_index );
-    cff_done_index( &font->charstrings_index );
-
-    /* release font dictionaries, but only if working with */
-    /* a CID keyed CFF font                                */
-    if ( font->num_subfonts > 0 )
-    {
-      for ( idx = 0; idx < font->num_subfonts; idx++ )
-        cff_subfont_done( memory, font->subfonts[idx] );
-
-      FT_FREE( font->subfonts );
-    }
-
-    cff_encoding_done( &font->encoding );
-    cff_charset_done( &font->charset, font->stream );
-
-    cff_subfont_done( memory, &font->top_font );
-
-    CFF_Done_FD_Select( &font->fd_select, font->stream );
-
-    FT_FREE( font->global_subrs );
-    FT_FREE( font->font_name );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffload.h b/nx-X11/extras/freetype2/src/cff/cffload.h
deleted file mode 100644
index ccf8ada1c..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffload.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffload.h                                                              */
-/*                                                                         */
-/*    OpenType & CFF data/program tables loader (specification).           */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFFLOAD_H__
-#define __CFFLOAD_H__
-
-
-#include <ft2build.h>
-#include "cfftypes.h"
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-
-
-FT_BEGIN_HEADER
-
-  FT_LOCAL( FT_UShort )
-  cff_get_standard_encoding( FT_UInt  charcode );
-
-
-  FT_LOCAL( FT_String* )
-  cff_index_get_name( CFF_Index  idx,
-                      FT_UInt    element );
-
-  FT_LOCAL( FT_String* )
-  cff_index_get_sid_string( CFF_Index          idx,
-                            FT_UInt            sid,
-                            FT_Service_PsCMaps psnames );
-
-
-  FT_LOCAL( FT_Error )
-  cff_index_access_element( CFF_Index  idx,
-                            FT_UInt    element,
-                            FT_Byte**  pbytes,
-                            FT_ULong*  pbyte_len );
-
-  FT_LOCAL( void )
-  cff_index_forget_element( CFF_Index  idx,
-                            FT_Byte**  pbytes );
-
-
-  FT_LOCAL( FT_Error )
-  cff_font_load( FT_Stream  stream,
-                 FT_Int     face_index,
-                 CFF_Font   font );
-
-  FT_LOCAL( void )
-  cff_font_done( CFF_Font  font );
-
-
-  FT_LOCAL( FT_Byte )
-  cff_fd_select_get( CFF_FDSelect  fdselect,
-                     FT_UInt       glyph_index );
-
-
-FT_END_HEADER
-
-#endif /* __CFFLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffobjs.c b/nx-X11/extras/freetype2/src/cff/cffobjs.c
deleted file mode 100644
index ec4d1e4f5..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffobjs.c
+++ /dev/null
@@ -1,775 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffobjs.c                                                              */
-/*                                                                         */
-/*    OpenType objects manager (body).                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_ERRORS_H
-#include FT_TRUETYPE_IDS_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_SFNT_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-#include "cffobjs.h"
-#include "cffload.h"
-#include "cffcmap.h"
-#include "cfferrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cffobjs
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            SIZE FUNCTIONS                             */
-  /*                                                                       */
-  /*  Note that we store the global hints in the size's `internal' root    */
-  /*  field.                                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-  static FT_Error
-  sbit_size_reset( CFF_Size  size )
-  {
-    CFF_Face          face;
-    FT_Error          error = CFF_Err_Ok;
-
-    FT_ULong          strike_index;
-    FT_Size_Metrics*  metrics;
-    FT_Size_Metrics*  sbit_metrics;
-    SFNT_Service      sfnt;
-
-
-    metrics = &size->root.metrics;
-
-    face = (CFF_Face)size->root.face;
-    sfnt = (SFNT_Service)face->sfnt;
-
-    sbit_metrics = &size->strike_metrics;
-
-    error = sfnt->set_sbit_strike( face,
-                                   metrics->x_ppem, metrics->y_ppem,
-                                   &strike_index );
-
-    if ( !error )
-    {
-      TT_SBit_Strike  strike = face->sbit_strikes + strike_index;
-
-
-      sbit_metrics->x_ppem = metrics->x_ppem;
-      sbit_metrics->y_ppem = metrics->y_ppem;
-
-      sbit_metrics->ascender  = strike->hori.ascender << 6;
-      sbit_metrics->descender = strike->hori.descender << 6;
-
-      /* XXX: Is this correct? */
-      sbit_metrics->height = sbit_metrics->ascender -
-                             sbit_metrics->descender;
-
-      /* XXX: Is this correct? */
-      sbit_metrics->max_advance = ( strike->hori.min_origin_SB  +
-                                    strike->hori.max_width      +
-                                    strike->hori.min_advance_SB ) << 6;
-
-      size->strike_index = (FT_UInt)strike_index;
-    }
-    else
-    {
-      size->strike_index = 0xFFFFU;
-
-      sbit_metrics->x_ppem      = 0;
-      sbit_metrics->y_ppem      = 0;
-      sbit_metrics->ascender    = 0;
-      sbit_metrics->descender   = 0;
-      sbit_metrics->height      = 0;
-      sbit_metrics->max_advance = 0;
-    }
-
-    return error;
-  }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-
-  static PSH_Globals_Funcs
-  cff_size_get_globals_funcs( CFF_Size  size )
-  {
-    CFF_Face          face     = (CFF_Face)size->root.face;
-    CFF_Font          font     = (CFF_FontRec *)face->extra.data;
-    PSHinter_Service  pshinter = (PSHinter_Service)font->pshinter;
-    FT_Module         module;
-
-
-    module = FT_Get_Module( size->root.face->driver->root.library,
-                            "pshinter" );
-    return ( module && pshinter && pshinter->get_globals_funcs )
-           ? pshinter->get_globals_funcs( module )
-           : 0;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cff_size_done( FT_Size  cffsize )        /* CFF_Size */
-  {
-    CFF_Size  size = (CFF_Size)cffsize;
-
-
-    if ( cffsize->internal )
-    {
-      PSH_Globals_Funcs  funcs;
-
-
-      funcs = cff_size_get_globals_funcs( size );
-      if ( funcs )
-        funcs->destroy( (PSH_Globals)cffsize->internal );
-
-      cffsize->internal = 0;
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_size_init( FT_Size  cffsize )         /* CFF_Size */
-  {
-    CFF_Size           size  = (CFF_Size)cffsize;
-    FT_Error           error = CFF_Err_Ok;
-    PSH_Globals_Funcs  funcs = cff_size_get_globals_funcs( size );
-
-
-    if ( funcs )
-    {
-      PSH_Globals    globals;
-      CFF_Face       face    = (CFF_Face)cffsize->face;
-      CFF_Font       font    = (CFF_FontRec *)face->extra.data;
-      CFF_SubFont    subfont = &font->top_font;
-
-      CFF_Private    cpriv   = &subfont->private_dict;
-      PS_PrivateRec  priv;
-
-
-      /* IMPORTANT: The CFF and Type1 private dictionaries have    */
-      /*            slightly different structures; we need to      */
-      /*            synthetize a type1 dictionary on the fly here. */
-
-      {
-        FT_UInt  n, count;
-
-
-        FT_MEM_ZERO( &priv, sizeof ( priv ) );
-
-        count = priv.num_blue_values = cpriv->num_blue_values;
-        for ( n = 0; n < count; n++ )
-          priv.blue_values[n] = (FT_Short)cpriv->blue_values[n];
-
-        count = priv.num_other_blues = cpriv->num_other_blues;
-        for ( n = 0; n < count; n++ )
-          priv.other_blues[n] = (FT_Short)cpriv->other_blues[n];
-
-        count = priv.num_family_blues = cpriv->num_family_blues;
-        for ( n = 0; n < count; n++ )
-          priv.family_blues[n] = (FT_Short)cpriv->family_blues[n];
-
-        count = priv.num_family_other_blues = cpriv->num_family_other_blues;
-        for ( n = 0; n < count; n++ )
-          priv.family_other_blues[n] = (FT_Short)cpriv->family_other_blues[n];
-
-        priv.blue_scale = cpriv->blue_scale;
-        priv.blue_shift = (FT_Int)cpriv->blue_shift;
-        priv.blue_fuzz  = (FT_Int)cpriv->blue_fuzz;
-
-        priv.standard_width[0]  = (FT_UShort)cpriv->standard_width;
-        priv.standard_height[0] = (FT_UShort)cpriv->standard_height;
-
-        count = priv.num_snap_widths = cpriv->num_snap_widths;
-        for ( n = 0; n < count; n++ )
-          priv.snap_widths[n] = (FT_Short)cpriv->snap_widths[n];
-
-        count = priv.num_snap_heights = cpriv->num_snap_heights;
-        for ( n = 0; n < count; n++ )
-          priv.snap_heights[n] = (FT_Short)cpriv->snap_heights[n];
-
-        priv.force_bold     = cpriv->force_bold;
-        priv.language_group = cpriv->language_group;
-        priv.lenIV          = cpriv->lenIV;
-      }
-
-      error = funcs->create( cffsize->face->memory, &priv, &globals );
-      if ( !error )
-        cffsize->internal = (FT_Size_Internal)(void*)globals;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_size_reset( FT_Size  cffsize,         /* CFF_Size */
-                  FT_UInt  char_width,
-                  FT_UInt  char_height )
-  {
-    CFF_Size           size  = (CFF_Size)cffsize;
-    PSH_Globals_Funcs  funcs = cff_size_get_globals_funcs( size );
-    FT_Error           error = CFF_Err_Ok;
-    FT_Face            face  = cffsize->face;
-
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-
-
-    if ( funcs )
-      error = funcs->set_scale( (PSH_Globals)cffsize->internal,
-                                 cffsize->metrics.x_scale,
-                                 cffsize->metrics.y_scale,
-                                 0, 0 );
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    if ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
-    {
-      error = sbit_size_reset( size );
-
-      if ( !error && !( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
-        cffsize->metrics = size->strike_metrics;
-    }
-
-#endif
-
-    if ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-      return CFF_Err_Ok;
-    else
-      return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_point_size_reset( FT_Size     cffsize,
-                        FT_F26Dot6  char_width,
-                        FT_F26Dot6  char_height,
-                        FT_UInt     horz_resolution,
-                        FT_UInt     vert_resolution )
-  {
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-    FT_UNUSED( horz_resolution );
-    FT_UNUSED( vert_resolution );
-
-    return cff_size_reset( cffsize, 0, 0 );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            SLOT  FUNCTIONS                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( void )
-  cff_slot_done( FT_GlyphSlot  slot )
-  {
-    slot->internal->glyph_hints = 0;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_slot_init( FT_GlyphSlot  slot )
-  {
-    CFF_Face          face     = (CFF_Face)slot->face;
-    CFF_Font          font     = (CFF_FontRec *)face->extra.data;
-    PSHinter_Service  pshinter = (PSHinter_Service)font->pshinter;
-
-
-    if ( pshinter )
-    {
-      FT_Module  module;
-
-
-      module = FT_Get_Module( slot->face->driver->root.library,
-                              "pshinter" );
-      if ( module )
-      {
-        T2_Hints_Funcs  funcs;
-
-
-        funcs = pshinter->get_t2_funcs( module );
-        slot->internal->glyph_hints = (void*)funcs;
-      }
-    }
-
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                           FACE  FUNCTIONS                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-  static FT_String*
-  cff_strcpy( FT_Memory         memory,
-              const FT_String*  source )
-  {
-    FT_Error    error;
-    FT_String*  result = 0;
-    FT_Int      len = (FT_Int)ft_strlen( source );
-
-
-    if ( !FT_ALLOC( result, len + 1 ) )
-    {
-      FT_MEM_COPY( result, source, len );
-      result[len] = 0;
-    }
-
-    FT_UNUSED( error );
-
-    return result;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_face_init( FT_Stream      stream,
-                 FT_Face        cffface,        /* CFF_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    CFF_Face            face = (CFF_Face)cffface;
-    FT_Error            error;
-    SFNT_Service        sfnt;
-    FT_Service_PsCMaps  psnames;
-    PSHinter_Service    pshinter;
-    FT_Bool             pure_cff    = 1;
-    FT_Bool             sfnt_format = 0;
-
-#if 0
-    FT_FACE_FIND_GLOBAL_SERVICE( face, sfnt,     SFNT );
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames,  POSTSCRIPT_NAMES );
-    FT_FACE_FIND_GLOBAL_SERVICE( face, pshinter, POSTSCRIPT_HINTER );
-
-    if ( !sfnt )
-      goto Bad_Format;
-#else
-    sfnt = (SFNT_Service)FT_Get_Module_Interface(
-             cffface->driver->root.library, "sfnt" );
-    if ( !sfnt )
-      goto Bad_Format;
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-
-    pshinter = (PSHinter_Service)FT_Get_Module_Interface(
-                 cffface->driver->root.library, "pshinter" );
-#endif
-
-    /* create input stream from resource */
-    if ( FT_STREAM_SEEK( 0 ) )
-      goto Exit;
-
-    /* check whether we have a valid OpenType file */
-    error = sfnt->init_face( stream, face, face_index, num_params, params );
-    if ( !error )
-    {
-      if ( face->format_tag != 0x4F54544FL )  /* `OTTO'; OpenType/CFF font */
-      {
-        FT_TRACE2(( "[not a valid OpenType/CFF font]\n" ));
-        goto Bad_Format;
-      }
-
-      /* if we are performing a simple font format check, exit immediately */
-      if ( face_index < 0 )
-        return CFF_Err_Ok;
-
-      sfnt_format = 1;
-
-      /* now, the font can be either an OpenType/CFF font, or an SVG CEF */
-      /* font; in the latter case it doesn't have a `head' table         */
-      error = face->goto_table( face, TTAG_head, stream, 0 );
-      if ( !error )
-      {
-        pure_cff = 0;
-
-        /* load font directory */
-        error = sfnt->load_face( stream, face,
-                                 face_index, num_params, params );
-        if ( error )
-          goto Exit;
-      }
-      else
-      {
-        /* load the `cmap' table explicitly */
-        error = sfnt->load_charmaps( face, stream );
-        if ( error )
-          goto Exit;
-
-        /* XXX: we don't load the GPOS table, as OpenType Layout     */
-        /* support will be added later to a layout library on top of */
-        /* FreeType 2                                                */
-      }
-
-      /* now load the CFF part of the file */
-      error = face->goto_table( face, TTAG_CFF, stream, 0 );
-      if ( error )
-        goto Exit;
-    }
-    else
-    {
-      /* rewind to start of file; we are going to load a pure-CFF font */
-      if ( FT_STREAM_SEEK( 0 ) )
-        goto Exit;
-      error = CFF_Err_Ok;
-    }
-
-    /* now load and parse the CFF table in the file */
-    {
-      CFF_Font         cff;
-      CFF_FontRecDict  dict;
-      FT_Memory        memory = cffface->memory;
-      FT_Int32         flags;
-
-
-      if ( FT_NEW( cff ) )
-        goto Exit;
-
-      face->extra.data = cff;
-      error = cff_font_load( stream, face_index, cff );
-      if ( error )
-        goto Exit;
-
-      cff->pshinter = pshinter;
-      cff->psnames  = (void*)psnames;
-
-      /* Complement the root flags with some interesting information. */
-      /* Note that this is only necessary for pure CFF and CEF fonts. */
-
-      cffface->num_glyphs = cff->num_glyphs;
-
-      dict = &cff->top_font.font_dict;
-
-      /* we need the `PSNames' module for CFF and CEF formats */
-      /* which aren't CID-keyed                               */
-      if ( dict->cid_registry == 0xFFFFU && !psnames )
-      {
-        FT_ERROR(( "cff_face_init:" ));
-        FT_ERROR(( " cannot open CFF & CEF fonts\n" ));
-        FT_ERROR(( "              " ));
-        FT_ERROR(( " without the `PSNames' module\n" ));
-        goto Bad_Format;
-      }
-
-      if ( pure_cff )
-      {
-        char*  style_name = NULL;
-
-
-        /* Set up num_faces. */
-        cffface->num_faces = cff->num_faces;
-
-        /* compute number of glyphs */
-        if ( dict->cid_registry != 0xFFFFU )
-          cffface->num_glyphs = dict->cid_count;
-        else
-          cffface->num_glyphs = cff->charstrings_index.count;
-
-        /* set global bbox, as well as EM size */
-        cffface->bbox.xMin =   dict->font_bbox.xMin             >> 16;
-        cffface->bbox.yMin =   dict->font_bbox.yMin             >> 16;
-        cffface->bbox.xMax = ( dict->font_bbox.xMax + 0xFFFFU ) >> 16;
-        cffface->bbox.yMax = ( dict->font_bbox.yMax + 0xFFFFU ) >> 16;
-
-        cffface->ascender  = (FT_Short)( cffface->bbox.yMax );
-        cffface->descender = (FT_Short)( cffface->bbox.yMin );
-        cffface->height    = (FT_Short)(
-          ( ( cffface->ascender - cffface->descender ) * 12 ) / 10 );
-
-        if ( dict->units_per_em )
-          cffface->units_per_EM = dict->units_per_em;
-        else
-          cffface->units_per_EM = 1000;
-
-        cffface->underline_position  =
-          (FT_Short)( dict->underline_position >> 16 );
-        cffface->underline_thickness =
-          (FT_Short)( dict->underline_thickness >> 16 );
-
-        /* retrieve font family & style name */
-        cffface->family_name = cff_index_get_name( &cff->name_index,
-                                                   face_index );
-
-        if ( cffface->family_name )
-        {
-          char*  full   = cff_index_get_sid_string( &cff->string_index,
-                                                    dict->full_name,
-                                                    psnames );
-          char*  fullp  = full;
-          char*  family = cffface->family_name;
-
-          /* We try to extract the style name from the full name.   */
-          /* We need to ignore spaces and dashes during the search. */
-          if ( full )
-          {
-            while ( *fullp )
-            {
-              /* skip common characters at the start of both strings */
-              if ( *fullp == *family )
-              {
-                family++;
-                fullp++;
-                continue;
-              }
-
-              /* ignore spaces and dashes in full name during comparison */
-              if ( *fullp == ' ' || *fullp == '-' )
-              {
-                fullp++;
-                continue;
-              }
-
-              /* ignore spaces and dashes in family name during comparison */
-              if ( *family == ' ' || *family == '-' )
-              {
-                family++;
-                continue;
-              }
-
-              if ( !*family && *fullp )
-              {
-                /* Rhe full name begins with the same characters as the  */
-                /* family name, with spaces and dashes removed.  In this */
-                /* case, the remaining string in `fullp' will be used as */
-                /* the style name.                                       */
-                style_name = cff_strcpy( memory, fullp );
-              }
-              break;
-            }
-            FT_FREE( full );
-          }
-        }
-        else
-        {
-          char  *cid_font_name =
-                   cff_index_get_sid_string( &cff->string_index,
-                                             dict->cid_font_name,
-                                             psnames );
-
-
-          /* do we have a `/FontName' for a CID-keyed font? */
-          if ( cid_font_name )
-            cffface->family_name = cid_font_name;
-        }
-
-        if ( style_name )
-          cffface->style_name = style_name;
-        else
-          /* assume "Regular" style if we don't know better */
-          cffface->style_name = cff_strcpy( memory, (char *)"Regular" );
-
-        /*******************************************************************/
-        /*                                                                 */
-        /* Compute face flags.                                             */
-        /*                                                                 */
-        flags = FT_FACE_FLAG_SCALABLE  |    /* scalable outlines */
-                FT_FACE_FLAG_HORIZONTAL;    /* horizontal data   */
-
-        if ( sfnt_format )
-          flags |= FT_FACE_FLAG_SFNT;
-
-        /* fixed width font? */
-        if ( dict->is_fixed_pitch )
-          flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-  /* XXX: WE DO NOT SUPPORT KERNING METRICS IN THE GPOS TABLE FOR NOW */
-#if 0
-        /* kerning available? */
-        if ( face->kern_pairs )
-          flags |= FT_FACE_FLAG_KERNING;
-#endif
-
-        cffface->face_flags = flags;
-
-        /*******************************************************************/
-        /*                                                                 */
-        /* Compute style flags.                                            */
-        /*                                                                 */
-        flags = 0;
-
-        if ( dict->italic_angle )
-          flags |= FT_STYLE_FLAG_ITALIC;
-
-        {
-          char  *weight = cff_index_get_sid_string( &cff->string_index,
-                                                    dict->weight,
-                                                    psnames );
-
-
-          if ( weight )
-            if ( !ft_strcmp( weight, "Bold"  ) ||
-                 !ft_strcmp( weight, "Black" ) )
-              flags |= FT_STYLE_FLAG_BOLD;
-          FT_FREE( weight );
-        }
-
-        cffface->style_flags = flags;
-      }
-
-#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
-      /* CID-keyed CFF fonts don't have glyph names -- the SFNT loader */
-      /* has unset this flag because of the 3.0 `post' table           */
-      if ( dict->cid_registry == 0xFFFFU )
-        cffface->face_flags |= FT_FACE_FLAG_GLYPH_NAMES;
-#endif
-
-      /*******************************************************************/
-      /*                                                                 */
-      /* Compute char maps.                                              */
-      /*                                                                 */
-
-      /* Try to synthetize a Unicode charmap if there is none available */
-      /* already.  If an OpenType font contains a Unicode "cmap", we    */
-      /* will use it, whatever be in the CFF part of the file.          */
-      {
-        FT_CharMapRec  cmaprec;
-        FT_CharMap     cmap;
-        FT_UInt        nn;
-        CFF_Encoding   encoding = &cff->encoding;
-
-
-        for ( nn = 0; nn < (FT_UInt)cffface->num_charmaps; nn++ )
-        {
-          cmap = cffface->charmaps[nn];
-
-          /* Windows Unicode (3,1)? */
-          if ( cmap->platform_id == 3 && cmap->encoding_id == 1 )
-            goto Skip_Unicode;
-
-          /* Deprecated Unicode platform id? */
-          if ( cmap->platform_id == 0 )
-            goto Skip_Unicode; /* Standard Unicode (deprecated) */
-        }
-
-        /* since CID-keyed fonts don't contain glyph names, we can't */
-        /* construct a cmap                                          */
-        if ( pure_cff && cff->top_font.font_dict.cid_registry != 0xFFFFU )
-          goto Exit;
-
-        /* we didn't find a Unicode charmap -- synthetize one */
-        cmaprec.face        = cffface;
-        cmaprec.platform_id = 3;
-        cmaprec.encoding_id = 1;
-        cmaprec.encoding    = FT_ENCODING_UNICODE;
-
-        nn = (FT_UInt)cffface->num_charmaps;
-
-        FT_CMap_New( &cff_cmap_unicode_class_rec, NULL, &cmaprec, NULL );
-
-        /* if no Unicode charmap was previously selected, select this one */
-        if ( cffface->charmap == NULL && nn != (FT_UInt)cffface->num_charmaps )
-          cffface->charmap = cffface->charmaps[nn];
-
-      Skip_Unicode:
-        if ( encoding->count > 0 )
-        {
-          FT_CMap_Class  clazz;
-
-
-          cmaprec.face        = cffface;
-          cmaprec.platform_id = 7;  /* Adobe platform id */
-
-          if ( encoding->offset == 0 )
-          {
-            cmaprec.encoding_id = TT_ADOBE_ID_STANDARD;
-            cmaprec.encoding    = FT_ENCODING_ADOBE_STANDARD;
-            clazz               = &cff_cmap_encoding_class_rec;
-          }
-          else if ( encoding->offset == 1 )
-          {
-            cmaprec.encoding_id = TT_ADOBE_ID_EXPERT;
-            cmaprec.encoding    = FT_ENCODING_ADOBE_EXPERT;
-            clazz               = &cff_cmap_encoding_class_rec;
-          }
-          else
-          {
-            cmaprec.encoding_id = TT_ADOBE_ID_CUSTOM;
-            cmaprec.encoding    = FT_ENCODING_ADOBE_CUSTOM;
-            clazz               = &cff_cmap_encoding_class_rec;
-          }
-
-          FT_CMap_New( clazz, NULL, &cmaprec, NULL );
-        }
-      }
-    }
-
-  Exit:
-    return error;
-
-  Bad_Format:
-    error = CFF_Err_Unknown_File_Format;
-    goto Exit;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cff_face_done( FT_Face  cffface )         /* CFF_Face */
-  {
-    CFF_Face      face   = (CFF_Face)cffface;
-    FT_Memory     memory = cffface->memory;
-    SFNT_Service  sfnt   = (SFNT_Service)face->sfnt;
-
-
-    if ( sfnt )
-      sfnt->done_face( face );
-
-    {
-      CFF_Font  cff = (CFF_Font)face->extra.data;
-
-
-      if ( cff )
-      {
-        cff_font_done( cff );
-        FT_FREE( face->extra.data );
-      }
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_driver_init( FT_Module  module )
-  {
-    FT_UNUSED( module );
-
-    return CFF_Err_Ok;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cff_driver_done( FT_Module  module )
-  {
-    FT_UNUSED( module );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffobjs.h b/nx-X11/extras/freetype2/src/cff/cffobjs.h
deleted file mode 100644
index 338ec748b..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffobjs.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffobjs.h                                                              */
-/*                                                                         */
-/*    OpenType objects manager (specification).                            */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFFOBJS_H__
-#define __CFFOBJS_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include "cfftypes.h"
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CFF_Driver                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to an OpenType driver object.                             */
-  /*                                                                       */
-  typedef struct CFF_DriverRec_*  CFF_Driver;
-
-  typedef TT_Face  CFF_Face;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CFF_Size                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to an OpenType size object.                               */
-  /*                                                                       */
-  typedef struct  CFF_SizeRec_
-  {
-    FT_SizeRec       root;
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    FT_UInt          strike_index;    /* 0xFFFF to indicate invalid */
-    FT_Size_Metrics  strike_metrics;  /* current strike's metrics   */
-
-#endif
-
-  } CFF_SizeRec, *CFF_Size;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CFF_GlyphSlot                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to an OpenType glyph slot object.                         */
-  /*                                                                       */
-  typedef struct  CFF_GlyphSlotRec_
-  {
-    FT_GlyphSlotRec  root;
-
-    FT_Bool          hint;
-    FT_Bool          scaled;
-
-    FT_Fixed         x_scale;
-    FT_Fixed         y_scale;
-
-  } CFF_GlyphSlotRec, *CFF_GlyphSlot;
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Subglyph transformation record.                                       */
-  /*                                                                       */
-  typedef struct  CFF_Transform_
-  {
-    FT_Fixed    xx, xy;     /* transformation matrix coefficients */
-    FT_Fixed    yx, yy;
-    FT_F26Dot6  ox, oy;     /* offsets        */
-
-  } CFF_Transform;
-
-
-  /***********************************************************************/
-  /*                                                                     */
-  /* TrueType driver class.                                              */
-  /*                                                                     */
-  typedef struct  CFF_DriverRec_
-  {
-    FT_DriverRec  root;
-    void*         extension_component;
-
-  } CFF_DriverRec;
-
-
-  FT_LOCAL( FT_Error )
-  cff_size_init( FT_Size  size );           /* CFF_Size */
-
-  FT_LOCAL( void )
-  cff_size_done( FT_Size  size );           /* CFF_Size */
-
-  FT_LOCAL( FT_Error )
-  cff_size_reset( FT_Size  size,            /* CFF_Size */
-                  FT_UInt  char_width,
-                  FT_UInt  char_height );
-
-  FT_LOCAL( FT_Error )
-  cff_point_size_reset( FT_Size     cffsize,
-                        FT_F26Dot6  char_width,
-                        FT_F26Dot6  char_height,
-                        FT_UInt     horz_resolution,
-                        FT_UInt     vert_resolution );
-
-  FT_LOCAL( void )
-  cff_slot_done( FT_GlyphSlot  slot );
-
-  FT_LOCAL( FT_Error )
-  cff_slot_init( FT_GlyphSlot  slot );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Face functions                                                        */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  cff_face_init( FT_Stream      stream,
-                 FT_Face        face,           /* CFF_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params );
-
-  FT_LOCAL( void )
-  cff_face_done( FT_Face  face );               /* CFF_Face */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Driver functions                                                      */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  cff_driver_init( FT_Module  module );
-
-  FT_LOCAL( void )
-  cff_driver_done( FT_Module  module );
-
-
-FT_END_HEADER
-
-#endif /* __CFFOBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffparse.c b/nx-X11/extras/freetype2/src/cff/cffparse.c
deleted file mode 100644
index 8f1a98c55..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffparse.c
+++ /dev/null
@@ -1,688 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffparse.c                                                             */
-/*                                                                         */
-/*    CFF token stream parser (body)                                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "cffparse.h"
-#include FT_INTERNAL_STREAM_H
-
-#include "cfferrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cffparse
-
-
-  enum
-  {
-    cff_kind_none = 0,
-    cff_kind_num,
-    cff_kind_fixed,
-    cff_kind_fixed_thousand,
-    cff_kind_string,
-    cff_kind_bool,
-    cff_kind_delta,
-    cff_kind_callback,
-
-    cff_kind_max  /* do not remove */
-  };
-
-
-  /* now generate handlers for the most simple fields */
-  typedef FT_Error  (*CFF_Field_Reader)( CFF_Parser  parser );
-
-  typedef struct  CFF_Field_Handler_
-  {
-    int               kind;
-    int               code;
-    FT_UInt           offset;
-    FT_Byte           size;
-    CFF_Field_Reader  reader;
-    FT_UInt           array_max;
-    FT_UInt           count_offset;
-
-  } CFF_Field_Handler;
-
-
-  FT_LOCAL_DEF( void )
-  cff_parser_init( CFF_Parser  parser,
-                   FT_UInt     code,
-                   void*       object )
-  {
-    FT_MEM_ZERO( parser, sizeof ( *parser ) );
-
-    parser->top         = parser->stack;
-    parser->object_code = code;
-    parser->object      = object;
-  }
-
-
-  /* read an integer */
-  static FT_Long
-  cff_parse_integer( FT_Byte*  start,
-                     FT_Byte*  limit )
-  {
-    FT_Byte*  p   = start;
-    FT_Int    v   = *p++;
-    FT_Long   val = 0;
-
-
-    if ( v == 28 )
-    {
-      if ( p + 2 > limit )
-        goto Bad;
-
-      val = (FT_Short)( ( (FT_Int)p[0] << 8 ) | p[1] );
-      p  += 2;
-    }
-    else if ( v == 29 )
-    {
-      if ( p + 4 > limit )
-        goto Bad;
-
-      val = ( (FT_Long)p[0] << 24 ) |
-            ( (FT_Long)p[1] << 16 ) |
-            ( (FT_Long)p[2] <<  8 ) |
-                       p[3];
-      p += 4;
-    }
-    else if ( v < 247 )
-    {
-      val = v - 139;
-    }
-    else if ( v < 251 )
-    {
-      if ( p + 1 > limit )
-        goto Bad;
-
-      val = ( v - 247 ) * 256 + p[0] + 108;
-      p++;
-    }
-    else
-    {
-      if ( p + 1 > limit )
-        goto Bad;
-
-      val = -( v - 251 ) * 256 - p[0] - 108;
-      p++;
-    }
-
-  Exit:
-    return val;
-
-  Bad:
-    val = 0;
-    goto Exit;
-  }
-
-
-  /* read a real */
-  static FT_Fixed
-  cff_parse_real( FT_Byte*  start,
-                  FT_Byte*  limit,
-                  FT_Int    power_ten )
-  {
-    FT_Byte*  p    = start;
-    FT_Long   num, divider, result, exp;
-    FT_Int    sign = 0, exp_sign = 0;
-    FT_UInt   nib;
-    FT_UInt   phase;
-
-
-    result  = 0;
-    num     = 0;
-    divider = 1;
-
-    /* first of all, read the integer part */
-    phase = 4;
-
-    for (;;)
-    {
-      /* If we entered this iteration with phase == 4, we need to */
-      /* read a new byte.  This also skips past the intial 0x1E.  */
-      if ( phase )
-      {
-        p++;
-
-        /* Make sure we don't read past the end. */
-        if ( p >= limit )
-          goto Bad;
-      }
-
-      /* Get the nibble. */
-      nib   = ( p[0] >> phase ) & 0xF;
-      phase = 4 - phase;
-
-      if ( nib == 0xE )
-        sign = 1;
-      else if ( nib > 9 )
-        break;
-      else
-        result = result * 10 + nib;
-    }
-
-    /* read decimal part, if any */
-    if ( nib == 0xa )
-      for (;;)
-      {
-        /* If we entered this iteration with phase == 4, we need */
-        /* to read a new byte.                                   */
-        if ( phase )
-        {
-          p++;
-
-          /* Make sure we don't read past the end. */
-          if ( p >= limit )
-            goto Bad;
-        }
-
-        /* Get the nibble. */
-        nib   = ( p[0] >> phase ) & 0xF;
-        phase = 4 - phase;
-        if ( nib >= 10 )
-          break;
-
-        if ( divider < 10000000L )
-        {
-          num      = num * 10 + nib;
-          divider *= 10;
-        }
-      }
-
-    /* read exponent, if any */
-    if ( nib == 12 )
-    {
-      exp_sign = 1;
-      nib      = 11;
-    }
-
-    if ( nib == 11 )
-    {
-      exp = 0;
-
-      for (;;)
-      {
-        /* If we entered this iteration with phase == 4, we need */
-        /* to read a new byte.                                   */
-        if ( phase )
-        {
-          p++;
-
-          /* Make sure we don't read past the end. */
-          if ( p >= limit )
-            goto Bad;
-        }
-
-        /* Get the nibble. */
-        nib   = ( p[0] >> phase ) & 0xF;
-        phase = 4 - phase;
-        if ( nib >= 10 )
-          break;
-
-        exp = exp * 10 + nib;
-      }
-
-      if ( exp_sign )
-        exp = -exp;
-
-      power_ten += (FT_Int)exp;
-    }
-
-    /* raise to power of ten if needed */
-    while ( power_ten > 0 )
-    {
-      result = result * 10;
-      num    = num * 10;
-
-      power_ten--;
-    }
-
-    while ( power_ten < 0 )
-    {
-      result  = result / 10;
-      divider = divider * 10;
-
-      power_ten++;
-    }
-
-    /* Move the integer part into the high 16 bits. */
-    result <<= 16;
-
-    /* Place the decimal part into the low 16 bits. */
-    if ( num )
-      result |= FT_DivFix( num, divider );
-
-    if ( sign )
-      result = -result;
-
-  Exit:
-    return result;
-
-  Bad:
-    result = 0;
-    goto Exit;
-  }
-
-
-  /* read a number, either integer or real */
-  static FT_Long
-  cff_parse_num( FT_Byte**  d )
-  {
-    return ( **d == 30 ? ( cff_parse_real   ( d[0], d[1], 0 ) >> 16 )
-                       :   cff_parse_integer( d[0], d[1] ) );
-  }
-
-
-  /* read a floating point number, either integer or real */
-  static FT_Fixed
-  cff_parse_fixed( FT_Byte**  d )
-  {
-    return ( **d == 30 ? cff_parse_real   ( d[0], d[1], 0 )
-                       : cff_parse_integer( d[0], d[1] ) << 16 );
-  }
-
-  /* read a floating point number, either integer or real, */
-  /* but return 1000 times the number read in.             */
-  static FT_Fixed
-  cff_parse_fixed_thousand( FT_Byte**  d )
-  {
-    return **d ==
-      30 ? cff_parse_real     ( d[0], d[1], 3 )
-         : (FT_Fixed)FT_MulFix( cff_parse_integer( d[0], d[1] ) << 16, 1000 );
-  }
-
-  static FT_Error
-  cff_parse_font_matrix( CFF_Parser  parser )
-  {
-    CFF_FontRecDict  dict   = (CFF_FontRecDict)parser->object;
-    FT_Matrix*       matrix = &dict->font_matrix;
-    FT_Vector*       offset = &dict->font_offset;
-    FT_UShort*       upm    = &dict->units_per_em;
-    FT_Byte**        data   = parser->stack;
-    FT_Error         error;
-    FT_Fixed         temp;
-
-
-    error = CFF_Err_Stack_Underflow;
-
-    if ( parser->top >= parser->stack + 6 )
-    {
-      matrix->xx = cff_parse_fixed_thousand( data++ );
-      matrix->yx = cff_parse_fixed_thousand( data++ );
-      matrix->xy = cff_parse_fixed_thousand( data++ );
-      matrix->yy = cff_parse_fixed_thousand( data++ );
-      offset->x  = cff_parse_fixed_thousand( data++ );
-      offset->y  = cff_parse_fixed_thousand( data   );
-
-      temp = FT_ABS( matrix->yy );
-
-      *upm = (FT_UShort)FT_DivFix( 0x10000L, FT_DivFix( temp, 1000 ) );
-
-      if ( temp != 0x10000L )
-      {
-        matrix->xx = FT_DivFix( matrix->xx, temp );
-        matrix->yx = FT_DivFix( matrix->yx, temp );
-        matrix->xy = FT_DivFix( matrix->xy, temp );
-        matrix->yy = FT_DivFix( matrix->yy, temp );
-        offset->x  = FT_DivFix( offset->x,  temp );
-        offset->y  = FT_DivFix( offset->y,  temp );
-      }
-
-      /* note that the offsets must be expressed in integer font units */
-      offset->x >>= 16;
-      offset->y >>= 16;
-
-      error = CFF_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  cff_parse_font_bbox( CFF_Parser  parser )
-  {
-    CFF_FontRecDict  dict = (CFF_FontRecDict)parser->object;
-    FT_BBox*         bbox = &dict->font_bbox;
-    FT_Byte**        data = parser->stack;
-    FT_Error         error;
-
-
-    error = CFF_Err_Stack_Underflow;
-
-    if ( parser->top >= parser->stack + 4 )
-    {
-      bbox->xMin = FT_RoundFix( cff_parse_fixed( data++ ) );
-      bbox->yMin = FT_RoundFix( cff_parse_fixed( data++ ) );
-      bbox->xMax = FT_RoundFix( cff_parse_fixed( data++ ) );
-      bbox->yMax = FT_RoundFix( cff_parse_fixed( data   ) );
-      error = CFF_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  cff_parse_private_dict( CFF_Parser  parser )
-  {
-    CFF_FontRecDict  dict = (CFF_FontRecDict)parser->object;
-    FT_Byte**        data = parser->stack;
-    FT_Error         error;
-
-
-    error = CFF_Err_Stack_Underflow;
-
-    if ( parser->top >= parser->stack + 2 )
-    {
-      dict->private_size   = cff_parse_num( data++ );
-      dict->private_offset = cff_parse_num( data   );
-      error = CFF_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  cff_parse_cid_ros( CFF_Parser  parser )
-  {
-    CFF_FontRecDict  dict = (CFF_FontRecDict)parser->object;
-    FT_Byte**        data = parser->stack;
-    FT_Error         error;
-
-
-    error = CFF_Err_Stack_Underflow;
-
-    if ( parser->top >= parser->stack + 3 )
-    {
-      dict->cid_registry   = (FT_UInt)cff_parse_num ( data++ );
-      dict->cid_ordering   = (FT_UInt)cff_parse_num ( data++ );
-      dict->cid_supplement = (FT_ULong)cff_parse_num( data );
-      error = CFF_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-#define CFF_FIELD_NUM( code, name ) \
-          CFF_FIELD( code, name, cff_kind_num )
-#define CFF_FIELD_FIXED( code, name ) \
-          CFF_FIELD( code, name, cff_kind_fixed )
-#define CFF_FIELD_FIXED_1000( code, name ) \
-          CFF_FIELD( code, name, cff_kind_fixed_thousand )
-#define CFF_FIELD_STRING( code, name ) \
-          CFF_FIELD( code, name, cff_kind_string )
-#define CFF_FIELD_BOOL( code, name ) \
-          CFF_FIELD( code, name, cff_kind_bool )
-#define CFF_FIELD_DELTA( code, name, max ) \
-          CFF_FIELD( code, name, cff_kind_delta )
-
-#define CFF_FIELD_CALLBACK( code, name ) \
-          {                              \
-            cff_kind_callback,           \
-            code | CFFCODE,              \
-            0, 0,                        \
-            cff_parse_ ## name,          \
-            0, 0                         \
-          },
-
-#undef  CFF_FIELD
-#define CFF_FIELD( code, name, kind ) \
-          {                          \
-            kind,                    \
-            code | CFFCODE,          \
-            FT_FIELD_OFFSET( name ), \
-            FT_FIELD_SIZE( name ),   \
-            0, 0, 0                  \
-          },
-
-#undef  CFF_FIELD_DELTA
-#define CFF_FIELD_DELTA( code, name, max ) \
-        {                                  \
-          cff_kind_delta,                  \
-          code | CFFCODE,                  \
-          FT_FIELD_OFFSET( name ),         \
-          FT_FIELD_SIZE_DELTA( name ),     \
-          0,                               \
-          max,                             \
-          FT_FIELD_OFFSET( num_ ## name )  \
-        },
-
-#define CFFCODE_TOPDICT  0x1000
-#define CFFCODE_PRIVATE  0x2000
-
-  static const CFF_Field_Handler  cff_field_handlers[] =
-  {
-
-#include "cfftoken.h"
-
-    { 0, 0, 0, 0, 0, 0, 0 }
-  };
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cff_parser_run( CFF_Parser  parser,
-                  FT_Byte*    start,
-                  FT_Byte*    limit )
-  {
-    FT_Byte*  p     = start;
-    FT_Error  error = CFF_Err_Ok;
-
-
-    parser->top    = parser->stack;
-    parser->start  = start;
-    parser->limit  = limit;
-    parser->cursor = start;
-
-    while ( p < limit )
-    {
-      FT_UInt  v = *p;
-
-
-      if ( v >= 27 && v != 31 )
-      {
-        /* it's a number; we will push its position on the stack */
-        if ( parser->top - parser->stack >= CFF_MAX_STACK_DEPTH )
-          goto Stack_Overflow;
-
-        *parser->top ++ = p;
-
-        /* now, skip it */
-        if ( v == 30 )
-        {
-          /* skip real number */
-          p++;
-          for (;;)
-          {
-            if ( p >= limit )
-              goto Syntax_Error;
-            v = p[0] >> 4;
-            if ( v == 15 )
-              break;
-            v = p[0] & 0xF;
-            if ( v == 15 )
-              break;
-            p++;
-          }
-        }
-        else if ( v == 28 )
-          p += 2;
-        else if ( v == 29 )
-          p += 4;
-        else if ( v > 246 )
-          p += 1;
-      }
-      else
-      {
-        /* This is not a number, hence it's an operator.  Compute its code */
-        /* and look for it in our current list.                            */
-
-        FT_UInt                   code;
-        FT_UInt                   num_args = (FT_UInt)
-                                             ( parser->top - parser->stack );
-        const CFF_Field_Handler*  field;
-
-
-        *parser->top = p;
-        code = v;
-        if ( v == 12 )
-        {
-          /* two byte operator */
-          p++;
-          if ( p >= limit )
-            goto Syntax_Error;
-
-          code = 0x100 | p[0];
-        }
-        code = code | parser->object_code;
-
-        for ( field = cff_field_handlers; field->kind; field++ )
-        {
-          if ( field->code == (FT_Int)code )
-          {
-            /* we found our field's handler; read it */
-            FT_Long   val;
-            FT_Byte*  q = (FT_Byte*)parser->object + field->offset;
-
-
-            /* check that we have enough arguments -- except for */
-            /* delta encoded arrays, which can be empty          */
-            if ( field->kind != cff_kind_delta && num_args < 1 )
-              goto Stack_Underflow;
-
-            switch ( field->kind )
-            {
-            case cff_kind_bool:
-            case cff_kind_string:
-            case cff_kind_num:
-              val = cff_parse_num( parser->stack );
-              goto Store_Number;
-
-            case cff_kind_fixed:
-              val = cff_parse_fixed( parser->stack );
-              goto Store_Number;
-
-            case cff_kind_fixed_thousand:
-              val = cff_parse_fixed_thousand( parser->stack );
-
-            Store_Number:
-              switch ( field->size )
-              {
-              case (8 / FT_CHAR_BIT):
-                *(FT_Byte*)q = (FT_Byte)val;
-                break;
-
-              case (16 / FT_CHAR_BIT):
-                *(FT_Short*)q = (FT_Short)val;
-                break;
-
-              case (32 / FT_CHAR_BIT):
-                *(FT_Int32*)q = (FT_Int)val;
-                break;
-
-              default:  /* for 64-bit systems */
-                *(FT_Long*)q = val;
-              }
-              break;
-
-            case cff_kind_delta:
-              {
-                FT_Byte*   qcount = (FT_Byte*)parser->object +
-                                      field->count_offset;
-
-                FT_Byte**  data = parser->stack;
-
-
-                if ( num_args > field->array_max )
-                  num_args = field->array_max;
-
-                /* store count */
-                *qcount = (FT_Byte)num_args;
-
-                val = 0;
-                while ( num_args > 0 )
-                {
-                  val += cff_parse_num( data++ );
-                  switch ( field->size )
-                  {
-                  case (8 / FT_CHAR_BIT):
-                    *(FT_Byte*)q = (FT_Byte)val;
-                    break;
-
-                  case (16 / FT_CHAR_BIT):
-                    *(FT_Short*)q = (FT_Short)val;
-                    break;
-
-                  case (32 / FT_CHAR_BIT):
-                    *(FT_Int32*)q = (FT_Int)val;
-                    break;
-
-                  default:  /* for 64-bit systems */
-                    *(FT_Long*)q = val;
-                  }
-
-                  q += field->size;
-                  num_args--;
-                }
-              }
-              break;
-
-            default:  /* callback */
-              error = field->reader( parser );
-              if ( error )
-                goto Exit;
-            }
-            goto Found;
-          }
-        }
-
-        /* this is an unknown operator, or it is unsupported; */
-        /* we will ignore it for now.                         */
-
-      Found:
-        /* clear stack */
-        parser->top = parser->stack;
-      }
-      p++;
-    }
-
-  Exit:
-    return error;
-
-  Stack_Overflow:
-    error = CFF_Err_Invalid_Argument;
-    goto Exit;
-
-  Stack_Underflow:
-    error = CFF_Err_Invalid_Argument;
-    goto Exit;
-
-  Syntax_Error:
-    error = CFF_Err_Invalid_Argument;
-    goto Exit;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cffparse.h b/nx-X11/extras/freetype2/src/cff/cffparse.h
deleted file mode 100644
index 8f3fa5885..000000000
--- a/nx-X11/extras/freetype2/src/cff/cffparse.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cffparse.h                                                             */
-/*                                                                         */
-/*    CFF token stream parser (specification)                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFF_PARSE_H__
-#define __CFF_PARSE_H__
-
-
-#include <ft2build.h>
-#include "cfftypes.h"
-#include FT_INTERNAL_OBJECTS_H
-
-
-FT_BEGIN_HEADER
-
-
-#define CFF_MAX_STACK_DEPTH  96
-
-#define CFF_CODE_TOPDICT  0x1000
-#define CFF_CODE_PRIVATE  0x2000
-
-
-  typedef struct  CFF_ParserRec_
-  {
-    FT_Byte*   start;
-    FT_Byte*   limit;
-    FT_Byte*   cursor;
-
-    FT_Byte*   stack[CFF_MAX_STACK_DEPTH + 1];
-    FT_Byte**  top;
-
-    FT_UInt    object_code;
-    void*      object;
-
-  } CFF_ParserRec, *CFF_Parser;
-
-
-  FT_LOCAL( void )
-  cff_parser_init( CFF_Parser  parser,
-                   FT_UInt     code,
-                   void*       object );
-
-  FT_LOCAL( FT_Error )
-  cff_parser_run( CFF_Parser  parser,
-                  FT_Byte*    start,
-                  FT_Byte*    limit );
-
-
-FT_END_HEADER
-
-
-#endif /* __CFF_PARSE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cfftoken.h b/nx-X11/extras/freetype2/src/cff/cfftoken.h
deleted file mode 100644
index 659d1576a..000000000
--- a/nx-X11/extras/freetype2/src/cff/cfftoken.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cfftoken.h                                                             */
-/*                                                                         */
-/*    CFF token definitions (specification only).                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  CFF_FontRecDictRec
-
-#undef  CFFCODE
-#define CFFCODE       CFFCODE_TOPDICT
-
-  CFF_FIELD_STRING  ( 0,     version )
-  CFF_FIELD_STRING  ( 1,     notice )
-  CFF_FIELD_STRING  ( 0x100, copyright )
-  CFF_FIELD_STRING  ( 2,     full_name )
-  CFF_FIELD_STRING  ( 3,     family_name )
-  CFF_FIELD_STRING  ( 4,     weight )
-  CFF_FIELD_BOOL    ( 0x101, is_fixed_pitch )
-  CFF_FIELD_FIXED   ( 0x102, italic_angle )
-  CFF_FIELD_FIXED   ( 0x103, underline_position )
-  CFF_FIELD_FIXED   ( 0x104, underline_thickness )
-  CFF_FIELD_NUM     ( 0x105, paint_type )
-  CFF_FIELD_NUM     ( 0x106, charstring_type )
-  CFF_FIELD_CALLBACK( 0x107, font_matrix )
-  CFF_FIELD_NUM     ( 13,    unique_id )
-  CFF_FIELD_CALLBACK( 5,     font_bbox )
-  CFF_FIELD_NUM     ( 0x108, stroke_width )
-  CFF_FIELD_NUM     ( 15,    charset_offset )
-  CFF_FIELD_NUM     ( 16,    encoding_offset )
-  CFF_FIELD_NUM     ( 17,    charstrings_offset )
-  CFF_FIELD_CALLBACK( 18,    private_dict )
-  CFF_FIELD_NUM     ( 0x114, synthetic_base )
-  CFF_FIELD_STRING  ( 0x115, embedded_postscript )
-
-#if 0
-  CFF_FIELD_STRING  ( 0x116, base_font_name )
-  CFF_FIELD_DELTA   ( 0x117, base_font_blend, 16 )
-  CFF_FIELD_CALLBACK( 0x118, multiple_master )
-  CFF_FIELD_CALLBACK( 0x119, blend_axit_types )
-#endif
-
-  CFF_FIELD_CALLBACK( 0x11E, cid_ros )
-  CFF_FIELD_NUM     ( 0x11F, cid_font_version )
-  CFF_FIELD_NUM     ( 0x120, cid_font_revision )
-  CFF_FIELD_NUM     ( 0x121, cid_font_type )
-  CFF_FIELD_NUM     ( 0x122, cid_count )
-  CFF_FIELD_NUM     ( 0x123, cid_uid_base )
-  CFF_FIELD_NUM     ( 0x124, cid_fd_array_offset )
-  CFF_FIELD_NUM     ( 0x125, cid_fd_select_offset )
-  CFF_FIELD_STRING  ( 0x126, cid_font_name )
-
-#if 0
-  CFF_FIELD_NUM     ( 0x127, chameleon )
-#endif
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  CFF_PrivateRec
-#undef  CFFCODE
-#define CFFCODE       CFFCODE_PRIVATE
-
-  CFF_FIELD_DELTA     ( 6,     blue_values, 14 )
-  CFF_FIELD_DELTA     ( 7,     other_blues, 10 )
-  CFF_FIELD_DELTA     ( 8,     family_blues, 14 )
-  CFF_FIELD_DELTA     ( 9,     family_other_blues, 10 )
-  CFF_FIELD_FIXED_1000( 0x109, blue_scale )
-  CFF_FIELD_NUM       ( 0x10A, blue_shift )
-  CFF_FIELD_NUM       ( 0x10B, blue_fuzz )
-  CFF_FIELD_NUM       ( 10,    standard_width )
-  CFF_FIELD_NUM       ( 11,    standard_height )
-  CFF_FIELD_DELTA     ( 0x10C, snap_widths, 13 )
-  CFF_FIELD_DELTA     ( 0x10D, snap_heights, 13 )
-  CFF_FIELD_BOOL      ( 0x10E, force_bold )
-  CFF_FIELD_FIXED     ( 0x10F, force_bold_threshold )
-  CFF_FIELD_NUM       ( 0x110, lenIV )
-  CFF_FIELD_NUM       ( 0x111, language_group )
-  CFF_FIELD_FIXED     ( 0x112, expansion_factor )
-  CFF_FIELD_NUM       ( 0x113, initial_random_seed )
-  CFF_FIELD_NUM       ( 19,    local_subrs_offset )
-  CFF_FIELD_NUM       ( 20,    default_width )
-  CFF_FIELD_NUM       ( 21,    nominal_width )
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/cfftypes.h b/nx-X11/extras/freetype2/src/cff/cfftypes.h
deleted file mode 100644
index 9ddc663de..000000000
--- a/nx-X11/extras/freetype2/src/cff/cfftypes.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cfftypes.h                                                             */
-/*                                                                         */
-/*    Basic OpenType/CFF type definitions and interface (specification     */
-/*    only).                                                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CFFTYPES_H__
-#define __CFFTYPES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    CFF_IndexRec                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A structure used to model a CFF Index table.                       */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    stream      :: The source input stream.                            */
-  /*                                                                       */
-  /*    count       :: The number of elements in the index.                */
-  /*                                                                       */
-  /*    off_size    :: The size in bytes of object offsets in index.       */
-  /*                                                                       */
-  /*    data_offset :: The position of first data byte in the index's      */
-  /*                   bytes.                                              */
-  /*                                                                       */
-  /*    offsets     :: A table of element offsets in the index.            */
-  /*                                                                       */
-  /*    bytes       :: If the index is loaded in memory, its bytes.        */
-  /*                                                                       */
-  typedef struct  CFF_IndexRec_
-  {
-    FT_Stream  stream;
-    FT_UInt    count;
-    FT_Byte    off_size;
-    FT_ULong   data_offset;
-
-    FT_ULong*  offsets;
-    FT_Byte*   bytes;
-
-  } CFF_IndexRec, *CFF_Index;
-
-
-  typedef struct  CFF_EncodingRec_
-  {
-    FT_UInt     format;
-    FT_ULong    offset;
-
-    FT_UInt     count;
-    FT_UShort   sids [256];  /* avoid dynamic allocations */
-    FT_UShort   codes[256];
-
-  } CFF_EncodingRec, *CFF_Encoding;
-
-
-  typedef struct  CFF_CharsetRec_
-  {
-
-    FT_UInt     format;
-    FT_ULong    offset;
-
-    FT_UShort*  sids;
-    FT_UShort*  cids;       /* the inverse mapping of `sids'; only needed */
-                            /* for CID-keyed fonts                        */
-  } CFF_CharsetRec, *CFF_Charset;
-
-
-  typedef struct  CFF_FontRecDictRec_
-  {
-    FT_UInt    version;
-    FT_UInt    notice;
-    FT_UInt    copyright;
-    FT_UInt    full_name;
-    FT_UInt    family_name;
-    FT_UInt    weight;
-    FT_Bool    is_fixed_pitch;
-    FT_Fixed   italic_angle;
-    FT_Fixed   underline_position;
-    FT_Fixed   underline_thickness;
-    FT_Int     paint_type;
-    FT_Int     charstring_type;
-    FT_Matrix  font_matrix;
-    FT_UShort  units_per_em;
-    FT_Vector  font_offset;
-    FT_ULong   unique_id;
-    FT_BBox    font_bbox;
-    FT_Pos     stroke_width;
-    FT_ULong   charset_offset;
-    FT_ULong   encoding_offset;
-    FT_ULong   charstrings_offset;
-    FT_ULong   private_offset;
-    FT_ULong   private_size;
-    FT_Long    synthetic_base;
-    FT_UInt    embedded_postscript;
-
-    /* these should only be used for the top-level font dictionary */
-    FT_UInt    cid_registry;
-    FT_UInt    cid_ordering;
-    FT_ULong   cid_supplement;
-
-    FT_Long    cid_font_version;
-    FT_Long    cid_font_revision;
-    FT_Long    cid_font_type;
-    FT_ULong   cid_count;
-    FT_ULong   cid_uid_base;
-    FT_ULong   cid_fd_array_offset;
-    FT_ULong   cid_fd_select_offset;
-    FT_UInt    cid_font_name;
-
-  } CFF_FontRecDictRec, *CFF_FontRecDict;
-
-
-  typedef struct  CFF_PrivateRec_
-  {
-    FT_Byte   num_blue_values;
-    FT_Byte   num_other_blues;
-    FT_Byte   num_family_blues;
-    FT_Byte   num_family_other_blues;
-
-    FT_Pos    blue_values[14];
-    FT_Pos    other_blues[10];
-    FT_Pos    family_blues[14];
-    FT_Pos    family_other_blues[10];
-
-    FT_Fixed  blue_scale;
-    FT_Pos    blue_shift;
-    FT_Pos    blue_fuzz;
-    FT_Pos    standard_width;
-    FT_Pos    standard_height;
-
-    FT_Byte   num_snap_widths;
-    FT_Byte   num_snap_heights;
-    FT_Pos    snap_widths[13];
-    FT_Pos    snap_heights[13];
-    FT_Bool   force_bold;
-    FT_Fixed  force_bold_threshold;
-    FT_Int    lenIV;
-    FT_Int    language_group;
-    FT_Fixed  expansion_factor;
-    FT_Long   initial_random_seed;
-    FT_ULong  local_subrs_offset;
-    FT_Pos    default_width;
-    FT_Pos    nominal_width;
-
-  } CFF_PrivateRec, *CFF_Private;
-
-
-  typedef struct  CFF_FDSelectRec_
-  {
-    FT_Byte   format;
-    FT_UInt   range_count;
-
-    /* that's the table, taken from the file `as is' */
-    FT_Byte*  data;
-    FT_UInt   data_size;
-
-    /* small cache for format 3 only */
-    FT_UInt   cache_first;
-    FT_UInt   cache_count;
-    FT_Byte   cache_fd;
-
-  } CFF_FDSelectRec, *CFF_FDSelect;
-
-
-  /* A SubFont packs a font dict and a private dict together.  They are */
-  /* needed to support CID-keyed CFF fonts.                             */
-  typedef struct  CFF_SubFontRec_
-  {
-    CFF_FontRecDictRec  font_dict;
-    CFF_PrivateRec      private_dict;
-
-    CFF_IndexRec        local_subrs_index;
-    FT_UInt             num_local_subrs;
-    FT_Byte**           local_subrs;
-
-  } CFF_SubFontRec, *CFF_SubFont;
-
-
-  /* maximum number of sub-fonts in a CID-keyed file */
-#define CFF_MAX_CID_FONTS  32
-
-
-  typedef struct  CFF_FontRec_
-  {
-    FT_Stream        stream;
-    FT_Memory        memory;
-    FT_UInt          num_faces;
-    FT_UInt          num_glyphs;
-
-    FT_Byte          version_major;
-    FT_Byte          version_minor;
-    FT_Byte          header_size;
-    FT_Byte          absolute_offsize;
-
-
-    CFF_IndexRec     name_index;
-    CFF_IndexRec     top_dict_index;
-    CFF_IndexRec     string_index;
-    CFF_IndexRec     global_subrs_index;
-
-    CFF_EncodingRec  encoding;
-    CFF_CharsetRec   charset;
-
-    CFF_IndexRec     charstrings_index;
-    CFF_IndexRec     font_dict_index;
-    CFF_IndexRec     private_index;
-    CFF_IndexRec     local_subrs_index;
-
-    FT_String*       font_name;
-    FT_UInt          num_global_subrs;
-    FT_Byte**        global_subrs;
-
-    CFF_SubFontRec   top_font;
-    FT_UInt          num_subfonts;
-    CFF_SubFont      subfonts[CFF_MAX_CID_FONTS];
-
-    CFF_FDSelectRec  fd_select;
-
-    /* interface to PostScript hinter */
-    void*            pshinter;
-
-    /* interface to Postscript Names service */
-    void*            psnames;
-
-  } CFF_FontRec, *CFF_Font;
-
-
-FT_END_HEADER
-
-#endif /* __CFFTYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cff/descrip.mms b/nx-X11/extras/freetype2/src/cff/descrip.mms
deleted file mode 100644
index 2401f2ee2..000000000
--- a/nx-X11/extras/freetype2/src/cff/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 OpenType/CFF driver compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cff])
-
-OBJS=cff.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cff/module.mk b/nx-X11/extras/freetype2/src/cff/module.mk
deleted file mode 100644
index 68789c98a..000000000
--- a/nx-X11/extras/freetype2/src/cff/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 CFF module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_cff_driver
-
-add_cff_driver:
-	$(OPEN_DRIVER)cff_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)cff       $(ECHO_DRIVER_DESC)OpenType fonts with extension *.otf$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cff/rules.mk b/nx-X11/extras/freetype2/src/cff/rules.mk
deleted file mode 100644
index 4100c8068..000000000
--- a/nx-X11/extras/freetype2/src/cff/rules.mk
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# FreeType 2 OpenType/CFF driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# OpenType driver directory
-#
-CFF_DIR := $(SRC_DIR)/cff
-
-
-CFF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CFF_DIR))
-
-
-# CFF driver sources (i.e., C files)
-#
-CFF_DRV_SRC := $(CFF_DIR)/cffobjs.c  \
-               $(CFF_DIR)/cffload.c  \
-               $(CFF_DIR)/cffgload.c \
-               $(CFF_DIR)/cffparse.c \
-               $(CFF_DIR)/cffcmap.c  \
-               $(CFF_DIR)/cffdrivr.c
-
-# CFF driver headers
-#
-CFF_DRV_H := $(CFF_DRV_SRC:%.c=%.h) \
-             $(CFF_DIR)/cfftoken.h  \
-             $(CFF_DIR)/cfftypes.h  \
-             $(CFF_DIR)/cfferrs.h
-
-
-# CFF driver object(s)
-#
-#   CFF_DRV_OBJ_M is used during `multi' builds
-#   CFF_DRV_OBJ_S is used during `single' builds
-#
-CFF_DRV_OBJ_M := $(CFF_DRV_SRC:$(CFF_DIR)/%.c=$(OBJ_DIR)/%.$O)
-CFF_DRV_OBJ_S := $(OBJ_DIR)/cff.$O
-
-# CFF driver source file for single build
-#
-CFF_DRV_SRC_S := $(CFF_DIR)/cff.c
-
-
-# CFF driver - single object
-#
-$(CFF_DRV_OBJ_S): $(CFF_DRV_SRC_S) $(CFF_DRV_SRC) $(FREETYPE_H) $(CFF_DRV_H)
-	$(CFF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(CFF_DRV_SRC_S))
-
-
-# CFF driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(CFF_DIR)/%.c $(FREETYPE_H) $(CFF_DRV_H)
-	$(CFF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(CFF_DRV_OBJ_S)
-DRV_OBJS_M += $(CFF_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cid/Jamfile b/nx-X11/extras/freetype2/src/cid/Jamfile
deleted file mode 100644
index a505e3ca4..000000000
--- a/nx-X11/extras/freetype2/src/cid/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/cid Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) cid ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = cidobjs cidload cidgload cidriver cidparse ;
-  }
-  else
-  {
-    _sources = type1cid ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/cid Jamfile
diff --git a/nx-X11/extras/freetype2/src/cid/ciderrs.h b/nx-X11/extras/freetype2/src/cid/ciderrs.h
deleted file mode 100644
index 01813e189..000000000
--- a/nx-X11/extras/freetype2/src/cid/ciderrs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ciderrs.h                                                              */
-/*                                                                         */
-/*    CID error codes (specification only).                                */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the CID error enumeration constants.      */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __CIDERRS_H__
-#define __CIDERRS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  CID_Err_
-#define FT_ERR_BASE    FT_Mod_Err_CID
-
-#include FT_ERRORS_H
-
-#endif /* __CIDERRS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidgload.c b/nx-X11/extras/freetype2/src/cid/cidgload.c
deleted file mode 100644
index cbd0865d3..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidgload.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidgload.c                                                             */
-/*                                                                         */
-/*    CID-keyed Type1 Glyph Loader (body).                                 */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "cidload.h"
-#include "cidgload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_OUTLINE_H
-
-#include "ciderrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cidgload
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  cid_load_glyph( T1_Decoder  decoder,
-                  FT_UInt     glyph_index )
-  {
-    CID_Face       face = (CID_Face)decoder->builder.face;
-    CID_FaceInfo   cid  = &face->cid;
-    FT_Byte*       p;
-    FT_UInt        fd_select;
-    FT_Stream      stream = face->cid_stream;
-    FT_Error       error  = 0;
-    FT_Byte*       charstring = 0;
-    FT_Memory      memory = face->root.memory;
-    FT_ULong       glyph_length = 0;
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* For incremental fonts get the character data using */
-    /* the callback function.                             */
-    if ( face->root.internal->incremental_interface )
-    {
-      FT_Data  glyph_data;
-
-
-      error = face->root.internal->incremental_interface->funcs->get_glyph_data(
-                face->root.internal->incremental_interface->object,
-                glyph_index,
-                &glyph_data );
-      if ( error )
-        goto Exit;
-
-      p         = (FT_Byte*)glyph_data.pointer;
-      fd_select = (FT_UInt)cid_get_offset( &p, (FT_Byte)cid->fd_bytes );
-
-      if ( glyph_data.length != 0 )
-      {
-        glyph_length = glyph_data.length - cid->fd_bytes;
-        FT_ALLOC( charstring, glyph_length );
-        if ( !error )
-          ft_memcpy( charstring, glyph_data.pointer + cid->fd_bytes,
-                     glyph_length );
-      }
-
-      face->root.internal->incremental_interface->funcs->free_glyph_data(
-                face->root.internal->incremental_interface->object,
-                &glyph_data );
-
-      if ( error )
-        goto Exit;
-    }
-
-    else
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    /* For ordinary fonts read the CID font dictionary index */
-    /* and charstring offset from the CIDMap.                */
-    {
-      FT_UInt   entry_len = cid->fd_bytes + cid->gd_bytes;
-      FT_ULong  off1;
-
-
-      if ( FT_STREAM_SEEK( cid->data_offset + cid->cidmap_offset +
-                           glyph_index * entry_len )               ||
-           FT_FRAME_ENTER( 2 * entry_len )                         )
-        goto Exit;
-
-      p            = (FT_Byte*)stream->cursor;
-      fd_select    = (FT_UInt) cid_get_offset( &p, (FT_Byte)cid->fd_bytes );
-      off1         = (FT_ULong)cid_get_offset( &p, (FT_Byte)cid->gd_bytes );
-      p           += cid->fd_bytes;
-      glyph_length = cid_get_offset( &p, (FT_Byte)cid->gd_bytes ) - off1;
-      FT_FRAME_EXIT();
-
-      if ( glyph_length == 0 )
-        goto Exit;
-      if ( FT_ALLOC( charstring, glyph_length ) )
-        goto Exit;
-      if ( FT_STREAM_READ_AT( cid->data_offset + off1,
-                              charstring, glyph_length ) )
-        goto Exit;
-    }
-
-    /* Now set up the subrs array and parse the charstrings. */
-    {
-      CID_FaceDict  dict;
-      CID_Subrs     cid_subrs = face->subrs + fd_select;
-      FT_Int        cs_offset;
-
-
-      /* Set up subrs */
-      decoder->num_subrs = cid_subrs->num_subrs;
-      decoder->subrs     = cid_subrs->code;
-      decoder->subrs_len = 0;
-
-      /* Set up font matrix */
-      dict                 = cid->font_dicts + fd_select;
-
-      decoder->font_matrix = dict->font_matrix;
-      decoder->font_offset = dict->font_offset;
-      decoder->lenIV       = dict->private_dict.lenIV;
-
-      /* Decode the charstring. */
-
-      /* Adjustment for seed bytes. */
-      cs_offset = ( decoder->lenIV >= 0 ? decoder->lenIV : 0 );
-
-      /* Decrypt only if lenIV >= 0. */
-      if ( decoder->lenIV >= 0 )
-        psaux->t1_decrypt( charstring, glyph_length, 4330 );
-
-      error = decoder->funcs.parse_charstrings(
-                decoder, charstring + cs_offset,
-                (FT_Int)glyph_length - cs_offset  );
-    }
-
-    FT_FREE( charstring );
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* Incremental fonts can optionally override the metrics. */
-    if ( !error                                                              &&
-         face->root.internal->incremental_interface                          &&
-         face->root.internal->incremental_interface->funcs->get_glyph_metrics )
-    {
-      FT_Incremental_MetricsRec  metrics;
-
-
-      metrics.bearing_x = decoder->builder.left_bearing.x;
-      metrics.bearing_y = decoder->builder.left_bearing.y;
-      metrics.advance   = decoder->builder.advance.x;
-      error = face->root.internal->incremental_interface->funcs->get_glyph_metrics(
-                face->root.internal->incremental_interface->object,
-                glyph_index, FALSE, &metrics );
-      decoder->builder.left_bearing.x = metrics.bearing_x;
-      decoder->builder.left_bearing.y = metrics.bearing_y;
-      decoder->builder.advance.x      = metrics.advance;
-      decoder->builder.advance.y      = 0;
-    }
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-  Exit:
-    return error;
-  }
-
-
-#if 0
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********                                                      *********/
-  /**********            COMPUTE THE MAXIMUM ADVANCE WIDTH         *********/
-  /**********                                                      *********/
-  /**********    The following code is in charge of computing      *********/
-  /**********    the maximum advance width of the font.  It        *********/
-  /**********    quickly processes each glyph charstring to        *********/
-  /**********    extract the value from either a `sbw' or `seac'   *********/
-  /**********    operator.                                         *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_face_compute_max_advance( CID_Face  face,
-                                FT_Int*   max_advance )
-  {
-    FT_Error       error;
-    T1_DecoderRec  decoder;
-    FT_Int         glyph_index;
-
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-
-
-    *max_advance = 0;
-
-    /* Initialize load decoder */
-    error = psaux->t1_decoder_funcs->init( &decoder,
-                                           (FT_Face)face,
-                                           0, /* size       */
-                                           0, /* glyph slot */
-                                           0, /* glyph names! XXX */
-                                           0, /* blend == 0 */
-                                           0, /* hinting == 0 */
-                                           cid_load_glyph );
-    if ( error )
-      return error;
-
-    decoder.builder.metrics_only = 1;
-    decoder.builder.load_points  = 0;
-
-    /* for each glyph, parse the glyph charstring and extract */
-    /* the advance width                                      */
-    for ( glyph_index = 0; glyph_index < face->root.num_glyphs;
-          glyph_index++ )
-    {
-      /* now get load the unscaled outline */
-      error = cid_load_glyph( &decoder, glyph_index );
-      /* ignore the error if one occurred - skip to next glyph */
-    }
-
-    *max_advance = decoder.builder.advance.x;
-
-    return CID_Err_Ok;
-  }
-
-
-#endif /* 0 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********                                                      *********/
-  /**********               UNHINTED GLYPH LOADER                  *********/
-  /**********                                                      *********/
-  /**********    The following code is in charge of loading a      *********/
-  /**********    single outline.  It completely ignores hinting    *********/
-  /**********    and is used when FT_LOAD_NO_HINTING is set.       *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_slot_load_glyph( FT_GlyphSlot  cidglyph,      /* CID_GlyphSlot */
-                       FT_Size       cidsize,       /* CID_Size      */
-                       FT_UInt       glyph_index,
-                       FT_Int32      load_flags )
-  {
-    CID_GlyphSlot  glyph = (CID_GlyphSlot)cidglyph;
-    CID_Size       size  = (CID_Size)cidsize;
-    FT_Error       error;
-    T1_DecoderRec  decoder;
-    CID_Face       face = (CID_Face)cidglyph->face;
-    FT_Bool        hinting;
-
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-    FT_Matrix      font_matrix;
-    FT_Vector      font_offset;
-
-
-    if ( load_flags & FT_LOAD_NO_RECURSE )
-      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
-
-    glyph->x_scale = cidsize->metrics.x_scale;
-    glyph->y_scale = cidsize->metrics.y_scale;
-
-    cidglyph->outline.n_points   = 0;
-    cidglyph->outline.n_contours = 0;
-
-    hinting = FT_BOOL( ( load_flags & FT_LOAD_NO_SCALE   ) == 0 &&
-                       ( load_flags & FT_LOAD_NO_HINTING ) == 0 );
-
-    cidglyph->format = FT_GLYPH_FORMAT_OUTLINE;
-
-    {
-      error = psaux->t1_decoder_funcs->init( &decoder,
-                                             cidglyph->face,
-                                             cidsize,
-                                             cidglyph,
-                                             0, /* glyph names -- XXX */
-                                             0, /* blend == 0 */
-                                             hinting,
-                                             FT_LOAD_TARGET_MODE( load_flags ),
-                                             cid_load_glyph );
-
-      /* set up the decoder */
-      decoder.builder.no_recurse = FT_BOOL(
-        ( ( load_flags & FT_LOAD_NO_RECURSE ) != 0 ) );
-
-      error = cid_load_glyph( &decoder, glyph_index );
-
-      font_matrix = decoder.font_matrix;
-      font_offset = decoder.font_offset;
-
-      /* save new glyph tables */
-      psaux->t1_decoder_funcs->done( &decoder );
-    }
-
-    /* now, set the metrics -- this is rather simple, as   */
-    /* the left side bearing is the xMin, and the top side */
-    /* bearing the yMax                                    */
-    if ( !error )
-    {
-      cidglyph->outline.flags &= FT_OUTLINE_OWNER;
-      cidglyph->outline.flags |= FT_OUTLINE_REVERSE_FILL;
-
-      /* for composite glyphs, return only left side bearing and */
-      /* advance width                                           */
-      if ( load_flags & FT_LOAD_NO_RECURSE )
-      {
-        FT_Slot_Internal  internal = cidglyph->internal;
-
-
-        cidglyph->metrics.horiBearingX = decoder.builder.left_bearing.x;
-        cidglyph->metrics.horiAdvance  = decoder.builder.advance.x;
-
-        internal->glyph_matrix         = font_matrix;
-        internal->glyph_delta          = font_offset;
-        internal->glyph_transformed    = 1;
-      }
-      else
-      {
-        FT_BBox            cbox;
-        FT_Glyph_Metrics*  metrics = &cidglyph->metrics;
-        FT_Vector          advance;
-
-
-        /* copy the _unscaled_ advance width */
-        metrics->horiAdvance                  = decoder.builder.advance.x;
-        cidglyph->linearHoriAdvance           = decoder.builder.advance.x;
-        cidglyph->internal->glyph_transformed = 0;
-
-        /* make up vertical metrics */
-        metrics->vertBearingX = 0;
-        metrics->vertBearingY = 0;
-        metrics->vertAdvance  = 0;
-
-        cidglyph->linearVertAdvance = 0;
-        cidglyph->format            = FT_GLYPH_FORMAT_OUTLINE;
-
-        if ( size && cidsize->metrics.y_ppem < 24 )
-          cidglyph->outline.flags |= FT_OUTLINE_HIGH_PRECISION;
-
-        /* apply the font matrix */
-        FT_Outline_Transform( &cidglyph->outline, &font_matrix );
-
-        FT_Outline_Translate( &cidglyph->outline,
-                              font_offset.x,
-                              font_offset.y );
-
-        advance.x = metrics->horiAdvance;
-        advance.y = 0;
-        FT_Vector_Transform( &advance, &font_matrix );
-        metrics->horiAdvance = advance.x + font_offset.x;
-        advance.x = 0;
-        advance.y = metrics->vertAdvance;
-        FT_Vector_Transform( &advance, &font_matrix );
-        metrics->vertAdvance = advance.y + font_offset.y;
-
-        if ( ( load_flags & FT_LOAD_NO_SCALE ) == 0 )
-        {
-          /* scale the outline and the metrics */
-          FT_Int       n;
-          FT_Outline*  cur = decoder.builder.base;
-          FT_Vector*   vec = cur->points;
-          FT_Fixed     x_scale = glyph->x_scale;
-          FT_Fixed     y_scale = glyph->y_scale;
-
-
-          /* First of all, scale the points */
-          if ( !hinting )
-            for ( n = cur->n_points; n > 0; n--, vec++ )
-            {
-              vec->x = FT_MulFix( vec->x, x_scale );
-              vec->y = FT_MulFix( vec->y, y_scale );
-            }
-
-          FT_Outline_Get_CBox( &cidglyph->outline, &cbox );
-
-          /* Then scale the metrics */
-          metrics->horiAdvance  = FT_MulFix( metrics->horiAdvance,  x_scale );
-          metrics->vertAdvance  = FT_MulFix( metrics->vertAdvance,  y_scale );
-
-          metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
-          metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
-
-          if ( hinting )
-          {
-            metrics->horiAdvance = FT_PIX_ROUND( metrics->horiAdvance );
-            metrics->vertAdvance = FT_PIX_ROUND( metrics->vertAdvance );
-
-            metrics->vertBearingX = FT_PIX_ROUND( metrics->vertBearingX );
-            metrics->vertBearingY = FT_PIX_ROUND( metrics->vertBearingY );
-          }
-        }
-
-        /* compute the other metrics */
-        FT_Outline_Get_CBox( &cidglyph->outline, &cbox );
-
-        /* grid fit the bounding box if necessary */
-        if ( hinting )
-        {
-          cbox.xMin = FT_PIX_FLOOR( cbox.xMin );
-          cbox.yMin = FT_PIX_FLOOR( cbox.yMin );
-          cbox.xMax = FT_PIX_CEIL( cbox.xMax );
-          cbox.yMax = FT_PIX_CEIL( cbox.yMax );
-        }
-
-        metrics->width  = cbox.xMax - cbox.xMin;
-        metrics->height = cbox.yMax - cbox.yMin;
-
-        metrics->horiBearingX = cbox.xMin;
-        metrics->horiBearingY = cbox.yMax;
-      }
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidgload.h b/nx-X11/extras/freetype2/src/cid/cidgload.h
deleted file mode 100644
index a0a91bfea..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidgload.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidgload.h                                                             */
-/*                                                                         */
-/*    OpenType Glyph Loader (specification).                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CIDGLOAD_H__
-#define __CIDGLOAD_H__
-
-
-#include <ft2build.h>
-#include "cidobjs.h"
-
-
-FT_BEGIN_HEADER
-
-
-#if 0
-
-  /* Compute the maximum advance width of a font through quick parsing */
-  FT_LOCAL( FT_Error )
-  cid_face_compute_max_advance( CID_Face  face,
-                                FT_Int*   max_advance );
-
-#endif /* 0 */
-
-  FT_LOCAL( FT_Error )
-  cid_slot_load_glyph( FT_GlyphSlot  glyph,         /* CID_Glyph_Slot */
-                       FT_Size       size,          /* CID_Size       */
-                       FT_UInt       glyph_index,
-                       FT_Int32      load_flags );
-
-
-FT_END_HEADER
-
-#endif /* __CIDGLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidload.c b/nx-X11/extras/freetype2/src/cid/cidload.c
deleted file mode 100644
index ad29dd52d..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidload.c
+++ /dev/null
@@ -1,644 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidload.c                                                              */
-/*                                                                         */
-/*    CID-keyed Type1 font loader (body).                                  */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_CONFIG_CONFIG_H
-#include FT_MULTIPLE_MASTERS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-#include "cidload.h"
-
-#include "ciderrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cidload
-
-
-  /* read a single offset */
-  FT_LOCAL_DEF( FT_Long )
-  cid_get_offset( FT_Byte*  *start,
-                  FT_Byte    offsize )
-  {
-    FT_Long   result;
-    FT_Byte*  p = *start;
-
-
-    for ( result = 0; offsize > 0; offsize-- )
-    {
-      result <<= 8;
-      result  |= *p++;
-    }
-
-    *start = p;
-    return result;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    TYPE 1 SYMBOL PARSING                      *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  static FT_Error
-  cid_load_keyword( CID_Face        face,
-                    CID_Loader*     loader,
-                    const T1_Field  keyword )
-  {
-    FT_Error      error;
-    CID_Parser*   parser = &loader->parser;
-    FT_Byte*      object;
-    void*         dummy_object;
-    CID_FaceInfo  cid = &face->cid;
-
-
-    /* if the keyword has a dedicated callback, call it */
-    if ( keyword->type == T1_FIELD_TYPE_CALLBACK )
-    {
-      keyword->reader( (FT_Face)face, parser );
-      error = parser->root.error;
-      goto Exit;
-    }
-
-    /* we must now compute the address of our target object */
-    switch ( keyword->location )
-    {
-    case T1_FIELD_LOCATION_CID_INFO:
-      object = (FT_Byte*)cid;
-      break;
-
-    case T1_FIELD_LOCATION_FONT_INFO:
-      object = (FT_Byte*)&cid->font_info;
-      break;
-
-    case T1_FIELD_LOCATION_BBOX:
-      object = (FT_Byte*)&cid->font_bbox;
-      break;
-
-    default:
-      {
-        CID_FaceDict  dict;
-
-
-        if ( parser->num_dict < 0 )
-        {
-          FT_ERROR(( "cid_load_keyword: invalid use of `%s'!\n",
-                     keyword->ident ));
-          error = CID_Err_Syntax_Error;
-          goto Exit;
-        }
-
-        dict = cid->font_dicts + parser->num_dict;
-        switch ( keyword->location )
-        {
-        case T1_FIELD_LOCATION_PRIVATE:
-          object = (FT_Byte*)&dict->private_dict;
-          break;
-
-        default:
-          object = (FT_Byte*)dict;
-        }
-      }
-    }
-
-    dummy_object = object;
-
-    /* now, load the keyword data in the object's field(s) */
-    if ( keyword->type == T1_FIELD_TYPE_INTEGER_ARRAY ||
-         keyword->type == T1_FIELD_TYPE_FIXED_ARRAY   )
-      error = cid_parser_load_field_table( &loader->parser, keyword,
-                                           &dummy_object );
-    else
-      error = cid_parser_load_field( &loader->parser,
-                                     keyword, &dummy_object );
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  parse_font_matrix( CID_Face     face,
-                     CID_Parser*  parser )
-  {
-    FT_Matrix*    matrix;
-    FT_Vector*    offset;
-    CID_FaceDict  dict;
-    FT_Face       root = (FT_Face)&face->root;
-    FT_Fixed      temp[6];
-    FT_Fixed      temp_scale;
-
-
-    if ( parser->num_dict >= 0 )
-    {
-      dict   = face->cid.font_dicts + parser->num_dict;
-      matrix = &dict->font_matrix;
-      offset = &dict->font_offset;
-
-      (void)cid_parser_to_fixed_array( parser, 6, temp, 3 );
-
-      temp_scale = FT_ABS( temp[3] );
-
-      /* Set units per EM based on FontMatrix values.  We set the value to */
-      /* `1000/temp_scale', because temp_scale was already multiplied by   */
-      /* 1000 (in `t1_tofixed', from psobjs.c).                            */
-      root->units_per_EM = (FT_UShort)( FT_DivFix( 0x10000L,
-                                        FT_DivFix( temp_scale, 1000 ) ) );
-
-      /* we need to scale the values by 1.0/temp[3] */
-      if ( temp_scale != 0x10000L )
-      {
-        temp[0] = FT_DivFix( temp[0], temp_scale );
-        temp[1] = FT_DivFix( temp[1], temp_scale );
-        temp[2] = FT_DivFix( temp[2], temp_scale );
-        temp[4] = FT_DivFix( temp[4], temp_scale );
-        temp[5] = FT_DivFix( temp[5], temp_scale );
-        temp[3] = 0x10000L;
-      }
-
-      matrix->xx = temp[0];
-      matrix->yx = temp[1];
-      matrix->xy = temp[2];
-      matrix->yy = temp[3];
-
-      /* note that the font offsets are expressed in integer font units */
-      offset->x  = temp[4] >> 16;
-      offset->y  = temp[5] >> 16;
-    }
-
-    return CID_Err_Ok;      /* this is a callback function; */
-                            /* we must return an error code */
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  parse_fd_array( CID_Face     face,
-                  CID_Parser*  parser )
-  {
-    CID_FaceInfo  cid    = &face->cid;
-    FT_Memory     memory = face->root.memory;
-    FT_Error      error  = CID_Err_Ok;
-    FT_Long       num_dicts;
-
-
-    num_dicts = cid_parser_to_int( parser );
-
-    if ( !cid->font_dicts )
-    {
-      FT_Int  n;
-
-
-      if ( FT_NEW_ARRAY( cid->font_dicts, num_dicts ) )
-        goto Exit;
-
-      cid->num_dicts = (FT_UInt)num_dicts;
-
-      /* don't forget to set a few defaults */
-      for ( n = 0; n < cid->num_dicts; n++ )
-      {
-        CID_FaceDict  dict = cid->font_dicts + n;
-
-
-        /* default value for lenIV */
-        dict->private_dict.lenIV = 4;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static
-  const T1_FieldRec  cid_field_records[] =
-  {
-
-#include "cidtoken.h"
-
-    T1_FIELD_CALLBACK( "FDArray",    parse_fd_array )
-    T1_FIELD_CALLBACK( "FontMatrix", parse_font_matrix )
-
-    { 0, T1_FIELD_LOCATION_CID_INFO, T1_FIELD_TYPE_NONE, 0, 0, 0, 0, 0 }
-  };
-
-
-  static FT_Error
-  cid_parse_dict( CID_Face     face,
-                  CID_Loader*  loader,
-                  FT_Byte*     base,
-                  FT_Long      size )
-  {
-    CID_Parser*  parser = &loader->parser;
-
-
-    parser->root.cursor = base;
-    parser->root.limit  = base + size;
-    parser->root.error  = CID_Err_Ok;
-
-    {
-      FT_Byte*  cur   = base;
-      FT_Byte*  limit = cur + size;
-
-
-      for (;;)
-      {
-        FT_Byte*  newlimit;
-
-
-        parser->root.cursor = cur;
-        cid_parser_skip_spaces( parser );
-
-        if ( parser->root.cursor >= limit )
-          newlimit = limit - 1 - 17;
-        else
-          newlimit = parser->root.cursor - 17;
-
-        /* look for `%ADOBeginFontDict' */
-        for ( ; cur < newlimit; cur++ )
-        {
-          if ( *cur == '%'                                            &&
-               ft_strncmp( (char*)cur, "%ADOBeginFontDict", 17 ) == 0 )
-          {
-            /* if /FDArray was found, then cid->num_dicts is > 0, and */
-            /* we can start increasing parser->num_dict               */
-            if ( face->cid.num_dicts > 0 )
-              parser->num_dict++;
-          }
-        }
-
-        cur = parser->root.cursor;
-        /* no error can occur in cid_parser_skip_spaces */
-        if ( cur >= limit )
-          break;
-
-        cid_parser_skip_PS_token( parser );
-        if ( parser->root.cursor >= limit || parser->root.error )
-          break;
-
-        /* look for immediates */
-        if ( *cur == '/' && cur + 2 < limit )
-        {
-          FT_PtrDist  len;
-
-
-          cur++;
-          len = parser->root.cursor - cur;
-
-          if ( len > 0 && len < 22 )
-          {
-            /* now compare the immediate name to the keyword table */
-            T1_Field  keyword = (T1_Field)cid_field_records;
-
-
-            for (;;)
-            {
-              FT_Byte*  name;
-
-
-              name = (FT_Byte*)keyword->ident;
-              if ( !name )
-                break;
-
-              if ( cur[0] == name[0]                     &&
-                   len == ft_strlen( (const char*)name ) )
-              {
-                FT_PtrDist  n;
-
-
-                for ( n = 1; n < len; n++ )
-                  if ( cur[n] != name[n] )
-                    break;
-
-                if ( n >= len )
-                {
-                  /* we found it - run the parsing callback */
-                  parser->root.error = cid_load_keyword( face,
-                                                         loader,
-                                                         keyword );
-                  if ( parser->root.error )
-                    return parser->root.error;
-                  break;
-                }
-              }
-              keyword++;
-            }
-          }
-        }
-
-        cur = parser->root.cursor;
-      }
-    }
-    return parser->root.error;
-  }
-
-
-  /* read the subrmap and the subrs of each font dict */
-  static FT_Error
-  cid_read_subrs( CID_Face  face )
-  {
-    CID_FaceInfo   cid    = &face->cid;
-    FT_Memory      memory = face->root.memory;
-    FT_Stream      stream = face->cid_stream;
-    FT_Error       error;
-    FT_Int         n;
-    CID_Subrs      subr;
-    FT_UInt        max_offsets = 0;
-    FT_ULong*      offsets = 0;
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-
-
-    if ( FT_NEW_ARRAY( face->subrs, cid->num_dicts ) )
-      goto Exit;
-
-    subr = face->subrs;
-    for ( n = 0; n < cid->num_dicts; n++, subr++ )
-    {
-      CID_FaceDict  dict  = cid->font_dicts + n;
-      FT_Int        lenIV = dict->private_dict.lenIV;
-      FT_UInt       count, num_subrs = dict->num_subrs;
-      FT_ULong      data_len;
-      FT_Byte*      p;
-
-
-      /* reallocate offsets array if needed */
-      if ( num_subrs + 1 > max_offsets )
-      {
-        FT_UInt  new_max = FT_PAD_CEIL( num_subrs + 1, 4 );
-
-
-        if ( FT_RENEW_ARRAY( offsets, max_offsets, new_max ) )
-          goto Fail;
-
-        max_offsets = new_max;
-      }
-
-      /* read the subrmap's offsets */
-      if ( FT_STREAM_SEEK( cid->data_offset + dict->subrmap_offset ) ||
-           FT_FRAME_ENTER( ( num_subrs + 1 ) * dict->sd_bytes )      )
-        goto Fail;
-
-      p = (FT_Byte*)stream->cursor;
-      for ( count = 0; count <= num_subrs; count++ )
-        offsets[count] = cid_get_offset( &p, (FT_Byte)dict->sd_bytes );
-
-      FT_FRAME_EXIT();
-
-      /* now, compute the size of subrs charstrings, */
-      /* allocate, and read them                     */
-      data_len = offsets[num_subrs] - offsets[0];
-
-      if ( FT_NEW_ARRAY( subr->code, num_subrs + 1 ) ||
-               FT_ALLOC( subr->code[0], data_len )   )
-        goto Fail;
-
-      if ( FT_STREAM_SEEK( cid->data_offset + offsets[0] ) ||
-           FT_STREAM_READ( subr->code[0], data_len )  )
-        goto Fail;
-
-      /* set up pointers */
-      for ( count = 1; count <= num_subrs; count++ )
-      {
-        FT_ULong  len;
-
-
-        len               = offsets[count] - offsets[count - 1];
-        subr->code[count] = subr->code[count - 1] + len;
-      }
-
-      /* decrypt subroutines, but only if lenIV >= 0 */
-      if ( lenIV >= 0 )
-      {
-        for ( count = 0; count < num_subrs; count++ )
-        {
-          FT_ULong  len;
-
-
-          len = offsets[count + 1] - offsets[count];
-          psaux->t1_decrypt( subr->code[count], len, 4330 );
-        }
-      }
-
-      subr->num_subrs = num_subrs;
-    }
-
-  Exit:
-    FT_FREE( offsets );
-    return error;
-
-  Fail:
-    if ( face->subrs )
-    {
-      for ( n = 0; n < cid->num_dicts; n++ )
-      {
-        if ( face->subrs[n].code )
-          FT_FREE( face->subrs[n].code[0] );
-
-        FT_FREE( face->subrs[n].code );
-      }
-      FT_FREE( face->subrs );
-    }
-    goto Exit;
-  }
-
-
-  static void
-  t1_init_loader( CID_Loader*  loader,
-                  CID_Face     face )
-  {
-    FT_UNUSED( face );
-
-    FT_MEM_ZERO( loader, sizeof ( *loader ) );
-  }
-
-
-  static void
-  t1_done_loader( CID_Loader*  loader )
-  {
-    CID_Parser*  parser = &loader->parser;
-
-
-    /* finalize parser */
-    cid_parser_done( parser );
-  }
-
-
-  static FT_Error
-  cid_hex_to_binary( FT_Byte*  data,
-                     FT_Long   data_len,
-                     FT_ULong  offset,
-                     CID_Face  face )
-  {
-    FT_Stream  stream = face->root.stream;
-    FT_Error   error;
-
-    FT_Byte    buffer[256];
-    FT_Byte   *p, *plimit;
-    FT_Byte   *d, *dlimit;
-    FT_Byte    val;
-
-    FT_Bool    upper_nibble, done;
-
-
-    if ( FT_STREAM_SEEK( offset ) )
-      goto Exit;
-
-    d      = data;
-    dlimit = d + data_len;
-    p      = buffer;
-    plimit = p;
-
-    upper_nibble = 1;
-    done         = 0;
-
-    while ( d < dlimit )
-    {
-      if ( p >= plimit )
-      {
-        FT_ULong  oldpos = FT_STREAM_POS();
-        FT_ULong  size   = stream->size - oldpos;
-
-
-        if ( size == 0 )
-        {
-          error = CID_Err_Syntax_Error;
-          goto Exit;
-        }
-
-        if ( FT_STREAM_READ( buffer, 256 > size ? size : 256 ) )
-          goto Exit;
-        p      = buffer;
-        plimit = p + FT_STREAM_POS() - oldpos;
-      }
-
-      if ( ft_isdigit( *p ) )
-        val = *p - '0';
-      else if ( *p >= 'a' && *p <= 'f' )
-        val = *p - 'a';
-      else if ( *p >= 'A' && *p <= 'F' )
-        val = *p - 'A' + 10;
-      else if ( *p == ' '  ||
-                *p == '\t' ||
-                *p == '\r' ||
-                *p == '\n' ||
-                *p == '\f' ||
-                *p == '\0' )
-      {
-        p++;
-        continue;
-      }
-      else if ( *p == '>' )
-      {
-        val  = 0;
-        done = 1;
-      }
-      else
-      {
-        error = CID_Err_Syntax_Error;
-        goto Exit;
-      }
-
-      if ( upper_nibble )
-        *d = val << 4;
-      else
-      {
-        *d += val;
-        d++;
-      }
-
-      upper_nibble = 1 - upper_nibble;
-
-      if ( done )
-        break;
-
-      p++;
-    }
-
-    error = CID_Err_Ok;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_face_open( CID_Face  face,
-                 FT_Int    face_index )
-  {
-    CID_Loader   loader;
-    CID_Parser*  parser;
-    FT_Memory    memory = face->root.memory;
-    FT_Error     error;
-
-
-    t1_init_loader( &loader, face );
-
-    parser = &loader.parser;
-    error = cid_parser_new( parser, face->root.stream, face->root.memory,
-                            (PSAux_Service)face->psaux );
-    if ( error )
-      goto Exit;
-
-    error = cid_parse_dict( face, &loader,
-                            parser->postscript,
-                            parser->postscript_len );
-    if ( error )
-      goto Exit;
-
-    if ( face_index < 0 )
-      goto Exit;
-
-    if ( FT_NEW( face->cid_stream ) )
-      goto Exit;
-
-    if ( parser->binary_length )
-    {
-      /* we must convert the data section from hexadecimal to binary */
-      if ( FT_ALLOC( face->binary_data, parser->binary_length )         ||
-           cid_hex_to_binary( face->binary_data, parser->binary_length,
-                              parser->data_offset, face )               )
-        goto Exit;
-
-      FT_Stream_OpenMemory( face->cid_stream,
-                            face->binary_data, parser->binary_length );
-      face->cid.data_offset = 0;
-    }
-    else
-    {
-      *face->cid_stream     = *face->root.stream;
-      face->cid.data_offset = loader.parser.data_offset;
-    }
-
-    error = cid_read_subrs( face );
-
-  Exit:
-    t1_done_loader( &loader );
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidload.h b/nx-X11/extras/freetype2/src/cid/cidload.h
deleted file mode 100644
index 8c172ffee..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidload.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidload.h                                                              */
-/*                                                                         */
-/*    CID-keyed Type1 font loader (specification).                         */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CIDLOAD_H__
-#define __CIDLOAD_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include "cidparse.h"
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct  CID_Loader_
-  {
-    CID_Parser  parser;          /* parser used to read the stream */
-    FT_Int      num_chars;       /* number of characters in encoding */
-
-  } CID_Loader;
-
-
-  FT_LOCAL( FT_Long )
-  cid_get_offset( FT_Byte**  start,
-                  FT_Byte    offsize );
-
-  FT_LOCAL( FT_Error )
-  cid_face_open( CID_Face  face,
-                 FT_Int    face_index );
-
-
-FT_END_HEADER
-
-#endif /* __CIDLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidobjs.c b/nx-X11/extras/freetype2/src/cid/cidobjs.c
deleted file mode 100644
index 691ec1749..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidobjs.c
+++ /dev/null
@@ -1,501 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidobjs.c                                                              */
-/*                                                                         */
-/*    CID objects manager (body).                                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-
-#include "cidgload.h"
-#include "cidload.h"
-
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-
-#include "ciderrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cidobjs
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            SLOT  FUNCTIONS                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( void )
-  cid_slot_done( FT_GlyphSlot  slot )
-  {
-    slot->internal->glyph_hints = 0;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_slot_init( FT_GlyphSlot  slot )
-  {
-    CID_Face          face;
-    PSHinter_Service  pshinter;
-
-
-    face     = (CID_Face)slot->face;
-    pshinter = (PSHinter_Service)face->pshinter;
-
-    if ( pshinter )
-    {
-      FT_Module  module;
-
-
-      module = FT_Get_Module( slot->face->driver->root.library,
-                              "pshinter" );
-      if ( module )
-      {
-        T1_Hints_Funcs  funcs;
-
-
-        funcs = pshinter->get_t1_funcs( module );
-        slot->internal->glyph_hints = (void*)funcs;
-      }
-    }
-
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                           SIZE  FUNCTIONS                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static PSH_Globals_Funcs
-  cid_size_get_globals_funcs( CID_Size  size )
-  {
-    CID_Face          face     = (CID_Face)size->root.face;
-    PSHinter_Service  pshinter = (PSHinter_Service)face->pshinter;
-    FT_Module         module;
-
-
-    module = FT_Get_Module( size->root.face->driver->root.library,
-                            "pshinter" );
-    return ( module && pshinter && pshinter->get_globals_funcs )
-           ? pshinter->get_globals_funcs( module )
-           : 0;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cid_size_done( FT_Size  cidsize )         /* CID_Size */
-  {
-    CID_Size  size = (CID_Size)cidsize;
-
-
-    if ( cidsize->internal )
-    {
-      PSH_Globals_Funcs  funcs;
-
-
-      funcs = cid_size_get_globals_funcs( size );
-      if ( funcs )
-        funcs->destroy( (PSH_Globals)cidsize->internal );
-
-      cidsize->internal = 0;
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_size_init( FT_Size  cidsize )     /* CID_Size */
-  {
-    CID_Size           size  = (CID_Size)cidsize;
-    FT_Error           error = 0;
-    PSH_Globals_Funcs  funcs = cid_size_get_globals_funcs( size );
-
-
-    if ( funcs )
-    {
-      PSH_Globals   globals;
-      CID_Face      face = (CID_Face)cidsize->face;
-      CID_FaceDict  dict = face->cid.font_dicts + face->root.face_index;
-      PS_Private    priv = &dict->private_dict;
-
-
-      error = funcs->create( cidsize->face->memory, priv, &globals );
-      if ( !error )
-        cidsize->internal = (FT_Size_Internal)(void*)globals;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_size_reset( FT_Size  cidsize,             /* CID_Size */
-                  FT_UInt  char_width,
-                  FT_UInt  char_height )
-  {
-    CID_Size           size  = (CID_Size)cidsize;
-    PSH_Globals_Funcs  funcs = cid_size_get_globals_funcs( size );
-    FT_Error           error = 0;
-
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-
-
-    if ( funcs )
-      error = funcs->set_scale( (PSH_Globals)cidsize->internal,
-                                 cidsize->metrics.x_scale,
-                                 cidsize->metrics.y_scale,
-                                 0, 0 );
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_point_size_reset( FT_Size     size,
-                        FT_F26Dot6  char_width,
-                        FT_F26Dot6  char_height,
-                        FT_UInt     horz_resolution,
-                        FT_UInt     vert_resolution )
-  {
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-    FT_UNUSED( horz_resolution );
-    FT_UNUSED( vert_resolution );
-
-    return cid_size_reset( size, 0, 0 );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                           FACE  FUNCTIONS                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cid_face_done                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given face object.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A pointer to the face object to destroy.                   */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  cid_face_done( FT_Face  cidface )         /* CID_Face */
-  {
-    CID_Face   face = (CID_Face)cidface;
-    FT_Memory  memory;
-
-
-    if ( face )
-    {
-      CID_FaceInfo  cid  = &face->cid;
-      PS_FontInfo   info = &cid->font_info;
-
-
-      memory = cidface->memory;
-
-      /* release subrs */
-      if ( face->subrs )
-      {
-        FT_Int  n;
-
-
-        for ( n = 0; n < cid->num_dicts; n++ )
-        {
-          CID_Subrs  subr = face->subrs + n;
-
-
-          if ( subr->code )
-          {
-            FT_FREE( subr->code[0] );
-            FT_FREE( subr->code );
-          }
-        }
-
-        FT_FREE( face->subrs );
-      }
-
-      /* release FontInfo strings */
-      FT_FREE( info->version );
-      FT_FREE( info->notice );
-      FT_FREE( info->full_name );
-      FT_FREE( info->family_name );
-      FT_FREE( info->weight );
-
-      /* release font dictionaries */
-      FT_FREE( cid->font_dicts );
-      cid->num_dicts = 0;
-
-      /* release other strings */
-      FT_FREE( cid->cid_font_name );
-      FT_FREE( cid->registry );
-      FT_FREE( cid->ordering );
-
-      cidface->family_name = 0;
-      cidface->style_name  = 0;
-
-      FT_FREE( face->binary_data );
-      FT_FREE( face->cid_stream );
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cid_face_init                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given CID face object.                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream     :: The source font stream.                              */
-  /*                                                                       */
-  /*    face_index :: The index of the font face in the resource.          */
-  /*                                                                       */
-  /*    num_params :: Number of additional generic parameters.  Ignored.   */
-  /*                                                                       */
-  /*    params     :: Additional generic parameters.  Ignored.             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: The newly built face object.                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  cid_face_init( FT_Stream      stream,
-                 FT_Face        cidface,        /* CID_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    CID_Face            face = (CID_Face)cidface;
-    FT_Error            error;
-    FT_Service_PsCMaps  psnames;
-    PSAux_Service       psaux;
-    PSHinter_Service    pshinter;
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-    FT_UNUSED( stream );
-
-
-    cidface->num_faces = 1;
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-
-    psaux = (PSAux_Service)face->psaux;
-    if ( !psaux )
-    {
-      psaux = (PSAux_Service)FT_Get_Module_Interface(
-                FT_FACE_LIBRARY( face ), "psaux" );
-
-      face->psaux = psaux;
-    }
-
-    pshinter = (PSHinter_Service)face->pshinter;
-    if ( !pshinter )
-    {
-      pshinter = (PSHinter_Service)FT_Get_Module_Interface(
-                   FT_FACE_LIBRARY( face ), "pshinter" );
-
-      face->pshinter = pshinter;
-    }
-
-    /* open the tokenizer; this will also check the font format */
-    if ( FT_STREAM_SEEK( 0 ) )
-      goto Exit;
-
-    error = cid_face_open( face, face_index );
-    if ( error )
-      goto Exit;
-
-    /* if we just wanted to check the format, leave successfully now */
-    if ( face_index < 0 )
-      goto Exit;
-
-    /* check the face index */
-    if ( face_index != 0 )
-    {
-      FT_ERROR(( "cid_face_init: invalid face index\n" ));
-      error = CID_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* now load the font program into the face object */
-
-    /* initialize the face object fields */
-
-    /* set up root face fields */
-    {
-      CID_FaceInfo  cid  = &face->cid;
-      PS_FontInfo   info = &cid->font_info;
-
-
-      cidface->num_glyphs   = cid->cid_count;
-      cidface->num_charmaps = 0;
-
-      cidface->face_index = face_index;
-      cidface->face_flags = FT_FACE_FLAG_SCALABLE;
-
-      cidface->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-
-      if ( info->is_fixed_pitch )
-        cidface->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      /* XXX: TODO: add kerning with .afm support */
-
-      /* get style name -- be careful, some broken fonts only */
-      /* have a /FontName dictionary entry!                   */
-      cidface->family_name = info->family_name;
-      /* assume "Regular" style if we don't know better */
-      cidface->style_name = (char *)"Regular";
-      if ( cidface->family_name )
-      {
-        char*  full   = info->full_name;
-        char*  family = cidface->family_name;
-
-
-        if ( full )
-        {
-          while ( *full )
-          {
-            if ( *full == *family )
-            {
-              family++;
-              full++;
-            }
-            else
-            {
-              if ( *full == ' ' || *full == '-' )
-                full++;
-              else if ( *family == ' ' || *family == '-' )
-                family++;
-              else
-              {
-                if ( !*family )
-                  cidface->style_name = full;
-                break;
-              }
-            }
-          }
-        }
-      }
-      else
-      {
-        /* do we have a `/FontName'? */
-        if ( cid->cid_font_name )
-          cidface->family_name = cid->cid_font_name;
-      }
-
-      /* compute style flags */
-      cidface->style_flags = 0;
-      if ( info->italic_angle )
-        cidface->style_flags |= FT_STYLE_FLAG_ITALIC;
-      if ( info->weight )
-      {
-        if ( !ft_strcmp( info->weight, "Bold"  ) ||
-             !ft_strcmp( info->weight, "Black" ) )
-          cidface->style_flags |= FT_STYLE_FLAG_BOLD;
-      }
-
-      /* no embedded bitmap support */
-      cidface->num_fixed_sizes = 0;
-      cidface->available_sizes = 0;
-
-      cidface->bbox.xMin =   cid->font_bbox.xMin             >> 16;
-      cidface->bbox.yMin =   cid->font_bbox.yMin             >> 16;
-      cidface->bbox.xMax = ( cid->font_bbox.xMax + 0xFFFFU ) >> 16;
-      cidface->bbox.yMax = ( cid->font_bbox.yMax + 0xFFFFU ) >> 16;
-
-      if ( !cidface->units_per_EM )
-        cidface->units_per_EM = 1000;
-
-      cidface->ascender  = (FT_Short)( cidface->bbox.yMax );
-      cidface->descender = (FT_Short)( cidface->bbox.yMin );
-      cidface->height    = (FT_Short)(
-        ( ( cidface->ascender - cidface->descender ) * 12 ) / 10 );
-
-      cidface->underline_position  = (FT_Short)info->underline_position;
-      cidface->underline_thickness = (FT_Short)info->underline_thickness;
-
-      cidface->internal->max_points   = 0;
-      cidface->internal->max_contours = 0;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cid_driver_init                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given CID driver object.                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target driver object.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  cid_driver_init( FT_Module  driver )
-  {
-    FT_UNUSED( driver );
-
-    return CID_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    cid_driver_done                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given CID driver.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target CID driver.                       */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  cid_driver_done( FT_Module  driver )
-  {
-    FT_UNUSED( driver );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidobjs.h b/nx-X11/extras/freetype2/src/cid/cidobjs.h
deleted file mode 100644
index 9d230baf8..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidobjs.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidobjs.h                                                              */
-/*                                                                         */
-/*    CID objects manager (specification).                                 */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CIDOBJS_H__
-#define __CIDOBJS_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* The following structures must be defined by the hinter */
-  typedef struct CID_Size_Hints_   CID_Size_Hints;
-  typedef struct CID_Glyph_Hints_  CID_Glyph_Hints;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CID_Driver                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 driver object.                                */
-  /*                                                                       */
-  typedef struct CID_DriverRec_*  CID_Driver;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CID_Size                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 size object.                                  */
-  /*                                                                       */
-  typedef struct CID_SizeRec_*  CID_Size;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CID_GlyphSlot                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 glyph slot object.                            */
-  /*                                                                       */
-  typedef struct CID_GlyphSlotRec_*  CID_GlyphSlot;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    CID_CharMap                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 character mapping object.                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The Type 1 format doesn't use a charmap but an encoding table.     */
-  /*    The driver is responsible for making up charmap objects            */
-  /*    corresponding to these tables.                                     */
-  /*                                                                       */
-  typedef struct CID_CharMapRec_*  CID_CharMap;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* HERE BEGINS THE TYPE 1 SPECIFIC STUFF                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  typedef struct  CID_SizeRec_
-  {
-    FT_SizeRec  root;
-    FT_Bool     valid;
-
-  } CID_SizeRec;
-
-
-  typedef struct  CID_GlyphSlotRec_
-  {
-    FT_GlyphSlotRec  root;
-
-    FT_Bool          hint;
-    FT_Bool          scaled;
-
-    FT_Fixed         x_scale;
-    FT_Fixed         y_scale;
-
-  } CID_GlyphSlotRec;
-
-
-  FT_LOCAL( void )
-  cid_slot_done( FT_GlyphSlot  slot );
-
-  FT_LOCAL( FT_Error )
-  cid_slot_init( FT_GlyphSlot  slot );
-
-
-  FT_LOCAL( void )
-  cid_size_done( FT_Size  size );       /* CID_Size */
-
-  FT_LOCAL( FT_Error )
-  cid_size_init( FT_Size  size );       /* CID_Size */
-
-  FT_LOCAL( FT_Error )
-  cid_size_reset( FT_Size  size,        /* CID_Size */
-                  FT_UInt  char_width,
-                  FT_UInt  char_height );
-
-  FT_LOCAL( FT_Error )
-  cid_point_size_reset( FT_Size     size,
-                        FT_F26Dot6  char_width,
-                        FT_F26Dot6  char_height,
-                        FT_UInt     horz_resolution,
-                        FT_UInt     vert_resolution );
-
-
-  FT_LOCAL( FT_Error )
-  cid_face_init( FT_Stream      stream,
-                 FT_Face        face,           /* CID_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params );
-
-  FT_LOCAL( void )
-  cid_face_done( FT_Face  face );               /* CID_Face */
-
-
-  FT_LOCAL( FT_Error )
-  cid_driver_init( FT_Module  driver );
-
-  FT_LOCAL( void )
-  cid_driver_done( FT_Module  driver );
-
-
-FT_END_HEADER
-
-#endif /* __CIDOBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidparse.c b/nx-X11/extras/freetype2/src/cid/cidparse.c
deleted file mode 100644
index 3f18749f6..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidparse.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidparse.c                                                             */
-/*                                                                         */
-/*    CID-keyed Type1 parser (body).                                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
-
-#include "cidparse.h"
-
-#include "ciderrs.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_cidparse
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    INPUT STREAM PARSER                        *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  cid_parser_new( CID_Parser*    parser,
-                  FT_Stream      stream,
-                  FT_Memory      memory,
-                  PSAux_Service  psaux )
-  {
-    FT_Error  error;
-    FT_ULong  base_offset, offset, ps_len;
-    FT_Byte   buffer[256 + 10];
-    FT_Int    buff_len;
-    FT_Byte   *cur, *limit;
-    FT_Byte   *arg1, *arg2;
-
-
-    FT_MEM_ZERO( parser, sizeof ( *parser ) );
-    psaux->ps_parser_funcs->init( &parser->root, 0, 0, memory );
-
-    parser->stream = stream;
-
-    base_offset = FT_STREAM_POS();
-
-    /* first of all, check the font format in the header */
-    if ( FT_FRAME_ENTER( 31 ) )
-      goto Exit;
-
-    if ( ft_strncmp( (char *)stream->cursor,
-                     "%!PS-Adobe-3.0 Resource-CIDFont", 31 ) )
-    {
-      FT_TRACE2(( "[not a valid CID-keyed font]\n" ));
-      error = CID_Err_Unknown_File_Format;
-    }
-
-    FT_FRAME_EXIT();
-    if ( error )
-      goto Exit;
-
-  Again:
-    /* now, read the rest of the file until we find a `StartData' */
-    buff_len = 256;
-    for (;;)
-    {
-      FT_Byte*  p;
-      FT_ULong  top_position;
-
-
-      /* fill input buffer */
-      limit     = buffer + 256;
-      buff_len -= 256;
-      if ( buff_len > 0 )
-        FT_MEM_MOVE( buffer, limit, buff_len );
-
-      p = buffer + buff_len;
-
-      if ( FT_STREAM_READ( p, 256 + 10 - buff_len ) )
-        goto Exit;
-
-      top_position = FT_STREAM_POS() - buff_len;
-      buff_len     = 256 + 10;
-
-      /* look for `StartData' */
-      for ( p = buffer; p < limit; p++ )
-      {
-        if ( p[0] == 'S' && ft_strncmp( (char*)p, "StartData", 9 ) == 0 )
-        {
-          /* save offset of binary data after `StartData' */
-          offset = (FT_ULong)( top_position - ( limit - p ) + 10 );
-          goto Found;
-        }
-      }
-    }
-
-  Found:
-    /* we have found the start of the binary data.  We will now     */
-    /* rewind and extract the frame corresponding to the PostScript */
-    /* section                                                      */
-
-    ps_len = offset - base_offset;
-    if ( FT_STREAM_SEEK( base_offset )                  ||
-         FT_FRAME_EXTRACT( ps_len, parser->postscript ) )
-      goto Exit;
-
-    parser->data_offset    = offset;
-    parser->postscript_len = ps_len;
-    parser->root.base      = parser->postscript;
-    parser->root.cursor    = parser->postscript;
-    parser->root.limit     = parser->root.cursor + ps_len;
-    parser->num_dict       = -1;
-
-    /* Finally, we check whether `StartData' was real -- it could be  */
-    /* in a comment or string.  We also get its arguments to find out */
-    /* whether the data is represented in binary or hex format.       */
-
-    arg1 = parser->root.cursor;
-    cid_parser_skip_PS_token( parser );
-    cid_parser_skip_spaces  ( parser );
-    arg2 = parser->root.cursor;
-    cid_parser_skip_PS_token( parser );
-    cid_parser_skip_spaces  ( parser );
-
-    limit = parser->root.limit;
-    cur   = parser->root.cursor;
-
-    while ( cur < limit )
-    {
-      if ( *cur == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 )
-      {
-        if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 )
-          parser->binary_length = ft_atol( (const char *)arg2 );
-
-        limit = parser->root.limit;
-        cur   = parser->root.cursor;
-        goto Exit;
-      }
-
-      cid_parser_skip_PS_token( parser );
-      cid_parser_skip_spaces  ( parser );
-      arg1 = arg2;
-      arg2 = cur;
-      cur  = parser->root.cursor;
-    }
-
-    /* we haven't found the correct `StartData'; go back and continue */
-    /* searching                                                      */
-    FT_FRAME_RELEASE( parser->postscript );
-    if ( !FT_STREAM_SEEK( offset ) )
-      goto Again;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  cid_parser_done( CID_Parser*  parser )
-  {
-    /* always free the private dictionary */
-    if ( parser->postscript )
-    {
-      FT_Stream  stream = parser->stream;
-
-
-      FT_FRAME_RELEASE( parser->postscript );
-    }
-    parser->root.funcs.done( &parser->root );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidparse.h b/nx-X11/extras/freetype2/src/cid/cidparse.h
deleted file mode 100644
index ca37deab9..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidparse.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidparse.h                                                             */
-/*                                                                         */
-/*    CID-keyed Type1 parser (specification).                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CIDPARSE_H__
-#define __CIDPARSE_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    CID_Parser                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A CID_Parser is an object used to parse a Type 1 fonts very        */
-  /*    quickly.                                                           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root           :: The root PS_ParserRec fields.                    */
-  /*                                                                       */
-  /*    stream         :: The current input stream.                        */
-  /*                                                                       */
-  /*    postscript     :: A pointer to the data to be parsed.              */
-  /*                                                                       */
-  /*    postscript_len :: The length of the data to be parsed.             */
-  /*                                                                       */
-  /*    data_offset    :: The start position of the binary data (i.e., the */
-  /*                      end of the data to be parsed.                    */
-  /*                                                                       */
-  /*    binary_length  :: The length of the data after the `StartData'     */
-  /*                      command if the data format is hexadecimal.       */
-  /*                                                                       */
-  /*    cid            :: A structure which holds the information about    */
-  /*                      the current font.                                */
-  /*                                                                       */
-  /*    num_dict       :: The number of font dictionaries.                 */
-  /*                                                                       */
-  typedef struct  CID_Parser_
-  {
-    PS_ParserRec  root;
-    FT_Stream     stream;
-
-    FT_Byte*      postscript;
-    FT_Long       postscript_len;
-
-    FT_ULong      data_offset;
-
-    FT_Long       binary_length;
-
-    CID_FaceInfo  cid;
-    FT_Int        num_dict;
-
-  } CID_Parser;
-
-
-  FT_LOCAL( FT_Error )
-  cid_parser_new( CID_Parser*    parser,
-                  FT_Stream      stream,
-                  FT_Memory      memory,
-                  PSAux_Service  psaux );
-
-  FT_LOCAL( void )
-  cid_parser_done( CID_Parser*  parser );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            PARSING ROUTINES                           */
-  /*                                                                       */
-  /*************************************************************************/
-
-#define cid_parser_skip_spaces( p ) \
-          (p)->root.funcs.skip_spaces( &(p)->root )
-#define cid_parser_skip_PS_token( p ) \
-          (p)->root.funcs.skip_PS_token( &(p)->root )
-
-#define cid_parser_to_int( p )        (p)->root.funcs.to_int( &(p)->root )
-#define cid_parser_to_fixed( p, t )   (p)->root.funcs.to_fixed( &(p)->root, t )
-
-#define cid_parser_to_coord_array( p, m, c )                          \
-          (p)->root.funcs.to_coord_array( &(p)->root, m, c )
-#define cid_parser_to_fixed_array( p, m, f, t )                          \
-          (p)->root.funcs.to_fixed_array( &(p)->root, m, f, t )
-#define cid_parser_to_token( p, t )                         \
-          (p)->root.funcs.to_token( &(p)->root, t )
-#define cid_parser_to_token_array( p, t, m, c )                          \
-          (p)->root.funcs.to_token_array( &(p)->root, t, m, c )
-
-#define cid_parser_load_field( p, f, o )                              \
-          (p)->root.funcs.load_field( &(p)->root, f, o, 0, 0 )
-#define cid_parser_load_field_table( p, f, o )                              \
-          (p)->root.funcs.load_field_table( &(p)->root, f, o, 0, 0 )
-
-
-FT_END_HEADER
-
-#endif /* __CIDPARSE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidriver.c b/nx-X11/extras/freetype2/src/cid/cidriver.c
deleted file mode 100644
index 7d885a818..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidriver.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidriver.c                                                             */
-/*                                                                         */
-/*    CID driver interface (body).                                         */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "cidriver.h"
-#include "cidgload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-
-#include "ciderrs.h"
-
-#include FT_SERVICE_POSTSCRIPT_NAME_H
-#include FT_SERVICE_XFREE86_NAME_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ciddriver
-
-
- /*
-  *  POSTSCRIPT NAME SERVICE
-  *
-  */
-
-  static const char*
-  cid_get_postscript_name( CID_Face  face )
-  {
-    const char*  result = face->cid.cid_font_name;
-
-
-    if ( result && result[0] == '/' )
-      result++;
-
-    return result;
-  }
-
-
-  static const FT_Service_PsFontNameRec  cid_service_ps_name =
-  {
-    (FT_PsName_GetFunc) cid_get_postscript_name
-  };
-
-
- /*
-  *  POSTSCRIPT INFO SERVICE
-  *
-  */
-
-  static FT_Error
-  cid_ps_get_font_info( FT_Face          face,
-                        PS_FontInfoRec*  afont_info )
-  {
-    *afont_info = ((CID_Face)face)->cid.font_info;
-    return 0;
-  }
-
-
-  static const FT_Service_PsInfoRec  cid_service_ps_info =
-  {
-    (PS_GetFontInfoFunc)  cid_ps_get_font_info,
-    (PS_HasGlyphNamesFunc)NULL          /* unsupported with CID fonts */
-  };
-
-
- /*
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  cid_services[] =
-  {
-    { FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &cid_service_ps_name },
-    { FT_SERVICE_ID_XF86_NAME,            FT_XF86_FORMAT_CID },
-    { FT_SERVICE_ID_POSTSCRIPT_INFO,      &cid_service_ps_info },
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  cid_get_interface( FT_Module    module,
-                     const char*  cid_interface )
-  {
-    FT_UNUSED( module );
-
-    return ft_service_list_lookup( cid_services, cid_interface );
-  }
-
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  t1cid_driver_class =
-  {
-    /* first of all, the FT_Module_Class fields */
-    {
-      FT_MODULE_FONT_DRIVER       |
-      FT_MODULE_DRIVER_SCALABLE   |
-      FT_MODULE_DRIVER_HAS_HINTER,
-
-      sizeof( FT_DriverRec ),
-      "t1cid",   /* module name           */
-      0x10000L,  /* version 1.0 of driver */
-      0x20000L,  /* requires FreeType 2.0 */
-
-      0,
-
-      cid_driver_init,
-      cid_driver_done,
-      cid_get_interface
-    },
-
-    /* then the other font drivers fields */
-    sizeof( CID_FaceRec ),
-    sizeof( CID_SizeRec ),
-    sizeof( CID_GlyphSlotRec ),
-
-    cid_face_init,
-    cid_face_done,
-
-    cid_size_init,
-    cid_size_done,
-    cid_slot_init,
-    cid_slot_done,
-
-    cid_point_size_reset,
-    cid_size_reset,
-
-    cid_slot_load_glyph,
-
-    0,                      /* FT_Face_GetKerningFunc  */
-    0,                      /* FT_Face_AttachFunc      */
-
-    0                       /* FT_Face_GetAdvancesFunc */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidriver.h b/nx-X11/extras/freetype2/src/cid/cidriver.h
deleted file mode 100644
index d5a80f6f9..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidriver.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidriver.h                                                             */
-/*                                                                         */
-/*    High-level CID driver interface (specification).                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __CIDRIVER_H__
-#define __CIDRIVER_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_CALLBACK_TABLE
-  const FT_Driver_ClassRec  t1cid_driver_class;
-
-
-FT_END_HEADER
-
-#endif /* __CIDRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/cidtoken.h b/nx-X11/extras/freetype2/src/cid/cidtoken.h
deleted file mode 100644
index 2070aa91b..000000000
--- a/nx-X11/extras/freetype2/src/cid/cidtoken.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  cidtoken.h                                                             */
-/*                                                                         */
-/*    CID token definitions (specification only).                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  CID_FaceInfoRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_CID_INFO
-
-  T1_FIELD_KEY   ( "CIDFontName", cid_font_name )
-  T1_FIELD_NUM   ( "CIDFontVersion", cid_version )
-  T1_FIELD_NUM   ( "CIDFontType", cid_font_type )
-  T1_FIELD_STRING( "Registry", registry )
-  T1_FIELD_STRING( "Ordering", ordering )
-  T1_FIELD_NUM   ( "Supplement", supplement )
-  T1_FIELD_NUM   ( "UIDBase", uid_base )
-  T1_FIELD_NUM   ( "CIDMapOffset", cidmap_offset )
-  T1_FIELD_NUM   ( "FDBytes", fd_bytes )
-  T1_FIELD_NUM   ( "GDBytes", gd_bytes )
-  T1_FIELD_NUM   ( "CIDCount", cid_count )
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PS_FontInfoRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_FONT_INFO
-
-  T1_FIELD_STRING( "version", version )
-  T1_FIELD_STRING( "Notice", notice )
-  T1_FIELD_STRING( "FullName", full_name )
-  T1_FIELD_STRING( "FamilyName", family_name )
-  T1_FIELD_STRING( "Weight", weight )
-  T1_FIELD_NUM   ( "ItalicAngle", italic_angle )
-  T1_FIELD_BOOL  ( "isFixedPitch", is_fixed_pitch )
-  T1_FIELD_NUM   ( "UnderlinePosition", underline_position )
-  T1_FIELD_NUM   ( "UnderlineThickness", underline_thickness )
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  CID_FaceDictRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_FONT_DICT
-
-  T1_FIELD_NUM  ( "PaintType", paint_type )
-  T1_FIELD_NUM  ( "FontType", font_type )
-  T1_FIELD_NUM  ( "SubrMapOffset", subrmap_offset )
-  T1_FIELD_NUM  ( "SDBytes", sd_bytes )
-  T1_FIELD_NUM  ( "SubrCount", num_subrs )
-  T1_FIELD_NUM  ( "lenBuildCharArray", len_buildchar )
-  T1_FIELD_FIXED( "ForceBoldThreshold", forcebold_threshold )
-  T1_FIELD_FIXED( "ExpansionFactor", expansion_factor )
-  T1_FIELD_FIXED( "StrokeWidth", stroke_width )
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PS_PrivateRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_PRIVATE
-
-  T1_FIELD_NUM       ( "UniqueID", unique_id )
-  T1_FIELD_NUM       ( "lenIV", lenIV )
-  T1_FIELD_NUM       ( "LanguageGroup", language_group )
-  T1_FIELD_NUM       ( "password", password )
-
-  T1_FIELD_FIXED_1000( "BlueScale", blue_scale )
-  T1_FIELD_NUM       ( "BlueShift", blue_shift )
-  T1_FIELD_NUM       ( "BlueFuzz",  blue_fuzz )
-
-  T1_FIELD_NUM_TABLE ( "BlueValues", blue_values, 14 )
-  T1_FIELD_NUM_TABLE ( "OtherBlues", other_blues, 10 )
-  T1_FIELD_NUM_TABLE ( "FamilyBlues", family_blues, 14 )
-  T1_FIELD_NUM_TABLE ( "FamilyOtherBlues", family_other_blues, 10 )
-
-  T1_FIELD_NUM_TABLE2( "StdHW", standard_width,  1 )
-  T1_FIELD_NUM_TABLE2( "StdVW", standard_height, 1 )
-  T1_FIELD_NUM_TABLE2( "MinFeature", min_feature, 2 )
-
-  T1_FIELD_NUM_TABLE ( "StemSnapH", snap_widths, 12 )
-  T1_FIELD_NUM_TABLE ( "StemSnapV", snap_heights, 12 )
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  FT_BBox
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_BBOX
-
-  T1_FIELD_BBOX( "FontBBox", xMin )
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/cid/descrip.mms b/nx-X11/extras/freetype2/src/cid/descrip.mms
deleted file mode 100644
index 592fd587a..000000000
--- a/nx-X11/extras/freetype2/src/cid/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 CID driver compilation rules for VMS
-#
-
-
-# Copyright 2001 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.cid])
-
-OBJS=type1cid.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cid/module.mk b/nx-X11/extras/freetype2/src/cid/module.mk
deleted file mode 100644
index f59d8a951..000000000
--- a/nx-X11/extras/freetype2/src/cid/module.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# FreeType 2 CID module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_type1cid_driver
-
-add_type1cid_driver:
-	$(OPEN_DRIVER)t1cid_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)cid       $(ECHO_DRIVER_DESC)Postscript CID-keyed fonts, no known extension$(ECHO_DRIVER_DONE)
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cid/rules.mk b/nx-X11/extras/freetype2/src/cid/rules.mk
deleted file mode 100644
index f36274461..000000000
--- a/nx-X11/extras/freetype2/src/cid/rules.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# FreeType 2 CID driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# CID driver directory
-#
-CID_DIR := $(SRC_DIR)/cid
-
-
-CID_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CID_DIR))
-
-
-# CID driver sources (i.e., C files)
-#
-CID_DRV_SRC := $(CID_DIR)/cidparse.c \
-               $(CID_DIR)/cidload.c  \
-               $(CID_DIR)/cidriver.c \
-               $(CID_DIR)/cidgload.c \
-               $(CID_DIR)/cidobjs.c
-
-# CID driver headers
-#
-CID_DRV_H := $(CID_DRV_SRC:%.c=%.h) \
-             $(CID_DIR)/cidtoken.h  \
-             $(CID_DIR)/ciderrs.h
-
-
-# CID driver object(s)
-#
-#   CID_DRV_OBJ_M is used during `multi' builds
-#   CID_DRV_OBJ_S is used during `single' builds
-#
-CID_DRV_OBJ_M := $(CID_DRV_SRC:$(CID_DIR)/%.c=$(OBJ_DIR)/%.$O)
-CID_DRV_OBJ_S := $(OBJ_DIR)/type1cid.$O
-
-# CID driver source file for single build
-#
-CID_DRV_SRC_S := $(CID_DIR)/type1cid.c
-
-
-# CID driver - single object
-#
-$(CID_DRV_OBJ_S): $(CID_DRV_SRC_S) $(CID_DRV_SRC) $(FREETYPE_H) $(CID_DRV_H)
-	$(CID_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(CID_DRV_SRC_S))
-
-
-# CID driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(CID_DIR)/%.c $(FREETYPE_H) $(CID_DRV_H)
-	$(CID_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(CID_DRV_OBJ_S)
-DRV_OBJS_M += $(CID_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/cid/type1cid.c b/nx-X11/extras/freetype2/src/cid/type1cid.c
deleted file mode 100644
index 0b866e97c..000000000
--- a/nx-X11/extras/freetype2/src/cid/type1cid.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  type1cid.c                                                             */
-/*                                                                         */
-/*    FreeType OpenType driver component (body only).                      */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "cidparse.c"
-#include "cidload.c"
-#include "cidobjs.c"
-#include "cidriver.c"
-#include "cidgload.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/gzip/Jamfile b/nx-X11/extras/freetype2/src/gzip/Jamfile
deleted file mode 100644
index e461cf174..000000000
--- a/nx-X11/extras/freetype2/src/gzip/Jamfile
+++ /dev/null
@@ -1,8 +0,0 @@
-# FreeType 2 src/gzip Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) gzip ;
-
-Library  $(FT2_LIB) : ftgzip.c ;
-
-# end of src/pcf Jamfile
diff --git a/nx-X11/extras/freetype2/src/gzip/adler32.c b/nx-X11/extras/freetype2/src/gzip/adler32.c
deleted file mode 100644
index 11a25bee6..000000000
--- a/nx-X11/extras/freetype2/src/gzip/adler32.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* adler32.c -- compute the Adler-32 checksum of a data stream
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: adler32.c,v 1.1.1.3 2004/03/14 08:28:54 eich Exp $ */
-
-#include "zlib.h"
-
-#define BASE 65521L /* largest prime smaller than 65536 */
-#define NMAX 5552
-/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */
-
-#define DO1(buf,i)  {s1 += buf[i]; s2 += s1;}
-#define DO2(buf,i)  DO1(buf,i); DO1(buf,i+1);
-#define DO4(buf,i)  DO2(buf,i); DO2(buf,i+2);
-#define DO8(buf,i)  DO4(buf,i); DO4(buf,i+4);
-#define DO16(buf)   DO8(buf,0); DO8(buf,8);
-
-/* ========================================================================= */
-ZEXPORT(uLong) adler32( /* adler, buf, len) */
-    uLong adler,
-    const Bytef *buf,
-    uInt len )
-{
-    unsigned long s1 = adler & 0xffff;
-    unsigned long s2 = (adler >> 16) & 0xffff;
-    int k;
-
-    if (buf == Z_NULL) return 1L;
-
-    while (len > 0) {
-        k = len < NMAX ? len : NMAX;
-        len -= k;
-        while (k >= 16) {
-            DO16(buf);
-	    buf += 16;
-            k -= 16;
-        }
-        if (k != 0) do {
-            s1 += *buf++;
-	    s2 += s1;
-        } while (--k);
-        s1 %= BASE;
-        s2 %= BASE;
-    }
-    return (s2 << 16) | s1;
-}
diff --git a/nx-X11/extras/freetype2/src/gzip/descrip.mms b/nx-X11/extras/freetype2/src/gzip/descrip.mms
deleted file mode 100644
index 68d7a870d..000000000
--- a/nx-X11/extras/freetype2/src/gzip/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 GZip support compilation rules for VMS
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.gzip])
-
-OBJS=ftgzip.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/gzip/ftgzip.c b/nx-X11/extras/freetype2/src/gzip/ftgzip.c
deleted file mode 100644
index a78c19524..000000000
--- a/nx-X11/extras/freetype2/src/gzip/ftgzip.c
+++ /dev/null
@@ -1,605 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftgzip.c                                                               */
-/*                                                                         */
-/*    FreeType support for .gz compressed files.                           */
-/*                                                                         */
-/*  This optional component relies on zlib.  It should mainly be used to   */
-/*  parse compressed PCF fonts, as found with many X11 server              */
-/*  distributions.                                                         */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
-#include <string.h>
-
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  Gzip_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Gzip
-
-#include FT_ERRORS_H
-
-
-#ifdef FT_CONFIG_OPTION_USE_ZLIB
-
-#ifdef FT_CONFIG_OPTION_SYSTEM_ZLIB
-
-#include <zlib.h>
-
-#else /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */
-
- /* In this case, we include our own modified sources of the ZLib    */
- /* within the "ftgzip" component.  The modifications were necessary */
- /* to #include all files without conflicts, as well as preventing   */
- /* the definition of "extern" functions that may cause linking      */
- /* conflicts when a program is linked with both FreeType and the    */
- /* original ZLib.                                                   */
-
-#define NO_DUMMY_DECL
-#define MY_ZCALLOC
-
-#include "zlib.h"
-
-#undef  SLOW
-#define SLOW  1  /* we can't use asm-optimized sources here! */
-
-  /* Urgh.  `inflate_mask' must not be declared twice -- C++ doesn't like
-     this.  We temporarily disable it and load all necessary header files. */
-#define NO_INFLATE_MASK
-#include "zutil.h"
-#include "inftrees.h"
-#include "infblock.h"
-#include "infcodes.h"
-#include "infutil.h"
-#undef  NO_INFLATE_MASK
-
-  /* infutil.c must be included before infcodes.c */
-#include "zutil.c"
-#include "inftrees.c"
-#include "infutil.c"
-#include "infcodes.c"
-#include "infblock.c"
-#include "inflate.c"
-#include "adler32.c"
-
-#endif /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */
-
-
-/***************************************************************************/
-/***************************************************************************/
-/*****                                                                 *****/
-/*****            Z L I B   M E M O R Y   M A N A G E M E N T          *****/
-/*****                                                                 *****/
-/***************************************************************************/
-/***************************************************************************/
-
-  /* it is better to use FreeType memory routines instead of raw
-     'malloc/free' */
-
-  static voidpf
-  ft_gzip_alloc( FT_Memory  memory,
-                 uInt       items,
-                 uInt       size )
-  {
-    FT_ULong    sz = (FT_ULong)size * items;
-    FT_Pointer  p;
-
-
-    FT_MEM_ALLOC( p, sz );
-
-    return (voidpf) p;
-  }
-
-
-  static void
-  ft_gzip_free( FT_Memory  memory,
-                voidpf     address )
-  {
-    FT_MEM_FREE( address );
-  }
-
-
-#ifndef FT_CONFIG_OPTION_SYSTEM_ZLIB
-
-  local voidpf
-  zcalloc ( voidpf    opaque,
-            unsigned  items,
-            unsigned  size )
-  {
-    return ft_gzip_alloc( (FT_Memory)opaque, items, size );
-  }
-
-  local void
-  zcfree( voidpf  opaque,
-          voidpf  ptr )
-  {
-    ft_gzip_free( (FT_Memory)opaque, ptr );
-  }
-
-#endif /* !SYSTEM_ZLIB */
-
-
-/***************************************************************************/
-/***************************************************************************/
-/*****                                                                 *****/
-/*****               Z L I B   F I L E   D E S C R I P T O R           *****/
-/*****                                                                 *****/
-/***************************************************************************/
-/***************************************************************************/
-
-#define FT_GZIP_BUFFER_SIZE  4096
-
-  typedef struct  FT_GZipFileRec_
-  {
-    FT_Stream  source;         /* parent/source stream        */
-    FT_Stream  stream;         /* embedding stream            */
-    FT_Memory  memory;         /* memory allocator            */
-    z_stream   zstream;        /* zlib input stream           */
-
-    FT_ULong   start;          /* starting position, after .gz header */
-    FT_Byte    input[FT_GZIP_BUFFER_SIZE];   /* input read buffer  */
-
-    FT_Byte    buffer[FT_GZIP_BUFFER_SIZE];  /* output buffer      */
-    FT_ULong   pos;                          /* position in output */
-    FT_Byte*   cursor;
-    FT_Byte*   limit;
-
-  } FT_GZipFileRec, *FT_GZipFile;
-
-
-  /* gzip flag byte */
-#define FT_GZIP_ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
-#define FT_GZIP_HEAD_CRC     0x02 /* bit 1 set: header CRC present */
-#define FT_GZIP_EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
-#define FT_GZIP_ORIG_NAME    0x08 /* bit 3 set: original file name present */
-#define FT_GZIP_COMMENT      0x10 /* bit 4 set: file comment present */
-#define FT_GZIP_RESERVED     0xE0 /* bits 5..7: reserved */
-
-
-  /* check and skip .gz header - we don't support `transparent' compression */
-  static FT_Error
-  ft_gzip_check_header( FT_Stream  stream )
-  {
-    FT_Error  error;
-    FT_Byte   head[4];
-
-
-    if ( FT_STREAM_SEEK( 0 )       ||
-         FT_STREAM_READ( head, 4 ) )
-      goto Exit;
-
-    /* head[0] && head[1] are the magic numbers;    */
-    /* head[2] is the method, and head[3] the flags */
-    if ( head[0] != 0x1f              ||
-         head[1] != 0x8b              ||
-         head[2] != Z_DEFLATED        ||
-        (head[3] & FT_GZIP_RESERVED)  )
-    {
-      error = Gzip_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    /* skip time, xflags and os code */
-    (void)FT_STREAM_SKIP( 6 );
-
-    /* skip the extra field */
-    if ( head[3] & FT_GZIP_EXTRA_FIELD )
-    {
-      FT_UInt  len;
-
-
-      if ( FT_READ_USHORT_LE( len ) ||
-           FT_STREAM_SKIP( len )    )
-        goto Exit;
-    }
-
-    /* skip original file name */
-    if ( head[3] & FT_GZIP_ORIG_NAME )
-      for (;;)
-      {
-        FT_UInt  c;
-
-
-        if ( FT_READ_BYTE( c ) )
-          goto Exit;
-
-        if ( c == 0 )
-          break;
-      }
-
-    /* skip .gz comment */
-    if ( head[3] & FT_GZIP_COMMENT )
-      for (;;)
-      {
-        FT_UInt  c;
-
-
-        if ( FT_READ_BYTE( c ) )
-          goto Exit;
-
-        if ( c == 0 )
-          break;
-      }
-
-    /* skip CRC */
-    if ( head[3] & FT_GZIP_HEAD_CRC )
-      if ( FT_STREAM_SKIP( 2 ) )
-        goto Exit;
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  ft_gzip_file_init( FT_GZipFile  zip,
-                     FT_Stream    stream,
-                     FT_Stream    source )
-  {
-    z_stream*  zstream = &zip->zstream;
-    FT_Error   error   = Gzip_Err_Ok;
-
-
-    zip->stream = stream;
-    zip->source = source;
-    zip->memory = stream->memory;
-
-    zip->limit  = zip->buffer + FT_GZIP_BUFFER_SIZE;
-    zip->cursor = zip->limit;
-    zip->pos    = 0;
-
-    /* check and skip .gz header */
-    {
-      stream = source;
-
-      error = ft_gzip_check_header( stream );
-      if ( error )
-        goto Exit;
-
-      zip->start = FT_STREAM_POS();
-    }
-
-    /* initialize zlib -- there is no zlib header in the compressed stream */
-    zstream->zalloc = (alloc_func)ft_gzip_alloc;
-    zstream->zfree  = (free_func) ft_gzip_free;
-    zstream->opaque = stream->memory;
-
-    zstream->avail_in = 0;
-    zstream->next_in  = zip->buffer;
-
-    if ( inflateInit2( zstream, -MAX_WBITS ) != Z_OK ||
-         zstream->next_in == NULL                     )
-      error = Gzip_Err_Invalid_File_Format;
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  ft_gzip_file_done( FT_GZipFile  zip )
-  {
-    z_stream*  zstream = &zip->zstream;
-
-
-    inflateEnd( zstream );
-
-    /* clear the rest */
-    zstream->zalloc    = NULL;
-    zstream->zfree     = NULL;
-    zstream->opaque    = NULL;
-    zstream->next_in   = NULL;
-    zstream->next_out  = NULL;
-    zstream->avail_in  = 0;
-    zstream->avail_out = 0;
-
-    zip->memory = NULL;
-    zip->source = NULL;
-    zip->stream = NULL;
-  }
-
-
-  static FT_Error
-  ft_gzip_file_reset( FT_GZipFile  zip )
-  {
-    FT_Stream  stream = zip->source;
-    FT_Error   error;
-
-
-    if ( !FT_STREAM_SEEK( zip->start ) )
-    {
-      z_stream*  zstream = &zip->zstream;
-
-
-      inflateReset( zstream );
-
-      zstream->avail_in  = 0;
-      zstream->next_in   = zip->input;
-      zstream->avail_out = 0;
-      zstream->next_out  = zip->buffer;
-
-      zip->limit  = zip->buffer + FT_GZIP_BUFFER_SIZE;
-      zip->cursor = zip->limit;
-      zip->pos    = 0;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  ft_gzip_file_fill_input( FT_GZipFile  zip )
-  {
-    z_stream*  zstream = &zip->zstream;
-    FT_Stream  stream  = zip->source;
-    FT_ULong   size;
-
-
-    if ( stream->read )
-    {
-      size = stream->read( stream, stream->pos, zip->input,
-                           FT_GZIP_BUFFER_SIZE );
-      if ( size == 0 )
-        return Gzip_Err_Invalid_Stream_Operation;
-    }
-    else
-    {
-      size = stream->size - stream->pos;
-      if ( size > FT_GZIP_BUFFER_SIZE )
-        size = FT_GZIP_BUFFER_SIZE;
-
-      if ( size == 0 )
-        return Gzip_Err_Invalid_Stream_Operation;
-
-      FT_MEM_COPY( zip->input, stream->base + stream->pos, size );
-    }
-    stream->pos += size;
-
-    zstream->next_in  = zip->input;
-    zstream->avail_in = size;
-
-    return Gzip_Err_Ok;
-  }
-
-
-  static FT_Error
-  ft_gzip_file_fill_output( FT_GZipFile  zip )
-  {
-    z_stream*  zstream = &zip->zstream;
-    FT_Error   error   = 0;
-
-
-    zip->cursor        = zip->buffer;
-    zstream->next_out  = zip->cursor;
-    zstream->avail_out = FT_GZIP_BUFFER_SIZE;
-
-    while ( zstream->avail_out > 0 )
-    {
-      int  err;
-
-
-      if ( zstream->avail_in == 0 )
-      {
-        error = ft_gzip_file_fill_input( zip );
-        if ( error )
-          break;
-      }
-
-      err = inflate( zstream, Z_NO_FLUSH );
-
-      if ( err == Z_STREAM_END )
-      {
-        zip->limit = zstream->next_out;
-        if ( zip->limit == zip->cursor )
-          error = Gzip_Err_Invalid_Stream_Operation;
-        break;
-      }
-      else if ( err != Z_OK )
-      {
-        error = Gzip_Err_Invalid_Stream_Operation;
-        break;
-      }
-    }
-
-    return error;
-  }
-
-
-  /* fill output buffer; `count' must be <= FT_GZIP_BUFFER_SIZE */
-  static FT_Error
-  ft_gzip_file_skip_output( FT_GZipFile  zip,
-                            FT_ULong     count )
-  {
-    FT_Error  error = Gzip_Err_Ok;
-    FT_ULong  delta;
-
-
-    for (;;)
-    {
-      delta = (FT_ULong)( zip->limit - zip->cursor );
-      if ( delta >= count )
-        delta = count;
-
-      zip->cursor += delta;
-      zip->pos    += delta;
-
-      count -= delta;
-      if ( count == 0 )
-        break;
-
-      error = ft_gzip_file_fill_output( zip );
-      if ( error )
-        break;
-    }
-
-    return error;
-  }
-
-
-  static FT_ULong
-  ft_gzip_file_io( FT_GZipFile  zip,
-                   FT_ULong     pos,
-                   FT_Byte*     buffer,
-                   FT_ULong     count )
-  {
-    FT_ULong  result = 0;
-    FT_Error  error;
-
-
-    /* Reset inflate stream if we're seeking backwards.        */
-    /* Yes, that is not too efficient, but it saves memory :-) */
-    if ( pos < zip->pos )
-    {
-      error = ft_gzip_file_reset( zip );
-      if ( error )
-        goto Exit;
-    }
-
-    /* skip unwanted bytes */
-    if ( pos > zip->pos )
-    {
-      error = ft_gzip_file_skip_output( zip, (FT_ULong)( pos - zip->pos ) );
-      if ( error )
-        goto Exit;
-    }
-
-    if ( count == 0 )
-      goto Exit;
-
-    /* now read the data */
-    for (;;)
-    {
-      FT_ULong  delta;
-
-
-      delta = (FT_ULong)( zip->limit - zip->cursor );
-      if ( delta >= count )
-        delta = count;
-
-      FT_MEM_COPY( buffer, zip->cursor, delta );
-      buffer      += delta;
-      result      += delta;
-      zip->cursor += delta;
-      zip->pos    += delta;
-
-      count -= delta;
-      if ( count == 0 )
-        break;
-
-      error = ft_gzip_file_fill_output( zip );
-      if ( error )
-        break;
-    }
-
-  Exit:
-    return result;
-  }
-
-
-/***************************************************************************/
-/***************************************************************************/
-/*****                                                                 *****/
-/*****               G Z   E M B E D D I N G   S T R E A M             *****/
-/*****                                                                 *****/
-/***************************************************************************/
-/***************************************************************************/
-
-  static void
-  ft_gzip_stream_close( FT_Stream  stream )
-  {
-    FT_GZipFile  zip    = (FT_GZipFile)stream->descriptor.pointer;
-    FT_Memory    memory = stream->memory;
-
-
-    if ( zip )
-    {
-      /* finalize gzip file descriptor */
-      ft_gzip_file_done( zip );
-
-      FT_FREE( zip );
-
-      stream->descriptor.pointer = NULL;
-    }
-  }
-
-
-  static FT_ULong
-  ft_gzip_stream_io( FT_Stream  stream,
-                     FT_ULong   pos,
-                     FT_Byte*   buffer,
-                     FT_ULong   count )
-  {
-    FT_GZipFile  zip = (FT_GZipFile)stream->descriptor.pointer;
-
-
-    return ft_gzip_file_io( zip, pos, buffer, count );
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_OpenGzip( FT_Stream  stream,
-                      FT_Stream  source )
-  {
-    FT_Error     error;
-    FT_Memory    memory = source->memory;
-    FT_GZipFile  zip;
-
-
-    FT_ZERO( stream );
-    stream->memory = memory;
-
-    if ( !FT_QNEW( zip ) )
-    {
-      error = ft_gzip_file_init( zip, stream, source );
-      if ( error )
-      {
-        FT_FREE( zip );
-        goto Exit;
-      }
-
-      stream->descriptor.pointer = zip;
-    }
-
-    stream->size  = 0x7FFFFFFFL;  /* don't know the real size! */
-    stream->pos   = 0;
-    stream->base  = 0;
-    stream->read  = ft_gzip_stream_io;
-    stream->close = ft_gzip_stream_close;
-
-  Exit:
-    return error;
-  }
-
-#else  /* !FT_CONFIG_OPTION_USE_ZLIB */
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_OpenGzip( FT_Stream  stream,
-                      FT_Stream  source )
-  {
-    FT_UNUSED( stream );
-    FT_UNUSED( source );
-
-    return Gzip_Err_Unimplemented_Feature;
-  }
-
-#endif /* !FT_CONFIG_OPTION_USE_ZLIB */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/gzip/infblock.c b/nx-X11/extras/freetype2/src/gzip/infblock.c
deleted file mode 100644
index d6e2dc297..000000000
--- a/nx-X11/extras/freetype2/src/gzip/infblock.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/* infblock.c -- interpret and process block types to last block
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "infblock.h"
-#include "inftrees.h"
-#include "infcodes.h"
-#include "infutil.h"
-
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-/* Table for deflate from PKZIP's appnote.txt. */
-local const uInt border[] = { /* Order of the bit length code lengths */
-        16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
-
-/*
-   Notes beyond the 1.93a appnote.txt:
-
-   1. Distance pointers never point before the beginning of the output
-      stream.
-   2. Distance pointers can point back across blocks, up to 32k away.
-   3. There is an implied maximum of 7 bits for the bit length table and
-      15 bits for the actual data.
-   4. If only one code exists, then it is encoded using one bit.  (Zero
-      would be more efficient, but perhaps a little confusing.)  If two
-      codes exist, they are coded using one bit each (0 and 1).
-   5. There is no way of sending zero distance codes--a dummy must be
-      sent if there are none.  (History: a pre 2.0 version of PKZIP would
-      store blocks with no distance codes, but this was discovered to be
-      too harsh a criterion.)  Valid only for 1.93a.  2.04c does allow
-      zero distance codes, which is sent as one code of zero bits in
-      length.
-   6. There are up to 286 literal/length codes.  Code 256 represents the
-      end-of-block.  Note however that the static length tree defines
-      288 codes just to fill out the Huffman codes.  Codes 286 and 287
-      cannot be used though, since there is no length base or extra bits
-      defined for them.  Similarily, there are up to 30 distance codes.
-      However, static trees define 32 codes (all 5 bits) to fill out the
-      Huffman codes, but the last two had better not show up in the data.
-   7. Unzip can check dynamic Huffman blocks for complete code sets.
-      The exception is that a single code would not be complete (see #4).
-   8. The five bits following the block type is really the number of
-      literal codes sent minus 257.
-   9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits
-      (1+6+6).  Therefore, to output three times the length, you output
-      three codes (1+1+1), whereas to output four times the same length,
-      you only need two codes (1+3).  Hmm.
-  10. In the tree reconstruction algorithm, Code = Code + Increment
-      only if BitLength(i) is not zero.  (Pretty obvious.)
-  11. Correction: 4 Bits: # of Bit Length codes - 4     (4 - 19)
-  12. Note: length code 284 can represent 227-258, but length code 285
-      really is 258.  The last length deserves its own, short code
-      since it gets used a lot in very redundant files.  The length
-      258 is special since 258 - 3 (the min match length) is 255.
-  13. The literal/length and distance code bit lengths are read as a
-      single stream of lengths.  It is possible (and advantageous) for
-      a repeat code (16, 17, or 18) to go across the boundary between
-      the two sets of lengths.
- */
-
-
-local void inflate_blocks_reset( /* s, z, c) */
-inflate_blocks_statef *s,
-z_streamp z,
-uLongf *c )
-{
-  if (c != Z_NULL)
-    *c = s->check;
-  if (s->mode == BTREE || s->mode == DTREE)
-    ZFREE(z, s->sub.trees.blens);
-  if (s->mode == CODES)
-    inflate_codes_free(s->sub.decode.codes, z);
-  s->mode = TYPE;
-  s->bitk = 0;
-  s->bitb = 0;
-  s->read = s->write = s->window;
-  if (s->checkfn != Z_NULL)
-    z->adler = s->check = (*s->checkfn)(0L, (const Bytef *)Z_NULL, 0);
-  Tracev((stderr, "inflate:   blocks reset\n"));
-}
-
-
-local inflate_blocks_statef *inflate_blocks_new( /* z, c, w) */
-z_streamp z,
-check_func c,
-uInt w )
-{
-  inflate_blocks_statef *s;
-
-  if ((s = (inflate_blocks_statef *)ZALLOC
-       (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL)
-    return s;
-  if ((s->hufts =
-       (inflate_huft *)ZALLOC(z, sizeof(inflate_huft), MANY)) == Z_NULL)
-  {
-    ZFREE(z, s);
-    return Z_NULL;
-  }
-  if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL)
-  {
-    ZFREE(z, s->hufts);
-    ZFREE(z, s);
-    return Z_NULL;
-  }
-  s->end = s->window + w;
-  s->checkfn = c;
-  s->mode = TYPE;
-  Tracev((stderr, "inflate:   blocks allocated\n"));
-  inflate_blocks_reset(s, z, Z_NULL);
-  return s;
-}
-
-
-local int inflate_blocks( /* s, z, r) */
-inflate_blocks_statef *s,
-z_streamp z,
-int r )
-{
-  uInt t;               /* temporary storage */
-  uLong b;              /* bit buffer */
-  uInt k;               /* bits in bit buffer */
-  Bytef *p;             /* input data pointer */
-  uInt n;               /* bytes available there */
-  Bytef *q;             /* output window write pointer */
-  uInt m;               /* bytes to end of window or read pointer */
-
-  /* copy input/output information to locals (UPDATE macro restores) */
-  LOAD
-
-  /* process input based on current state */
-  while (1) switch (s->mode)
-  {
-    case TYPE:
-      NEEDBITS(3)
-      t = (uInt)b & 7;
-      s->last = t & 1;
-      switch (t >> 1)
-      {
-        case 0:                         /* stored */
-          Tracev((stderr, "inflate:     stored block%s\n",
-                 s->last ? " (last)" : ""));
-          DUMPBITS(3)
-          t = k & 7;                    /* go to byte boundary */
-          DUMPBITS(t)
-          s->mode = LENS;               /* get length of stored block */
-          break;
-        case 1:                         /* fixed */
-          Tracev((stderr, "inflate:     fixed codes block%s\n",
-                 s->last ? " (last)" : ""));
-          {
-            uInt bl, bd;
-            inflate_huft *tl, *td;
-
-            inflate_trees_fixed(&bl, &bd, (const inflate_huft**)&tl,
-                                          (const inflate_huft**)&td, z);
-            s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z);
-            if (s->sub.decode.codes == Z_NULL)
-            {
-              r = Z_MEM_ERROR;
-              LEAVE
-            }
-          }
-          DUMPBITS(3)
-          s->mode = CODES;
-          break;
-        case 2:                         /* dynamic */
-          Tracev((stderr, "inflate:     dynamic codes block%s\n",
-                 s->last ? " (last)" : ""));
-          DUMPBITS(3)
-          s->mode = TABLE;
-          break;
-        case 3:                         /* illegal */
-          DUMPBITS(3)
-          s->mode = BAD;
-          z->msg = (char*)"invalid block type";
-          r = Z_DATA_ERROR;
-          LEAVE
-      }
-      break;
-    case LENS:
-      NEEDBITS(32)
-      if ((((~b) >> 16) & 0xffff) != (b & 0xffff))
-      {
-        s->mode = BAD;
-        z->msg = (char*)"invalid stored block lengths";
-        r = Z_DATA_ERROR;
-        LEAVE
-      }
-      s->sub.left = (uInt)b & 0xffff;
-      b = k = 0;                      /* dump bits */
-      Tracev((stderr, "inflate:       stored length %u\n", s->sub.left));
-      s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE);
-      break;
-    case STORED:
-      if (n == 0)
-        LEAVE
-      NEEDOUT
-      t = s->sub.left;
-      if (t > n) t = n;
-      if (t > m) t = m;
-      zmemcpy(q, p, t);
-      p += t;  n -= t;
-      q += t;  m -= t;
-      if ((s->sub.left -= t) != 0)
-        break;
-      Tracev((stderr, "inflate:       stored end, %lu total out\n",
-              z->total_out + (q >= s->read ? q - s->read :
-              (s->end - s->read) + (q - s->window))));
-      s->mode = s->last ? DRY : TYPE;
-      break;
-    case TABLE:
-      NEEDBITS(14)
-      s->sub.trees.table = t = (uInt)b & 0x3fff;
-#ifndef PKZIP_BUG_WORKAROUND
-      if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29)
-      {
-        s->mode = BAD;
-        z->msg = (char*)"too many length or distance symbols";
-        r = Z_DATA_ERROR;
-        LEAVE
-      }
-#endif
-      t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f);
-      if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL)
-      {
-        r = Z_MEM_ERROR;
-        LEAVE
-      }
-      DUMPBITS(14)
-      s->sub.trees.index = 0;
-      Tracev((stderr, "inflate:       table sizes ok\n"));
-      s->mode = BTREE;
-    case BTREE:
-      while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10))
-      {
-        NEEDBITS(3)
-        s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7;
-        DUMPBITS(3)
-      }
-      while (s->sub.trees.index < 19)
-        s->sub.trees.blens[border[s->sub.trees.index++]] = 0;
-      s->sub.trees.bb = 7;
-      t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb,
-                             &s->sub.trees.tb, s->hufts, z);
-      if (t != Z_OK)
-      {
-        r = t;
-        if (r == Z_DATA_ERROR)
-        {
-          ZFREE(z, s->sub.trees.blens);
-          s->mode = BAD;
-        }
-        LEAVE
-      }
-      s->sub.trees.index = 0;
-      Tracev((stderr, "inflate:       bits tree ok\n"));
-      s->mode = DTREE;
-    case DTREE:
-      while (t = s->sub.trees.table,
-             s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f))
-      {
-        inflate_huft *h;
-        uInt i, j, c;
-
-        t = s->sub.trees.bb;
-        NEEDBITS(t)
-        h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]);
-        t = h->bits;
-        c = h->base;
-        if (c < 16)
-        {
-          DUMPBITS(t)
-          s->sub.trees.blens[s->sub.trees.index++] = c;
-        }
-        else /* c == 16..18 */
-        {
-          i = c == 18 ? 7 : c - 14;
-          j = c == 18 ? 11 : 3;
-          NEEDBITS(t + i)
-          DUMPBITS(t)
-          j += (uInt)b & inflate_mask[i];
-          DUMPBITS(i)
-          i = s->sub.trees.index;
-          t = s->sub.trees.table;
-          if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) ||
-              (c == 16 && i < 1))
-          {
-            ZFREE(z, s->sub.trees.blens);
-            s->mode = BAD;
-            z->msg = (char*)"invalid bit length repeat";
-            r = Z_DATA_ERROR;
-            LEAVE
-          }
-          c = c == 16 ? s->sub.trees.blens[i - 1] : 0;
-          do {
-            s->sub.trees.blens[i++] = c;
-          } while (--j);
-          s->sub.trees.index = i;
-        }
-      }
-      s->sub.trees.tb = Z_NULL;
-      {
-        uInt bl, bd;
-        inflate_huft *tl, *td;
-        inflate_codes_statef *c;
-
-        bl = 9;         /* must be <= 9 for lookahead assumptions */
-        bd = 6;         /* must be <= 9 for lookahead assumptions */
-        t = s->sub.trees.table;
-        t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f),
-                                  s->sub.trees.blens, &bl, &bd, &tl, &td,
-                                  s->hufts, z);
-        if (t != Z_OK)
-        {
-          if (t == (uInt)Z_DATA_ERROR)
-          {
-            ZFREE(z, s->sub.trees.blens);
-            s->mode = BAD;
-          }
-          r = t;
-          LEAVE
-        }
-        Tracev((stderr, "inflate:       trees ok\n"));
-        if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL)
-        {
-          r = Z_MEM_ERROR;
-          LEAVE
-        }
-        s->sub.decode.codes = c;
-      }
-      ZFREE(z, s->sub.trees.blens);
-      s->mode = CODES;
-    case CODES:
-      UPDATE
-      if ((r = inflate_codes(s, z, r)) != Z_STREAM_END)
-        return inflate_flush(s, z, r);
-      r = Z_OK;
-      inflate_codes_free(s->sub.decode.codes, z);
-      LOAD
-      Tracev((stderr, "inflate:       codes end, %lu total out\n",
-              z->total_out + (q >= s->read ? q - s->read :
-              (s->end - s->read) + (q - s->window))));
-      if (!s->last)
-      {
-        s->mode = TYPE;
-        break;
-      }
-      s->mode = DRY;
-    case DRY:
-      FLUSH
-      if (s->read != s->write)
-        LEAVE
-      s->mode = DONE;
-    case DONE:
-      r = Z_STREAM_END;
-      LEAVE
-    case BAD:
-      r = Z_DATA_ERROR;
-      LEAVE
-    default:
-      r = Z_STREAM_ERROR;
-      LEAVE
-  }
-#ifdef NEED_DUMMY_RETURN
-  return 0;
-#endif
-}
-
-
-local int inflate_blocks_free( /* s, z) */
-inflate_blocks_statef *s,
-z_streamp z )
-{
-  inflate_blocks_reset(s, z, Z_NULL);
-  ZFREE(z, s->window);
-  ZFREE(z, s->hufts);
-  ZFREE(z, s);
-  Tracev((stderr, "inflate:   blocks freed\n"));
-  return Z_OK;
-}
-
-
diff --git a/nx-X11/extras/freetype2/src/gzip/infblock.h b/nx-X11/extras/freetype2/src/gzip/infblock.h
deleted file mode 100644
index c2535a1e4..000000000
--- a/nx-X11/extras/freetype2/src/gzip/infblock.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* infblock.h -- header to use infblock.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-#ifndef _INFBLOCK_H
-#define _INFBLOCK_H
-
-struct inflate_blocks_state;
-typedef struct inflate_blocks_state FAR inflate_blocks_statef;
-
-local  inflate_blocks_statef * inflate_blocks_new OF((
-    z_streamp z,
-    check_func c,               /* check function */
-    uInt w));                   /* window size */
-
-local  int inflate_blocks OF((
-    inflate_blocks_statef *,
-    z_streamp ,
-    int));                      /* initial return code */
-
-local  void inflate_blocks_reset OF((
-    inflate_blocks_statef *,
-    z_streamp ,
-    uLongf *));                  /* check value on output */
-
-local  int inflate_blocks_free OF((
-    inflate_blocks_statef *,
-    z_streamp));
-
-#endif /* _INFBLOCK_H */
diff --git a/nx-X11/extras/freetype2/src/gzip/infcodes.c b/nx-X11/extras/freetype2/src/gzip/infcodes.c
deleted file mode 100644
index f7bfd58c4..000000000
--- a/nx-X11/extras/freetype2/src/gzip/infcodes.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/* infcodes.c -- process literals and length/distance pairs
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-#include "infblock.h"
-#include "infcodes.h"
-#include "infutil.h"
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-typedef enum {        /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
-      START,    /* x: set up for LEN */
-      LEN,      /* i: get length/literal/eob next */
-      LENEXT,   /* i: getting length extra (have base) */
-      DIST,     /* i: get distance next */
-      DISTEXT,  /* i: getting distance extra */
-      COPY,     /* o: copying bytes in window, waiting for space */
-      LIT,      /* o: got literal, waiting for output space */
-      WASH,     /* o: got eob, possibly still output waiting */
-      END,      /* x: got eob and all data flushed */
-      BADCODE}  /* x: got error */
-inflate_codes_mode;
-
-/* inflate codes private state */
-struct inflate_codes_state {
-
-  /* mode */
-  inflate_codes_mode mode;      /* current inflate_codes mode */
-
-  /* mode dependent information */
-  uInt len;
-  union {
-    struct {
-      inflate_huft *tree;       /* pointer into tree */
-      uInt need;                /* bits needed */
-    } code;             /* if LEN or DIST, where in tree */
-    uInt lit;           /* if LIT, literal */
-    struct {
-      uInt get;                 /* bits to get for extra */
-      uInt dist;                /* distance back to copy from */
-    } copy;             /* if EXT or COPY, where and how much */
-  } sub;                /* submode */
-
-  /* mode independent information */
-  Byte lbits;           /* ltree bits decoded per branch */
-  Byte dbits;           /* dtree bits decoder per branch */
-  inflate_huft *ltree;          /* literal/length/eob tree */
-  inflate_huft *dtree;          /* distance tree */
-
-};
-
-
-local inflate_codes_statef *inflate_codes_new( /* bl, bd, tl, td, z) */
-uInt bl, uInt bd,
-inflate_huft *tl,
-inflate_huft *td, /* need separate declaration for Borland C++ */
-z_streamp z )
-{
-  inflate_codes_statef *c;
-
-  if ((c = (inflate_codes_statef *)
-       ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL)
-  {
-    c->mode = START;
-    c->lbits = (Byte)bl;
-    c->dbits = (Byte)bd;
-    c->ltree = tl;
-    c->dtree = td;
-    Tracev((stderr, "inflate:       codes new\n"));
-  }
-  return c;
-}
-
-
-local int inflate_codes( /* s, z, r) */
-inflate_blocks_statef *s,
-z_streamp z,
-int r )
-{
-  uInt j;               /* temporary storage */
-  inflate_huft *t;      /* temporary pointer */
-  uInt e;               /* extra bits or operation */
-  uLong b;              /* bit buffer */
-  uInt k;               /* bits in bit buffer */
-  Bytef *p;             /* input data pointer */
-  uInt n;               /* bytes available there */
-  Bytef *q;             /* output window write pointer */
-  uInt m;               /* bytes to end of window or read pointer */
-  Bytef *f;             /* pointer to copy strings from */
-  inflate_codes_statef *c = s->sub.decode.codes;  /* codes state */
-
-  /* copy input/output information to locals (UPDATE macro restores) */
-  LOAD
-
-  /* process input and output based on current state */
-  while (1) switch (c->mode)
-  {             /* waiting for "i:"=input, "o:"=output, "x:"=nothing */
-    case START:         /* x: set up for LEN */
-#ifndef SLOW
-      if (m >= 258 && n >= 10)
-      {
-        UPDATE
-        r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z);
-        LOAD
-        if (r != Z_OK)
-        {
-          c->mode = r == Z_STREAM_END ? WASH : BADCODE;
-          break;
-        }
-      }
-#endif /* !SLOW */
-      c->sub.code.need = c->lbits;
-      c->sub.code.tree = c->ltree;
-      c->mode = LEN;
-    case LEN:           /* i: get length/literal/eob next */
-      j = c->sub.code.need;
-      NEEDBITS(j)
-      t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
-      DUMPBITS(t->bits)
-      e = (uInt)(t->exop);
-      if (e == 0)               /* literal */
-      {
-        c->sub.lit = t->base;
-        Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ?
-                 "inflate:         literal '%c'\n" :
-                 "inflate:         literal 0x%02x\n", t->base));
-        c->mode = LIT;
-        break;
-      }
-      if (e & 16)               /* length */
-      {
-        c->sub.copy.get = e & 15;
-        c->len = t->base;
-        c->mode = LENEXT;
-        break;
-      }
-      if ((e & 64) == 0)        /* next table */
-      {
-        c->sub.code.need = e;
-        c->sub.code.tree = t + t->base;
-        break;
-      }
-      if (e & 32)               /* end of block */
-      {
-        Tracevv((stderr, "inflate:         end of block\n"));
-        c->mode = WASH;
-        break;
-      }
-      c->mode = BADCODE;        /* invalid code */
-      z->msg = (char*)"invalid literal/length code";
-      r = Z_DATA_ERROR;
-      LEAVE
-    case LENEXT:        /* i: getting length extra (have base) */
-      j = c->sub.copy.get;
-      NEEDBITS(j)
-      c->len += (uInt)b & inflate_mask[j];
-      DUMPBITS(j)
-      c->sub.code.need = c->dbits;
-      c->sub.code.tree = c->dtree;
-      Tracevv((stderr, "inflate:         length %u\n", c->len));
-      c->mode = DIST;
-    case DIST:          /* i: get distance next */
-      j = c->sub.code.need;
-      NEEDBITS(j)
-      t = c->sub.code.tree + ((uInt)b & inflate_mask[j]);
-      DUMPBITS(t->bits)
-      e = (uInt)(t->exop);
-      if (e & 16)               /* distance */
-      {
-        c->sub.copy.get = e & 15;
-        c->sub.copy.dist = t->base;
-        c->mode = DISTEXT;
-        break;
-      }
-      if ((e & 64) == 0)        /* next table */
-      {
-        c->sub.code.need = e;
-        c->sub.code.tree = t + t->base;
-        break;
-      }
-      c->mode = BADCODE;        /* invalid code */
-      z->msg = (char*)"invalid distance code";
-      r = Z_DATA_ERROR;
-      LEAVE
-    case DISTEXT:       /* i: getting distance extra */
-      j = c->sub.copy.get;
-      NEEDBITS(j)
-      c->sub.copy.dist += (uInt)b & inflate_mask[j];
-      DUMPBITS(j)
-      Tracevv((stderr, "inflate:         distance %u\n", c->sub.copy.dist));
-      c->mode = COPY;
-    case COPY:          /* o: copying bytes in window, waiting for space */
-      f = q - c->sub.copy.dist;
-      while (f < s->window)             /* modulo window size-"while" instead */
-        f += s->end - s->window;        /* of "if" handles invalid distances */
-      while (c->len)
-      {
-        NEEDOUT
-        OUTBYTE(*f++)
-        if (f == s->end)
-          f = s->window;
-        c->len--;
-      }
-      c->mode = START;
-      break;
-    case LIT:           /* o: got literal, waiting for output space */
-      NEEDOUT
-      OUTBYTE(c->sub.lit)
-      c->mode = START;
-      break;
-    case WASH:          /* o: got eob, possibly more output */
-      if (k > 7)        /* return unused byte, if any */
-      {
-        Assert(k < 16, "inflate_codes grabbed too many bytes")
-        k -= 8;
-        n++;
-        p--;            /* can always return one */
-      }
-      FLUSH
-      if (s->read != s->write)
-        LEAVE
-      c->mode = END;
-    case END:
-      r = Z_STREAM_END;
-      LEAVE
-    case BADCODE:       /* x: got error */
-      r = Z_DATA_ERROR;
-      LEAVE
-    default:
-      r = Z_STREAM_ERROR;
-      LEAVE
-  }
-#ifdef NEED_DUMMY_RETURN
-  return Z_STREAM_ERROR;  /* Some dumb compilers complain without this */
-#endif
-}
-
-
-local void inflate_codes_free( /* c, z) */
-inflate_codes_statef *c,
-z_streamp z )
-{
-  ZFREE(z, c);
-  Tracev((stderr, "inflate:       codes free\n"));
-}
diff --git a/nx-X11/extras/freetype2/src/gzip/infcodes.h b/nx-X11/extras/freetype2/src/gzip/infcodes.h
deleted file mode 100644
index 154d7f896..000000000
--- a/nx-X11/extras/freetype2/src/gzip/infcodes.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* infcodes.h -- header to use infcodes.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-#ifndef _INFCODES_H
-#define _INFCODES_H
-
-struct inflate_codes_state;
-typedef struct inflate_codes_state FAR inflate_codes_statef;
-
-local inflate_codes_statef *inflate_codes_new OF((
-    uInt, uInt,
-    inflate_huft *, inflate_huft *,
-    z_streamp ));
-
-local int inflate_codes OF((
-    inflate_blocks_statef *,
-    z_streamp ,
-    int));
-
-local void inflate_codes_free OF((
-    inflate_codes_statef *,
-    z_streamp ));
-
-#endif /* _INFCODES_H */
diff --git a/nx-X11/extras/freetype2/src/gzip/inffixed.h b/nx-X11/extras/freetype2/src/gzip/inffixed.h
deleted file mode 100644
index 4d4760ea0..000000000
--- a/nx-X11/extras/freetype2/src/gzip/inffixed.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* inffixed.h -- table for decoding fixed codes
- * Generated automatically by the maketree.c program
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-local const uInt fixed_bl = 9;
-local const uInt fixed_bd = 5;
-local const inflate_huft fixed_tl[] = {
-    {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115},
-    {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},192},
-    {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},160},
-    {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},224},
-    {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},144},
-    {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},208},
-    {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},176},
-    {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},240},
-    {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227},
-    {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},200},
-    {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},168},
-    {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},232},
-    {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},152},
-    {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},216},
-    {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},184},
-    {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},248},
-    {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163},
-    {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},196},
-    {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},164},
-    {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},228},
-    {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},148},
-    {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},212},
-    {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},180},
-    {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},244},
-    {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0},
-    {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},204},
-    {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},172},
-    {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},236},
-    {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},156},
-    {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},220},
-    {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},188},
-    {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},252},
-    {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131},
-    {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},194},
-    {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},162},
-    {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},226},
-    {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},146},
-    {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},210},
-    {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},178},
-    {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},242},
-    {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258},
-    {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},202},
-    {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},170},
-    {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},234},
-    {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},154},
-    {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},218},
-    {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},186},
-    {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},250},
-    {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195},
-    {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},198},
-    {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},166},
-    {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},230},
-    {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},150},
-    {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},214},
-    {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},182},
-    {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},246},
-    {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0},
-    {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},206},
-    {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},174},
-    {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},238},
-    {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},158},
-    {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},222},
-    {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},190},
-    {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},254},
-    {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115},
-    {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},193},
-    {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},161},
-    {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},225},
-    {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},145},
-    {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},209},
-    {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},177},
-    {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},241},
-    {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227},
-    {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},201},
-    {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},169},
-    {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},233},
-    {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},153},
-    {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},217},
-    {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},185},
-    {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},249},
-    {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163},
-    {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},197},
-    {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},165},
-    {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},229},
-    {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},149},
-    {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},213},
-    {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},181},
-    {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},245},
-    {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0},
-    {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},205},
-    {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},173},
-    {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},237},
-    {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},157},
-    {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},221},
-    {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},189},
-    {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},253},
-    {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131},
-    {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},195},
-    {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},163},
-    {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},227},
-    {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},147},
-    {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},211},
-    {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},179},
-    {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},243},
-    {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258},
-    {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},203},
-    {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},171},
-    {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},235},
-    {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},155},
-    {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},219},
-    {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},187},
-    {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},251},
-    {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195},
-    {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},199},
-    {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},167},
-    {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},231},
-    {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},151},
-    {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},215},
-    {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},183},
-    {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},247},
-    {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0},
-    {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},207},
-    {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},175},
-    {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},239},
-    {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},159},
-    {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},223},
-    {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},191},
-    {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},255}
-  };
-local const inflate_huft fixed_td[] = {
-    {{{80,5}},1}, {{{87,5}},257}, {{{83,5}},17}, {{{91,5}},4097},
-    {{{81,5}},5}, {{{89,5}},1025}, {{{85,5}},65}, {{{93,5}},16385},
-    {{{80,5}},3}, {{{88,5}},513}, {{{84,5}},33}, {{{92,5}},8193},
-    {{{82,5}},9}, {{{90,5}},2049}, {{{86,5}},129}, {{{192,5}},24577},
-    {{{80,5}},2}, {{{87,5}},385}, {{{83,5}},25}, {{{91,5}},6145},
-    {{{81,5}},7}, {{{89,5}},1537}, {{{85,5}},97}, {{{93,5}},24577},
-    {{{80,5}},4}, {{{88,5}},769}, {{{84,5}},49}, {{{92,5}},12289},
-    {{{82,5}},13}, {{{90,5}},3073}, {{{86,5}},193}, {{{192,5}},24577}
-  };
diff --git a/nx-X11/extras/freetype2/src/gzip/inflate.c b/nx-X11/extras/freetype2/src/gzip/inflate.c
deleted file mode 100644
index 8877fa3eb..000000000
--- a/nx-X11/extras/freetype2/src/gzip/inflate.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/* inflate.c -- zlib interface to inflate modules
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "infblock.h"
-
-#define  DONE  INFLATE_DONE
-#define  BAD   INFLATE_BAD
-
-typedef enum {
-      METHOD,   /* waiting for method byte */
-      FLAG,     /* waiting for flag byte */
-      DICT4,    /* four dictionary check bytes to go */
-      DICT3,    /* three dictionary check bytes to go */
-      DICT2,    /* two dictionary check bytes to go */
-      DICT1,    /* one dictionary check byte to go */
-      DICT0,    /* waiting for inflateSetDictionary */
-      BLOCKS,   /* decompressing blocks */
-      CHECK4,   /* four check bytes to go */
-      CHECK3,   /* three check bytes to go */
-      CHECK2,   /* two check bytes to go */
-      CHECK1,   /* one check byte to go */
-      DONE,     /* finished check, done */
-      BAD}      /* got an error--stay here */
-inflate_mode;
-
-/* inflate private state */
-struct internal_state {
-
-  /* mode */
-  inflate_mode  mode;   /* current inflate mode */
-
-  /* mode dependent information */
-  union {
-    uInt method;        /* if FLAGS, method byte */
-    struct {
-      uLong was;                /* computed check value */
-      uLong need;               /* stream check value */
-    } check;            /* if CHECK, check values to compare */
-    uInt marker;        /* if BAD, inflateSync's marker bytes count */
-  } sub;        /* submode */
-
-  /* mode independent information */
-  int  nowrap;          /* flag for no wrapper */
-  uInt wbits;           /* log2(window size)  (8..15, defaults to 15) */
-  inflate_blocks_statef
-    *blocks;            /* current inflate_blocks state */
-
-};
-
-
-ZEXPORT(int) inflateReset( /* z) */
-z_streamp z )
-{
-  if (z == Z_NULL || z->state == Z_NULL)
-    return Z_STREAM_ERROR;
-  z->total_in = z->total_out = 0;
-  z->msg = Z_NULL;
-  z->state->mode = z->state->nowrap ? BLOCKS : METHOD;
-  inflate_blocks_reset(z->state->blocks, z, Z_NULL);
-  Tracev((stderr, "inflate: reset\n"));
-  return Z_OK;
-}
-
-
-ZEXPORT(int) inflateEnd( /* z) */
-z_streamp z )
-{
-  if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL)
-    return Z_STREAM_ERROR;
-  if (z->state->blocks != Z_NULL)
-    inflate_blocks_free(z->state->blocks, z);
-  ZFREE(z, z->state);
-  z->state = Z_NULL;
-  Tracev((stderr, "inflate: end\n"));
-  return Z_OK;
-}
-
-
-ZEXPORT(int) inflateInit2_( /* z, w, version, stream_size) */
-z_streamp z,
-int w,
-const char *version,
-int stream_size )
-{
-  if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
-      stream_size != sizeof(z_stream))
-      return Z_VERSION_ERROR;
-
-  /* initialize state */
-  if (z == Z_NULL)
-    return Z_STREAM_ERROR;
-  z->msg = Z_NULL;
-  if (z->zalloc == Z_NULL)
-  {
-    z->zalloc = zcalloc;
-    z->opaque = (voidpf)0;
-  }
-  if (z->zfree == Z_NULL) z->zfree = zcfree;
-  if ((z->state = (struct internal_state FAR *)
-       ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL)
-    return Z_MEM_ERROR;
-  z->state->blocks = Z_NULL;
-
-  /* handle undocumented nowrap option (no zlib header or check) */
-  z->state->nowrap = 0;
-  if (w < 0)
-  {
-    w = - w;
-    z->state->nowrap = 1;
-  }
-
-  /* set window size */
-  if (w < 8 || w > 15)
-  {
-    inflateEnd(z);
-    return Z_STREAM_ERROR;
-  }
-  z->state->wbits = (uInt)w;
-
-  /* create inflate_blocks state */
-  if ((z->state->blocks =
-      inflate_blocks_new(z, z->state->nowrap ? Z_NULL : adler32, (uInt)1 << w))
-      == Z_NULL)
-  {
-    inflateEnd(z);
-    return Z_MEM_ERROR;
-  }
-  Tracev((stderr, "inflate: allocated\n"));
-
-  /* reset state */
-  inflateReset(z);
-  return Z_OK;
-}
-
-
-
-#undef  NEEDBYTE
-#define NEEDBYTE {if(z->avail_in==0)return r;r=f;}
-
-#undef  NEXTBYTE
-#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++)
-
-
-ZEXPORT(int) inflate( /* z, f) */
-z_streamp z,
-int f )
-{
-  int r;
-  uInt b;
-
-  if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL)
-    return Z_STREAM_ERROR;
-  f = f == Z_FINISH ? Z_BUF_ERROR : Z_OK;
-  r = Z_BUF_ERROR;
-  while (1) switch (z->state->mode)
-  {
-    case METHOD:
-      NEEDBYTE
-      if (((z->state->sub.method = NEXTBYTE) & 0xf) != Z_DEFLATED)
-      {
-        z->state->mode = BAD;
-        z->msg = (char*)"unknown compression method";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      if ((z->state->sub.method >> 4) + 8 > z->state->wbits)
-      {
-        z->state->mode = BAD;
-        z->msg = (char*)"invalid window size";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      z->state->mode = FLAG;
-    case FLAG:
-      NEEDBYTE
-      b = NEXTBYTE;
-      if (((z->state->sub.method << 8) + b) % 31)
-      {
-        z->state->mode = BAD;
-        z->msg = (char*)"incorrect header check";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      Tracev((stderr, "inflate: zlib header ok\n"));
-      if (!(b & PRESET_DICT))
-      {
-        z->state->mode = BLOCKS;
-        break;
-      }
-      z->state->mode = DICT4;
-    case DICT4:
-      NEEDBYTE
-      z->state->sub.check.need = (uLong)NEXTBYTE << 24;
-      z->state->mode = DICT3;
-    case DICT3:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE << 16;
-      z->state->mode = DICT2;
-    case DICT2:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE << 8;
-      z->state->mode = DICT1;
-    case DICT1:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE;
-      z->adler = z->state->sub.check.need;
-      z->state->mode = DICT0;
-      return Z_NEED_DICT;
-    case DICT0:
-      z->state->mode = BAD;
-      z->msg = (char*)"need dictionary";
-      z->state->sub.marker = 0;       /* can try inflateSync */
-      return Z_STREAM_ERROR;
-    case BLOCKS:
-      r = inflate_blocks(z->state->blocks, z, r);
-      if (r == Z_DATA_ERROR)
-      {
-        z->state->mode = BAD;
-        z->state->sub.marker = 0;       /* can try inflateSync */
-        break;
-      }
-      if (r == Z_OK)
-        r = f;
-      if (r != Z_STREAM_END)
-        return r;
-      r = f;
-      inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was);
-      if (z->state->nowrap)
-      {
-        z->state->mode = DONE;
-        break;
-      }
-      z->state->mode = CHECK4;
-    case CHECK4:
-      NEEDBYTE
-      z->state->sub.check.need = (uLong)NEXTBYTE << 24;
-      z->state->mode = CHECK3;
-    case CHECK3:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE << 16;
-      z->state->mode = CHECK2;
-    case CHECK2:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE << 8;
-      z->state->mode = CHECK1;
-    case CHECK1:
-      NEEDBYTE
-      z->state->sub.check.need += (uLong)NEXTBYTE;
-
-      if (z->state->sub.check.was != z->state->sub.check.need)
-      {
-        z->state->mode = BAD;
-        z->msg = (char*)"incorrect data check";
-        z->state->sub.marker = 5;       /* can't try inflateSync */
-        break;
-      }
-      Tracev((stderr, "inflate: zlib check ok\n"));
-      z->state->mode = DONE;
-    case DONE:
-      return Z_STREAM_END;
-    case BAD:
-      return Z_DATA_ERROR;
-    default:
-      return Z_STREAM_ERROR;
-  }
-#ifdef NEED_DUMMY_RETURN
-  return Z_STREAM_ERROR;  /* Some dumb compilers complain without this */
-#endif
-}
-
diff --git a/nx-X11/extras/freetype2/src/gzip/inftrees.c b/nx-X11/extras/freetype2/src/gzip/inftrees.c
deleted file mode 100644
index 9002bf5b8..000000000
--- a/nx-X11/extras/freetype2/src/gzip/inftrees.c
+++ /dev/null
@@ -1,462 +0,0 @@
-/* inftrees.c -- generate Huffman trees for efficient decoding
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "inftrees.h"
-
-#if !defined(BUILDFIXED) && !defined(STDC)
-#  define BUILDFIXED   /* non ANSI compilers may not accept inffixed.h */
-#endif
-
-
-#if 0
-local const char inflate_copyright[] =
-   " inflate 1.1.4 Copyright 1995-2002 Mark Adler ";
-#endif
-/*
-  If you use the zlib library in a product, an acknowledgment is welcome
-  in the documentation of your product. If for some reason you cannot
-  include such an acknowledgment, I would appreciate that you keep this
-  copyright string in the executable of your product.
- */
-
-/* simplify the use of the inflate_huft type with some defines */
-#define exop word.what.Exop
-#define bits word.what.Bits
-
-
-local int huft_build OF((
-    uIntf *,            /* code lengths in bits */
-    uInt,               /* number of codes */
-    uInt,               /* number of "simple" codes */
-    const uIntf *,      /* list of base values for non-simple codes */
-    const uIntf *,      /* list of extra bits for non-simple codes */
-    inflate_huft * FAR*,/* result: starting table */
-    uIntf *,            /* maximum lookup bits (returns actual) */
-    inflate_huft *,     /* space for trees */
-    uInt *,             /* hufts used in space */
-    uIntf * ));         /* space for values */
-
-/* Tables for deflate from PKZIP's appnote.txt. */
-local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */
-        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
-        /* see note #13 above about 258 */
-local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */
-        0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
-        3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */
-local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */
-        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-        8193, 12289, 16385, 24577};
-local const uInt cpdext[30] = { /* Extra bits for distance codes */
-        0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
-        7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
-        12, 12, 13, 13};
-
-/*
-   Huffman code decoding is performed using a multi-level table lookup.
-   The fastest way to decode is to simply build a lookup table whose
-   size is determined by the longest code.  However, the time it takes
-   to build this table can also be a factor if the data being decoded
-   is not very long.  The most common codes are necessarily the
-   shortest codes, so those codes dominate the decoding time, and hence
-   the speed.  The idea is you can have a shorter table that decodes the
-   shorter, more probable codes, and then point to subsidiary tables for
-   the longer codes.  The time it costs to decode the longer codes is
-   then traded against the time it takes to make longer tables.
-
-   This results of this trade are in the variables lbits and dbits
-   below.  lbits is the number of bits the first level table for literal/
-   length codes can decode in one step, and dbits is the same thing for
-   the distance codes.  Subsequent tables are also less than or equal to
-   those sizes.  These values may be adjusted either when all of the
-   codes are shorter than that, in which case the longest code length in
-   bits is used, or when the shortest code is *longer* than the requested
-   table size, in which case the length of the shortest code in bits is
-   used.
-
-   There are two different values for the two tables, since they code a
-   different number of possibilities each.  The literal/length table
-   codes 286 possible values, or in a flat code, a little over eight
-   bits.  The distance table codes 30 possible values, or a little less
-   than five bits, flat.  The optimum values for speed end up being
-   about one bit more than those, so lbits is 8+1 and dbits is 5+1.
-   The optimum values may differ though from machine to machine, and
-   possibly even between compilers.  Your mileage may vary.
- */
-
-
-/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */
-#define BMAX 15         /* maximum bit length of any code */
-
-local int huft_build( /* b, n, s, d, e, t, m, hp, hn, v) */
-uIntf *b,               /* code lengths in bits (all assumed <= BMAX) */
-uInt n,                 /* number of codes (assumed <= 288) */
-uInt s,                 /* number of simple-valued codes (0..s-1) */
-const uIntf *d,         /* list of base values for non-simple codes */
-const uIntf *e,         /* list of extra bits for non-simple codes */
-inflate_huft * FAR *t,  /* result: starting table */
-uIntf *m,               /* maximum lookup bits, returns actual */
-inflate_huft *hp,       /* space for trees */
-uInt *hn,               /* hufts used in space */
-uIntf *v                /* working area: values in order of bit length */
-/* Given a list of code lengths and a maximum table size, make a set of
-   tables to decode that set of codes.  Return Z_OK on success, Z_BUF_ERROR
-   if the given code set is incomplete (the tables are still built in this
-   case), or Z_DATA_ERROR if the input is invalid. */
-)
-{
-
-  uInt a;                       /* counter for codes of length k */
-  uInt c[BMAX+1];               /* bit length count table */
-  uInt f;                       /* i repeats in table every f entries */
-  int g;                        /* maximum code length */
-  int h;                        /* table level */
-  register uInt i;              /* counter, current code */
-  register uInt j;              /* counter */
-  register int k;               /* number of bits in current code */
-  int l;                        /* bits per table (returned in m) */
-  uInt mask;                    /* (1 << w) - 1, to avoid cc -O bug on HP */
-  register uIntf *p;            /* pointer into c[], b[], or v[] */
-  inflate_huft *q;              /* points to current table */
-  struct inflate_huft_s r;      /* table entry for structure assignment */
-  inflate_huft *u[BMAX];        /* table stack */
-  register int w;               /* bits before this table == (l * h) */
-  uInt x[BMAX+1];               /* bit offsets, then code stack */
-  uIntf *xp;                    /* pointer into x */
-  int y;                        /* number of dummy codes added */
-  uInt z;                       /* number of entries in current table */
-
-
-  /* Generate counts for each bit length */
-  p = c;
-#define C0 *p++ = 0;
-#define C2 C0 C0 C0 C0
-#define C4 C2 C2 C2 C2
-  C4                            /* clear c[]--assume BMAX+1 is 16 */
-  p = b;  i = n;
-  do {
-    c[*p++]++;                  /* assume all entries <= BMAX */
-  } while (--i);
-  if (c[0] == n)                /* null input--all zero length codes */
-  {
-    *t = (inflate_huft *)Z_NULL;
-    *m = 0;
-    return Z_OK;
-  }
-
-
-  /* Find minimum and maximum length, bound *m by those */
-  l = *m;
-  for (j = 1; j <= BMAX; j++)
-    if (c[j])
-      break;
-  k = j;                        /* minimum code length */
-  if ((uInt)l < j)
-    l = j;
-  for (i = BMAX; i; i--)
-    if (c[i])
-      break;
-  g = i;                        /* maximum code length */
-  if ((uInt)l > i)
-    l = i;
-  *m = l;
-
-
-  /* Adjust last length count to fill out codes, if needed */
-  for (y = 1 << j; j < i; j++, y <<= 1)
-    if ((y -= c[j]) < 0)
-      return Z_DATA_ERROR;
-  if ((y -= c[i]) < 0)
-    return Z_DATA_ERROR;
-  c[i] += y;
-
-
-  /* Generate starting offsets into the value table for each length */
-  x[1] = j = 0;
-  p = c + 1;  xp = x + 2;
-  while (--i) {                 /* note that i == g from above */
-    *xp++ = (j += *p++);
-  }
-
-
-  /* Make a table of values in order of bit lengths */
-  p = b;  i = 0;
-  do {
-    if ((j = *p++) != 0)
-      v[x[j]++] = i;
-  } while (++i < n);
-  n = x[g];                     /* set n to length of v */
-
-
-  /* Generate the Huffman codes and for each, make the table entries */
-  x[0] = i = 0;                 /* first Huffman code is zero */
-  p = v;                        /* grab values in bit order */
-  h = -1;                       /* no tables yet--level -1 */
-  w = -l;                       /* bits decoded == (l * h) */
-  u[0] = (inflate_huft *)Z_NULL;        /* just to keep compilers happy */
-  q = (inflate_huft *)Z_NULL;   /* ditto */
-  z = 0;                        /* ditto */
-
-  /* go through the bit lengths (k already is bits in shortest code) */
-  for (; k <= g; k++)
-  {
-    a = c[k];
-    while (a--)
-    {
-      /* here i is the Huffman code of length k bits for value *p */
-      /* make tables up to required level */
-      while (k > w + l)
-      {
-        h++;
-        w += l;                 /* previous table always l bits */
-
-        /* compute minimum size table less than or equal to l bits */
-        z = g - w;
-        z = z > (uInt)l ? (uInt)l : z;        /* table size upper limit */
-        if ((f = 1 << (j = k - w)) > a + 1)     /* try a k-w bit table */
-        {                       /* too few codes for k-w bit table */
-          f -= a + 1;           /* deduct codes from patterns left */
-          xp = c + k;
-          if (j < z)
-            while (++j < z)     /* try smaller tables up to z bits */
-            {
-              if ((f <<= 1) <= *++xp)
-                break;          /* enough codes to use up j bits */
-              f -= *xp;         /* else deduct codes from patterns */
-            }
-        }
-        z = 1 << j;             /* table entries for j-bit table */
-
-        /* allocate new table */
-        if (*hn + z > MANY)     /* (note: doesn't matter for fixed) */
-          return Z_DATA_ERROR;  /* overflow of MANY */
-        u[h] = q = hp + *hn;
-        *hn += z;
-
-        /* connect to last table, if there is one */
-        if (h)
-        {
-          x[h] = i;             /* save pattern for backing up */
-          r.bits = (Byte)l;     /* bits to dump before this table */
-          r.exop = (Byte)j;     /* bits in this table */
-          j = i >> (w - l);
-          r.base = (uInt)(q - u[h-1] - j);   /* offset to this table */
-          u[h-1][j] = r;        /* connect to last table */
-        }
-        else
-          *t = q;               /* first table is returned result */
-      }
-
-      /* set up table entry in r */
-      r.bits = (Byte)(k - w);
-      if (p >= v + n)
-        r.exop = 128 + 64;      /* out of values--invalid code */
-      else if (*p < s)
-      {
-        r.exop = (Byte)(*p < 256 ? 0 : 32 + 64);     /* 256 is end-of-block */
-        r.base = *p++;          /* simple code is just the value */
-      }
-      else
-      {
-        r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */
-        r.base = d[*p++ - s];
-      }
-
-      /* fill code-like entries with r */
-      f = 1 << (k - w);
-      for (j = i >> w; j < z; j += f)
-        q[j] = r;
-
-      /* backwards increment the k-bit code i */
-      for (j = 1 << (k - 1); i & j; j >>= 1)
-        i ^= j;
-      i ^= j;
-
-      /* backup over finished tables */
-      mask = (1 << w) - 1;      /* needed on HP, cc -O bug */
-      while ((i & mask) != x[h])
-      {
-        h--;                    /* don't need to update q */
-        w -= l;
-        mask = (1 << w) - 1;
-      }
-    }
-  }
-
-
-  /* Return Z_BUF_ERROR if we were given an incomplete table */
-  return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK;
-}
-
-
-local int inflate_trees_bits( /* c, bb, tb, hp, z) */
-uIntf *c,               /* 19 code lengths */
-uIntf *bb,              /* bits tree desired/actual depth */
-inflate_huft * FAR *tb, /* bits tree result */
-inflate_huft *hp,       /* space for trees */
-z_streamp z             /* for messages */
-)
-{
-  int r;
-  uInt hn = 0;          /* hufts used in space */
-  uIntf *v;             /* work area for huft_build */
-
-  if ((v = (uIntf*)ZALLOC(z, 19, sizeof(uInt))) == Z_NULL)
-    return Z_MEM_ERROR;
-  r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL,
-                 tb, bb, hp, &hn, v);
-  if (r == Z_DATA_ERROR)
-    z->msg = (char*)"oversubscribed dynamic bit lengths tree";
-  else if (r == Z_BUF_ERROR || *bb == 0)
-  {
-    z->msg = (char*)"incomplete dynamic bit lengths tree";
-    r = Z_DATA_ERROR;
-  }
-  ZFREE(z, v);
-  return r;
-}
-
-
-local int inflate_trees_dynamic( /* nl, nd, c, bl, bd, tl, td, hp, z) */
-uInt nl,                /* number of literal/length codes */
-uInt nd,                /* number of distance codes */
-uIntf *c,               /* that many (total) code lengths */
-uIntf *bl,              /* literal desired/actual bit depth */
-uIntf *bd,              /* distance desired/actual bit depth */
-inflate_huft * FAR *tl, /* literal/length tree result */
-inflate_huft * FAR *td, /* distance tree result */
-inflate_huft *hp,       /* space for trees */
-z_streamp z             /* for messages */
-)
-{
-  int r;
-  uInt hn = 0;          /* hufts used in space */
-  uIntf *v;             /* work area for huft_build */
-
-  /* allocate work area */
-  if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL)
-    return Z_MEM_ERROR;
-
-  /* build literal/length tree */
-  r = huft_build(c, nl, 257, cplens, cplext, tl, bl, hp, &hn, v);
-  if (r != Z_OK || *bl == 0)
-  {
-    if (r == Z_DATA_ERROR)
-      z->msg = (char*)"oversubscribed literal/length tree";
-    else if (r != Z_MEM_ERROR)
-    {
-      z->msg = (char*)"incomplete literal/length tree";
-      r = Z_DATA_ERROR;
-    }
-    ZFREE(z, v);
-    return r;
-  }
-
-  /* build distance tree */
-  r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, hp, &hn, v);
-  if (r != Z_OK || (*bd == 0 && nl > 257))
-  {
-    if (r == Z_DATA_ERROR)
-      z->msg = (char*)"oversubscribed distance tree";
-    else if (r == Z_BUF_ERROR) {
-#ifdef PKZIP_BUG_WORKAROUND
-      r = Z_OK;
-    }
-#else
-      z->msg = (char*)"incomplete distance tree";
-      r = Z_DATA_ERROR;
-    }
-    else if (r != Z_MEM_ERROR)
-    {
-      z->msg = (char*)"empty distance tree with lengths";
-      r = Z_DATA_ERROR;
-    }
-    ZFREE(z, v);
-    return r;
-#endif
-  }
-
-  /* done */
-  ZFREE(z, v);
-  return Z_OK;
-}
-
-
-/* build fixed tables only once--keep them here */
-#ifdef BUILDFIXED
-local int fixed_built = 0;
-#define FIXEDH 544      /* number of hufts used by fixed tables */
-local inflate_huft fixed_mem[FIXEDH];
-local uInt fixed_bl;
-local uInt fixed_bd;
-local inflate_huft *fixed_tl;
-local inflate_huft *fixed_td;
-#else
-#include "inffixed.h"
-#endif
-
-
-local int inflate_trees_fixed( /* bl, bd, tl, td, z) */
-uIntf *bl,                      /* literal desired/actual bit depth */
-uIntf *bd,                      /* distance desired/actual bit depth */
-const inflate_huft * FAR *tl,   /* literal/length tree result */
-const inflate_huft * FAR *td,   /* distance tree result */
-z_streamp z                     /* for memory allocation */
-)
-{
-#ifdef BUILDFIXED
-  /* build fixed tables if not already */
-  if (!fixed_built)
-  {
-    int k;              /* temporary variable */
-    uInt f = 0;         /* number of hufts used in fixed_mem */
-    uIntf *c;           /* length list for huft_build */
-    uIntf *v;           /* work area for huft_build */
-
-    /* allocate memory */
-    if ((c = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL)
-      return Z_MEM_ERROR;
-    if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL)
-    {
-      ZFREE(z, c);
-      return Z_MEM_ERROR;
-    }
-
-    /* literal table */
-    for (k = 0; k < 144; k++)
-      c[k] = 8;
-    for (; k < 256; k++)
-      c[k] = 9;
-    for (; k < 280; k++)
-      c[k] = 7;
-    for (; k < 288; k++)
-      c[k] = 8;
-    fixed_bl = 9;
-    huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl,
-               fixed_mem, &f, v);
-
-    /* distance table */
-    for (k = 0; k < 30; k++)
-      c[k] = 5;
-    fixed_bd = 5;
-    huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd,
-               fixed_mem, &f, v);
-
-    /* done */
-    ZFREE(z, v);
-    ZFREE(z, c);
-    fixed_built = 1;
-  }
-#else
-  FT_UNUSED(z);
-#endif
-  *bl = fixed_bl;
-  *bd = fixed_bd;
-  *tl = fixed_tl;
-  *td = fixed_td;
-  return Z_OK;
-}
diff --git a/nx-X11/extras/freetype2/src/gzip/inftrees.h b/nx-X11/extras/freetype2/src/gzip/inftrees.h
deleted file mode 100644
index 07bf2aa0b..000000000
--- a/nx-X11/extras/freetype2/src/gzip/inftrees.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* inftrees.h -- header to use inftrees.c
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* Huffman code lookup table entry--this entry is four bytes for machines
-   that have 16-bit pointers (e.g. PC's in the small or medium model). */
-
-#ifndef _INFTREES_H
-#define _INFTREES_H
-
-typedef struct inflate_huft_s FAR inflate_huft;
-
-struct inflate_huft_s {
-  union {
-    struct {
-      Byte Exop;        /* number of extra bits or operation */
-      Byte Bits;        /* number of bits in this code or subcode */
-    } what;
-    uInt pad;           /* pad structure to a power of 2 (4 bytes for */
-  } word;               /*  16-bit, 8 bytes for 32-bit int's) */
-  uInt base;            /* literal, length base, distance base,
-                           or table offset */
-};
-
-/* Maximum size of dynamic tree.  The maximum found in a long but non-
-   exhaustive search was 1004 huft structures (850 for length/literals
-   and 154 for distances, the latter actually the result of an
-   exhaustive search).  The actual maximum is not known, but the
-   value below is more than safe. */
-#define MANY 1440
-
-local  int inflate_trees_bits OF((
-    uIntf *,                    /* 19 code lengths */
-    uIntf *,                    /* bits tree desired/actual depth */
-    inflate_huft * FAR *,       /* bits tree result */
-    inflate_huft *,             /* space for trees */
-    z_streamp));                /* for messages */
-
-local  int inflate_trees_dynamic OF((
-    uInt,                       /* number of literal/length codes */
-    uInt,                       /* number of distance codes */
-    uIntf *,                    /* that many (total) code lengths */
-    uIntf *,                    /* literal desired/actual bit depth */
-    uIntf *,                    /* distance desired/actual bit depth */
-    inflate_huft * FAR *,       /* literal/length tree result */
-    inflate_huft * FAR *,       /* distance tree result */
-    inflate_huft *,             /* space for trees */
-    z_streamp));                /* for messages */
-
-local  int inflate_trees_fixed OF((
-    uIntf *,                    /* literal desired/actual bit depth */
-    uIntf *,                    /* distance desired/actual bit depth */
-    const inflate_huft * FAR *, /* literal/length tree result */
-    const inflate_huft * FAR *, /* distance tree result */
-    z_streamp));                /* for memory allocation */
-
-#endif /* _INFTREES_H */
diff --git a/nx-X11/extras/freetype2/src/gzip/infutil.c b/nx-X11/extras/freetype2/src/gzip/infutil.c
deleted file mode 100644
index 6087b4064..000000000
--- a/nx-X11/extras/freetype2/src/gzip/infutil.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* inflate_util.c -- data and routines common to blocks and codes
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-#include "zutil.h"
-#include "infblock.h"
-#include "inftrees.h"
-#include "infcodes.h"
-#include "infutil.h"
-
-
-/* And'ing with mask[n] masks the lower n bits */
-local const uInt inflate_mask[17] = {
-    0x0000,
-    0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff,
-    0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff
-};
-
-
-/* copy as much as possible from the sliding window to the output area */
-local int inflate_flush( /* s, z, r) */
-inflate_blocks_statef *s,
-z_streamp z,
-int r )
-{
-  uInt n;
-  Bytef *p;
-  Bytef *q;
-
-  /* local copies of source and destination pointers */
-  p = z->next_out;
-  q = s->read;
-
-  /* compute number of bytes to copy as far as end of window */
-  n = (uInt)((q <= s->write ? s->write : s->end) - q);
-  if (n > z->avail_out) n = z->avail_out;
-  if (n && r == Z_BUF_ERROR) r = Z_OK;
-
-  /* update counters */
-  z->avail_out -= n;
-  z->total_out += n;
-
-  /* update check information */
-  if (s->checkfn != Z_NULL)
-    z->adler = s->check = (*s->checkfn)(s->check, q, n);
-
-  /* copy as far as end of window */
-  zmemcpy(p, q, n);
-  p += n;
-  q += n;
-
-  /* see if more to copy at beginning of window */
-  if (q == s->end)
-  {
-    /* wrap pointers */
-    q = s->window;
-    if (s->write == s->end)
-      s->write = s->window;
-
-    /* compute bytes to copy */
-    n = (uInt)(s->write - q);
-    if (n > z->avail_out) n = z->avail_out;
-    if (n && r == Z_BUF_ERROR) r = Z_OK;
-
-    /* update counters */
-    z->avail_out -= n;
-    z->total_out += n;
-
-    /* update check information */
-    if (s->checkfn != Z_NULL)
-      z->adler = s->check = (*s->checkfn)(s->check, q, n);
-
-    /* copy */
-    zmemcpy(p, q, n);
-    p += n;
-    q += n;
-  }
-
-  /* update pointers */
-  z->next_out = p;
-  s->read = q;
-
-  /* done */
-  return r;
-}
diff --git a/nx-X11/extras/freetype2/src/gzip/infutil.h b/nx-X11/extras/freetype2/src/gzip/infutil.h
deleted file mode 100644
index 7174b6dd0..000000000
--- a/nx-X11/extras/freetype2/src/gzip/infutil.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* infutil.h -- types and macros common to blocks and codes
- * Copyright (C) 1995-2002 Mark Adler
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-#ifndef _INFUTIL_H
-#define _INFUTIL_H
-
-typedef enum {
-      TYPE,     /* get type bits (3, including end bit) */
-      LENS,     /* get lengths for stored */
-      STORED,   /* processing stored block */
-      TABLE,    /* get table lengths */
-      BTREE,    /* get bit lengths tree for a dynamic block */
-      DTREE,    /* get length, distance trees for a dynamic block */
-      CODES,    /* processing fixed or dynamic block */
-      DRY,      /* output remaining window bytes */
-      DONE,     /* finished last block, done */
-      BAD}      /* got a data error--stuck here */
-inflate_block_mode;
-
-/* inflate blocks semi-private state */
-struct inflate_blocks_state {
-
-  /* mode */
-  inflate_block_mode  mode;     /* current inflate_block mode */
-
-  /* mode dependent information */
-  union {
-    uInt left;          /* if STORED, bytes left to copy */
-    struct {
-      uInt table;               /* table lengths (14 bits) */
-      uInt index;               /* index into blens (or border) */
-      uIntf *blens;             /* bit lengths of codes */
-      uInt bb;                  /* bit length tree depth */
-      inflate_huft *tb;         /* bit length decoding tree */
-    } trees;            /* if DTREE, decoding info for trees */
-    struct {
-      inflate_codes_statef
-         *codes;
-    } decode;           /* if CODES, current state */
-  } sub;                /* submode */
-  uInt last;            /* true if this block is the last block */
-
-  /* mode independent information */
-  uInt bitk;            /* bits in bit buffer */
-  uLong bitb;           /* bit buffer */
-  inflate_huft *hufts;  /* single malloc for tree space */
-  Bytef *window;        /* sliding window */
-  Bytef *end;           /* one byte after sliding window */
-  Bytef *read;          /* window read pointer */
-  Bytef *write;         /* window write pointer */
-  check_func checkfn;   /* check function */
-  uLong check;          /* check on output */
-
-};
-
-
-/* defines for inflate input/output */
-/*   update pointers and return */
-#define UPDBITS {s->bitb=b;s->bitk=k;}
-#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;}
-#define UPDOUT {s->write=q;}
-#define UPDATE {UPDBITS UPDIN UPDOUT}
-#define LEAVE {UPDATE return inflate_flush(s,z,r);}
-/*   get bytes and bits */
-#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;}
-#define NEEDBYTE {if(n)r=Z_OK;else LEAVE}
-#define NEXTBYTE (n--,*p++)
-#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<<k;k+=8;}}
-#define DUMPBITS(j) {b>>=(j);k-=(j);}
-/*   output bytes */
-#define WAVAIL (uInt)(q<s->read?s->read-q-1:s->end-q)
-#define LOADOUT {q=s->write;m=(uInt)WAVAIL;}
-#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}}
-#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT}
-#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;}
-#define OUTBYTE(a) {*q++=(Byte)(a);m--;}
-/*   load local pointers */
-#define LOAD {LOADIN LOADOUT}
-
-/* masks for lower bits (size given to avoid silly warnings with Visual C++) */
-#ifndef NO_INFLATE_MASK
-local uInt inflate_mask[17];
-#endif
-
-/* copy as much as possible from the sliding window to the output area */
-local int inflate_flush OF((
-    inflate_blocks_statef *,
-    z_streamp ,
-    int));
-
-#endif
diff --git a/nx-X11/extras/freetype2/src/gzip/rules.mk b/nx-X11/extras/freetype2/src/gzip/rules.mk
deleted file mode 100644
index d2a43a6a8..000000000
--- a/nx-X11/extras/freetype2/src/gzip/rules.mk
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# FreeType 2 GZip support configuration rules
-#
-
-
-# Copyright 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# gzip driver directory
-#
-GZIP_DIR := $(SRC_DIR)/gzip
-
-
-# compilation flags for the driver
-#
-ifeq ($(SYSTEM_ZLIB),)
-  GZIP_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(GZIP_DIR))
-else
-  GZIP_COMPILE := $(FT_COMPILE)
-endif
-
-
-# gzip support sources (i.e., C files)
-#
-GZIP_DRV_SRC := $(GZIP_DIR)/ftgzip.c
-
-# gzip support headers
-#
-GZIP_DRV_H :=
-
-
-# gzip driver object(s)
-#
-#   GZIP_DRV_OBJ_M is used during `multi' builds
-#   GZIP_DRV_OBJ_S is used during `single' builds
-#
-ifeq ($(SYSTEM_ZLIB),)
-  GZIP_DRV_OBJ_M := $(GZIP_DRV_SRC:$(GZIP_DIR)/%.c=$(OBJ_DIR)/%.$O)
-else
-  GZIP_DRV_OBJ_M := $(OBJ_DIR)/ftgzip.$O
-endif
-GZIP_DRV_OBJ_S := $(OBJ_DIR)/ftgzip.$O
-
-# gzip support source file for single build
-#
-GZIP_DRV_SRC_S := $(GZIP_DIR)/ftgzip.c
-
-
-# gzip support - single object
-#
-$(GZIP_DRV_OBJ_S): $(GZIP_DRV_SRC_S) $(GZIP_DRV_SRC) $(FREETYPE_H) \
-                   $(GZIP_DRV_H)
-	$(GZIP_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(GZIP_DRV_SRC_S))
-
-
-# gzip support - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(GZIP_DIR)/%.c $(FREETYPE_H) $(GZIP_DRV_H)
-	$(GZIP_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(GZIP_DRV_OBJ_S)
-DRV_OBJS_M += $(GZIP_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/gzip/zconf.h b/nx-X11/extras/freetype2/src/gzip/zconf.h
deleted file mode 100644
index 271d3386a..000000000
--- a/nx-X11/extras/freetype2/src/gzip/zconf.h
+++ /dev/null
@@ -1,278 +0,0 @@
-/* zconf.h -- configuration of the zlib compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: zconf.h,v 1.1.1.3 2004/03/14 08:28:54 eich Exp $ */
-
-#ifndef _ZCONF_H
-#define _ZCONF_H
-
-/*
- * If you *really* need a unique prefix for all types and library functions,
- * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it.
- */
-#ifdef Z_PREFIX
-#  define deflateInit_	z_deflateInit_
-#  define deflate	z_deflate
-#  define deflateEnd	z_deflateEnd
-#  define inflateInit_ 	z_inflateInit_
-#  define inflate	z_inflate
-#  define inflateEnd	z_inflateEnd
-#  define deflateInit2_	z_deflateInit2_
-#  define deflateSetDictionary z_deflateSetDictionary
-#  define deflateCopy	z_deflateCopy
-#  define deflateReset	z_deflateReset
-#  define deflateParams	z_deflateParams
-#  define inflateInit2_	z_inflateInit2_
-#  define inflateSetDictionary z_inflateSetDictionary
-#  define inflateSync	z_inflateSync
-#  define inflateSyncPoint z_inflateSyncPoint
-#  define inflateReset	z_inflateReset
-#  define compress	z_compress
-#  define compress2	z_compress2
-#  define uncompress	z_uncompress
-#  define adler32	z_adler32
-#  define crc32		z_crc32
-#  define get_crc_table z_get_crc_table
-
-#  define Byte		z_Byte
-#  define uInt		z_uInt
-#  define uLong		z_uLong
-#  define Bytef	        z_Bytef
-#  define charf		z_charf
-#  define intf		z_intf
-#  define uIntf		z_uIntf
-#  define uLongf	z_uLongf
-#  define voidpf	z_voidpf
-#  define voidp		z_voidp
-#endif
-
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-#  define WIN32
-#endif
-#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386)
-#  ifndef __32BIT__
-#    define __32BIT__
-#  endif
-#endif
-#if defined(__MSDOS__) && !defined(MSDOS)
-#  define MSDOS
-#endif
-
-/*
- * Compile with -DMAXSEG_64K if the alloc function cannot allocate more
- * than 64k bytes at a time (needed on systems with 16-bit int).
- */
-#if defined(MSDOS) && !defined(__32BIT__)
-#  define MAXSEG_64K
-#endif
-#ifdef MSDOS
-#  define UNALIGNED_OK
-#endif
-
-#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32))  && !defined(STDC)
-#  define STDC
-#endif
-#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__)
-#  ifndef STDC
-#    define STDC
-#  endif
-#endif
-
-#ifndef STDC
-#  ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */
-#    define const
-#  endif
-#endif
-
-/* Some Mac compilers merge all .h files incorrectly: */
-#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__)
-#  define NO_DUMMY_DECL
-#endif
-
-/* Old Borland C and LCC incorrectly complains about missing returns: */
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
-#  define NEED_DUMMY_RETURN
-#endif
-
-#if defined(__LCC__)
-#  define  NEED_DUMMY_RETURN
-#endif
-
-/* Maximum value for memLevel in deflateInit2 */
-#ifndef MAX_MEM_LEVEL
-#  ifdef MAXSEG_64K
-#    define MAX_MEM_LEVEL 8
-#  else
-#    define MAX_MEM_LEVEL 9
-#  endif
-#endif
-
-/* Maximum value for windowBits in deflateInit2 and inflateInit2.
- * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files
- * created by gzip. (Files created by minigzip can still be extracted by
- * gzip.)
- */
-#ifndef MAX_WBITS
-#  define MAX_WBITS   15 /* 32K LZ77 window */
-#endif
-
-/* The memory requirements for deflate are (in bytes):
-            (1 << (windowBits+2)) +  (1 << (memLevel+9))
- that is: 128K for windowBits=15  +  128K for memLevel = 8  (default values)
- plus a few kilobytes for small objects. For example, if you want to reduce
- the default memory requirements from 256K to 128K, compile with
-     make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7"
- Of course this will generally degrade compression (there's no free lunch).
-
-   The memory requirements for inflate are (in bytes) 1 << windowBits
- that is, 32K for windowBits=15 (default value) plus a few kilobytes
- for small objects.
-*/
-
-                        /* Type declarations */
-
-#ifndef OF /* function prototypes */
-#  ifdef STDC
-#    define OF(args)  args
-#  else
-#    define OF(args)  ()
-#  endif
-#endif
-
-/* The following definitions for FAR are needed only for MSDOS mixed
- * model programming (small or medium model with some far allocations).
- * This was tested only with MSC; for other MSDOS compilers you may have
- * to define NO_MEMCPY in zutil.h.  If you don't need the mixed model,
- * just define FAR to be empty.
- */
-#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__)
-   /* MSC small or medium model */
-#  define SMALL_MEDIUM
-#  ifdef _MSC_VER
-#    define FAR _far
-#  else
-#    define FAR far
-#  endif
-#endif
-#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__))
-#  ifndef __32BIT__
-#    define SMALL_MEDIUM
-#    define FAR _far
-#  endif
-#endif
-
-/* Compile with -DZLIB_DLL for Windows DLL support */
-#if defined(ZLIB_DLL)
-#  if defined(_WINDOWS) || defined(WINDOWS)
-#    ifdef FAR
-#      undef FAR
-#    endif
-#    include <windows.h>
-#    define ZEXPORT(x)  x WINAPI
-#    ifdef WIN32
-#      define ZEXPORTVA(x)  x WINAPIV
-#    else
-#      define ZEXPORTVA(x)  x FAR _cdecl _export
-#    endif
-#  endif
-#  if defined (__BORLANDC__)
-#    if (__BORLANDC__ >= 0x0500) && defined (WIN32)
-#      include <windows.h>
-#      define ZEXPORT(x) x __declspec(dllexport) WINAPI
-#      define ZEXPORTRVA(x)  x __declspec(dllexport) WINAPIV
-#    else
-#      if defined (_Windows) && defined (__DLL__)
-#        define ZEXPORT(x) x _export
-#        define ZEXPORTVA(x) x _export
-#      endif
-#    endif
-#  endif
-#endif
-
-
-#ifndef ZEXPORT
-#  define ZEXPORT(x)   static x
-#endif
-#ifndef ZEXPORTVA
-#  define ZEXPORTVA(x)   static x
-#endif
-#ifndef ZEXTERN
-#  define ZEXTERN(x) static x
-#endif
-#ifndef ZEXTERNDEF
-#  define ZEXTERNDEF(x)  static x
-#endif
-
-#ifndef FAR
-#   define FAR
-#endif
-
-#if !defined(MACOS) && !defined(TARGET_OS_MAC)
-typedef unsigned char  Byte;  /* 8 bits */
-#endif
-typedef unsigned int   uInt;  /* 16 bits or more */
-typedef unsigned long  uLong; /* 32 bits or more */
-
-#ifdef SMALL_MEDIUM
-   /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */
-#  define Bytef Byte FAR
-#else
-   typedef Byte  FAR Bytef;
-#endif
-typedef char  FAR charf;
-typedef int   FAR intf;
-typedef uInt  FAR uIntf;
-typedef uLong FAR uLongf;
-
-#ifdef STDC
-   typedef void FAR *voidpf;
-   typedef void     *voidp;
-#else
-   typedef Byte FAR *voidpf;
-   typedef Byte     *voidp;
-#endif
-
-#ifdef HAVE_UNISTD_H
-#  include <sys/types.h> /* for off_t */
-#  include <unistd.h>    /* for SEEK_* and off_t */
-#  define z_off_t  off_t
-#endif
-#ifndef SEEK_SET
-#  define SEEK_SET        0       /* Seek from beginning of file.  */
-#  define SEEK_CUR        1       /* Seek from current position.  */
-#  define SEEK_END        2       /* Set file pointer to EOF plus "offset" */
-#endif
-#ifndef z_off_t
-#  define  z_off_t long
-#endif
-
-/* MVS linker does not support external names larger than 8 bytes */
-#if defined(__MVS__)
-#   pragma map(deflateInit_,"DEIN")
-#   pragma map(deflateInit2_,"DEIN2")
-#   pragma map(deflateEnd,"DEEND")
-#   pragma map(inflateInit_,"ININ")
-#   pragma map(inflateInit2_,"ININ2")
-#   pragma map(inflateEnd,"INEND")
-#   pragma map(inflateSync,"INSY")
-#   pragma map(inflateSetDictionary,"INSEDI")
-#   pragma map(inflate_blocks,"INBL")
-#   pragma map(inflate_blocks_new,"INBLNE")
-#   pragma map(inflate_blocks_free,"INBLFR")
-#   pragma map(inflate_blocks_reset,"INBLRE")
-#   pragma map(inflate_codes_free,"INCOFR")
-#   pragma map(inflate_codes,"INCO")
-#   pragma map(inflate_fast,"INFA")
-#   pragma map(inflate_flush,"INFLU")
-#   pragma map(inflate_mask,"INMA")
-#   pragma map(inflate_set_dictionary,"INSEDI2")
-#   pragma map(inflate_copyright,"INCOPY")
-#   pragma map(inflate_trees_bits,"INTRBI")
-#   pragma map(inflate_trees_dynamic,"INTRDY")
-#   pragma map(inflate_trees_fixed,"INTRFI")
-#   pragma map(inflate_trees_free,"INTRFR")
-#endif
-
-#endif /* _ZCONF_H */
diff --git a/nx-X11/extras/freetype2/src/gzip/zlib.h b/nx-X11/extras/freetype2/src/gzip/zlib.h
deleted file mode 100644
index 50d0d3f14..000000000
--- a/nx-X11/extras/freetype2/src/gzip/zlib.h
+++ /dev/null
@@ -1,830 +0,0 @@
-/* zlib.h -- interface of the 'zlib' general purpose compression library
-  version 1.1.4, March 11th, 2002
-
-  Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-  3. This notice may not be removed or altered from any source distribution.
-
-  Jean-loup Gailly        Mark Adler
-  jloup@gzip.org          madler@alumni.caltech.edu
-
-
-  The data format used by the zlib library is described by RFCs (Request for
-  Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt
-  (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
-*/
-
-#ifndef _ZLIB_H
-#define _ZLIB_H
-
-#include "zconf.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define ZLIB_VERSION "1.1.4"
-
-/*
-     The 'zlib' compression library provides in-memory compression and
-  decompression functions, including integrity checks of the uncompressed
-  data.  This version of the library supports only one compression method
-  (deflation) but other algorithms will be added later and will have the same
-  stream interface.
-
-     Compression can be done in a single step if the buffers are large
-  enough (for example if an input file is mmap'ed), or can be done by
-  repeated calls of the compression function.  In the latter case, the
-  application must provide more input and/or consume the output
-  (providing more output space) before each call.
-
-     The library also supports reading and writing files in gzip (.gz) format
-  with an interface similar to that of stdio.
-
-     The library does not install any signal handler. The decoder checks
-  the consistency of the compressed data, so the library should never
-  crash even in case of corrupted input.
-*/
-
-typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size));
-typedef void   (*free_func)  OF((voidpf opaque, voidpf address));
-
-struct internal_state;
-
-typedef struct z_stream_s {
-    Bytef    *next_in;  /* next input byte */
-    uInt     avail_in;  /* number of bytes available at next_in */
-    uLong    total_in;  /* total nb of input bytes read so far */
-
-    Bytef    *next_out; /* next output byte should be put there */
-    uInt     avail_out; /* remaining free space at next_out */
-    uLong    total_out; /* total nb of bytes output so far */
-
-    char     *msg;      /* last error message, NULL if no error */
-    struct internal_state FAR *state; /* not visible by applications */
-
-    alloc_func zalloc;  /* used to allocate the internal state */
-    free_func  zfree;   /* used to free the internal state */
-    voidpf     opaque;  /* private data object passed to zalloc and zfree */
-
-    int     data_type;  /* best guess about the data type: ascii or binary */
-    uLong   adler;      /* adler32 value of the uncompressed data */
-    uLong   reserved;   /* reserved for future use */
-} z_stream;
-
-typedef z_stream FAR *z_streamp;
-
-/*
-   The application must update next_in and avail_in when avail_in has
-   dropped to zero. It must update next_out and avail_out when avail_out
-   has dropped to zero. The application must initialize zalloc, zfree and
-   opaque before calling the init function. All other fields are set by the
-   compression library and must not be updated by the application.
-
-   The opaque value provided by the application will be passed as the first
-   parameter for calls of zalloc and zfree. This can be useful for custom
-   memory management. The compression library attaches no meaning to the
-   opaque value.
-
-   zalloc must return Z_NULL if there is not enough memory for the object.
-   If zlib is used in a multi-threaded application, zalloc and zfree must be
-   thread safe.
-
-   On 16-bit systems, the functions zalloc and zfree must be able to allocate
-   exactly 65536 bytes, but will not be required to allocate more than this
-   if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS,
-   pointers returned by zalloc for objects of exactly 65536 bytes *must*
-   have their offset normalized to zero. The default allocation function
-   provided by this library ensures this (see zutil.c). To reduce memory
-   requirements and avoid any allocation of 64K objects, at the expense of
-   compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h).
-
-   The fields total_in and total_out can be used for statistics or
-   progress reports. After compression, total_in holds the total size of
-   the uncompressed data and may be saved for use in the decompressor
-   (particularly if the decompressor wants to decompress everything in
-   a single step).
-*/
-
-                        /* constants */
-
-#define Z_NO_FLUSH      0
-#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */
-#define Z_SYNC_FLUSH    2
-#define Z_FULL_FLUSH    3
-#define Z_FINISH        4
-/* Allowed flush values; see deflate() below for details */
-
-#define Z_OK            0
-#define Z_STREAM_END    1
-#define Z_NEED_DICT     2
-#define Z_ERRNO        (-1)
-#define Z_STREAM_ERROR (-2)
-#define Z_DATA_ERROR   (-3)
-#define Z_MEM_ERROR    (-4)
-#define Z_BUF_ERROR    (-5)
-#define Z_VERSION_ERROR (-6)
-/* Return codes for the compression/decompression functions. Negative
- * values are errors, positive values are used for special but normal events.
- */
-
-#define Z_NO_COMPRESSION         0
-#define Z_BEST_SPEED             1
-#define Z_BEST_COMPRESSION       9
-#define Z_DEFAULT_COMPRESSION  (-1)
-/* compression levels */
-
-#define Z_FILTERED            1
-#define Z_HUFFMAN_ONLY        2
-#define Z_DEFAULT_STRATEGY    0
-/* compression strategy; see deflateInit2() below for details */
-
-#define Z_BINARY   0
-#define Z_ASCII    1
-#define Z_UNKNOWN  2
-/* Possible values of the data_type field */
-
-#define Z_DEFLATED   8
-/* The deflate compression method (the only one supported in this version) */
-
-#define Z_NULL  0  /* for initializing zalloc, zfree, opaque */
-
-
-                        /* basic functions */
-
-/* The application can compare zlibVersion and ZLIB_VERSION for consistency.
-   If the first character differs, the library code actually used is
-   not compatible with the zlib.h header file used by the application.
-   This check is automatically made by deflateInit and inflateInit.
- */
-
-/*
-ZEXTERN(int)  deflateInit OF((z_streamp strm, int level));
-
-     Initializes the internal stream state for compression. The fields
-   zalloc, zfree and opaque must be initialized before by the caller.
-   If zalloc and zfree are set to Z_NULL, deflateInit updates them to
-   use default allocation functions.
-
-     The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9:
-   1 gives best speed, 9 gives best compression, 0 gives no compression at
-   all (the input data is simply copied a block at a time).
-   Z_DEFAULT_COMPRESSION requests a default compromise between speed and
-   compression (currently equivalent to level 6).
-
-     deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if level is not a valid compression level,
-   Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible
-   with the version assumed by the caller (ZLIB_VERSION).
-   msg is set to null if there is no error message.  deflateInit does not
-   perform any compression: this will be done by deflate().
-*/
-
-
-/*
-    deflate compresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full. It may introduce some
-  output latency (reading input without producing any output) except when
-  forced to flush.
-
-    The detailed semantics are as follows. deflate performs one or both of the
-  following actions:
-
-  - Compress more input starting at next_in and update next_in and avail_in
-    accordingly. If not all input can be processed (because there is not
-    enough room in the output buffer), next_in and avail_in are updated and
-    processing will resume at this point for the next call of deflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly. This action is forced if the parameter flush is non zero.
-    Forcing flush frequently degrades the compression ratio, so this parameter
-    should be set only when necessary (in interactive applications).
-    Some output may be provided even if flush is not set.
-
-  Before the call of deflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming
-  more output, and updating avail_in or avail_out accordingly; avail_out
-  should never be zero before the call. The application can consume the
-  compressed output when it wants, for example when the output buffer is full
-  (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK
-  and with zero avail_out, it must be called again after making room in the
-  output buffer because there might be more output pending.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, all pending output is
-  flushed to the output buffer and the output is aligned on a byte boundary, so
-  that the decompressor can get all input data available so far. (In particular
-  avail_in is zero after the call if enough output space has been provided
-  before the call.)  Flushing may degrade compression for some compression
-  algorithms and so it should be used only when necessary.
-
-    If flush is set to Z_FULL_FLUSH, all output is flushed as with
-  Z_SYNC_FLUSH, and the compression state is reset so that decompression can
-  restart from this point if previous compressed data has been damaged or if
-  random access is desired. Using Z_FULL_FLUSH too often can seriously degrade
-  the compression.
-
-    If deflate returns with avail_out == 0, this function must be called again
-  with the same value of the flush parameter and more output space (updated
-  avail_out), until the flush is complete (deflate returns with non-zero
-  avail_out).
-
-    If the parameter flush is set to Z_FINISH, pending input is processed,
-  pending output is flushed and deflate returns with Z_STREAM_END if there
-  was enough output space; if deflate returns with Z_OK, this function must be
-  called again with Z_FINISH and more output space (updated avail_out) but no
-  more input data, until it returns with Z_STREAM_END or an error. After
-  deflate has returned Z_STREAM_END, the only possible operations on the
-  stream are deflateReset or deflateEnd.
-
-    Z_FINISH can be used immediately after deflateInit if all the compression
-  is to be done in a single step. In this case, avail_out must be at least
-  0.1% larger than avail_in plus 12 bytes.  If deflate does not return
-  Z_STREAM_END, then it must be called again as described above.
-
-    deflate() sets strm->adler to the adler32 checksum of all input read
-  so far (that is, total_in bytes).
-
-    deflate() may update data_type if it can make a good guess about
-  the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered
-  binary. This field is only for information purposes and does not affect
-  the compression algorithm in any manner.
-
-    deflate() returns Z_OK if some progress has been made (more input
-  processed or more output produced), Z_STREAM_END if all input has been
-  consumed and all output has been produced (only when flush is set to
-  Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example
-  if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible
-  (for example avail_in or avail_out was zero).
-*/
-
-
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any
-   pending output.
-
-     deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the
-   stream state was inconsistent, Z_DATA_ERROR if the stream was freed
-   prematurely (some input or output was discarded). In the error case,
-   msg may be set but then points to a static string (which must not be
-   deallocated).
-*/
-
-
-/*
-ZEXTERN(int)  inflateInit OF((z_streamp strm));
-
-     Initializes the internal stream state for decompression. The fields
-   next_in, avail_in, zalloc, zfree and opaque must be initialized before by
-   the caller. If next_in is not Z_NULL and avail_in is large enough (the exact
-   value depends on the compression method), inflateInit determines the
-   compression method from the zlib header and allocates all data structures
-   accordingly; otherwise the allocation will be deferred to the first call of
-   inflate.  If zalloc and zfree are set to Z_NULL, inflateInit updates them to
-   use default allocation functions.
-
-     inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_VERSION_ERROR if the zlib library version is incompatible with the
-   version assumed by the caller.  msg is set to null if there is no error
-   message. inflateInit does not perform any decompression apart from reading
-   the zlib header if present: this will be done by inflate().  (So next_in and
-   avail_in may be modified, but next_out and avail_out are unchanged.)
-*/
-
-
-ZEXTERN(int) inflate OF((z_streamp strm, int flush));
-/*
-    inflate decompresses as much data as possible, and stops when the input
-  buffer becomes empty or the output buffer becomes full. It may some
-  introduce some output latency (reading input without producing any output)
-  except when forced to flush.
-
-  The detailed semantics are as follows. inflate performs one or both of the
-  following actions:
-
-  - Decompress more input starting at next_in and update next_in and avail_in
-    accordingly. If not all input can be processed (because there is not
-    enough room in the output buffer), next_in is updated and processing
-    will resume at this point for the next call of inflate().
-
-  - Provide more output starting at next_out and update next_out and avail_out
-    accordingly.  inflate() provides as much output as possible, until there
-    is no more input data or no more space in the output buffer (see below
-    about the flush parameter).
-
-  Before the call of inflate(), the application should ensure that at least
-  one of the actions is possible, by providing more input and/or consuming
-  more output, and updating the next_* and avail_* values accordingly.
-  The application can consume the uncompressed output when it wants, for
-  example when the output buffer is full (avail_out == 0), or after each
-  call of inflate(). If inflate returns Z_OK and with zero avail_out, it
-  must be called again after making room in the output buffer because there
-  might be more output pending.
-
-    If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much
-  output as possible to the output buffer. The flushing behavior of inflate is
-  not specified for values of the flush parameter other than Z_SYNC_FLUSH
-  and Z_FINISH, but the current implementation actually flushes as much output
-  as possible anyway.
-
-    inflate() should normally be called until it returns Z_STREAM_END or an
-  error. However if all decompression is to be performed in a single step
-  (a single call of inflate), the parameter flush should be set to
-  Z_FINISH. In this case all pending input is processed and all pending
-  output is flushed; avail_out must be large enough to hold all the
-  uncompressed data. (The size of the uncompressed data may have been saved
-  by the compressor for this purpose.) The next operation on this stream must
-  be inflateEnd to deallocate the decompression state. The use of Z_FINISH
-  is never required, but can be used to inform inflate that a faster routine
-  may be used for the single inflate() call.
-
-     If a preset dictionary is needed at this point (see inflateSetDictionary
-  below), inflate sets strm-adler to the adler32 checksum of the
-  dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise
-  it sets strm->adler to the adler32 checksum of all output produced
-  so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or
-  an error code as described below. At the end of the stream, inflate()
-  checks that its computed adler32 checksum is equal to that saved by the
-  compressor and returns Z_STREAM_END only if the checksum is correct.
-
-    inflate() returns Z_OK if some progress has been made (more input processed
-  or more output produced), Z_STREAM_END if the end of the compressed data has
-  been reached and all uncompressed output has been produced, Z_NEED_DICT if a
-  preset dictionary is needed at this point, Z_DATA_ERROR if the input data was
-  corrupted (input stream not conforming to the zlib format or incorrect
-  adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent
-  (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not
-  enough memory, Z_BUF_ERROR if no progress is possible or if there was not
-  enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR
-  case, the application may then call inflateSync to look for a good
-  compression block.
-*/
-
-
-ZEXTERN(int)  inflateEnd OF((z_streamp strm));
-/*
-     All dynamically allocated data structures for this stream are freed.
-   This function discards any unprocessed input and does not flush any
-   pending output.
-
-     inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state
-   was inconsistent. In the error case, msg may be set but then points to a
-   static string (which must not be deallocated).
-*/
-
-                        /* Advanced functions */
-
-/*
-    The following functions are needed only in some special applications.
-*/
-
-/*
-ZEXTERN(int)  deflateInit2 OF((z_streamp strm,
-                                     int  level,
-                                     int  method,
-                                     int  windowBits,
-                                     int  memLevel,
-                                     int  strategy));
-
-     This is another version of deflateInit with more compression options. The
-   fields next_in, zalloc, zfree and opaque must be initialized before by
-   the caller.
-
-     The method parameter is the compression method. It must be Z_DEFLATED in
-   this version of the library.
-
-     The windowBits parameter is the base two logarithm of the window size
-   (the size of the history buffer).  It should be in the range 8..15 for this
-   version of the library. Larger values of this parameter result in better
-   compression at the expense of memory usage. The default value is 15 if
-   deflateInit is used instead.
-
-     The memLevel parameter specifies how much memory should be allocated
-   for the internal compression state. memLevel=1 uses minimum memory but
-   is slow and reduces compression ratio; memLevel=9 uses maximum memory
-   for optimal speed. The default value is 8. See zconf.h for total memory
-   usage as a function of windowBits and memLevel.
-
-     The strategy parameter is used to tune the compression algorithm. Use the
-   value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a
-   filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no
-   string match).  Filtered data consists mostly of small values with a
-   somewhat random distribution. In this case, the compression algorithm is
-   tuned to compress them better. The effect of Z_FILTERED is to force more
-   Huffman coding and less string matching; it is somewhat intermediate
-   between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects
-   the compression ratio but not the correctness of the compressed output even
-   if it is not set appropriately.
-
-      deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid
-   method). msg is set to null if there is no error message.  deflateInit2 does
-   not perform any compression: this will be done by deflate().
-*/
-
-/*
-     Initializes the compression dictionary from the given byte sequence
-   without producing any compressed output. This function must be called
-   immediately after deflateInit, deflateInit2 or deflateReset, before any
-   call of deflate. The compressor and decompressor must use exactly the same
-   dictionary (see inflateSetDictionary).
-
-     The dictionary should consist of strings (byte sequences) that are likely
-   to be encountered later in the data to be compressed, with the most commonly
-   used strings preferably put towards the end of the dictionary. Using a
-   dictionary is most useful when the data to be compressed is short and can be
-   predicted with good accuracy; the data can then be compressed better than
-   with the default empty dictionary.
-
-     Depending on the size of the compression data structures selected by
-   deflateInit or deflateInit2, a part of the dictionary may in effect be
-   discarded, for example if the dictionary is larger than the window size in
-   deflate or deflate2. Thus the strings most likely to be useful should be
-   put at the end of the dictionary, not at the front.
-
-     Upon return of this function, strm->adler is set to the Adler32 value
-   of the dictionary; the decompressor may later use this value to determine
-   which dictionary has been used by the compressor. (The Adler32 value
-   applies to the whole dictionary even if only a subset of the dictionary is
-   actually used by the compressor.)
-
-     deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a
-   parameter is invalid (such as NULL dictionary) or the stream state is
-   inconsistent (for example if deflate has already been called for this stream
-   or if the compression method is bsort). deflateSetDictionary does not
-   perform any compression: this will be done by deflate().
-*/
-
-/*
-     Sets the destination stream as a complete copy of the source stream.
-
-     This function can be useful when several compression strategies will be
-   tried, for example when there are several ways of pre-processing the input
-   data with a filter. The streams that will be discarded should then be freed
-   by calling deflateEnd.  Note that deflateCopy duplicates the internal
-   compression state which can be quite large, so this strategy is slow and
-   can consume lots of memory.
-
-     deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_STREAM_ERROR if the source stream state was inconsistent
-   (such as zalloc being NULL). msg is left unchanged in both source and
-   destination.
-*/
-
-/*
-     This function is equivalent to deflateEnd followed by deflateInit,
-   but does not free and reallocate all the internal compression state.
-   The stream will keep the same compression level and any other attributes
-   that may have been set by deflateInit2.
-
-      deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-/*
-     Dynamically update the compression level and compression strategy.  The
-   interpretation of level and strategy is as in deflateInit2.  This can be
-   used to switch between compression and straight copy of the input data, or
-   to switch to a different kind of input data requiring a different
-   strategy. If the compression level is changed, the input available so far
-   is compressed with the old level (and may be flushed); the new level will
-   take effect only at the next call of deflate().
-
-     Before the call of deflateParams, the stream state must be set as for
-   a call of deflate(), since the currently available input may have to
-   be compressed and flushed. In particular, strm->avail_out must be non-zero.
-
-     deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source
-   stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR
-   if strm->avail_out was zero.
-*/
-
-/*
-ZEXTERN(int)  inflateInit2 OF((z_streamp strm,
-                                     int  windowBits));
-
-     This is another version of inflateInit with an extra parameter. The
-   fields next_in, avail_in, zalloc, zfree and opaque must be initialized
-   before by the caller.
-
-     The windowBits parameter is the base two logarithm of the maximum window
-   size (the size of the history buffer).  It should be in the range 8..15 for
-   this version of the library. The default value is 15 if inflateInit is used
-   instead. If a compressed stream with a larger window size is given as
-   input, inflate() will return with the error code Z_DATA_ERROR instead of
-   trying to allocate a larger window.
-
-      inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative
-   memLevel). msg is set to null if there is no error message.  inflateInit2
-   does not perform any decompression apart from reading the zlib header if
-   present: this will be done by inflate(). (So next_in and avail_in may be
-   modified, but next_out and avail_out are unchanged.)
-*/
-
-/*
-     Initializes the decompression dictionary from the given uncompressed byte
-   sequence. This function must be called immediately after a call of inflate
-   if this call returned Z_NEED_DICT. The dictionary chosen by the compressor
-   can be determined from the Adler32 value returned by this call of
-   inflate. The compressor and decompressor must use exactly the same
-   dictionary (see deflateSetDictionary).
-
-     inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a
-   parameter is invalid (such as NULL dictionary) or the stream state is
-   inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the
-   expected one (incorrect Adler32 value). inflateSetDictionary does not
-   perform any decompression: this will be done by subsequent calls of
-   inflate().
-*/
-
-/*
-    Skips invalid compressed data until a full flush point (see above the
-  description of deflate with Z_FULL_FLUSH) can be found, or until all
-  available input is skipped. No output is provided.
-
-    inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR
-  if no more input was provided, Z_DATA_ERROR if no flush point has been found,
-  or Z_STREAM_ERROR if the stream structure was inconsistent. In the success
-  case, the application may save the current current value of total_in which
-  indicates where valid compressed data was found. In the error case, the
-  application may repeatedly call inflateSync, providing more input each time,
-  until success or end of the input data.
-*/
-
-ZEXTERN(int)  inflateReset OF((z_streamp strm));
-/*
-     This function is equivalent to inflateEnd followed by inflateInit,
-   but does not free and reallocate all the internal decompression state.
-   The stream will keep attributes that may have been set by inflateInit2.
-
-      inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source
-   stream state was inconsistent (such as zalloc or state being NULL).
-*/
-
-
-                        /* utility functions */
-
-/*
-     The following utility functions are implemented on top of the
-   basic stream-oriented functions. To simplify the interface, some
-   default options are assumed (compression level and memory usage,
-   standard memory allocation functions). The source code of these
-   utility functions can easily be modified if you need special options.
-*/
-
-/*
-     Compresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer. Upon entry, destLen is the total
-   size of the destination buffer, which must be at least 0.1% larger than
-   sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the
-   compressed buffer.
-     This function can be used to compress a whole file at once if the
-   input file is mmap'ed.
-     compress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer.
-*/
-
-/*
-     Compresses the source buffer into the destination buffer. The level
-   parameter has the same meaning as in deflateInit.  sourceLen is the byte
-   length of the source buffer. Upon entry, destLen is the total size of the
-   destination buffer, which must be at least 0.1% larger than sourceLen plus
-   12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
-
-     compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
-   memory, Z_BUF_ERROR if there was not enough room in the output buffer,
-   Z_STREAM_ERROR if the level parameter is invalid.
-*/
-
-/*
-     Decompresses the source buffer into the destination buffer.  sourceLen is
-   the byte length of the source buffer. Upon entry, destLen is the total
-   size of the destination buffer, which must be large enough to hold the
-   entire uncompressed data. (The size of the uncompressed data must have
-   been saved previously by the compressor and transmitted to the decompressor
-   by some mechanism outside the scope of this compression library.)
-   Upon exit, destLen is the actual size of the compressed buffer.
-     This function can be used to decompress a whole file at once if the
-   input file is mmap'ed.
-
-     uncompress returns Z_OK if success, Z_MEM_ERROR if there was not
-   enough memory, Z_BUF_ERROR if there was not enough room in the output
-   buffer, or Z_DATA_ERROR if the input data was corrupted.
-*/
-
-
-/*
-     Opens a gzip (.gz) file for reading or writing. The mode parameter
-   is as in fopen ("rb" or "wb") but can also include a compression level
-   ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for
-   Huffman only compression as in "wb1h". (See the description
-   of deflateInit2 for more information about the strategy parameter.)
-
-     gzopen can be used to read a file which is not in gzip format; in this
-   case gzread will directly read from the file without decompression.
-
-     gzopen returns NULL if the file could not be opened or if there was
-   insufficient memory to allocate the (de)compression state; errno
-   can be checked to distinguish the two cases (if errno is zero, the
-   zlib error is Z_MEM_ERROR).  */
-
-/*
-     gzdopen() associates a gzFile with the file descriptor fd.  File
-   descriptors are obtained from calls like open, dup, creat, pipe or
-   fileno (in the file has been previously opened with fopen).
-   The mode parameter is as in gzopen.
-     The next call of gzclose on the returned gzFile will also close the
-   file descriptor fd, just like fclose(fdopen(fd), mode) closes the file
-   descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode).
-     gzdopen returns NULL if there was insufficient memory to allocate
-   the (de)compression state.
-*/
-
-/*
-     Dynamically update the compression level or strategy. See the description
-   of deflateInit2 for the meaning of these parameters.
-     gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not
-   opened for writing.
-*/
-
-/*
-     Reads the given number of uncompressed bytes from the compressed file.
-   If the input file was not in gzip format, gzread copies the given number
-   of bytes into the buffer.
-     gzread returns the number of uncompressed bytes actually read (0 for
-   end of file, -1 for error). */
-
-/*
-     Writes the given number of uncompressed bytes into the compressed file.
-   gzwrite returns the number of uncompressed bytes actually written
-   (0 in case of error).
-*/
-
-/*
-     Converts, formats, and writes the args to the compressed file under
-   control of the format string, as in fprintf. gzprintf returns the number of
-   uncompressed bytes actually written (0 in case of error).
-*/
-
-/*
-      Writes the given null-terminated string to the compressed file, excluding
-   the terminating null character.
-      gzputs returns the number of characters written, or -1 in case of error.
-*/
-
-/*
-      Reads bytes from the compressed file until len-1 characters are read, or
-   a newline character is read and transferred to buf, or an end-of-file
-   condition is encountered.  The string is then terminated with a null
-   character.
-      gzgets returns buf, or Z_NULL in case of error.
-*/
-
-/*
-      Writes c, converted to an unsigned char, into the compressed file.
-   gzputc returns the value that was written, or -1 in case of error.
-*/
-
-/*
-      Reads one byte from the compressed file. gzgetc returns this byte
-   or -1 in case of end of file or error.
-*/
-
-/*
-     Flushes all pending output into the compressed file. The parameter
-   flush is as in the deflate() function. The return value is the zlib
-   error number (see function gzerror below). gzflush returns Z_OK if
-   the flush parameter is Z_FINISH and all output could be flushed.
-     gzflush should be called only when strictly necessary because it can
-   degrade compression.
-*/
-
-/*
-      Sets the starting position for the next gzread or gzwrite on the
-   given compressed file. The offset represents a number of bytes in the
-   uncompressed data stream. The whence parameter is defined as in lseek(2);
-   the value SEEK_END is not supported.
-     If the file is opened for reading, this function is emulated but can be
-   extremely slow. If the file is opened for writing, only forward seeks are
-   supported; gzseek then compresses a sequence of zeroes up to the new
-   starting position.
-
-      gzseek returns the resulting offset location as measured in bytes from
-   the beginning of the uncompressed stream, or -1 in case of error, in
-   particular if the file is opened for writing and the new starting position
-   would be before the current position.
-*/
-
-/*
-     Rewinds the given file. This function is supported only for reading.
-
-   gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET)
-*/
-
-/*
-     Returns the starting position for the next gzread or gzwrite on the
-   given compressed file. This position represents a number of bytes in the
-   uncompressed data stream.
-
-   gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR)
-*/
-
-/*
-     Returns 1 when EOF has previously been detected reading the given
-   input stream, otherwise zero.
-*/
-
-/*
-     Flushes all pending output if necessary, closes the compressed file
-   and deallocates all the (de)compression state. The return value is the zlib
-   error number (see function gzerror below).
-*/
-
-/*
-     Returns the error message for the last error which occurred on the
-   given compressed file. errnum is set to zlib error number. If an
-   error occurred in the file system and not in the compression library,
-   errnum is set to Z_ERRNO and the application may consult errno
-   to get the exact error code.
-*/
-
-                        /* checksum functions */
-
-/*
-     These functions are not related to compression but are exported
-   anyway because they might be useful in applications using the
-   compression library.
-*/
-
-ZEXTERN(uLong)  adler32 OF((uLong adler, const Bytef *buf, uInt len));
-
-/*
-     Update a running Adler-32 checksum with the bytes buf[0..len-1] and
-   return the updated checksum. If buf is NULL, this function returns
-   the required initial value for the checksum.
-   An Adler-32 checksum is almost as reliable as a CRC32 but can be computed
-   much faster. Usage example:
-
-     uLong adler = adler32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       adler = adler32(adler, buffer, length);
-     }
-     if (adler != original_adler) error();
-*/
-
-/*
-     Update a running crc with the bytes buf[0..len-1] and return the updated
-   crc. If buf is NULL, this function returns the required initial value
-   for the crc. Pre- and post-conditioning (one's complement) is performed
-   within this function so it shouldn't be done by the application.
-   Usage example:
-
-     uLong crc = crc32(0L, Z_NULL, 0);
-
-     while (read_buffer(buffer, length) != EOF) {
-       crc = crc32(crc, buffer, length);
-     }
-     if (crc != original_crc) error();
-*/
-
-
-                        /* various hacks, don't look :) */
-
-/* deflateInit and inflateInit are macros to allow checking the zlib version
- * and the compiler's view of z_stream:
- */
-ZEXTERN(int)  inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      const char *version, int stream_size));
-#define deflateInit(strm, level) \
-        deflateInit_((strm), (level),       ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit(strm) \
-        inflateInit_((strm),                ZLIB_VERSION, sizeof(z_stream))
-#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \
-        deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\
-                      (strategy),           ZLIB_VERSION, sizeof(z_stream))
-#define inflateInit2(strm, windowBits) \
-        inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _ZLIB_H */
diff --git a/nx-X11/extras/freetype2/src/gzip/zutil.c b/nx-X11/extras/freetype2/src/gzip/zutil.c
deleted file mode 100644
index 7df679c1a..000000000
--- a/nx-X11/extras/freetype2/src/gzip/zutil.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* zutil.c -- target dependent utility functions for the compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* @(#) $Id: zutil.c,v 1.1.1.3 2004/03/14 08:28:54 eich Exp $ */
-
-#include "zutil.h"
-
-#ifndef STDC
-extern void exit OF((int));
-#endif
-
-
-#ifndef HAVE_MEMCPY
-
-void zmemcpy(dest, source, len)
-    Bytef* dest;
-    const Bytef* source;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = *source++; /* ??? to be unrolled */
-    } while (--len != 0);
-}
-
-int zmemcmp(s1, s2, len)
-    const Bytef* s1;
-    const Bytef* s2;
-    uInt  len;
-{
-    uInt j;
-
-    for (j = 0; j < len; j++) {
-        if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
-    }
-    return 0;
-}
-
-void zmemzero(dest, len)
-    Bytef* dest;
-    uInt  len;
-{
-    if (len == 0) return;
-    do {
-        *dest++ = 0;  /* ??? to be unrolled */
-    } while (--len != 0);
-}
-#endif
-
-#ifdef __TURBOC__
-#if (defined( __BORLANDC__) || !defined(SMALL_MEDIUM)) && !defined(__32BIT__)
-/* Small and medium model in Turbo C are for now limited to near allocation
- * with reduced MAX_WBITS and MAX_MEM_LEVEL
- */
-#  define MY_ZCALLOC
-
-/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
- * and farmalloc(64K) returns a pointer with an offset of 8, so we
- * must fix the pointer. Warning: the pointer must be put back to its
- * original form in order to free it, use zcfree().
- */
-
-#define MAX_PTR 10
-/* 10*64K = 640K */
-
-local int next_ptr = 0;
-
-typedef struct ptr_table_s {
-    voidpf org_ptr;
-    voidpf new_ptr;
-} ptr_table;
-
-local ptr_table table[MAX_PTR];
-/* This table is used to remember the original form of pointers
- * to large buffers (64K). Such pointers are normalized with a zero offset.
- * Since MSDOS is not a preemptive multitasking OS, this table is not
- * protected from concurrent access. This hack doesn't work anyway on
- * a protected system like OS/2. Use Microsoft C instead.
- */
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
-    voidpf buf = opaque; /* just to make some compilers happy */
-    ulg bsize = (ulg)items*size;
-
-    /* If we allocate less than 65520 bytes, we assume that farmalloc
-     * will return a usable pointer which doesn't have to be normalized.
-     */
-    if (bsize < 65520L) {
-        buf = farmalloc(bsize);
-        if (*(ush*)&buf != 0) return buf;
-    } else {
-        buf = farmalloc(bsize + 16L);
-    }
-    if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
-    table[next_ptr].org_ptr = buf;
-
-    /* Normalize the pointer to seg:0 */
-    *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
-    *(ush*)&buf = 0;
-    table[next_ptr++].new_ptr = buf;
-    return buf;
-}
-
-void  zcfree (voidpf opaque, voidpf ptr)
-{
-    int n;
-    if (*(ush*)&ptr != 0) { /* object < 64K */
-        farfree(ptr);
-        return;
-    }
-    /* Find the original pointer */
-    for (n = 0; n < next_ptr; n++) {
-        if (ptr != table[n].new_ptr) continue;
-
-        farfree(table[n].org_ptr);
-        while (++n < next_ptr) {
-            table[n-1] = table[n];
-        }
-        next_ptr--;
-        return;
-    }
-    ptr = opaque; /* just to make some compilers happy */
-    Assert(0, "zcfree: ptr not found");
-}
-#endif
-#endif /* __TURBOC__ */
-
-
-#if defined(M_I86) && !defined(__32BIT__)
-/* Microsoft C in 16-bit mode */
-
-#  define MY_ZCALLOC
-
-#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
-#  define _halloc  halloc
-#  define _hfree   hfree
-#endif
-
-voidpf zcalloc (voidpf opaque, unsigned items, unsigned size)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    return _halloc((long)items, size);
-}
-
-void  zcfree (voidpf opaque, voidpf ptr)
-{
-    if (opaque) opaque = 0; /* to make compiler happy */
-    _hfree(ptr);
-}
-
-#endif /* MSC */
-
-
-#ifndef MY_ZCALLOC /* Any system without a special alloc function */
-
-#ifndef STDC
-extern voidp  calloc OF((uInt items, uInt size));
-extern void   free   OF((voidpf ptr));
-#endif
-
-voidpf zcalloc (opaque, items, size)
-    voidpf opaque;
-    unsigned items;
-    unsigned size;
-{
-    if (opaque) items += size - size; /* make compiler happy */
-    return (voidpf)calloc(items, size);
-}
-
-void  zcfree (opaque, ptr)
-    voidpf opaque;
-    voidpf ptr;
-{
-    free(ptr);
-    if (opaque) return; /* make compiler happy */
-}
-
-#endif /* MY_ZCALLOC */
diff --git a/nx-X11/extras/freetype2/src/gzip/zutil.h b/nx-X11/extras/freetype2/src/gzip/zutil.h
deleted file mode 100644
index 247ec8525..000000000
--- a/nx-X11/extras/freetype2/src/gzip/zutil.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/* zutil.h -- internal interface and configuration of the compression library
- * Copyright (C) 1995-2002 Jean-loup Gailly.
- * For conditions of distribution and use, see copyright notice in zlib.h
- */
-
-/* WARNING: this file should *not* be used by applications. It is
-   part of the implementation of the compression library and is
-   subject to change. Applications should only use zlib.h.
- */
-
-/* @(#) $Id: zutil.h,v 1.3 2004/04/28 10:39:05 gisburn Exp $ */
-
-#ifndef _Z_UTIL_H
-#define _Z_UTIL_H
-
-#include "zlib.h"
-
-#ifdef STDC
-#  include <stddef.h>
-#  include <string.h>
-#  include <stdlib.h>
-#endif
-#ifdef NO_ERRNO_H
-    extern int errno;
-#else
-#   include <errno.h>
-#endif
-
-#ifndef local
-#  define local static
-#endif
-/* compile with -Dlocal if your debugger can't find static symbols */
-
-typedef unsigned char  uch;
-typedef uch FAR uchf;
-typedef unsigned short ush;
-typedef ush FAR ushf;
-typedef unsigned long  ulg;
-
-
-#define ERR_RETURN(strm,err) \
-  return (strm->msg = (char*)ERR_MSG(err), (err))
-/* To be used only when the state is known to be valid */
-
-        /* common constants */
-
-#ifndef DEF_WBITS
-#  define DEF_WBITS MAX_WBITS
-#endif
-/* default windowBits for decompression. MAX_WBITS is for compression only */
-
-#if MAX_MEM_LEVEL >= 8
-#  define DEF_MEM_LEVEL 8
-#else
-#  define DEF_MEM_LEVEL  MAX_MEM_LEVEL
-#endif
-/* default memLevel */
-
-#define STORED_BLOCK 0
-#define STATIC_TREES 1
-#define DYN_TREES    2
-/* The three kinds of block type */
-
-#define MIN_MATCH  3
-#define MAX_MATCH  258
-/* The minimum and maximum match lengths */
-
-#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */
-
-        /* target dependencies */
-
-#ifdef MSDOS
-#  define OS_CODE  0x00
-#  if defined(__TURBOC__) || defined(__BORLANDC__)
-#    if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__))
-       /* Allow compilation with ANSI keywords only enabled */
-       void _Cdecl farfree( void *block );
-       void *_Cdecl farmalloc( unsigned long nbytes );
-#    else
-#     include <alloc.h>
-#    endif
-#  else /* MSC or DJGPP */
-#    include <malloc.h>
-#  endif
-#endif
-
-#ifdef OS2
-#  define OS_CODE  0x06
-#endif
-
-#ifdef WIN32 /* Window 95 & Windows NT */
-#  define OS_CODE  0x0b
-#endif
-
-#if defined(VAXC) || defined(VMS)
-#  define OS_CODE  0x02
-#  define F_OPEN(name, mode) \
-     fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512")
-#endif
-
-#ifdef AMIGA
-#  define OS_CODE  0x01
-#endif
-
-#if defined(ATARI) || defined(atarist)
-#  define OS_CODE  0x05
-#endif
-
-#if defined(MACOS) || defined(TARGET_OS_MAC)
-#  define OS_CODE  0x07
-#  if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os
-#    include <unix.h> /* for fdopen */
-#  else
-#    ifndef fdopen
-#      define fdopen(fd,mode) NULL /* No fdopen() */
-#    endif
-#  endif
-#endif
-
-#ifdef __50SERIES /* Prime/PRIMOS */
-#  define OS_CODE  0x0F
-#endif
-
-#ifdef TOPS20
-#  define OS_CODE  0x0a
-#endif
-
-#if defined(_BEOS_) || defined(RISCOS)
-#  define fdopen(fd,mode) NULL /* No fdopen() */
-#endif
-
-#if (defined(_MSC_VER) && (_MSC_VER > 600))
-#  define fdopen(fd,type)  _fdopen(fd,type)
-#endif
-
-
-        /* Common defaults */
-
-#ifndef OS_CODE
-#  define OS_CODE  0x03  /* assume Unix */
-#endif
-
-#ifndef F_OPEN
-#  define F_OPEN(name, mode) fopen((name), (mode))
-#endif
-
-         /* functions */
-
-#ifdef HAVE_STRERROR
-   extern char *strerror OF((int));
-#  define zstrerror(errnum) strerror(errnum)
-#else
-#  define zstrerror(errnum) ""
-#endif
-
-#if defined(pyr)
-#  define NO_MEMCPY
-#endif
-#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__)
- /* Use our own functions for small and medium model with MSC <= 5.0.
-  * You may have to use the same strategy for Borland C (untested).
-  * The __SC__ check is for Symantec.
-  */
-#  define NO_MEMCPY
-#endif
-#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY)
-#  define HAVE_MEMCPY
-#endif
-#ifdef HAVE_MEMCPY
-#  ifdef SMALL_MEDIUM /* MSDOS small or medium model */
-#    define zmemcpy _fmemcpy
-#    define zmemcmp _fmemcmp
-#    define zmemzero(dest, len) _fmemset(dest, 0, len)
-#  else
-#    define zmemcpy ft_memcpy
-#    define zmemcmp ft_memcmp
-#    define zmemzero(dest, len) ft_memset(dest, 0, len)
-#  endif
-#else
-   extern void zmemcpy  OF((Bytef* dest, const Bytef* source, uInt len));
-   extern int  zmemcmp  OF((const Bytef* s1, const Bytef* s2, uInt len));
-   extern void zmemzero OF((Bytef* dest, uInt len));
-#endif
-
-/* Diagnostic functions */
-#ifdef DEBUG
-#  include <stdio.h>
-   extern int z_verbose;
-   extern void z_error    OF((char *m));
-#  define Assert(cond,msg) {if(!(cond)) z_error(msg);}
-#  define Trace(x) {if (z_verbose>=0) fprintf x ;}
-#  define Tracev(x) {if (z_verbose>0) fprintf x ;}
-#  define Tracevv(x) {if (z_verbose>1) fprintf x ;}
-#  define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;}
-#  define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;}
-#else
-#  define Assert(cond,msg)
-#  define Trace(x)
-#  define Tracev(x)
-#  define Tracevv(x)
-#  define Tracec(c,x)
-#  define Tracecv(c,x)
-#endif
-
-
-typedef uLong (*check_func) OF((uLong check, const Bytef *buf,
-				       uInt len));
-local voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size));
-local void   zcfree  OF((voidpf opaque, voidpf ptr));
-
-#define ZALLOC(strm, items, size) \
-           (*((strm)->zalloc))((strm)->opaque, (items), (size))
-#define ZFREE(strm, addr)  (*((strm)->zfree))((strm)->opaque, (voidpf)(addr))
-#define TRY_FREE(s, p) {if (p) ZFREE(s, p);}
-
-#endif /* _Z_UTIL_H */
diff --git a/nx-X11/extras/freetype2/src/lzw/Jamfile b/nx-X11/extras/freetype2/src/lzw/Jamfile
deleted file mode 100644
index 995cbb98c..000000000
--- a/nx-X11/extras/freetype2/src/lzw/Jamfile
+++ /dev/null
@@ -1,9 +0,0 @@
-# FreeType 2 src/lzw Jamfile (C) 2004 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) lzw ;
-
-Library  $(FT2_LIB) : ftlzw.c ;
-
-# end of src/lzw Jamfile
-
diff --git a/nx-X11/extras/freetype2/src/lzw/ftlzw.c b/nx-X11/extras/freetype2/src/lzw/ftlzw.c
deleted file mode 100644
index a0e4cc576..000000000
--- a/nx-X11/extras/freetype2/src/lzw/ftlzw.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftlzw.c                                                                */
-/*                                                                         */
-/*    FreeType support for .Z compressed files.                            */
-/*                                                                         */
-/*  This optional component relies on NetBSD's zopen().  It should mainly  */
-/*  be used to parse compressed PCF fonts, as found with many X11 server   */
-/*  distributions.                                                         */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  Albert Chin-A-Young.                                                   */
-/*                                                                         */
-/*  Based on code in src/gzip/ftgzip.c, Copyright 2004 by                  */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-#include <ft2build.h>
-#include FT_INTERNAL_MEMORY_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_DEBUG_H
-#include <string.h>
-#include <stdio.h>
-
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  LZW_Err_
-#define FT_ERR_BASE    FT_Mod_Err_LZW
-
-#include FT_ERRORS_H
-
-
-#ifdef FT_CONFIG_OPTION_USE_LZW
-
-#include "zopen.h"
-
-
-/***************************************************************************/
-/***************************************************************************/
-/*****                                                                 *****/
-/*****                  M E M O R Y   M A N A G E M E N T              *****/
-/*****                                                                 *****/
-/***************************************************************************/
-/***************************************************************************/
-
-/***************************************************************************/
-/***************************************************************************/
-/*****                                                                 *****/
-/*****                   F I L E   D E S C R I P T O R                 *****/
-/*****                                                                 *****/
-/***************************************************************************/
-/***************************************************************************/
-
-#define  FT_LZW_BUFFER_SIZE  4096
-
-  typedef struct FT_LZWFileRec_
-  {
-    FT_Stream   source;         /* parent/source stream        */
-    FT_Stream   stream;         /* embedding stream            */
-    FT_Memory   memory;         /* memory allocator            */
-    s_zstate_t  zstream;        /* lzw input stream            */
-
-    FT_ULong    start;          /* starting position, after .Z header */
-    FT_Byte     input[FT_LZW_BUFFER_SIZE];  /* input buffer */
-
-    FT_Byte     buffer[FT_LZW_BUFFER_SIZE]; /* output buffer */
-    FT_ULong    pos;            /* position in output          */
-    FT_Byte*    cursor;
-    FT_Byte*    limit;
-
-  } FT_LZWFileRec, *FT_LZWFile;
-
-
-  /* check and skip .Z header */
-  static FT_Error
-  ft_lzw_check_header( FT_Stream  stream )
-  {
-    FT_Error  error;
-    FT_Byte   head[2];
-
-
-    if ( FT_STREAM_SEEK( 0 )       ||
-         FT_STREAM_READ( head, 2 ) )
-      goto Exit;
-
-    /* head[0] && head[1] are the magic numbers     */
-    if ( head[0] != 0x1f ||
-         head[1] != 0x9d )
-      error = LZW_Err_Invalid_File_Format;
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  ft_lzw_file_init( FT_LZWFile  zip,
-                    FT_Stream   stream,
-                    FT_Stream   source )
-  {
-    s_zstate_t*  zstream = &zip->zstream;
-    FT_Error     error   = LZW_Err_Ok;
-
-
-    zip->stream = stream;
-    zip->source = source;
-    zip->memory = stream->memory;
-
-    zip->limit  = zip->buffer + FT_LZW_BUFFER_SIZE;
-    zip->cursor = zip->limit;
-    zip->pos    = 0;
-
-    /* check and skip .Z header */
-    {
-      stream = source;
-
-      error = ft_lzw_check_header( source );
-      if ( error )
-        goto Exit;
-
-      zip->start = FT_STREAM_POS();
-    }
-
-    /* initialize internal lzw variable */
-    zinit( zstream );
-
-    zstream->avail_in    = 0;
-    zstream->next_in     = zip->buffer;
-    zstream->zs_in_count = source->size - 2;
-
-    if ( zstream->next_in == NULL )
-      error = LZW_Err_Invalid_File_Format;
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  ft_lzw_file_done( FT_LZWFile  zip )
-  {
-    s_zstate_t*  zstream = &zip->zstream;
-
-
-    /* clear the rest */
-    zstream->next_in   = NULL;
-    zstream->next_out  = NULL;
-    zstream->avail_in  = 0;
-    zstream->avail_out = 0;
-    zstream->total_in  = 0;
-    zstream->total_out = 0;
-
-    zip->memory = NULL;
-    zip->source = NULL;
-    zip->stream = NULL;
-  }
-
-
-  static FT_Error
-  ft_lzw_file_reset( FT_LZWFile  zip )
-  {
-    FT_Stream  stream = zip->source;
-    FT_Error   error;
-
-
-    if ( !FT_STREAM_SEEK( zip->start ) )
-    {
-      s_zstate_t*  zstream = &zip->zstream;
-
-
-      zinit( zstream );
-
-      zstream->avail_in    = 0;
-      zstream->next_in     = zip->input;
-      zstream->total_in    = 0;
-      zstream->avail_out   = 0;
-      zstream->next_out    = zip->buffer;
-      zstream->total_out   = 0;
-      zstream->zs_in_count = zip->source->size - 2;
-
-      zip->limit  = zip->buffer + FT_LZW_BUFFER_SIZE;
-      zip->cursor = zip->limit;
-      zip->pos    = 0;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  ft_lzw_file_fill_input( FT_LZWFile  zip )
-  {
-    s_zstate_t*  zstream = &zip->zstream;
-    FT_Stream    stream  = zip->source;
-    FT_ULong     size;
-
-
-    if ( stream->read )
-    {
-      size = stream->read( stream, stream->pos, zip->input,
-                           FT_LZW_BUFFER_SIZE );
-      if ( size == 0 )
-        return LZW_Err_Invalid_Stream_Operation;
-    }
-    else
-    {
-      size = stream->size - stream->pos;
-      if ( size > FT_LZW_BUFFER_SIZE )
-        size = FT_LZW_BUFFER_SIZE;
-
-      if ( size == 0 )
-        return LZW_Err_Invalid_Stream_Operation;
-
-      FT_MEM_COPY( zip->input, stream->base + stream->pos, size );
-    }
-    stream->pos += size;
-
-    zstream->next_in  = zip->input;
-    zstream->avail_in = size;
-
-    return LZW_Err_Ok;
-  }
-
-
-
-  static FT_Error
-  ft_lzw_file_fill_output( FT_LZWFile  zip )
-  {
-    s_zstate_t*  zstream = &zip->zstream;
-    FT_Error     error   = 0;
-
-
-    zip->cursor        = zip->buffer;
-    zstream->next_out  = zip->cursor;
-    zstream->avail_out = FT_LZW_BUFFER_SIZE;
-
-    while ( zstream->avail_out > 0 )
-    {
-      int  num_read = 0;
-
-
-      if ( zstream->avail_in == 0 )
-      {
-        error = ft_lzw_file_fill_input( zip );
-        if ( error )
-          break;
-      }
-
-      num_read = zread( zstream );
-
-      if ( num_read == -1 && zstream->zs_in_count == 0 )
-      {
-        zip->limit = zstream->next_out;
-        if ( zip->limit == zip->cursor )
-          error = LZW_Err_Invalid_Stream_Operation;
-        break;
-      }
-      else if ( num_read == -1 )
-        break;
-      else
-        zstream->avail_out -= num_read;
-    }
-
-    return error;
-  }
-
-
-  /* fill output buffer; `count' must be <= FT_LZW_BUFFER_SIZE */
-  static FT_Error
-  ft_lzw_file_skip_output( FT_LZWFile  zip,
-                           FT_ULong    count )
-  {
-    FT_Error  error = LZW_Err_Ok;
-    FT_ULong  delta;
-
-
-    for (;;)
-    {
-      delta = (FT_ULong)( zip->limit - zip->cursor );
-      if ( delta >= count )
-        delta = count;
-
-      zip->cursor += delta;
-      zip->pos    += delta;
-
-      count -= delta;
-      if ( count == 0 )
-        break;
-
-      error = ft_lzw_file_fill_output( zip );
-      if ( error )
-        break;
-    }
-
-    return error;
-  }
-
-
-  static FT_ULong
-  ft_lzw_file_io( FT_LZWFile  zip,
-                  FT_ULong    pos,
-                  FT_Byte*    buffer,
-                  FT_ULong    count )
-  {
-    FT_ULong  result = 0;
-    FT_Error  error;
-
-
-    /* Teset inflate stream if we're seeking backwards.        */
-    /* Yes, that is not too efficient, but it saves memory :-) */
-    if ( pos < zip->pos )
-    {
-      error = ft_lzw_file_reset( zip );
-      if ( error )
-        goto Exit;
-    }
-
-    /* skip unwanted bytes */
-    if ( pos > zip->pos )
-    {
-      error = ft_lzw_file_skip_output( zip, (FT_ULong)( pos - zip->pos ) );
-      if ( error )
-        goto Exit;
-    }
-
-    if ( count == 0 )
-      goto Exit;
-
-    /* now read the data */
-    for (;;)
-    {
-      FT_ULong  delta;
-
-
-      delta = (FT_ULong)( zip->limit - zip->cursor );
-      if ( delta >= count )
-        delta = count;
-
-      FT_MEM_COPY( buffer, zip->cursor, delta );
-      buffer      += delta;
-      result      += delta;
-      zip->cursor += delta;
-      zip->pos    += delta;
-
-      count -= delta;
-      if ( count == 0 )
-        break;
-
-      error = ft_lzw_file_fill_output( zip );
-      if ( error )
-        break;
-    }
-
-  Exit:
-    return result;
-  }
-
-
-/***************************************************************************/
-/***************************************************************************/
-/*****                                                                 *****/
-/*****            L Z W   E M B E D D I N G   S T R E A M              *****/
-/*****                                                                 *****/
-/***************************************************************************/
-/***************************************************************************/
-
-  static void
-  ft_lzw_stream_close( FT_Stream  stream )
-  {
-    FT_LZWFile  zip    = (FT_LZWFile)stream->descriptor.pointer;
-    FT_Memory   memory = stream->memory;
-
-
-    if ( zip )
-    {
-      /* finalize lzw file descriptor */
-      ft_lzw_file_done( zip );
-
-      FT_FREE( zip );
-
-      stream->descriptor.pointer = NULL;
-    }
-  }
-
-
-  static FT_ULong
-  ft_lzw_stream_io( FT_Stream  stream,
-                    FT_ULong   pos,
-                    FT_Byte*   buffer,
-                    FT_ULong   count )
-  {
-    FT_LZWFile  zip = (FT_LZWFile)stream->descriptor.pointer;
-
-
-    return ft_lzw_file_io( zip, pos, buffer, count );
-  }
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_OpenLZW( FT_Stream  stream,
-                     FT_Stream  source )
-  {
-    FT_Error    error;
-    FT_Memory   memory = source->memory;
-    FT_LZWFile  zip;
-
-
-    FT_ZERO( stream );
-    stream->memory = memory;
-
-    if ( !FT_NEW( zip ) )
-    {
-      error = ft_lzw_file_init( zip, stream, source );
-      if ( error )
-      {
-        FT_FREE( zip );
-        goto Exit;
-      }
-
-      stream->descriptor.pointer = zip;
-    }
-
-    stream->size  = 0x7FFFFFFFL;  /* don't know the real size! */
-    stream->pos   = 0;
-    stream->base  = 0;
-    stream->read  = ft_lzw_stream_io;
-    stream->close = ft_lzw_stream_close;
-
-  Exit:
-    return error;
-  }
-
-#include "zopen.c"
-
-
-#else  /* !FT_CONFIG_OPTION_USE_LZW */
-
-
-  FT_EXPORT_DEF( FT_Error )
-  FT_Stream_OpenLZW( FT_Stream  stream,
-                     FT_Stream  source )
-  {
-    FT_UNUSED( stream );
-    FT_UNUSED( source );
-
-    return LZW_Err_Unimplemented_Feature;
-  }
-
-
-#endif /* !FT_CONFIG_OPTION_USE_LZW */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/lzw/rules.mk b/nx-X11/extras/freetype2/src/lzw/rules.mk
deleted file mode 100644
index 73ce71804..000000000
--- a/nx-X11/extras/freetype2/src/lzw/rules.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# FreeType 2 LZW support configuration rules
-#
-
-
-# Copyright 2004 by
-# Albert Chin-A-Young.
-#
-# Based on src/lzw/rules.mk, Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# LZW driver directory
-#
-LZW_DIR := $(SRC_DIR)/lzw
-
-
-# compilation flags for the driver
-#
-LZW_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(LZW_DIR))
-
-
-# LZW support sources (i.e., C files)
-#
-LZW_DRV_SRC := $(LZW_DIR)/ftlzw.c \
-               $(LZW_DIR)/zopen.c
-
-# LZW support headers
-#
-LZW_DRV_H := $(LZW_DIR)/zopen.h
-
-
-# LZW driver object(s)
-#
-#   LZW_DRV_OBJ_M is used during `multi' builds
-#   LZW_DRV_OBJ_S is used during `single' builds
-#
-LZW_DRV_OBJ_M := $(OBJ_DIR)/ftlzw.$O
-LZW_DRV_OBJ_S := $(OBJ_DIR)/ftlzw.$O
-
-# LZW support source file for single build
-#
-LZW_DRV_SRC_S := $(LZW_DIR)/ftlzw.c
-
-
-# LZW support - single object
-#
-$(LZW_DRV_OBJ_S): $(LZW_DRV_SRC_S) $(LZW_DRV_SRC) $(FREETYPE_H) $(LZW_DRV_H)
-	$(LZW_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(LZW_DRV_SRC_S))
-
-
-# LZW support - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(LZW_DIR)/%.c $(FREETYPE_H) $(LZW_DRV_H)
-	$(LZW_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(LZW_DRV_OBJ_S)
-DRV_OBJS_M += $(LZW_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/lzw/zopen.c b/nx-X11/extras/freetype2/src/lzw/zopen.c
deleted file mode 100644
index 2b438c25b..000000000
--- a/nx-X11/extras/freetype2/src/lzw/zopen.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/*	$NetBSD: zopen.c,v 1.8 2003/08/07 11:13:29 agc Exp $	*/
-
-/*-
- * Copyright (c) 1985, 1986, 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Diomidis Spinellis and James A. Woods, derived from original
- * work by Spencer Thomas and Joseph Orost.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*-
- *
- * Copyright (c) 2004
- *	Albert Chin-A-Young.
- *
- * Modified to work with FreeType's PCF driver.
- *
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-static char sccsid[] = "@(#)zopen.c	8.1 (Berkeley) 6/27/93";
-#else
-static char rcsid[] = "$NetBSD: zopen.c,v 1.8 2003/08/07 11:13:29 agc Exp $";
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-/*-
- * fcompress.c - File compression ala IEEE Computer, June 1984.
- *
- * Compress authors:
- *		Spencer W. Thomas	(decvax!utah-cs!thomas)
- *		Jim McKie		(decvax!mcvax!jim)
- *		Steve Davies		(decvax!vax135!petsd!peora!srd)
- *		Ken Turkowski		(decvax!decwrl!turtlevax!ken)
- *		James A. Woods		(decvax!ihnp4!ames!jaw)
- *		Joe Orost		(decvax!vax135!petsd!joe)
- *
- * Cleaned up and converted to library returning I/O streams by
- * Diomidis Spinellis <dds@doc.ic.ac.uk>.
- */
-
-#include <ctype.h>
-#if 0
-#include <signal.h>
-#endif
-#include <stdlib.h>
-#include <string.h>
-#if 0
-#include <unistd.h>
-#endif
-
-#if 0
-static char_type magic_header[] =
-	{ 0x1f, 0x9d };		/* 1F 9D */
-#endif
-
-#define	BIT_MASK	0x1f		/* Defines for third byte of header. */
-#define	BLOCK_MASK	0x80
-
-/*
- * Masks 0x40 and 0x20 are free.  I think 0x20 should mean that there is
- * a fourth header byte (for expansion).
- */
-#define	INIT_BITS 9			/* Initial number of bits/code. */
-
-#define	MAXCODE(n_bits)	((1 << (n_bits)) - 1)
-
-/* Definitions to retain old variable names */
-#define	fp		zs->zs_fp
-#define	state		zs->zs_state
-#define	n_bits		zs->zs_n_bits
-#define	maxbits		zs->zs_maxbits
-#define	maxcode		zs->zs_maxcode
-#define	maxmaxcode	zs->zs_maxmaxcode
-#define	htab		zs->zs_htab
-#define	codetab		zs->zs_codetab
-#define	hsize		zs->zs_hsize
-#define	free_ent	zs->zs_free_ent
-#define	block_compress	zs->zs_block_compress
-#define	clear_flg	zs->zs_clear_flg
-#define	offset		zs->zs_offset
-#define	in_count	zs->zs_in_count
-#define	buf_len		zs->zs_buf_len
-#define	buf		zs->zs_buf
-#define	stackp		zs->u.r.zs_stackp
-#define	finchar		zs->u.r.zs_finchar
-#define	code		zs->u.r.zs_code
-#define	oldcode		zs->u.r.zs_oldcode
-#define	incode		zs->u.r.zs_incode
-#define	roffset		zs->u.r.zs_roffset
-#define	size		zs->u.r.zs_size
-#define	gbuf		zs->u.r.zs_gbuf
-
-/*
- * To save much memory, we overlay the table used by compress() with those
- * used by decompress().  The tab_prefix table is the same size and type as
- * the codetab.  The tab_suffix table needs 2**BITS characters.  We get this
- * from the beginning of htab.  The output stack uses the rest of htab, and
- * contains characters.  There is plenty of room for any possible stack
- * (stack used to be 8000 characters).
- */
-
-#define	htabof(i)	htab[i]
-#define	codetabof(i)	codetab[i]
-
-#define	tab_prefixof(i)	codetabof(i)
-#define	tab_suffixof(i)	((char_type *)(htab))[i]
-#define	de_stack	((char_type *)&tab_suffixof(1 << BITS))
-
-#define	CHECK_GAP 10000		/* Ratio check interval. */
-
-/*
- * the next two codes should not be changed lightly, as they must not
- * lie within the contiguous general code space.
- */
-#define	FIRST	257		/* First free entry. */
-#define	CLEAR	256		/* Table clear output code. */
-
-/*-
- * Algorithm from "A Technique for High Performance Data Compression",
- * Terry A. Welch, IEEE Computer Vol 17, No 6 (June 1984), pp 8-19.
- *
- * Algorithm:
- * 	Modified Lempel-Ziv method (LZW).  Basically finds common
- * substrings and replaces them with a variable size code.  This is
- * deterministic, and can be done on the fly.  Thus, the decompression
- * procedure needs no input table, but tracks the way the table was built.
- */
-
-#if 0
-static int
-zclose(s_zstate_t *zs)
-{
-	free(zs);
-	return (0);
-}
-#endif
-
-/*-
- * Output the given code.
- * Inputs:
- * 	code:	A n_bits-bit integer.  If == -1, then EOF.  This assumes
- *		that n_bits =< (long)wordsize - 1.
- * Outputs:
- * 	Outputs code to the file.
- * Assumptions:
- *	Chars are 8 bits long.
- * Algorithm:
- * 	Maintain a BITS character long buffer (so that 8 codes will
- * fit in it exactly).  Use the VAX insv instruction to insert each
- * code in turn.  When the buffer fills up empty it and start over.
- */
-
-static const char_type rmask[9] =
-	{0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};
-
-/*
- * Decompress read.  This routine adapts to the codes in the file building
- * the "string" table on-the-fly; requiring no table to be stored in the
- * compressed file.  The tables used herein are shared with those of the
- * compress() routine.  See the definitions above.
- */
-static int
-zread(s_zstate_t *zs)
-{
-	unsigned int count;
-
-	if (in_count == 0)
-		return -1;
-	if (zs->avail_out == 0)
-		return 0;
-
-	count = zs->avail_out;
-	switch (state) {
-	case S_START:
-		state = S_MIDDLE;
-		break;
-	case S_MIDDLE:
-		goto middle;
-	case S_EOF:
-		goto eof;
-	}
-
-	maxbits = *(zs->next_in);	/* Set -b from file. */
-	zs->avail_in--;
-	zs->next_in++;
-	zs->total_in++;
-	in_count--;
-	block_compress = maxbits & BLOCK_MASK;
-	maxbits &= BIT_MASK;
-	maxmaxcode = 1L << maxbits;
-	if (maxbits > BITS) {
-		return -1;
-	}
-	/* As above, initialize the first 256 entries in the table. */
-	maxcode = MAXCODE(n_bits = INIT_BITS);
-	for (code = 255; code >= 0; code--) {
-		tab_prefixof(code) = 0;
-		tab_suffixof(code) = (char_type) code;
-	}
-	free_ent = block_compress ? FIRST : 256;
-
-	finchar = oldcode = getcode(zs);
-	if (oldcode == -1)		/* EOF already? */
-		return 0;		/* Get out of here */
-
-	/* First code must be 8 bits = char. */
-	*(zs->next_out)++ = (unsigned char)finchar;
-	zs->total_out++;
-	count--;
-	stackp = de_stack;
-
-	while ((code = getcode(zs)) > -1) {
-		if ((code == CLEAR) && block_compress) {
-			for (code = 255; code >= 0; code--)
-				tab_prefixof(code) = 0;
-			clear_flg = 1;
-			free_ent = FIRST - 1;
-			if ((code = getcode(zs)) == -1)
-				/* O, untimely death! */
-				break;
-		}
-		incode = code;
-
-		/* Special case for KwKwK string. */
-		if (code >= free_ent) {
-			*stackp++ = finchar;
-			code = oldcode;
-		}
-
-		/* Generate output characters in reverse order. */
-		while (code >= 256) {
-			*stackp++ = tab_suffixof(code);
-			code = tab_prefixof(code);
-		}
-		*stackp++ = finchar = tab_suffixof(code);
-
-		/* And put them out in forward order.  */
-middle:
-		if (stackp == de_stack)
-			continue;
-
-		do {
-			if (count-- == 0) {
-				return zs->avail_out;
-			}
-			*(zs->next_out)++ = *--stackp;
-			zs->total_out++;
-		} while (stackp > de_stack);
-
-		/* Generate the new entry. */
-		if ((code = free_ent) < maxmaxcode) {
-			tab_prefixof(code) = (unsigned short) oldcode;
-			tab_suffixof(code) = finchar;
-			free_ent = code + 1;
-		}
-
-		/* Remember previous code. */
-		oldcode = incode;
-	}
-	/* state = S_EOF; */
-eof:	return (zs->avail_out - count);
-}
-
-/*-
- * Read one code from the standard input.  If EOF, return -1.
- * Inputs:
- * 	stdin
- * Outputs:
- * 	code or -1 is returned.
- */
-static code_int
-getcode(s_zstate_t *zs)
-{
-	code_int gcode;
-	int r_off, bits;
-	char_type *bp;
-
-	bp = gbuf;
-	if (clear_flg > 0 || roffset >= size || free_ent > maxcode) {
-		/*
-		 * If the next entry will be too big for the current gcode
-		 * size, then we must increase the size.  This implies reading
-		 * a new buffer full, too.
-		 */
-		if (free_ent > maxcode) {
-			n_bits++;
-			if (n_bits == maxbits)	/* Won't get any bigger now. */
-				maxcode = maxmaxcode;
-			else
-				maxcode = MAXCODE(n_bits);
-		}
-		if (clear_flg > 0) {
-			maxcode = MAXCODE(n_bits = INIT_BITS);
-			clear_flg = 0;
-		}
-		if ( zs->avail_in < (unsigned int)n_bits && in_count > (long)n_bits ) {
-			memcpy (buf, zs->next_in, zs->avail_in);
-			buf_len = zs->avail_in;
-			zs->avail_in = 0;
-			return -1;
-		}
-		if (buf_len) {
-			memcpy (gbuf, buf, buf_len);
-			memcpy (gbuf + buf_len, zs->next_in,
-				n_bits - buf_len);
-			zs->next_in += n_bits - buf_len;
-			zs->avail_in -= n_bits - buf_len;
-			buf_len = 0;
-			zs->total_in += n_bits;
-			size = n_bits;
-			in_count -= n_bits;
-		} else {
-			if (in_count > n_bits) {
-				memcpy (gbuf, zs->next_in, n_bits);
-				zs->next_in += n_bits;
-				zs->avail_in -= n_bits;
-				zs->total_in += n_bits;
-				size = n_bits;
-				in_count -= n_bits;
-			} else {
-				memcpy (gbuf, zs->next_in, in_count);
-				zs->next_in += in_count;
-				zs->avail_in -= in_count;
-				zs->total_in += in_count;
-				size = in_count;
-				in_count = 0;
-			}
-		}
-		roffset = 0;
-		/* Round size down to integral number of codes. */
-		size = (size << 3) - (n_bits - 1);
-	}
-	r_off = roffset;
-	bits = n_bits;
-
-	/* Get to the first byte. */
-	bp += (r_off >> 3);
-	r_off &= 7;
-
-	/* Get first part (low order bits). */
-	gcode = (*bp++ >> r_off);
-	bits -= (8 - r_off);
-	r_off = 8 - r_off;	/* Now, roffset into gcode word. */
-
-	/* Get any 8 bit parts in the middle (<=1 for up to 16 bits). */
-	if (bits >= 8) {
-		gcode |= *bp++ << r_off;
-		r_off += 8;
-		bits -= 8;
-	}
-
-	/* High order bits. */
-	gcode |= (*bp & rmask[bits]) << r_off;
-	roffset += n_bits;
-
-	return (gcode);
-}
-
-static void
-zinit(s_zstate_t *zs)
-{
-	memset(zs, 0, sizeof (s_zstate_t));
-
-	maxbits = BITS;			/* User settable max # bits/code. */
-	maxmaxcode = 1 << maxbits;	/* Should NEVER generate this code. */
-	hsize = HSIZE;			/* For dynamic table sizing. */
-	free_ent = 0;			/* First unused entry. */
-	block_compress = BLOCK_MASK;
-	clear_flg = 0;
-	state = S_START;
-	roffset = 0;
-	size = 0;
-}
diff --git a/nx-X11/extras/freetype2/src/lzw/zopen.h b/nx-X11/extras/freetype2/src/lzw/zopen.h
deleted file mode 100644
index 483b47e5c..000000000
--- a/nx-X11/extras/freetype2/src/lzw/zopen.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*	$NetBSD: zopen.c,v 1.8 2003/08/07 11:13:29 agc Exp $	*/
-
-/*-
- * Copyright (c) 1985, 1986, 1992, 1993
- *	The Regents of the University of California.  All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Diomidis Spinellis and James A. Woods, derived from original
- * work by Spencer Thomas and Joseph Orost.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- *    may be used to endorse or promote products derived from this software
- *    without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/*-
- *
- * Copyright (c) 2004
- *	Albert Chin-A-Young.
- *
- * Modified to work with FreeType's PCF driver.
- *
- */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-static char sccsid[] = "@(#)zopen.c	8.1 (Berkeley) 6/27/93";
-#else
-static char rcsid[] = "$NetBSD: zopen.c,v 1.8 2003/08/07 11:13:29 agc Exp $";
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-#include <stdio.h>
-
-#define	BITS		16		/* Default bits. */
-#define	HSIZE		69001		/* 95% occupancy */
-
-/* A code_int must be able to hold 2**BITS values of type int, and also -1. */
-typedef long code_int;
-typedef long count_int;
-
-typedef unsigned char char_type;
-
-typedef enum {
-	S_START, S_MIDDLE, S_EOF
-} zs_enum;
-
-typedef struct {
-	unsigned char *next_in;
-	unsigned int avail_in;
-	unsigned long total_in;
-
-	unsigned char *next_out;
-	unsigned int avail_out;
-	unsigned long total_out;
-
-	zs_enum zs_state;		/* State of computation */
-	int zs_n_bits;			/* Number of bits/code. */
-	int zs_maxbits;			/* User settable max # bits/code. */
-	code_int zs_maxcode;		/* Maximum code, given n_bits. */
-	code_int zs_maxmaxcode;		/* Should NEVER generate this code. */
-	count_int zs_htab [HSIZE];
-	unsigned short zs_codetab [HSIZE];
-	code_int zs_hsize;		/* For dynamic table sizing. */
-	code_int zs_free_ent;		/* First unused entry. */
-	/*
-	 * Block compression parameters -- after all codes are used up,
-	 * and compression rate changes, start over.
-	 */
-	int zs_block_compress;
-	int zs_clear_flg;
-	int zs_offset;
-	long zs_in_count;		/* Remaining uncompressed bytes. */
-	char_type zs_buf_len;
-	char_type zs_buf[BITS];		/* Temporary buffer if we need
-					   to read more to accumulate
-					   n_bits. */
-	union {
-		struct {
-			char_type *zs_stackp;
-			int zs_finchar;
-			code_int zs_code, zs_oldcode, zs_incode;
-			int zs_roffset, zs_size;
-			char_type zs_gbuf[BITS];
-		} r;			/* Read parameters */
-	} u;
-} s_zstate_t;
-
-static code_int getcode(s_zstate_t *);
-#if 0
-static int      zclose(s_zstate_t *);
-#endif
-static void     zinit(s_zstate_t *);
-static int      zread(s_zstate_t *);
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlayout.h b/nx-X11/extras/freetype2/src/otlayout/otlayout.h
deleted file mode 100644
index 2cd67f568..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlayout.h
+++ /dev/null
@@ -1,205 +0,0 @@
-#ifndef __OT_LAYOUT_H__
-#define __OT_LAYOUT_H__
-
-
-#include "otlconf.h"
-
-OTL_BEGIN_HEADER
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                       BASE DATA TYPES                        *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  typedef unsigned char     OTL_Byte;
-  typedef const OTL_Byte*   OTL_Bytes;
-
-  typedef int               OTL_Error;
-
-  typedef void*             OTL_Pointer;
-
-  typedef int               OTL_Int;
-  typedef unsigned int      OTL_UInt;
-
-  typedef long              OTL_Long;
-  typedef unsigned long     OTL_ULong;
-
-  typedef short             OTL_Int16;
-  typedef unsigned short    OTL_UInt16;
-
-
-#if OTL_SIZEOF_INT == 4
-
-  typedef int               OTL_Int32;
-  typedef unsigned int      OTL_UInt32;
-
-#elif OTL_SIZEOF_LONG == 4
-
-  typedef long              OTL_Int32;
-  typedef unsigned long     OTL_UInt32;
-
-#else
-#  error "no 32-bits type found"
-#endif
-
-  typedef OTL_UInt32        OTL_Tag;
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                       ERROR CODES                            *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  typedef enum
-  {
-    OTL_Err_Ok = 0,
-    OTL_Err_InvalidArgument,
-    OTL_Err_InvalidFormat,
-    OTL_Err_InvalidOffset,
-
-    OTL_Err_Max
-
-  } OTL_Error;
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                     MEMORY MANAGEMENT                        *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  typedef OTL_Pointer  (*OTL_AllocFunc)( OTL_ULong    size,
-                                         OTL_Pointer  data );
-
-  typedef OTL_Pointer  (*OTL_ReallocFunc)( OTL_Pointer   block,
-                                           OTL_ULong     size,
-                                           OTL_Pointer   data );
-
-  typedef void         (*OTL_FreeFunc)( OTL_Pointer  block,
-                                        OTL_Pointer  data );
-
-  typedef struct OTL_MemoryRec_
-  {
-    OTL_Pointer      mem_data;
-    OTL_AllocFunc    mem_alloc;
-    OTL_ReallocFunc  mem_realloc;
-    OTL_FreeFunc     mem_free;
-
-  } OTL_MemoryRec, *OTL_Memory;
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                        ENUMERATIONS                          *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-/* re-define OTL_MAKE_TAG to something different if you're not */
-/* using an ASCII-based character set (Vaxes anyone ?)         */
-#ifndef  OTL_MAKE_TAG
-#define  OTL_MAKE_TAG(c1,c2,c3,c4)         \
-           ( ( (OTL_UInt32)(c1) << 24 ) |  \
-               (OTL_UInt32)(c2) << 16 ) |  \
-               (OTL_UInt32)(c3) <<  8 ) |  \
-               (OTL_UInt32)(c4)         )
-#endif
-
-  typedef enum OTL_ScriptTag_
-  {
-    OTL_SCRIPT_NONE = 0,
-
-#define OTL_SCRIPT_TAG(c1,c2,c3,c4,s,n)  OTL_SCRIPT_TAG_ ## n = OTL_MAKE_TAG(c1,c2,c3,c4),
-#include "otltags.h"
-
-    OTL_SCRIPT_MAX
-
-  } OTL_ScriptTag;
-
-
-  typedef enum OTL_LangTag_
-  {
-    OTL_LANG_DEFAULT = 0,
-
-#define OTL_LANG_TAG(c1,c2,c3,c4,s,n)  OTL_LANG_TAG_ ## n = OTL_MAKE_TAG(c1,c2,c3,c4),
-#include "otltags.h"
-
-    OTL_LANG_MAX
-
-  } OTL_LangTag;
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                       MEMORY READS                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-#define  OTL_PEEK_USHORT(p)  ( ((OTL_UInt)((p)[0]) << 8) |  \
-                               ((OTL_UInt)((p)[1])     ) )
-
-#define  OTL_PEEK_ULONG(p)   ( ((OTL_UInt32)((p)[0]) << 24) |  \
-                               ((OTL_UInt32)((p)[1]) << 16) |  \
-                               ((OTL_UInt32)((p)[2]) <<  8) |  \
-                               ((OTL_UInt32)((p)[3])      ) )
-
-#define  OTL_PEEK_SHORT(p)     ((OTL_Int16)OTL_PEEK_USHORT(p))
-
-#define  OTL_PEEK_LONG(p)      ((OTL_Int32)OTL_PEEK_ULONG(p))
-
-#define  OTL_NEXT_USHORT(p)  ( (p) += 2, OTL_PEEK_USHORT((p)-2) )
-#define  OTL_NEXT_ULONG(p)   ( (p) += 4, OTL_PEEK_ULONG((p)-4) )
-
-#define  OTL_NEXT_SHORT(p)   ((OTL_Int16)OTL_NEXT_USHORT(p))
-#define  OTL_NEXT_LONG(p)    ((OTL_Int32)OTL_NEXT_ULONG(p))
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                        VALIDATION                            *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  typedef struct OTL_ValidatorRec_*  OTL_Validator;
-
-  typedef struct OTL_ValidatorRec_
-  {
-    OTL_Bytes    limit;
-    OTL_Bytes    base;
-    OTL_Error    error;
-    OTL_jmp_buf  jump_buffer;
-
-  } OTL_ValidatorRec;
-
-  typedef void  (*OTL_ValidateFunc)( OTL_Bytes  table,
-                                     OTL_Valid  valid );
-
-  OTL_API( void )
-  otl_validator_error( OTL_Validator  validator,
-                       OTL_Error      error );
-
-#define  OTL_INVALID(e)  otl_validator_error( valid, e )
-
-#define  OTL_INVALID_TOO_SHORT  OTL_INVALID( OTL_Err_InvalidOffset )
-#define  OTL_INVALID_DATA       OTL_INVALID( OTL_Err_InvalidFormat )
-
-#define  OTL_CHECK(_count)   OTL_BEGIN_STMNT                       \
-                               if ( p + (_count) > valid->limit )  \
-                                 OTL_INVALID_TOO_SHORT;            \
-                             OTL_END_STMNT
-
- /* */
-
-OTL_END_HEADER
-
-#endif /* __OPENTYPE_LAYOUT_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlbase.c b/nx-X11/extras/freetype2/src/otlayout/otlbase.c
deleted file mode 100644
index 614e13c1a..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlbase.c
+++ /dev/null
@@ -1,181 +0,0 @@
-#include "otlbase.h"
-#include "otlcommn.h"
-
-  static void
-  otl_base_coord_validate( OTL_Bytes      table,
-                           OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 4 );
-
-    format = OTL_NEXT_USHORT( p );
-    p += 2;
-
-    switch ( format )
-    {
-      case 1:
-        break;
-
-      case 2:
-        OTL_CHECK( 4 );
-        break;
-
-      case 3:
-        OTL_CHECK( 2 );
-        otl_device_table_validate( table + OTL_PEEK_USHORT( p ) );
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
-  static void
-  otl_base_tag_list_validate( OTL_Bytes      table,
-                              OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK(2);
-
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( count*4 );
-  }
-
-
-
-  static void
-  otl_base_values_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 4 );
-
-    p    += 2;  /* skip default index */
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-
-    for ( ; count > 0; count-- )
-      otl_base_coord_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_base_minmax_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   min_coord, max_coord, count;
-
-    OTL_CHECK(6);
-    min_coord = OTL_NEXT_USHORT( p );
-    max_coord = OTL_NEXT_USHORT( p );
-    count     = OTL_NEXT_USHORT( p );
-
-    if ( min_coord )
-      otl_base_coord_validate( table + min_coord, valid );
-
-    if ( max_coord )
-      otl_base_coord_validate( table + max_coord, valid );
-
-    OTL_CHECK( count*8 );
-    for ( ; count > 0; count-- )
-    {
-      p += 4;  /* ignore tag */
-      min_coord = OTL_NEXT_USHORT( p );
-      max_coord = OTL_NEXT_USHORT( p );
-
-      if ( min_coord )
-        otl_base_coord_validate( table + min_coord, valid );
-
-      if ( max_coord )
-        otl_base_coord_validate( table + max_coord, valid );
-    }
-  }
-
-
-  static void
-  otl_base_script_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   values, default_minmax;
-
-    OTL_CHECK(6);
-
-    values         = OTL_NEXT_USHORT( p );
-    default_minmax = OTL_NEXT_USHORT( p );
-    count          = OTL_NEXT_USHORT( p );
-
-    if ( values )
-      otl_base_values_validate( table + values, valid );
-
-    if ( default_minmax )
-      otl_base_minmax_validate( table + default_minmax, valid );
-
-    OTL_CHECK( count*6 );
-    for ( ; count > 0; count-- )
-    {
-      p += 4;  /* ignore tag */
-      otl_base_minmax_validate( table + OTL_NEXT_USHORT( p ), valid );
-    }
-  }
-
-
-  static void
-  otl_base_script_list_validate( OTL_Bytes      table,
-                                 OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK(2);
-
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK(count*6);
-
-    for ( ; count > 0; count-- )
-    {
-      p += 4;  /* ignore script tag */
-      otl_base_script_validate( table + OTL_NEXT_USHORT( p ) );
-    }
-  }
-
-  static void
-  otl_axis_table_validate( OTL_Bytes      table,
-                           OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   tags;
-
-    OTL_CHECK(4);
-
-    tags = OTL_NEXT_USHORT( p );
-    if ( tags )
-      otl_base_tag_list_validate   ( table + tags );
-
-    otl_base_script_list_validate( table + OTL_NEXT_USHORT( p ) );
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_base_validate( OTL_Bytes      table,
-                     OTL_Validator  valid )
-  {
-    OTL_Bytes p = table;
-
-    OTL_CHECK(6);
-
-    if ( OTL_NEXT_ULONG( p ) != 0x10000UL )
-      OTL_INVALID_DATA;
-
-    otl_axis_table_validate( table + OTL_NEXT_USHORT( p ) );
-    otl_axis_table_validate( table + OTL_NEXT_USHORT( p ) );
-  }
\ No newline at end of file
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlbase.h b/nx-X11/extras/freetype2/src/otlayout/otlbase.h
deleted file mode 100644
index 563d3002d..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlbase.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __OTL_BASE_H__
-#define __OTL_BASE_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-  OTL_LOCAL( void )
-  otl_base_validate( OTL_Bytes      table,
-                     OTL_Validator  valid );
-
-OTL_END_HEADER
-
-#endif /* __OTL_BASE_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlcommn.c b/nx-X11/extras/freetype2/src/otlayout/otlcommn.c
deleted file mode 100644
index 742ff5b36..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlcommn.c
+++ /dev/null
@@ -1,940 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  otlcommn.c                                                             */
-/*                                                                         */
-/*    OpenType layout support, common tables (body).                       */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "otlayout.h"
-
-
- /*************************************************************************/
- /*************************************************************************/
- /*****                                                               *****/
- /*****                       COVERAGE TABLE                          *****/
- /*****                                                               *****/
- /*************************************************************************/
- /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_coverage_validate( OTL_Bytes      table,
-                         OTL_Validator  valid )
-  {
-    OTL_Bytes  p;
-    OTL_UInt   format;
-
-
-    if ( table + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-    case 1:
-      {
-        OTL_UInt  count = OTL_NEXT_USHORT( p );
-
-
-        if ( p + count * 2 >= valid->limit )
-          OTL_INVALID_TOO_SHORT;
-
-        /* XXX: check glyph indices */
-      }
-      break;
-
-    case 2:
-      {
-        OTL_UInt  n, num_ranges = OTL_NEXT_USHORT( p );
-        OTL_UInt  start, end, start_cover, total = 0, last = 0;
-
-
-        if ( p + num_ranges * 6 >= valid->limit )
-          OTL_INVALID_TOO_SHORT;
-
-        for ( n = 0; n < num_ranges; n++ )
-        {
-          start       = OTL_NEXT_USHORT( p );
-          end         = OTL_NEXT_USHORT( p );
-          start_cover = OTL_NEXT_USHORT( p );
-
-          if ( start > end || start_cover != total )
-            OTL_INVALID_DATA;
-
-          if ( n > 0 && start <= last )
-            OTL_INVALID_DATA;
-
-          total += end - start + 1;
-          last   = end;
-        }
-      }
-      break;
-
-    default:
-      OTL_INVALID_FORMAT;
-    }
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_coverage_get_count( OTL_Bytes  table )
-  {
-    OTL_Bytes  p      = table;
-    OTL_UInt   format = OTL_NEXT_USHORT( p );
-    OTL_UInt   count  = OTL_NEXT_USHORT( p );
-    OTL_UInt   result = 0;
-
-
-    switch ( format )
-    {
-    case 1:
-      return count;
-
-    case 2:
-      {
-        OTL_UInt  start, end;
-
-
-        for ( ; count > 0; count-- )
-        {
-          start = OTL_NEXT_USHORT( p );
-          end   = OTL_NEXT_USHORT( p );
-          p    += 2;                    /* skip start_index */
-
-          result += end - start + 1;
-        }
-      }
-      break;
-
-    default:
-      ;
-    }
-
-    return result;
-  }
-
-
-  OTL_LOCALDEF( OTL_Int )
-  otl_coverage_get_index( OTL_Bytes  table,
-                          OTL_UInt   glyph_index )
-  {
-    OTL_Bytes  p      = table;
-    OTL_UInt   format = OTL_NEXT_USHORT( p );
-    OTL_UInt   count  = OTL_NEXT_USHORT( p );
-
-
-    switch ( format )
-    {
-    case 1:
-      {
-        OTL_UInt  min = 0, max = count, mid, gindex;
-
-
-        table += 4;
-        while ( min < max )
-        {
-          mid    = ( min + max ) >> 1;
-          p      = table + 2 * mid;
-          gindex = OTL_PEEK_USHORT( p );
-
-          if ( glyph_index == gindex )
-            return (OTL_Int)mid;
-
-          if ( glyph_index < gindex )
-            max = mid;
-          else
-            min = mid + 1;
-        }
-      }
-      break;
-
-    case 2:
-      {
-        OTL_UInt  min = 0, max = count, mid;
-        OTL_UInt  start, end, delta, start_cover;
-
-
-        table += 4;
-        while ( min < max )
-        {
-          mid    = ( min + max ) >> 1;
-          p      = table + 6 * mid;
-          start  = OTL_NEXT_USHORT( p );
-          end    = OTL_NEXT_USHORT( p );
-
-          if ( glyph_index < start )
-            max = mid;
-          else if ( glyph_index > end )
-            min = mid + 1;
-          else
-            return (OTL_Int)( glyph_index + OTL_NEXT_USHORT( p ) - start );
-        }
-      }
-      break;
-
-    default:
-      ;
-    }
-
-    return -1;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  CLASS DEFINITION TABLE                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_class_definition_validate( OTL_Bytes      table,
-                                 OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-
-    if ( p + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-    case 1:
-      {
-        OTL_UInt  count, start = OTL_NEXT_USHORT( p );
-
-
-        if ( p + 2 > valid->limit )
-          OTL_INVALID_TOO_SHORT;
-
-        count = OTL_NEXT_USHORT( p );
-
-        if ( p + count * 2 > valid->limit )
-          OTL_INVALID_TOO_SHORT;
-
-        /* XXX: check glyph indices */
-      }
-      break;
-
-    case 2:
-      {
-        OTL_UInt  n, num_ranges = OTL_NEXT_USHORT( p );
-        OTL_UInt  start, end, value, last = 0;
-
-
-        if ( p + num_ranges * 6 > valid->limit )
-          OTL_INVALID_TOO_SHORT;
-
-        for ( n = 0; n < num_ranges; n++ )
-        {
-          start = OTL_NEXT_USHORT( p );
-          end   = OTL_NEXT_USHORT( p );
-          value = OTL_NEXT_USHORT( p );  /* ignored */
-
-          if ( start > end || ( n > 0 && start <= last ) )
-            OTL_INVALID_DATA;
-
-          last = end;
-        }
-      }
-      break;
-
-    default:
-      OTL_INVALID_FORMAT;
-    }
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_class_definition_get_value( OTL_Bytes  table,
-                                  OTL_UInt   glyph_index )
-  {
-    OTL_Bytes  p      = table;
-    OTL_UInt   format = OTL_NEXT_USHORT( p );
-
-
-    switch ( format )
-    {
-    case 1:
-      {
-        OTL_UInt  start = OTL_NEXT_USHORT( p );
-        OTL_UInt  count = OTL_NEXT_USHORT( p );
-        OTL_UInt  idx   = (OTL_UInt)( glyph_index - start );
-
-
-        if ( idx < count )
-        {
-          p += 2 * idx;
-          return OTL_PEEK_USHORT( p );
-        }
-      }
-      break;
-
-    case 2:
-      {
-        OTL_UInt  count = OTL_NEXT_USHORT( p );
-        OTL_UInt  min = 0, max = count, mid, gindex;
-
-
-        table += 4;
-        while ( min < max )
-        {
-          mid   = ( min + max ) >> 1;
-          p     = table + 6 * mid;
-          start = OTL_NEXT_USHORT( p );
-          end   = OTL_NEXT_USHORT( p );
-
-          if ( glyph_index < start )
-            max = mid;
-          else if ( glyph_index > end )
-            min = mid + 1;
-          else
-            return OTL_PEEK_USHORT( p );
-        }
-      }
-      break;
-
-    default:
-      ;
-    }
-
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      DEVICE TABLE                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_device_table_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   start, end, count, format, count;
-
-
-    if ( p + 8 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    start  = OTL_NEXT_USHORT( p );
-    end    = OTL_NEXT_USHORT( p );
-    format = OTL_NEXT_USHORT( p );
-
-    if ( format < 1 || format > 3 || end < start )
-      OTL_INVALID_DATA;
-
-    count = (OTL_UInt)( end - start + 1 );
-
-    if ( p + ( ( 1 << format ) * count ) / 8 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_device_table_get_start( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_device_table_get_end( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table + 2;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_Int )
-  otl_device_table_get_delta( OTL_Bytes  table,
-                              OTL_UInt   size )
-  {
-    OTL_Bytes  p = table;
-    OTL_Int    result = 0;
-    OTL_UInt   start, end, format, idx, value;
-
-
-    start  = OTL_NEXT_USHORT( p );
-    end    = OTL_NEXT_USHORT( p );
-    format = OTL_NEXT_USHORT( p );
-
-    if ( size >= start && size <= end )
-    {
-      /* we could do that with clever bit operations, but a switch is */
-      /* much simpler to understand and maintain                      */
-      /*                                                              */
-      switch ( format )
-      {
-      case 1:
-        idx    = (OTL_UInt)( ( size - start ) * 2 );
-        p     += idx / 16;
-        value  = OTL_PEEK_USHORT( p );
-        shift  = idx & 15;
-        result = (OTL_Short)( value << shift ) >> ( 14 - shift );
-
-        break;
-
-      case 2:
-        idx    = (OTL_UInt)( ( size - start ) * 4 );
-        p     += idx / 16;
-        value  = OTL_PEEK_USHORT( p );
-        shift  = idx & 15;
-        result = (OTL_Short)( value << shift ) >> ( 12 - shift );
-
-        break;
-
-      case 3:
-        idx    = (OTL_UInt)( ( size - start ) * 8 );
-        p     += idx / 16;
-        value  = OTL_PEEK_USHORT( p );
-        shift  = idx & 15;
-        result = (OTL_Short)( value << shift ) >> ( 8 - shift );
-
-        break;
-
-      default:
-        ;
-      }
-    }
-
-    return result;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      LOOKUP LISTS                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_lookup_validate( OTL_Bytes      table,
-                       OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   num_tables;
-
-
-    if ( table + 6 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    p += 4;
-    num_tables = OTL_NEXT_USHORT( p );
-
-    if ( p + num_tables * 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; num_tables > 0; num_tables-- )
-    {
-      offset = OTL_NEXT_USHORT( p );
-
-      if ( table + offset >= valid->limit )
-        OTL_INVALID_OFFSET;
-    }
-
-    /* XXX: check sub-tables? */
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lookup_get_count( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table + 4;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_lookup_get_table( OTL_Bytes  table,
-                        OTL_UInt   idx )
-  {
-    OTL_Bytes  p, result = NULL;
-    OTL_UInt   count;
-
-
-    p     = table + 4;
-    count = OTL_NEXT_USHORT( p );
-    if ( idx < count )
-    {
-      p     += idx * 2;
-      result = table + OTL_PEEK_USHORT( p );
-    }
-
-    return result;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      LOOKUP LISTS                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_lookup_list_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table, q;
-    OTL_UInt   num_lookups, offset;
-
-
-    if ( p + 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    num_lookups = OTL_NEXT_USHORT( p );
-
-    if ( p + num_lookups * 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; num_lookups > 0; num_lookups-- )
-    {
-      offset = OTL_NEXT_USHORT( p );
-
-      otl_lookup_validate( table + offset, valid );
-    }
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lookup_list_get_count( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_lookup_list_get_lookup( OTL_Bytes  table,
-                              OTL_UInt   idx )
-  {
-    OTL_Bytes  p, result = 0;
-    OTL_UInt   count;
-
-
-    p     = table;
-    count = OTL_NEXT_USHORT( p );
-    if ( idx < count )
-    {
-      p     += idx * 2;
-      result = table + OTL_PEEK_USHORT( p );
-    }
-
-    return result;
-  }
-
-
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_lookup_list_get_table( OTL_Bytes  table,
-                             OTL_UInt   lookup_index,
-                             OTL_UInt   table_index )
-  {
-    OTL_Bytes  result = NULL;
-
-
-    result = otl_lookup_list_get_lookup( table, lookup_index );
-    if ( result )
-      result = otl_lookup_get_table( result, table_index );
-
-    return result;
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_lookup_list_foreach( OTL_Bytes        table,
-                           OTL_ForeachFunc  func,
-                           OTL_Pointer      func_data )
-  {
-    OTL_Bytes  p     = table;
-    OTL_UInt   count = OTL_NEXT_USHORT( p );
-
-
-    for ( ; count > 0; count-- )
-      func( table + OTL_NEXT_USHORT( p ), func_data );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        FEATURES                               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_feature_validate( OTL_Bytes      table,
-                        OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   feat_params, num_lookups;
-
-
-    if ( p + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    feat_params = OTL_NEXT_USHORT( p );  /* ignored */
-    num_lookups = OTL_NEXT_USHORT( p );
-
-    if ( p + num_lookups * 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    /* XXX: check lookup indices */
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_feature_get_count( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table + 4;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_feature_get_lookups( OTL_Bytes  table,
-                           OTL_UInt   start,
-                           OTL_UInt   count,
-                           OTL_UInt  *lookups )
-  {
-    OTL_Bytes  p;
-    OTL_UInt   num_features, result = 0;
-
-
-    p            = table + 4;
-    num_features = OTL_NEXT_USHORT( p );
-
-    p += start * 2;
-
-    for ( ; count > 0 && start < num_features; count--, start++ )
-    {
-      lookups[0] = OTL_NEXT_USHORT(p);
-      lookups++;
-      result++;
-    }
-
-    return result;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        FEATURE LIST                           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCALDEF( void )
-  otl_feature_list_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   num_features, offset;
-
-
-    if ( table + 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    num_features = OTL_NEXT_USHORT( p );
-
-    if ( p + num_features * 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; num_features > 0; num_features-- )
-    {
-      p     += 4;                       /* skip tag */
-      offset = OTL_NEXT_USHORT( p );
-
-      otl_feature_table_validate( table + offset, valid );
-    }
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_feature_list_get_count( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_feature_list_get_feature( OTL_Bytes  table,
-                                OTL_UInt   idx )
-  {
-    OTL_Bytes  p, result = NULL;
-    OTL_UInt   count;
-
-
-    p     = table;
-    count = OTL_NEXT_USHORT( p );
-
-    if ( idx < count )
-    {
-      p     += idx * 2;
-      result = table + OTL_PEEK_USHORT( p );
-    }
-
-    return result;
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_feature_list_foreach( OTL_Bytes        table,
-                            OTL_ForeachFunc  func,
-                            OTL_Pointer      func_data )
-  {
-    OTL_Bytes  p;
-    OTL_UInt   count;
-
-
-    p = table;
-    count = OTL_NEXT_USHORT( p );
-
-    for ( ; count > 0; count-- )
-      func( table + OTL_NEXT_USHORT( p ), func_data );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       LANGUAGE SYSTEM                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  OTL_LOCALDEF( void )
-  otl_lang_validate( OTL_Bytes      table,
-                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   lookup_order;
-    OTL_UInt   req_feature;
-    OTL_UInt   num_features;
-
-
-    if ( table + 6 >= valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    lookup_order = OTL_NEXT_USHORT( p );
-    req_feature  = OTL_NEXT_USHORT( p );
-    num_features = OTL_NEXT_USHORT( p );
-
-    /* XXX: check req_feature if not 0xFFFFU */
-
-    if ( p + 2 * num_features >= valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    /* XXX: check features indices! */
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lang_get_count( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table + 4;
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lang_get_req_feature( OTL_Bytes  table )
-  {
-    OTL_Bytes  p = table + 2;
-
-
-    return OTL_PEEK_USHORT( p );
-  }
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lang_get_features( OTL_Bytes  table,
-                         OTL_UInt   start,
-                         OTL_UInt   count,
-                         OTL_UInt  *features )
-  {
-    OTL_Bytes  p            = table + 4;
-    OTL_UInt   num_features = OTL_NEXT_USHORT( p );
-    OTL_UInt   result       = 0;
-
-
-    p += start * 2;
-
-    for ( ; count > 0 && start < num_features; start++, count-- )
-    {
-      features[0] = OTL_NEXT_USHORT( p );
-      features++;
-      result++;
-    }
-
-    return result;
-  }
-
-
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                           SCRIPTS                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  OTL_LOCALDEF( void )
-  otl_script_validate( OTL_Bytes      table,
-                       OTL_Validator  valid )
-  {
-    OTL_UInt   default_lang;
-    OTL_Bytes  p = table;
-
-
-    if ( table + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    default_lang = OTL_NEXT_USHORT( p );
-    num_langs    = OTL_NEXT_USHORT( p );
-
-    if ( default_lang != 0 )
-    {
-      if ( table + default_lang >= valid->limit )
-        OTL_INVALID_OFFSET;
-    }
-
-    if ( p + num_langs * 6 >= valid->limit )
-      OTL_INVALID_OFFSET;
-
-    for ( ; num_langs > 0; num_langs-- )
-    {
-      OTL_UInt  offset;
-
-
-      p     += 4;  /* skip tag */
-      offset = OTL_NEXT_USHORT( p );
-
-      otl_lang_validate( table + offset, valid );
-    }
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_script_list_validate( OTL_Bytes      list,
-                            OTL_Validator  valid )
-  {
-    OTL_UInt   num_scripts;
-    OTL_Bytes  p = list;
-
-
-    if ( list + 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    num_scripts = OTL_NEXT_USHORT( p );
-
-    if ( p + num_scripts * 6 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; num_scripts > 0; num_scripts-- )
-    {
-      OTL_UInt  offset;
-
-
-      p     += 4;                       /* skip tag */
-      offset = OTL_NEXT_USHORT( p );
-
-      otl_script_table_validate( list + offset, valid );
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                         LOOKUP LISTS                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  otl_lookup_table_validate( OTL_Bytes          table,
-                             OTL_UInt           type_count,
-                             OTL_ValidateFunc*  type_funcs,
-                             OTL_Validator      valid )
-  {
-    OTL_Bytes         p = table;
-    OTL_UInt          lookup_type, lookup_flag, count;
-    OTL_ValidateFunc  validate;
-
-    OTL_CHECK( 6 );
-    lookup_type = OTL_NEXT_USHORT( p );
-    lookup_flag = OTL_NEXT_USHORT( p );
-    count       = OTL_NEXT_USHORT( p );
-
-    if ( lookup_type == 0 || lookup_type >= type_count )
-      OTL_INVALID_DATA;
-
-    validate = type_funcs[ lookup_type - 1 ];
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_lookup_list_validate( OTL_Bytes          table,
-                            OTL_UInt           type_count,
-                            OTL_ValidateFunc*  type_funcs,
-                            OTL_Validator      valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_lookup_table_validate( table + OTL_NEXT_USHORT( p ),
-                                 type_count, type_funcs, valid );
-  }
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlcommn.h b/nx-X11/extras/freetype2/src/otlayout/otlcommn.h
deleted file mode 100644
index 25914fb9f..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlcommn.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  otlcommn.h                                                             */
-/*                                                                         */
-/*    OpenType layout support, common tables (specification).              */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __OTLCOMMN_H__
-#define __OTLCOMMN_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       COVERAGE TABLE                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate coverage table */
-  OTL_LOCALDEF( void )
-  otl_coverage_validate( OTL_Bytes      base,
-                         OTL_Validator  valid );
-
-  /* return number of covered glyphs */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_coverage_get_count( OTL_Bytes  base );
-
-  /* Return the coverage index corresponding to a glyph glyph index. */
-  /* Return -1 if the glyph isn't covered.                           */
-  OTL_LOCALDEF( OTL_Int )
-  otl_coverage_get_index( OTL_Bytes  base,
-                          OTL_UInt   glyph_index );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  CLASS DEFINITION TABLE                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate class definition table */
-  OTL_LOCALDEF( void )
-  otl_class_definition_validate( OTL_Bytes      table,
-                                 OTL_Validator  valid );
-
-  /* return class value for a given glyph index */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_class_definition_get_value( OTL_Bytes  table,
-                                  OTL_UInt   glyph_index );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      DEVICE TABLE                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate a device table */
-  OTL_LOCALDEF( void )
-  otl_device_table_validate( OTL_Bytes      table,
-                             OTL_Validator  valid );
-
-  /* return a device table's first size */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_device_table_get_start( OTL_Bytes  table );
-
-  /* return a device table's last size */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_device_table_get_end( OTL_Bytes  table );
-
-  /* return pixel adjustment for a given size */
-  OTL_LOCALDEF( OTL_Int )
-  otl_device_table_get_delta( OTL_Bytes  table,
-                              OTL_UInt   size );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                           LOOKUPS                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate lookup table */
-  OTL_LOCALDEF( void )
-  otl_lookup_validate( OTL_Bytes      table,
-                       OTL_Validator  valid );
-
-  /* return number of sub-tables in a lookup */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lookup_get_count( OTL_Bytes  table );
-
-
-  /* return lookup sub-table */
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_lookup_get_table( OTL_Bytes  table,
-                        OTL_UInt   idx );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      LOOKUP LISTS                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate lookup list */
-  OTL_LOCALDEF( void )
-  otl_lookup_list_validate( OTL_Bytes      table,
-                            OTL_Validator  valid );
-
-  /* return number of lookups in list */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_lookup_list_get_count( OTL_Bytes  table );
-
-  /* return a given lookup from a list */
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_lookup_list_get_lookup( OTL_Bytes  table,
-                              OTL_UInt   idx );
-
-  /* return lookup sub-table from a list */
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_lookup_list_get_table( OTL_Bytes  table,
-                             OTL_UInt   lookup_index,
-                             OTL_UInt   table_index );
-
-  /* iterate over lookup list */
-  OTL_LOCALDEF( void )
-  otl_lookup_list_foreach( OTL_Bytes        table,
-                           OTL_ForeachFunc  func,
-                           OTL_Pointer      func_data );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        FEATURES                               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate feature table */
-  OTL_LOCALDEF( void )
-  otl_feature_validate( OTL_Bytes      table,
-                        OTL_Validator  valid );
-
-  /* return feature's lookup count */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_feature_get_count( OTL_Bytes  table );
-
-  /* get several lookups indices from a feature. returns the number of */
-  /* lookups grabbed                                                   */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_feature_get_lookups( OTL_Bytes  table,
-                           OTL_UInt   start,
-                           OTL_UInt   count,
-                           OTL_UInt  *lookups );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        FEATURE LIST                           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* validate a feature list */
-  OTL_LOCALDEF( void )
-  otl_feature_list_validate( OTL_Bytes      table,
-                             OTL_Validator  valid );
-
-  /* return number of features in list */
-  OTL_LOCALDEF( OTL_UInt )
-  otl_feature_list_get_count( OTL_Bytes  table );
-
-
-  /* return a given feature from a list */
-  OTL_LOCALDEF( OTL_Bytes )
-  otl_feature_list_get_feature( OTL_Bytes  table,
-                                OTL_UInt   idx );
-
-  /* iterate over all features in a list */
-  OTL_LOCALDEF( void )
-  otl_feature_list_foreach( OTL_Bytes        table,
-                            OTL_ForeachFunc  func,
-                            OTL_Pointer      func_data );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       LANGUAGE SYSTEM                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCAL( void )
-  otl_lang_validate( OTL_Bytes      table,
-                     OTL_Validator  valid );
-
-
-  OTL_LOCAL( OTL_UInt )
-  otl_lang_get_req_feature( OTL_Bytes  table );
-
-
-  OTL_LOCAL( OTL_UInt )
-  otl_lang_get_count( OTL_Bytes  table );
-
-
-  OTL_LOCAL( OTL_UInt )
-  otl_lang_get_features( OTL_Bytes  table,
-                         OTL_UInt   start,
-                         OTL_UInt   count,
-                         OTL_UInt  *features );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                           SCRIPTS                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCAL( void )
-  otl_script_list_validate( OTL_Bytes          list,
-                            OTL_Validator      valid );
-
-  OTL_LOCAL( OTL_Bytes )
-  otl_script_list_get_script( OTL_Bytes  table );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                         LOOKUP LISTS                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  OTL_LOCAL( void )
-  otl_lookup_list_validate( OTL_Bytes          list,
-                            OTL_UInt           type_count,
-                            OTL_ValidateFunc*  type_funcs,
-                            OTL_Validator      valid );
-
- /* */
-
-OTL_END_HEADER
-
-#endif /* __OTLCOMMN_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlconf.h b/nx-X11/extras/freetype2/src/otlayout/otlconf.h
deleted file mode 100644
index 3ef17a079..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlconf.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef __OT_LAYOUT_CONFIG_H__
-#define __OT_LAYOUT_CONFIG_H__
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                    CONFIGURATION MACROS                      *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-#ifdef __cplusplus
-#  define OTL_BEGIN_HEADER  extern "C" {
-#else
-#  define OTL_BEGIN_HEADER  /* nothing */
-#endif
-
-#ifdef __cplusplus
-#  define OTL_END_HEADER   }
-#else
-#  define OTL_END_HEADER   /* nothing */
-#endif
-
-#ifndef OTL_API
-#  ifdef __cplusplus
-#    define  OTL_API( x )   extern "C"
-#  else
-#    define  OTL_API( x )   extern x
-#  endif
-#endif
-
-#ifndef OTL_APIDEF
-#  define  OTL_APIDEF( x )  x
-#endif
-
-#ifndef OTL_LOCAL
-#  define OTL_LOCAL( x )   extern x
-#endif
-
-#ifndef OTL_LOCALDEF
-#  define OTL_LOCALDEF( x )  x
-#endif
-
-#define  OTL_BEGIN_STMNT  do {
-#define  OTL_END_STMNT    } while (0)
-#define  OTL_DUMMY_STMNT  OTL_BEGIN_STMNT OTL_END_STMNT
-
-#define  OTL_UNUSED( x )       (x)=(x)
-#define  OTL_UNUSED_CONST(x)   (void)(x)
-
-
-#include <limits.h>
-#if UINT_MAX == 0xFFFFU
-#  define OTL_SIZEOF_INT  2
-#elif UINT_MAX == 0xFFFFFFFFU
-#  define OTL_SIZEOF_INT  4
-#elif UINT_MAX > 0xFFFFFFFFU && UINT_MAX == 0xFFFFFFFFFFFFFFFFU
-#  define OTL_SIZEOF_INT  8
-#else
-#  error  "unsupported number of bytes in 'int' type!"
-#endif
-
-#if ULONG_MAX == 0xFFFFFFFFU
-#  define  OTL_SIZEOF_LONG  4
-#elif ULONG_MAX > 0xFFFFFFFFU && ULONG_MAX == 0xFFFFFFFFFFFFFFFFU
-#  define  OTL_SIZEOF_LONG  8
-#else
-#  error  "unsupported number of bytes in 'long' type!"
-#endif
-
-#include <setjmp.h>
-#define  OTL_jmp_buf   jmp_buf
-#define  otl_setjmp    setjmp
-#define  otl_longjmp   longjmp
-
-/* */
-
-#endif /* __OT_LAYOUT_CONFIG_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlgdef.c b/nx-X11/extras/freetype2/src/otlayout/otlgdef.c
deleted file mode 100644
index ff1c2a1e8..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlgdef.c
+++ /dev/null
@@ -1,175 +0,0 @@
-#include "otlgdef.h"
-#include "otlcommn.h"
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                      ATTACHMENTS LIST                        *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_attach_point_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    if ( p + 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    count = OTL_NEXT_USHORT( p );
-    if ( table + count*2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-  }
-
-
-  static void
-  otl_attach_list_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_Bytes  coverage;
-    OTL_UInt   count;
-
-    if ( p + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    coverage = table + OTL_NEXT_USHORT( p );
-    count    = OTL_NEXT_USHORT( p );
-
-    otl_coverage_validate( coverage, valid );
-    if ( count != otl_coverage_get_count( coverage ) )
-      OTL_INVALID_DATA;
-
-    if ( p + count*2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; count > 0; count-- )
-      otl_attach_point_validate( table + OTL_NEXT_USHORT( p ) );
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                      LIGATURE CARETS                         *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_caret_value_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-
-    if ( p + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-      case 2:
-        break;
-
-      case 3:
-        {
-          OTL_Bytes  device;
-
-          p += 2;
-          if ( p + 2 > valid->limit )
-            OTL_INVALID_TOO_SHORT;
-
-          otl_device_table_validate( table + OTL_PEEK_USHORT( p ) );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
-  static void
-  otl_ligature_glyph_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    if ( p + 2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    count = OTL_NEXT_USHORT( p );
-
-    if ( p + count*2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; count > 0; count-- )
-      otl_caret_value_validate( table + OTL_NEXT_USHORT( p ) );
-  }
-
-
-  static void
-  otl_ligature_caret_list_validate( OTL_Bytes      table,
-                                    OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_Bytes  coverage;
-    OTL_UInt   count;
-
-    if ( p + 4 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    coverage = table + OTL_NEXT_USHORT( p );
-    count    = OTL_NEXT_USHORT( p );
-
-    otl_coverage_validate( coverage, valid );
-    if ( count != otl_coverage_get_count( coverage ) )
-      OTL_INVALID_DATA;
-
-    if ( p + count*2 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    for ( ; count > 0; count-- )
-      otl_ligature_glyph_validate( table + OTL_NEXT_USHORT( p ) );
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                         GDEF TABLE                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  OTL_APIDEF( void )
-  otl_gdef_validate( OTL_Bytes      table,
-                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-
-    if ( p + 12 > valid->limit )
-      OTL_INVALID_TOO_SHORT;
-
-    /* check format */
-    if ( OTL_NEXT_ULONG( p ) != 0x00010000UL )
-      OTL_INVALID_FORMAT;
-
-    /* validate class definition table */
-    otl_class_definition_validate( table + OTL_NEXT_USHORT( p ) );
-
-    /* validate attachment point list */
-    otl_attach_list_validate( table + OTL_NEXT_USHORT( p ) );
-
-    /* validate ligature caret list */
-    otl_ligature_caret_list_validate( table + OTL_NEXT_USHORT( p ) );
-
-    /* validate mark attach class */
-    otl_class_definition_validate( table + OTL_NEXT_USHORT( p ) );
-  }
-
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlgdef.h b/nx-X11/extras/freetype2/src/otlayout/otlgdef.h
deleted file mode 100644
index 5046cc436..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlgdef.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __OTL_GDEF_H__
-#define __OTL_GDEF_H__
-
-#include "otltable.h"
-
-OTL_BEGIN_HEADER
-
-  OTL_API( void )
-  otl_gdef_validate( OTL_Bytes  table,
-                     OTL_Valid  valid );
-
-OTL_END_HEADER
-
-#endif /* __OTL_GDEF_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlgpos.c b/nx-X11/extras/freetype2/src/otlayout/otlgpos.c
deleted file mode 100644
index 01942d7f0..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlgpos.c
+++ /dev/null
@@ -1,980 +0,0 @@
-#include "otlgpos.h"
-#include "otlcommn.h"
-
- /* forward declaration */
-  static OTL_ValidateFunc  otl_gpos_validate_funcs[];
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                         VALUE RECORDS                        *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static OTL_UInt
-  otl_value_length( OTL_UInt  format )
-  {
-    FT_UInt  count;
-
-    count = (( format & 0xAA ) >> 1) + ( format & 0x55 );
-    count = (( count  & 0xCC ) >> 2) + ( count  & 0x33 );
-    count = (( count  & 0xF0 ) >> 4) + ( count  & 0x0F );
-
-    return count;
-  }
-
-
-  static void
-  otl_value_validate( OTL_Bytes      table,
-                      OTL_Bytes      pos_table,
-                      OTL_UInt       format,
-                      OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count, device;
-
-    if ( format >= 0x100U )
-      OTL_INVALID_DATA;
-
-    for ( count = 4; count > 0; count-- )
-    {
-      if ( format & 1 )
-      {
-        OTL_CHECK( 2 );
-        p += 2;
-      }
-
-      format >>= 1;
-    }
-
-    for ( count = 4; count > 0; count-- )
-    {
-      if ( format & 1 )
-      {
-        OTL_CHECK( 2 );
-        device = OTL_NEXT_USHORT( p );
-        if ( device )
-          otl_device_table_validate( pos_table + device, valid );
-      }
-      format >>= 1;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                          ANCHORS                             *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_anchor_validate( OTL_Bytes      table,
-                       OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 6 );
-    format = OTL_NEXT_USHORT( p );
-    p += 4;
-
-    switch ( format )
-    {
-      case 1:
-        break;
-
-      case 2:
-        OTL_CHECK( 2 );  /* anchor point */
-        break;
-
-      case 3:
-        {
-          OTL_UInt  x_device, y_device;
-
-          OTL_CHECK( 4 );
-          x_device = OTL_NEXT_USHORT( p );
-          y_device = OTL_NEXT_USHORT( p );
-
-          if ( x_device )
-            otl_device_table_validate( table + x_device, valid );
-
-          if ( y_device )
-            otl_device_table_validate( table + y_device, valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                           MARK ARRAY                         *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_mark_array_validate( OTL_Bytes      table,
-                           OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( count * 4 );
-    for ( ; count > 0; count-- )
-    {
-      p += 2;  /* ignore class index */
-      otl_anchor_validate( table + OTL_NEXT_USHORT( p ), valid );
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 1                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_gpos_lookup1_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          FT_UInt  coverage, value_format;
-
-          OTL_CHECK( 4 );
-          coverage     = OTL_NEXT_USHORT( p );
-          value_format = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-          otl_value_validate( p, table, value_format, valid );
-        }
-        break;
-
-      case 2:
-        {
-          FT_UInt  coverage, value_format, count, len;
-
-          OTL_CHECK( 6 );
-          coverage     = OTL_NEXT_USHORT( p );
-          value_format = OTL_NEXT_USHORT( p );
-          count        = OTL_NEXT_USHORT( p );
-          len          = otl_value_length( value_format );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( count * len );
-          for ( ; count > 0; count-- )
-          {
-            otl_value_validate( p, table, value_format, valid );
-            p += len;
-          }
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 2                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static otl_gpos_pairset_validate( OTL_Bytes      table,
-                                    OTL_Bytes      pos_table,
-                                    OTL_UInt       format1,
-                                    OTL_UInt       format2,
-                                    OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   len1, len2, count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-    len1  = otl_value_length( format1 );
-    len2  = otl_value_length( format2 );
-
-    OTL_CHECK( count * (len1+len2+2) );
-    for ( ; count > 0; count-- )
-    {
-      p += 2;  /* ignore glyph id */
-      otl_value_validate( p, pos_table, format1, valid );
-      p += len1;
-
-      otl_value_validate( p, pos_table, format2, valid );
-      p += len2;
-    }
-  }
-
-  static void
-  otl_gpos_lookup2_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, value1, value2, count;
-
-          OTL_CHECK( 8 );
-          coverage = OTL_NEXT_USHORT( p );
-          value1   = OTL_NEXT_USHORT( p );
-          value2   = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( count*2 );
-          for ( ; count > 0; count-- )
-          {
-            otl_gpos_pairset_validate( table + OTL_NEXT_USHORT( p ),
-                                       table, value1, value2, valid );
-          }
-        }
-        break;
-
-      case 2:
-        {
-          OTL_UInt  coverage, value1, value2, class1, class2, count1, count2;
-          OTL_UInt  len1, len2;
-
-          OTL_CHECK( 14 );
-          coverage = OTL_NEXT_USHORT( p );
-          value1   = OTL_NEXT_USHORT( p );
-          value2   = OTL_NEXT_USHORT( p );
-          class1   = OTL_NEXT_USHORT( p );
-          class2   = OTL_NEXT_USHORT( p );
-          count1   = OTL_NEXT_USHORT( p );
-          count2   = OTL_NEXT_USHORT( p );
-
-          len1 = otl_value_length( value1 );
-          len2 = otl_value_length( value2 );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( count1*count2*(len1+len2) );
-          for ( ; count1 > 0; count1-- )
-          {
-            for ( ; count2 > 0; count2-- )
-            {
-              otl_value_validate( p, table, value1, valid );
-              p += len1;
-
-              otl_value_validate( p, table, value2, valid );
-              p += len2;
-            }
-          }
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 3                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_gpos_lookup3_validate( OTL_Bytes  table,
-                             OTL_Valid  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count, anchor1, anchor2;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( count*4 );
-          for ( ; count > 0; count-- )
-          {
-            anchor1 = OTL_NEXT_USHORT( p );
-            anchor2 = OTL_NEXT_USHORT( p );
-
-            if ( anchor1 )
-              otl_anchor_validate( table + anchor1, valid );
-
-            if ( anchor2 )
-              otl_anchor_validate( table + anchor2, valid );
-          }
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 4                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_base_array_validate( OTL_Bytes      table,
-                           OTL_UInt       class_count,
-                           OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count, count2;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*class_count*2 );
-    for ( ; count > 0; count-- )
-      for ( count2 = class_count; count2 > 0; count2-- )
-        otl_anchor_validate( table + OTL_NEXT_USHORT( p ) );
-  }
-
-
-  static void
-  otl_gpos_lookup4_validate( OTL_Bytes  table,
-                             OTL_Valid  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  mark_coverage, base_coverage, class_count;
-          OTL_UInt  mark_array, base_array;
-
-          OTL_CHECK( 10 );
-          mark_coverage = OTL_NEXT_USHORT( p );
-          base_coverage = OTL_NEXT_USHORT( p );
-          class_count   = OTL_NEXT_USHORT( p );
-          mark_array    = OTL_NEXT_USHORT( p );
-          base_array    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + mark_coverage, valid );
-          otl_coverage_validate( table + base_coverage, valid );
-
-          otl_mark_array_validate( table + mark_array, valid );
-          otl_base_array_validate( table, class_count, valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 5                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_liga_attach_validate( OTL_Bytes      table,
-                            OTL_UInt       class_count,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count, count2;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*class_count*2 );
-    for ( ; count > 0; count-- )
-      for ( count2 = class_count; class_count > 0; class_count-- )
-        otl_anchor_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_liga_array_validate( OTL_Bytes      table,
-                           OTL_UInt       class_count,
-                           OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count, count2;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-    for ( ; count > 0; count-- )
-      otl_liga_attach_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_gpos_lookup5_validate( OTL_Bytes  table,
-                             OTL_Valid  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  mark_coverage, lig_coverage, class_count;
-          OTL_UInt  mar_array, lig_array;
-
-          OTL_CHECK( 10 );
-          mark_coverage = OTL_NEXT_USHORT( p );
-          liga_coverage = OTL_NEXT_USHORT( p );
-          class_count   = OTL_NEXT_USHORT( p );
-          mark_array    = OTL_NEXT_USHORT( p );
-          liga_array    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + mark_coverage, valid );
-          otl_coverage_validate( table + liga_coverage, valid );
-
-          otl_mark_array_validate( table + mark_array, valid );
-          otl_liga_array_validate( table + liga_array, class_count, valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 6                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
-  static void
-  otl_mark2_array_validate( OTL_Bytes      table,
-                            OTL_UInt       class_count,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count, count2;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*class_count*2 );
-    for ( ; count > 0; count-- )
-      for ( count2 = class_count; class_count > 0; class_count-- )
-        otl_anchor_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_gpos_lookup6_validate( OTL_Bytes  table,
-                             OTL_Valid  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  coverage1, coverage2, class_count, array1, array2;
-
-          OTL_CHECK( 10 );
-          coverage1   = OTL_NEXT_USHORT( p );
-          coverage2   = OTL_NEXT_USHORT( p );
-          class_count = OTL_NEXT_USHORT( p );
-          array1      = OTL_NEXT_USHORT( p );
-          array2      = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage1, valid );
-          otl_coverage_validate( table + coverage2, valid );
-
-          otl_mark_array_validate( table + array1, valid );
-          otl_mark2_array_validate( table + array2, valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 7                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_pos_rule_validate( OTL_Bytes      table,
-                         OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   glyph_count, pos_count;
-
-    OTL_CHECK( 4 );
-    glyph_count = OTL_NEXT_USHORT( p );
-    pos_count   = OTL_NEXT_USHORT( p );
-
-    if ( glyph_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( (glyph_count-1)*2 + pos_count*4 );
-
-    /* XXX: check glyph indices and pos lookups */
-  }
-
-
-  static void
-  otl_pos_rule_set_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-    for ( ; count > 0; count-- )
-      otl_pos_rule_validate( table + OTL_NEXT_USHORT(p), valid );
-  }
-
-
-
-  static void
-  otl_pos_class_rule_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   glyph_count, pos_count;
-
-    OTL_CHECK( 4 );
-    glyph_count = OTL_NEXT_USHORT( p );
-    pos_count   = OTL_NEXT_USHORT( p );
-
-    if ( glyph_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( (glyph_count-1)*2 + pos_count*4 );
-
-    /* XXX: check glyph indices and pos lookups */
-  }
-
-
-  static void
-  otl_pos_class_set_validate( OTL_Bytes      table,
-                              OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-    for ( ; count > 0; count-- )
-      otl_pos_rule_validate( table + OTL_NEXT_USHORT(p), valid );
-  }
-
-
-  static void
-  otl_gpos_lookup7_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( count*2 );
-          for ( ; count > 0; count-- )
-            otl_pos_rule_set_validate( table + OTL_NEXT_USHORT( p ), valid );
-        }
-        break;
-
-      case 2:
-        {
-          OTL_UInt  coverage, class_def, count;
-
-          OTL_CHECK( 6 );
-          coverage  = OTL_NEXT_USHORT( p );
-          class_def = OTL_NEXT_USHORT( p );
-          count     = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate        ( table + coverage, valid );
-          otl_class_definition_validate( table + class_def, valid );
-
-          OTL_CHECK( count*2 );
-          for ( ; count > 0; count-- )
-            otl_
-        }
-        break;
-
-      case 3:
-        {
-          OTL_UInt  glyph_count, pos_count;
-
-          OTL_CHECK( 4 );
-          glyph_count = OTL_NEXT_USHORT( p );
-          pos_count   = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( glyph_count*2 + pos_count*4 );
-          for ( ; glyph_count > 0; glyph_count )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          /* XXX: check pos lookups */
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 8                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_chain_pos_rule_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   back_count, input_count, ahead_count, pos_count;
-
-    OTL_CHECK( 2 );
-    back_count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( back_count*2 + 2 );
-    p += back_count*2;
-
-    input_count = OTL_NEXT_USHORT( p );
-    if ( input_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( input_count*2 );
-    p += (input_count-1)*2;
-
-    ahead_count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( ahead_count*2 + 2 );
-    p += ahead_count*2;
-
-    pos_count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( pos_count*4 );
-  }
-
-
-  static void
-  otl_chain_pos_rule_set_validate( OTL_Bytes      table,
-                                   OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_chain_pos_rule_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-
-  static void
-  otl_chain_pos_class_rule_validate( OTL_Bytes      table,
-                                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   back_count, input_count, ahead_count, pos_count;
-
-    OTL_CHECK( 2 );
-    back_count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( back_count*2 + 2 );
-    p += back_count*2;
-
-    input_count = OTL_NEXT_USHORT( p );
-    if ( input_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( input_count*2 );
-    p += (input_count-1)*2;
-
-    ahead_count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( ahead_count*2 + 2 );
-    p += ahead_count*2;
-
-    pos_count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( pos_count*4 );
-  }
-
-
-  static void
-  otl_chain_pos_class_set_validate( OTL_Bytes      table,
-                                   OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_chain_pos_class_rule_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_gpos_lookup8_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( count*2 );
-          for ( ; count > 0; count-- )
-            otl_chain_pos_rule_set_validate( table + OTL_NEXT_USHORT( p ),
-                                             valid );
-        }
-        break;
-
-      case 2:
-        {
-          OTL_UInt  coverage, back_class, input_class, ahead_class, count;
-
-          OTL_CHECK( 10 );
-          coverage    = OTL_NEXT_USHORT( p );
-          back_class  = OTL_NEXT_USHORT( p );
-          input_class = OTL_NEXT_USHORT( p );
-          ahead_class = OTL_NEXT_USHORT( p );
-          count       = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          otl_class_definition_validate( table + back_class,  valid );
-          otl_class_definition_validate( table + input_class, valid );
-          otl_class_definition_validate( table + ahead_class, valid );
-
-          OTL_CHECK( count*2 );
-          for ( ; count > 0; count-- )
-            otl_chain_pos_class_set_validate( table + OTL_NEXT_USHORT( p ),
-                                              valid );
-        }
-        break;
-
-      case 3:
-        {
-          OTL_UInt  back_count, input_count, ahead_count, pos_count, count;
-
-          OTL_CHECK( 2 );
-          back_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*back_count+2 );
-          for ( count = back_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          input_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*input_count+2 );
-          for ( count = input_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          ahead_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*ahead_count+2 );
-          for ( count = ahead_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          pos_count = OTL_NEXT_USHORT( p );
-          OTL_CHECK( pos_count*4 );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GPOS LOOKUP TYPE 9                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_gpos_lookup9_validate( OTL_Bytes  table,
-                             OTL_Valid  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch (format)
-    {
-      case 1:
-        {
-          OTL_UInt          lookup_type, lookup_offset;
-          OTL_ValidateFunc  validate;
-
-          OTL_CHECK( 6 );
-          lookup_type   = OTL_NEXT_USHORT( p );
-          lookup_offset = OTL_NEXT_ULONG( p );
-
-          if ( lookup_type == 0 || lookup_type >= 9 )
-            OTL_INVALID_DATA;
-
-          validate = otl_gpos_validate_funcs[ lookup_type-1 ];
-          validate( table + lookup_offset, valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-  static OTL_ValidateFunc  otl_gpos_validate_funcs[ 9 ] =
-  {
-    otl_gpos_lookup1_validate,
-    otl_gpos_lookup2_validate,
-    otl_gpos_lookup3_validate,
-    otl_gpos_lookup4_validate,
-    otl_gpos_lookup5_validate,
-    otl_gpos_lookup6_validate,
-    otl_gpos_lookup7_validate,
-    otl_gpos_lookup8_validate,
-    otl_gpos_lookup9_validate,
-  };
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                         GPOS TABLE                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
-  OTL_LOCALDEF( void )
-  otl_gpos_validate( OTL_Bytes      table,
-                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   scripts, features, lookups;
-
-    OTL_CHECK( 10 );
-
-    if ( OTL_NEXT_USHORT( p ) != 0x10000UL )
-      OTL_INVALID_DATA;
-
-    scripts  = OTL_NEXT_USHORT( p );
-    features = OTL_NEXT_USHORT( p );
-    lookups  = OTL_NEXT_USHORT( p );
-
-    otl_script_list_validate ( table + scripts, valid );
-    otl_feature_list_validate( table + features, valid );
-
-    otl_lookup_list_validate( table + lookups, 9, otl_gpos_validate_funcs,
-                              valid );
-  }
-  
\ No newline at end of file
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlgpos.h b/nx-X11/extras/freetype2/src/otlayout/otlgpos.h
deleted file mode 100644
index 1d10cab49..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlgpos.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __OTL_GPOS_H__
-#define __OTL_GPOS_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-  OTL_LOCAL( void )
-  otl_gpos_validate( OTL_Bytes      table,
-                     OTL_Validator  valid );
-
-OTL_END_HEADER
-
-#endif /* __OTL_GPOS_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlgsub.c b/nx-X11/extras/freetype2/src/otlayout/otlgsub.c
deleted file mode 100644
index 13a8eae98..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlgsub.c
+++ /dev/null
@@ -1,867 +0,0 @@
-#include "otlgsub.h"
-#include "otlcommn.h"
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 1                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
- /*
-  *  1: Single Substitution - Table format(s)
-  *
-  *  This table is used to substiture individual glyph indices
-  *  with another one. There are only two sub-formats:
-  *
-  *   Name         Offset    Size       Description
-  *   ------------------------------------------
-  *   format       0         2          sub-table format (1)
-  *   offset       2         2          offset to coverage table
-  *   delta        4         2          16-bit delta to apply on all
-  *                                     covered glyph indices
-  *
-  *   Name         Offset    Size       Description
-  *   ------------------------------------------
-  *   format       0         2          sub-table format (2)
-  *   offset       2         2          offset to coverage table
-  *   count        4         2          coverage table count
-  *   substs[]     6         2*count    substituted glyph indices,
-  *
-  */
-
-  static void
-  otl_gsub_lookup1_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt  coverage;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-        }
-        break;
-
-      case 2:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( 2*count );
-
-          /* NB: we don't check that there are at most 'count'   */
-          /*     elements in the coverage table. This is delayed */
-          /*     to the lookup function...                       */
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
-  static OTL_Bool
-  otl_gsub_lookup1_apply( OTL_Bytes   table,
-                          OTL_Parser  parser )
-  {
-    OTL_Bytes  p = table;
-    OTL_Bytes  coverage;
-    OTL_UInt   format, gindex, property;
-    OTL_Int    index;
-    OTL_Bool   subst = 0;
-
-    if ( parser->context_len != 0xFFFFU && parser->context_len < 1 )
-      goto Exit;
-
-    gindex = otl_parser_get_gindex( parser );
-
-    if ( !otl_parser_check_property( parser, gindex, &property ) )
-      goto Exit;
-
-    format   = OTL_NEXT_USHORT(p);
-    coverage = table + OTL_NEXT_USHORT(p);
-    index    = otl_coverage_lookup( coverage, gindex );
-
-    if ( index >= 0 )
-    {
-      switch ( format )
-      {
-        case 1:
-          {
-            OTL_Int  delta = OTL_NEXT_SHORT(p);
-
-            gindex = ( gindex + delta ) & 0xFFFFU;
-            otl_parser_replace_1( parser, gindex );
-            subst = 1;
-          }
-          break;
-
-        case 2:
-          {
-            OTL_UInt  count = OTL_NEXT_USHORT(p);
-
-            if ( (OTL_UInt) index < count )
-            {
-              p += index*2;
-              otl_parser_replace_1( parser, OTL_PEEK_USHORT(p) );
-              subst = 1;
-            }
-          }
-          break;
-
-        default:
-          ;
-      }
-    }
-  Exit:
-    return subst;
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 2                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
- /*
-  *  2: Multiple Substitution - Table format(s)
-  *
-  *  Replaces a single glyph with one or more glyphs.
-  *
-  *   Name         Offset    Size       Description
-  *   -----------------------------------------------------------
-  *   format       0         2          sub-table format (1)
-  *   offset       2         2          offset to coverage table
-  *   count        4         2          coverage table count
-  *   sequencess[] 6         2*count    offsets to sequence items
-  *
-  *   each sequence item has the following format:
-  *
-  *   Name         Offset    Size       Description
-  *   -----------------------------------------------------------
-  *   count        0         2          number of replacement glyphs
-  *   gindices[]   2         2*count    string of glyph indices
-  */
-
-  static void
-  otl_seq_validate( OTL_Bytes      table,
-                    OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    /* XXX: according to the spec, 'count' should be > 0     */
-    /*      we can deal with these cases pretty well however */
-
-    OTL_CHECK( 2*count );
-    /* check glyph indices */
-  }
-
-
-  static void
-  otl_gsub_lookup2_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format, coverage;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, seq_count;
-
-          OTL_CHECK( 4 );
-          coverage  = OTL_NEXT_USHORT( p );
-          seq_count = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( seq_count*2 );
-          for ( ; seq_count > 0; seq_count-- )
-            otl_seq_validate( table + OTL_NEXT_USHORT( p ), valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
-  static OTL_Bool
-  otl_gsub_lookup2_apply( OTL_Bytes    table,
-                          OTL_Parser   parser )
-  {
-    OTL_Bytes  p = table;
-    OTL_Bytes  coverage, sequence;
-    OTL_UInt   format, gindex, index, property;
-    OTL_Int    index;
-    OTL_Bool   subst = 0;
-
-    if ( context_len != 0xFFFFU && context_len < 1 )
-      goto Exit;
-
-    gindex = otl_parser_get_gindex( parser );
-
-    if ( !otl_parser_check_property( parser, gindex, &property ) )
-      goto Exit;
-
-    p        += 2;  /* skip format */
-    coverage  = table + OTL_NEXT_USHORT(p);
-    seq_count = OTL_NEXT_USHORT(p);
-    index     = otl_coverage_lookup( coverage, gindex );
-
-    if ( (OTL_UInt) index >= seq_count )
-      goto Exit;
-
-    p       += index*2;
-    sequence = table + OTL_PEEK_USHORT(p);
-    p        = sequence;
-    count    = OTL_NEXT_USHORT(p);
-
-    otl_parser_replace_n( parser, count, p );
-    subst = 1;
-
-   Exit:
-    return subst;
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 3                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
- /*
-  *  3: Alternate Substitution - Table format(s)
-  *
-  *  Replaces a single glyph by another one taken liberally
-  *  in a list of alternatives
-  *
-  *   Name         Offset    Size       Description
-  *   -----------------------------------------------------------
-  *   format       0         2          sub-table format (1)
-  *   offset       2         2          offset to coverage table
-  *   count        4         2          coverage table count
-  *   alternates[] 6         2*count    offsets to alternate items
-  *
-  *   each alternate item has the following format:
-  *
-  *   Name         Offset    Size       Description
-  *   -----------------------------------------------------------
-  *   count        0         2          number of replacement glyphs
-  *   gindices[]   2         2*count    string of glyph indices, each one
-  *                                     is a valid alternative
-  */
-
-  static void
-  otl_alternate_set_validate( OTL_Bytes      table,
-                              OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    /* XXX: check glyph indices */
-  }
-
-
-  static void
-  otl_gsub_lookup3_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format, coverage;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( 2*count );
-          for ( ; count > 0; count-- )
-            otl_alternate_set_validate( table + OTL_NEXT_USHORT( p ), valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
-  static OTL_Bool
-  otl_gsub_lookup3_apply( OTL_Bytes    table,
-                          OTL_Parser   parser )
-  {
-    OTL_Bytes  p = table;
-    OTL_Bytes  coverage, alternates;
-    OTL_UInt   format, gindex, index, property;
-    OTL_Int    index;
-    OTL_Bool   subst = 0;
-
-    OTL_GSUB_Alternate  alternate = parser->alternate;
-
-    if ( context_len != 0xFFFFU && context_len < 1 )
-      goto Exit;
-
-    if ( alternate == NULL )
-      goto Exit;
-
-    gindex = otl_parser_get_gindex( parser );
-
-    if ( !otl_parser_check_property( parser, gindex, &property ) )
-      goto Exit;
-
-    p        += 2;  /* skip format */
-    coverage  = table + OTL_NEXT_USHORT(p);
-    seq_count = OTL_NEXT_USHORT(p);
-    index     = otl_coverage_lookup( coverage, gindex );
-
-    if ( (OTL_UInt) index >= seq_count )
-      goto Exit;
-
-    p         += index*2;
-    alternates = table + OTL_PEEK_USHORT(p);
-    p          = alternates;
-    count      = OTL_NEXT_USHORT(p);
-
-    gindex = alternate->handler_func(
-                 gindex, count, p, alternate->handler_data );
-
-    otl_parser_replace_1( parser, gindex );
-    subst = 1;
-
-   Exit:
-    return subst;
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 4                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_ligature_validate( OTL_Bytes      table,
-                         OTL_Validator  valid )
-  {
-    OTL_UInt  glyph_id, count;
-
-    OTL_CHECK( 4 );
-    glyph_id = OTL_NEXT_USHORT( p );
-    count    = OTL_NEXT_USHORT( p );
-
-    if ( count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( 2*(count-1) );
-    /* XXX: check glyph indices */
-  }
-
-
-  static void
-  otl_ligature_set_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_ligature_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_gsub_lookup4_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format, coverage;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( 2*count );
-          for ( ; count > 0; count-- )
-            otl_ligature_set_validate( table + OTL_NEXT_USHORT( p ), valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 5                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
-  static void
-  otl_sub_rule_validate( OTL_Bytes      table,
-                         OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   glyph_count, subst_count;
-
-    OTL_CHECK( 4 );
-    glyph_count = OTL_NEXT_USHORT( p );
-    subst_count = OTL_NEXT_USHORT( p );
-
-    if ( glyph_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( (glyph_count-1)*2 + substcount*4 );
-
-    /* XXX: check glyph indices and subst lookups */
-  }
-
-
-  static void
-  otl_sub_rule_set_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_sub_rule_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_sub_class_rule_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_UInt  glyph_count, subst_count;
-
-    OTL_CHECK( 4 );
-    glyph_count = OTL_NEXT_USHORT( p );
-    subst_count = OTL_NEXT_USHORT( p );
-
-    if ( glyph_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( (glyph_count-1)*2 + substcount*4 );
-
-    /* XXX: check glyph indices and subst lookups */
-  }
-
-
-  static void
-  otl_sub_class_rule_set_validate( OTL_Bytes      table,
-                                   OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_sub_class_rule_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_gsub_lookup5_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format, coverage;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( 2*count );
-          for ( ; count > 0; count-- )
-            otl_sub_rule_set_validate( table + coverage, valid );
-        }
-        break;
-
-      case 2:
-        {
-          OTL_UInt  coverage, class_def, count;
-
-          OTL_CHECK( 6 );
-          coverage  = OTL_NEXT_USHORT( p );
-          class_def = OTL_NEXT_USHORT( p );
-          count     = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate        ( table + coverage, valid );
-          otl_class_definition_validate( table + class_def, valid );
-
-          OTL_CHECK( 2*count );
-          for ( ; count > 0; count-- )
-            otl_sub_class_rule_set_validate( table + coveragen valid );
-        }
-        break;
-
-      case 3:
-        {
-          OTL_UInt  glyph_count, subst_count, count;
-
-          OTL_CHECK( 4 );
-          glyph_count = OTL_NEXT_USHORT( p );
-          subst_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*glyph_count + 4*subst_count );
-          for ( count = glyph_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 6                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
-  static void
-  otl_chain_sub_rule_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   back_count, input_count, ahead_count, subst_count, count;
-
-    OTL_CHECK( 2 );
-    back_count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*back_count+2 );
-    p += 2*back_count;
-
-    input_count = OTL_NEXT_USHORT( p );
-    if ( input_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( 2*input_count );
-    p += 2*(input_count-1);
-
-    ahead_count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( 2*ahead_count + 2 );
-    p += 2*ahead_count;
-
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( 4*count );
-
-    /* XXX: check glyph indices and subst lookups */
-  }
-
-
-  static void
-  otl_chain_sub_rule_set_validate( OTL_Bytes      table,
-                                   OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_chain_sub_rule_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_chain_sub_class_rule_validate( OTL_Bytes      table,
-                                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   back_count, input_count, ahead_count, subst_count, count;
-
-    OTL_CHECK( 2 );
-    back_count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*back_count+2 );
-    p += 2*back_count;
-
-    input_count = OTL_NEXT_USHORT( p );
-    if ( input_count == 0 )
-      OTL_INVALID_DATA;
-
-    OTL_CHECK( 2*input_count );
-    p += 2*(input_count-1);
-
-    ahead_count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( 2*ahead_count + 2 );
-    p += 2*ahead_count;
-
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( 4*count );
-
-    /* XXX: check class indices and subst lookups */
-  }
-
-
-
-  static void
-  otl_chain_sub_class_set_validate( OTL_Bytes      table,
-                                    OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( 2*count );
-    for ( ; count > 0; count-- )
-      otl_chain_sub_rule_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_gsub_lookup6_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format, coverage;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt  coverage, count;
-
-          OTL_CHECK( 4 );
-          coverage = OTL_NEXT_USHORT( p );
-          count    = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          OTL_CHECK( 2*count );
-          for ( ; count > 0; count-- )
-            otl_chain_sub_rule_set_validate( table + coverage, valid );
-        }
-        break;
-
-      case 2:
-        {
-          OTL_UInt  coverage, back_class, input_class, ahead_class, count;
-
-          OTL_CHECK( 10 );
-          coverage    = OTL_NEXT_USHORT( p );
-          back_class  = OTL_NEXT_USHORT( p );
-          input_class = OTL_NEXT_USHORT( p );
-          ahead_class = OTL_NEXT_USHORT( p );
-          count       = OTL_NEXT_USHORT( p );
-
-          otl_coverage_validate( table + coverage, valid );
-
-          otl_class_definition_validate( table + back_class,  valid );
-          otl_class_definition_validate( table + input_class, valid );
-          otl_class_definition_validate( table + ahead_class, valid );
-
-          OTL_CHECK( 2*count );
-          for ( ; count > 0; count-- )
-            otl_chain_sub_class_set( table + OTL_NEXT_USHORT( p ), valid );
-        }
-        break;
-
-      case 3:
-        {
-          OTL_UInt  back_count, input_count, ahead_count, subst_count, count;
-
-          OTL_CHECK( 2 );
-          back_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*back_count+2 );
-          for ( count = back_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          input_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*input_count+2 );
-          for ( count = input_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          ahead_count = OTL_NEXT_USHORT( p );
-
-          OTL_CHECK( 2*ahead_count+2 );
-          for ( count = ahead_count; count > 0; count-- )
-            otl_coverage_validate( table + OTL_NEXT_USHORT( p ), valid );
-
-          subst_count = OTL_NEXT_USHORT( p );
-          OTL_CHECK( subst_count*4 );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 GSUB LOOKUP TYPE 6                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-  static void
-  otl_gsub_lookup7_validate( OTL_Bytes      table,
-                             OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   format, coverage;
-
-    OTL_CHECK( 2 );
-    format = OTL_NEXT_USHORT( p );
-    switch ( format )
-    {
-      case 1:
-        {
-          OTL_UInt          lookup_type, lookup_offset;
-          OTL_ValidateFunc  validate;
-
-          OTL_CHECK( 6 );
-          lookup_type   = OTL_NEXT_USHORT( p );
-          lookup_offset = OTL_NEXT_ULONG( p );
-
-          if ( lookup_type == 0 || lookup_type >= 7 )
-            OTL_INVALID_DATA;
-
-          validate = otl_gsub_validate_funcs[ lookup_type-1 ];
-          validate( table + lookup_offset, valid );
-        }
-        break;
-
-      default:
-        OTL_INVALID_DATA;
-    }
-  }
-
-
-  static const OTL_ValidateFunc  otl_gsub_validate_funcs[ 7 ] =
-  {
-    otl_gsub_lookup1_validate,
-    otl_gsub_lookup2_validate,
-    otl_gsub_lookup3_validate,
-    otl_gsub_lookup4_validate,
-    otl_gsub_lookup5_validate,
-    otl_gsub_lookup6_validate
-  };
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                         GSUB TABLE                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
-  OTL_LOCALDEF( void )
-  otl_gsub_validate( OTL_Bytes      table,
-                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   scripts, features, lookups;
-
-    OTL_CHECK( 10 );
-
-    if ( OTL_NEXT_USHORT( p ) != 0x10000UL )
-      OTL_INVALID_DATA;
-
-    scripts  = OTL_NEXT_USHORT( p );
-    features = OTL_NEXT_USHORT( p );
-    lookups  = OTL_NEXT_USHORT( p );
-
-    otl_script_list_validate ( table + scripts, valid );
-    otl_feature_list_validate( table + features, valid );
-
-    otl_lookup_list_validate( table + lookups, 7, otl_gsub_validate_funcs,
-                              valid );
-  }
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlgsub.h b/nx-X11/extras/freetype2/src/otlayout/otlgsub.h
deleted file mode 100644
index db5edecf1..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlgsub.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __OTL_GSUB_H__
-#define __OTL_GSUB_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-  typedef OTL_UInt  (*OTL_GSUB_AlternateFunc)( OTL_UInt     gindex,
-                                               OTL_UInt     count,
-                                               OTL_Bytes    alternates,
-                                               OTL_Pointer  data );
-
-  typedef struct OTL_GSUB_AlternateRec_
-  {
-    OTL_GSUB_AlternateFunc  handler_func;
-    OTL_Pointer             handler_data;
-
-  } OTL_GSUB_AlternateRec, *OTL_GSUB_Alternate;
-
-  OTL_LOCAL( void )
-  otl_gsub_validate( OTL_Bytes      table,
-                     OTL_Validator  valid );
-
-OTL_END_HEADER
-
-#endif /* __OTL_GSUB_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otljstf.c b/nx-X11/extras/freetype2/src/otlayout/otljstf.c
deleted file mode 100644
index b0fa9f406..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otljstf.c
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "otljstf.h"
-#include "otlcommn.h"
-#include "otlgpos.h"
-
-  static void
-  otl_jstf_extender_validate( OTL_Bytes      table,
-                              OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-  }
-
-
-  static void
-  otl_jstf_gsub_mods_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( count*2 );
-
-    /* XXX: check GSUB lookup indices */
-  }
-
-
-  static void
-  otl_jstf_gpos_mods_validate( OTL_Bytes      table,
-                               OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( count*2 );
-
-    /* XXX: check GPOS lookup indices */
-  }
-
-
-  static void
-  otl_jstf_max_validate( OTL_Bytes      table,
-                         OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-    for ( ; count > 0; count-- )
-      otl_gpos_subtable_check( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_jstf_priority_validate( OTL_Bytes      table,
-                              OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   offset;
-
-    OTL_CHECK( 20 );
-
-    /* shrinkage GSUB enable/disable */
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gsub_mods_validate( table + val, valid );
-
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gsub_mods_validate( table + val, valid );
-
-    /* shrinkage GPOS enable/disable */
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gpos_mods_validate( table + val, valid );
-
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gpos_mods_validate( table + val, valid );
-
-    /* shrinkage JSTF max */
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_max_validate( table + val, valid );
-
-    /* extension GSUB enable/disable */
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gsub_mods_validate( table + val, valid );
-
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gsub_mods_validate( table + val, valid );
-
-    /* extension GPOS enable/disable */
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gpos_mods_validate( table + val, valid );
-
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_gpos_mods_validate( table + val, valid );
-
-    /* extension JSTF max */
-    val = OTL_NEXT_USHORT( p );
-    if ( val )
-      otl_jstf_max_validate( table + val, valid );
-  }
-
-  static void
-  otl_jstf_lang_validate( OTL_Bytes      table,
-                          OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 2 );
-
-    count = OTL_NEXT_USHORT( p );
-
-    OTL_CHECK( count*2 );
-    for ( ; count > 0; count-- )
-      otl_jstf_priority_validate( table + OTL_NEXT_USHORT( p ), valid );
-  }
-
-
-  static void
-  otl_jstf_script_validate( OTL_Bytes      table,
-                            OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count, extender, default_lang;
-
-    OTL_CHECK( 6 );
-    extender     = OTL_NEXT_USHORT( p );
-    default_lang = OTL_NEXT_USHORT( p );
-    count        = OTL_NEXT_USHORT( p );
-
-    if ( extender )
-      otl_jstf_extender_validate( table + extender, valid );
-
-    if ( default_lang )
-      otl_jstf_lang_validate( table + default_lang, valid );
-
-    OTL_CHECK( 6*count );
-
-    for ( ; count > 0; count-- )
-    {
-      p += 4;  /* ignore tag */
-      otl_jstf_lang_validate( table + OTL_NEXT_USHORT( p ), valid );
-    }
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_jstf_validate( OTL_Bytes      table,
-                     OTL_Validator  valid )
-  {
-    OTL_Bytes  p = table;
-    OTL_UInt   count;
-
-    OTL_CHECK( 4 );
-
-    if ( OTL_NEXT_ULONG( p ) != 0x10000UL )
-      OTL_INVALID_DATA;
-
-    count = OTL_NEXT_USHORT( p );
-    OTL_CHECK( count*6 );
-
-    for ( ; count > 0; count++ )
-    {
-      p += 4;  /* ignore tag */
-      otl_jstf_script_validate( table + OTL_NEXT_USHORT( p ), valid );
-    }
-  }
-  
\ No newline at end of file
diff --git a/nx-X11/extras/freetype2/src/otlayout/otljstf.h b/nx-X11/extras/freetype2/src/otlayout/otljstf.h
deleted file mode 100644
index c8a98a64a..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otljstf.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef __OTL_JSTF_H__
-#define __OTL_JSTF_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-  OTL_LOCAL( void )
-  otl_jstf_validate( OTL_Bytes      table,
-                     OTL_Validator  valid );
-
-OTL_END_HEADER
-
-#endif /* __OTL_JSTF_H__ */
\ No newline at end of file
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlparse.c b/nx-X11/extras/freetype2/src/otlayout/otlparse.c
deleted file mode 100644
index 705c0c60f..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlparse.c
+++ /dev/null
@@ -1,142 +0,0 @@
-#include "otlparse.h"
-#include "otlutils.h"
-
-  static void
-  otl_string_ensure( OTL_String  string,
-                     OTL_UInt    count,
-                     OTL_Parser  parser )
-  {
-    count += string->length;
-
-    if ( count > string->capacity )
-    {
-      OTL_UInt    old_count = string->capacity;
-      OTL_UInt    new_count = old_count;
-      OTL_Memory  memory    = parser->memory;
-
-      while ( new_count < count )
-        new_count += (new_count >> 1) + 16;
-
-      if ( OTL_MEM_RENEW_ARRAY( string->glyphs, old_count, new_count ) )
-        otl_parser_error( parser, OTL_Parse_Err_Memory );
-
-      string->capacity = new_count;
-    }
-  }
-
-#define  OTL_STRING_ENSURE(str,count,parser)                   \
-           OTL_BEGIN_STMNT                                     \
-             if ( (str)->length + (count) > (str)>capacity )   \
-               otl_string_ensure( str, count, parser );        \
-           OTL_END_STMNT
-
-
-  OTL_LOCALDEF( OTL_UInt )
-  otl_parser_get_gindex( OTL_Parser  parser )
-  {
-    OTL_String  in = parser->str_in;
-
-    if ( in->cursor >= in->num_glyphs )
-      otl_parser_error( parser, OTL_Err_Parser_Internal );
-
-    return in->str[ in->cursor ].gindex;
-  }
-
-
-  OTL_LOCALDEF( void )
-  otl_parser_error( OTL_Parser      parser,
-                    OTL_ParseError  error; )
-  {
-    parser->error = error;
-    otl_longjmp( parser->jump_buffer, 1 );
-  }
-
-#define  OTL_PARSER_UNCOVERED(x)  otl_parser_error( x, OTL_Parse_Err_UncoveredGlyph );
-
-  OTL_LOCAL( void )
-  otl_parser_check_property( OTL_Parser  parser,
-                             OTL_UInt    gindex,
-                             OTL_UInt    flags,
-                             OTL_UInt   *aproperty );
-
-  OTL_LOCALDEF( void )
-  otl_parser_replace_1( OTL_Parser  parser,
-                        OTL_UInt    gindex )
-  {
-    OTL_String       in  = parser->str_in;
-    OTL_String       out = parser->str_out;
-    OTL_StringGlyph  glyph, in_glyph;
-
-    /* sanity check */
-    if ( in == NULL               ||
-         out == NULL              ||
-         in->length == 0          ||
-         in->cursor >= in->length )
-    {
-      /* report as internal error, since these should */
-      /* never happen !!                              */
-      otl_parser_error( parser, OTL_Err_Parse_Internal );
-    }
-
-    OTL_STRING_ENSURE( out, 1, parser );
-    glyph    = out->glyphs + out->length;
-    in_glyph = in->glyphs  + in->cursor;
-
-    glyph->gindex        = gindex;
-    glyph->property      = in_glyph->property;
-    glyph->lig_component = in_glyph->lig_component;
-    glyph->lig_id        = in_glyph->lig_id;
-
-    out->length += 1;
-    out->cursor  = out->length;
-    in->cursor  += 1;
-  }
-
-  OTL_LOCALDEF( void )
-  otl_parser_replace_n( OTL_Parser  parser,
-                        OTL_UInt    count,
-                        OTL_Bytes   indices )
-  {
-    OTL_UInt         lig_component, lig_id, property;
-    OTL_String       in  = parser->str_in;
-    OTL_String       out = parser->str_out;
-    OTL_StringGlyph  glyph, in_glyph;
-    OTL_Bytes        p = indices;
-
-    /* sanity check */
-    if ( in == NULL               ||
-         out == NULL              ||
-         in->length == 0          ||
-         in->cursor >= in->length )
-    {
-      /* report as internal error, since these should */
-      /* never happen !!                              */
-      otl_parser_error( parser, OTL_Err_Parse_Internal );
-    }
-
-    OTL_STRING_ENSURE( out, count, parser );
-    glyph    = out->glyphs + out->length;
-    in_glyph = in->glyphs  + in->cursor;
-
-    glyph->gindex = gindex;
-
-    lig_component = in_glyph->lig_component;
-    lig_id        = in_glyph->lid_id;
-    property      = in_glyph->property;
-
-    for ( ; count > 0; count-- )
-    {
-      glyph->gindex        = OTL_NEXT_USHORT(p);
-      glyph->property      = property;
-      glyph->lig_component = lig_component;
-      glyph->lig_id        = lig_id;
-
-      out->length ++;
-    }
-
-    out->cursor  = out->length;
-    in->cursor  += 1;
-  }
-
-
-
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlparse.h b/nx-X11/extras/freetype2/src/otlayout/otlparse.h
deleted file mode 100644
index 92f34bfdc..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlparse.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef __OTL_PARSER_H__
-#define __OTL_PARSER_H__
-
-#include "otlayout.h"
-#include "otlgdef.h"
-#include "otlgsub.h"
-#include "otlgpos.h"
-
-OTL_BEGIN_HEADER
-
-  typedef struct OTL_ParserRec_*   OTL_Parser;
-
-  typedef struct OTL_StringRec_*   OTL_String;
-
-  typedef struct OTL_StringGlyphRec_
-  {
-    OTL_UInt  gindex;
-    OTL_UInt  properties;
-    OTL_UInt  lig_component;
-    OTL_UInt  lig_id;
-
-  } OTL_StringGlyphRec, *OTL_StringGlyph;
-
-  typedef struct OTL_StringRec_
-  {
-    OTL_StringGlyph  glyphs;
-    OTL_UInt         cursor;
-    OTL_UInt         length;
-    OTL_UInt         capacity;
-
-  } OTL_StringRec;
-
-  typedef struct OTL_ParserRec_
-  {
-    OTL_Bytes      tab_gdef;
-    OTL_Bytes      tab_gsub;
-    OTL_Bytes      tab_gpos;
-    OTL_Bytes      tab_base;
-    OTL_Bytes      tab_jstf;
-
-    OTL_Alternate  alternate;  /* external alternate handler */
-
-    OTL_UInt       context_len;
-    OTL_UInt       markup_flags;
-
-    OTL_jmp_buf    jump_buffer;
-    OTL_Memory     memory;
-    OTL_Error      error;
-
-    OTL_StringRec  strings[2];
-    OTL_String     str_in;
-    OTL_String     str_out;
-
-  } OTL_ParserRec;
-
-  typedef enum
-  {
-    OTL_Err_Parser_Ok = 0,
-    OTL_Err_Parser_InvalidData,
-    OTL_Err_Parser_UncoveredGlyph
-
-  } OTL_ParseError;
-
-  OTL_LOCAL( OTL_UInt )
-  otl_parser_get_gindex( OTL_Parser  parser );
-
-
-  OTL_LOCAL( void )
-  otl_parser_error( OTL_Parser  parser, OTL_ParserError  error );
-
-#define  OTL_PARSER_UNCOVERED(x)  \
-           otl_parser_error( x, OTL_Err_Parser_UncoveredGlyph )
-
-  OTL_LOCAL( void )
-  otl_parser_check_property( OTL_Parser  parser,
-                             OTL_UInt    gindex,
-                             OTL_UInt    flags,
-                             OTL_UInt   *aproperty );
-
- /* copy current input glyph to output */
-  OTL_LOCAL( void )
-  otl_parser_copy_1( OTL_Parser  parser );
-
- /* copy current input glyph to output, replacing its index */
-  OTL_LOCAL( void )
-  otl_parser_replace_1( OTL_Parser  parser,
-                        OTL_UInt    gindex );
-
- /* copy current input glyph to output, replacing it by several indices */
- /* read directly from the table                                        */
-  OTL_LOCAL( void )
-  otl_parser_replace_n( OTL_Parser  parser,
-                        OTL_UInt    count,
-                        OTL_Bytes   indices );
-
-OTL_END_HEADER
-
-#endif /* __OTL_PARSER_H__ */
-
diff --git a/nx-X11/extras/freetype2/src/otlayout/otltable.h b/nx-X11/extras/freetype2/src/otlayout/otltable.h
deleted file mode 100644
index af7bd78a5..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otltable.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef __OTL_TABLE_H__
-#define __OTL_TABLE_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-  typedef struct OTL_TableRec_*    OTL_Table;
-
-  typedef enum
-  {
-    OTL_TABLE_TYPE_GDEF = 1,
-    OTL_TABLE_TYPE_GSUB,
-    OTL_TABLE_TYPE_GPOS,
-    OTL_TABLE_TYPE_BASE,
-    OTL_TABLE_TYPE_JSTF
-
-  } OTL_TableType;
-
-
- /* this may become a private structure later */
-  typedef struct OTL_TableRec_
-  {
-    OTL_TableType  type;
-    OTL_Bytes      base;
-    OTL_Bytes      limit;
-
-    OTL_Tag        script_tag;
-    OTL_Tag        lang_tag;
-
-    OTL_UInt       lookup_count;
-    OTL_Byte*      lookup_flags;
-
-    OTL_UInt       feature_count;
-    OTL_Tag        feature_tags;
-    OTL_Byte*      feature_flags;
-
-  } OTL_TableRec;
-
-
-  OTL_API( OTL_Error )
-  otl_table_validate( OTL_Bytes      table,
-                      OTL_Size       size,
-                      OTL_TableType  type,
-                      OTL_Size      *abyte_size );
-
-  OTL_API( void )
-  otl_table_init( OTL_Table      table,
-                  OTL_TableType  type,
-                  OTL_Bytes      base,
-                  OTL_Size       size );
-
-  OTL_API( void )
-  otl_table_set_script( OTL_Table      table,
-                        OTL_ScriptTag  script,
-                        OTL_LangTag    language );
-
-OTL_END_HEADER
-
-#endif /* __OTL_TABLE_H__ */
diff --git a/nx-X11/extras/freetype2/src/otlayout/otltags.h b/nx-X11/extras/freetype2/src/otlayout/otltags.h
deleted file mode 100644
index d954b5851..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otltags.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/* this file may be included several times by other parts of */
-/* the OpenType Layout library.. don't add #ifdef .. #endif  */
-/* delimiters to it...                                       */
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                       SCRIPT TAGS                            *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-#ifndef OTL_SCRIPT_TAG
-#define OTL_SCRIPT_TAG(c1,c2,c3,c4,s,n)  /* void */
-#endif
-
-OTL_SCRIPT_TAG( 'a','r','a','b', "Arabic", ARABIC )
-OTL_SCRIPT_TAG( 'a','r','m','n', "Armenian", ARMENIAN )
-OTL_SCRIPT_TAG( 'b','e','n','g', "Bengali", BENGALI )
-OTL_SCRIPT_TAG( 'b','o','p','o', "Bopomofo", BOPOMOFO )
-OTL_SCRIPT_TAG( 'b','r','a','i', "Braille", BRAILLE )
-OTL_SCRIPT_TAG( 'b','y','z','m', "Byzantine Music", BYZANTINE_MUSIC )
-OTL_SCRIPT_TAG( 'c','a','n','s', "Canadian Syllabic", CANADIAN )
-OTL_SCRIPT_TAG( 'c','h','e','r', "Cherokee", CHEROKEE )
-OTL_SCRIPT_TAG( 'h','a','n','i', "CJK Ideographic", CJK )
-OTL_SCRIPT_TAG( 'c','y','r','l', "Cyrillic", CYRILLIC )
-OTL_SCRIPT_TAG( 'd','f','l','t', "Default", DEFAULT )
-OTL_SCRIPT_TAG( 'd','e','v','a', "Devanagari", DEVANAGARI )
-OTL_SCRIPT_TAG( 'e','t','h','i', "Ethiopic", ETHIOPIC )
-OTL_SCRIPT_TAG( 'g','e','o','r', "Georgian", GEORGIAN )
-OTL_SCRIPT_TAG( 'g','r','e','k', "Greek", GREEK )
-OTL_SCRIPT_TAG( 'g','u','j','r', "Gujarati", GUJARATI )
-OTL_SCRIPT_TAG( 'g','u','r','u', "Gurmukhi", GURMUKHI )
-OTL_SCRIPT_TAG( 'j','a','m','o', "Hangul Jamo", JAMO )
-OTL_SCRIPT_TAG( 'h','a','n','g', "Hangul", HANGUL )
-OTL_SCRIPT_TAG( 'h','e','b','r', "Hebrew", HEBREW )
-OTL_SCRIPT_TAG( 'h','i','r','a', "Hiragana", HIRAGANA ) /* not in TAGS.txt */
-OTL_SCRIPT_TAG( 'k','n','d','a', "Kannada", KANNADA )
-OTL_SCRIPT_TAG( 'k','a','n','a', "Katakana", KATAKANA ) /* in TAGS.txt, means Hiragana _and_ Katakana */
-OTL_SCRIPT_TAG( 'k','h','m','r', "Khmer", KHMER )
-OTL_SCRIPT_TAG( 'l','a','o',' ', "Lao", LAO )
-OTL_SCRIPT_TAG( 'l','a','t','n', "Latin", LATIN )
-OTL_SCRIPT_TAG( 'm','l','y','m', "Malayalam", MALAYALAM )
-OTL_SCRIPT_TAG( 'm','o','n','g', "Mongolian", MONGOLIAN )
-OTL_SCRIPT_TAG( 'm','y','m','r', "Myanmar", MYANMAR )
-OTL_SCRIPT_TAG( 'o','g','a','m', "Ogham", OGHAM )
-OTL_SCRIPT_TAG( 'o','r','y','a', "Oriya", ORIYA )
-OTL_SCRIPT_TAG( 'r','u','n','r', "Runic", RUNIC )
-OTL_SCRIPT_TAG( 's','i','n','h', "Sinhala", SINHALA )
-OTL_SCRIPT_TAG( 's','y','r','c', "Syriac", SYRIAC )
-OTL_SCRIPT_TAG( 't','a','m','l', "Tamil", TAMIL )
-OTL_SCRIPT_TAG( 't','e','l','u', "Telugu", TELUGU )
-OTL_SCRIPT_TAG( 't','h','a','a', "Thaana", THAANA )
-OTL_SCRIPT_TAG( 't','h','a','i', "Thai", THAI )
-OTL_SCRIPT_TAG( 't','i','b','t', "Tibetan", TIBETAN )
-OTL_SCRIPT_TAG( 'y','i',' ',' ', "Yi", YI )
-
-#undef OTL_SCRIPT_TAG
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                       LANGUAGE TAGS                          *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-#ifndef OTL_LANG_TAG
-#define OTL_LANG_TAG(c1,c2,c3,c4,s,n)  /* void */
-#endif
-
-#undef OTL_LANG_TAG
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                       FEATURE TAGS                           *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-#ifndef OTL_FEATURE_TAG
-#define OTL_FEATURE_TAG(c1,c2,c3,c4,s,n)  /* void */
-#endif
-
-#undef OTL_FEATURE_TAG
-
diff --git a/nx-X11/extras/freetype2/src/otlayout/otlutils.h b/nx-X11/extras/freetype2/src/otlayout/otlutils.h
deleted file mode 100644
index de50f66f0..000000000
--- a/nx-X11/extras/freetype2/src/otlayout/otlutils.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __OTLAYOUT_UTILS_H__
-#define __OTLAYOUT_UTILS_H__
-
-#include "otlayout.h"
-
-OTL_BEGIN_HEADER
-
-  OTL_LOCAL( OTL_Error )
-  otl_mem_alloc( OTL_Pointer*  pblock,
-                 OTL_ULong     size,
-                 OTL_Memory    memory );
-
-  OTL_LOCAL( void )
-  otl_mem_free( OTL_Pointer*  pblock,
-                OTL_Memory    memory );
-
-  OTL_LOCAL( OTL_Error )
-  otl_mem_realloc( OTL_Pointer  *pblock,
-                   OTL_ULong     cur_size,
-                   OTL_ULong     new_size,
-                   OTL_Memory    memory );
-
-#define  OTL_MEM_ALLOC(p,s)       otl_mem_alloc( (void**)&(p), (s), memory )
-#define  OTL_MEM_FREE(p)          otl_mem_free( (void**)&(p), memory )
-#define  OTL_MEM_REALLOC(p,c,n)   otl_mem_realloc( (void**)&(p), (c), (s), memory )
-
-#define  OTL_MEM_NEW(p)   OTL_MEM_ALLOC(p,sizeof(*(p)))
-#define  OTL_MEM_NEW_ARRAY(p,c)  OTL_MEM_ALLOC(p,(c)*sizeof(*(p)))
-#define  OTL_MEM_RENEW_ARRAY(p,c,n)  OTL_MEM_REALLOC(p,(c)*sizeof(*(p)),(n)*sizeof(*(p)))
-
-OTL_END_HEADER
-
-#endif /* __OTLAYOUT_UTILS_H__ */
diff --git a/nx-X11/extras/freetype2/src/pcf/Jamfile b/nx-X11/extras/freetype2/src/pcf/Jamfile
deleted file mode 100644
index 3a884f534..000000000
--- a/nx-X11/extras/freetype2/src/pcf/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/pcf Jamfile (c) 2001, 2003 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) pcf ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = pcfdrivr pcfread pcfutil ;
-  }
-  else
-  {
-    _sources = pcf ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/pcf Jamfile
diff --git a/nx-X11/extras/freetype2/src/pcf/descrip.mms b/nx-X11/extras/freetype2/src/pcf/descrip.mms
deleted file mode 100644
index a3fd23180..000000000
--- a/nx-X11/extras/freetype2/src/pcf/descrip.mms
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# FreeType 2 pcf driver compilation rules for VMS
-#
-
-
-# Copyright (C) 2001, 2002 by
-# Francesco Zappa Nardelli
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pcf])
-
-OBJS=pcf.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pcf/module.mk b/nx-X11/extras/freetype2/src/pcf/module.mk
deleted file mode 100644
index 614c31920..000000000
--- a/nx-X11/extras/freetype2/src/pcf/module.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# FreeType 2 PCF module definition
-#
-
-# Copyright 2000 by
-# Francesco Zappa Nardelli
-# 
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-make_module_list: add_pcf_driver
-
-add_pcf_driver:
-	$(OPEN_DRIVER)pcf_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)pcf       $(ECHO_DRIVER_DESC)pcf bitmap fonts$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pcf/pcf.c b/nx-X11/extras/freetype2/src/pcf/pcf.c
deleted file mode 100644
index 11d5b7b2a..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcf.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*  pcf.c
-
-    FreeType font driver for pcf fonts
-
-  Copyright 2000-2001, 2003 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-
-#include <ft2build.h>
-#include "pcfutil.c"
-#include "pcfread.c"
-#include "pcfdrivr.c"
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcf.h b/nx-X11/extras/freetype2/src/pcf/pcf.h
deleted file mode 100644
index 64acefc4e..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcf.h
+++ /dev/null
@@ -1,237 +0,0 @@
-/*  pcf.h
-
-  FreeType font driver for pcf fonts
-
-  Copyright (C) 2000, 2001, 2002, 2003 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#ifndef __PCF_H__
-#define __PCF_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-#include FT_INTERNAL_STREAM_H
-
-
-FT_BEGIN_HEADER
-
-  typedef struct  PCF_TableRec_
-  {
-    FT_ULong  type;
-    FT_ULong  format;
-    FT_ULong  size;
-    FT_ULong  offset;
-
-  } PCF_TableRec, *PCF_Table;
-
-
-  typedef struct  PCF_TocRec_
-  {
-    FT_ULong   version;
-    FT_ULong   count;
-    PCF_Table  tables;
-
-  } PCF_TocRec, *PCF_Toc;
-
-
-  typedef struct  PCF_ParsePropertyRec_
-  {
-    FT_Long  name;
-    FT_Byte  isString;
-    FT_Long  value;
-
-  } PCF_ParsePropertyRec, *PCF_ParseProperty;
-
-
-  typedef struct  PCF_PropertyRec_
-  {
-    FT_String*  name;
-    FT_Byte     isString;
-
-    union
-    {
-      FT_String*  atom;
-      FT_Long     integer;
-      FT_ULong    cardinal;
-
-    } value;
-
-  } PCF_PropertyRec, *PCF_Property;
-
-
-  typedef struct  PCF_Compressed_MetricRec_
-  {
-    FT_Byte  leftSideBearing;
-    FT_Byte  rightSideBearing;
-    FT_Byte  characterWidth;
-    FT_Byte  ascent;
-    FT_Byte  descent;
-
-  } PCF_Compressed_MetricRec, *PCF_Compressed_Metric;
-
-
-  typedef struct  PCF_MetricRec_
-  {
-    FT_Short  leftSideBearing;
-    FT_Short  rightSideBearing;
-    FT_Short  characterWidth;
-    FT_Short  ascent;
-    FT_Short  descent;
-    FT_Short  attributes;
-    FT_ULong  bits;
-
-  } PCF_MetricRec, *PCF_Metric;
-
-
-  typedef struct  PCF_AccelRec_
-  {
-    FT_Byte        noOverlap;
-    FT_Byte        constantMetrics;
-    FT_Byte        terminalFont;
-    FT_Byte        constantWidth;
-    FT_Byte        inkInside;
-    FT_Byte        inkMetrics;
-    FT_Byte        drawDirection;
-    FT_Long        fontAscent;
-    FT_Long        fontDescent;
-    FT_Long        maxOverlap;
-    PCF_MetricRec  minbounds;
-    PCF_MetricRec  maxbounds;
-    PCF_MetricRec  ink_minbounds;
-    PCF_MetricRec  ink_maxbounds;
-
-  } PCF_AccelRec, *PCF_Accel;
-
-
-  typedef struct  PCF_EncodingRec_
-  {
-    FT_Long    enc;
-    FT_UShort  glyph;
-
-  } PCF_EncodingRec, *PCF_Encoding;
-
-
-  typedef struct  PCF_FaceRec_
-  {
-    FT_FaceRec     root;
-
-    FT_StreamRec   gzip_stream;
-    FT_Stream      gzip_source;
-
-    char*          charset_encoding;
-    char*          charset_registry;
-
-    PCF_TocRec     toc;
-    PCF_AccelRec   accel;
-
-    int            nprops;
-    PCF_Property   properties;
-
-    FT_Long        nmetrics;
-    PCF_Metric     metrics;
-    FT_Long        nencodings;
-    PCF_Encoding   encodings;
-
-    FT_Short       defaultChar;
-
-    FT_ULong       bitmapsFormat;
-
-    FT_CharMap     charmap_handle;
-    FT_CharMapRec  charmap;  /* a single charmap per face */
-
-  } PCF_FaceRec, *PCF_Face;
-
-
-  /* macros for pcf font format */
-
-#define LSBFirst  0
-#define MSBFirst  1
-
-#define PCF_FILE_VERSION        ( ( 'p' << 24 ) | \
-                                  ( 'c' << 16 ) | \
-                                  ( 'f' <<  8 ) | 1 )
-#define PCF_FORMAT_MASK         0xFFFFFF00L
-
-#define PCF_DEFAULT_FORMAT      0x00000000L
-#define PCF_INKBOUNDS           0x00000200L
-#define PCF_ACCEL_W_INKBOUNDS   0x00000100L
-#define PCF_COMPRESSED_METRICS  0x00000100L
-
-#define PCF_FORMAT_MATCH( a, b ) \
-          ( ( (a) & PCF_FORMAT_MASK ) == ( (b) & PCF_FORMAT_MASK ) )
-
-#define PCF_GLYPH_PAD_MASK  ( 3 << 0 )
-#define PCF_BYTE_MASK       ( 1 << 2 )
-#define PCF_BIT_MASK        ( 1 << 3 )
-#define PCF_SCAN_UNIT_MASK  ( 3 << 4 )
-
-#define PCF_BYTE_ORDER( f ) \
-          ( ( (f) & PCF_BYTE_MASK ) ? MSBFirst : LSBFirst )
-#define PCF_BIT_ORDER( f ) \
-          ( ( (f) & PCF_BIT_MASK ) ? MSBFirst : LSBFirst )
-#define PCF_GLYPH_PAD_INDEX( f ) \
-          ( (f) & PCF_GLYPH_PAD_MASK )
-#define PCF_GLYPH_PAD( f ) \
-          ( 1 << PCF_GLYPH_PAD_INDEX( f ) )
-#define PCF_SCAN_UNIT_INDEX( f ) \
-          ( ( (f) & PCF_SCAN_UNIT_MASK ) >> 4 )
-#define PCF_SCAN_UNIT( f ) \
-          ( 1 << PCF_SCAN_UNIT_INDEX( f ) )
-#define PCF_FORMAT_BITS( f )             \
-          ( (f) & ( PCF_GLYPH_PAD_MASK | \
-                    PCF_BYTE_MASK      | \
-                    PCF_BIT_MASK       | \
-                    PCF_SCAN_UNIT_MASK ) )
-
-#define PCF_SIZE_TO_INDEX( s )  ( (s) == 4 ? 2 : (s) == 2 ? 1 : 0 )
-#define PCF_INDEX_TO_SIZE( b )  ( 1 << b )
-
-#define PCF_FORMAT( bit, byte, glyph, scan )          \
-          ( ( PCF_SIZE_TO_INDEX( scan )      << 4 ) | \
-            ( ( (bit)  == MSBFirst ? 1 : 0 ) << 3 ) | \
-            ( ( (byte) == MSBFirst ? 1 : 0 ) << 2 ) | \
-            ( PCF_SIZE_TO_INDEX( glyph )     << 0 ) )
-
-#define PCF_PROPERTIES        ( 1 << 0 )
-#define PCF_ACCELERATORS      ( 1 << 1 )
-#define PCF_METRICS           ( 1 << 2 )
-#define PCF_BITMAPS           ( 1 << 3 )
-#define PCF_INK_METRICS       ( 1 << 4 )
-#define PCF_BDF_ENCODINGS     ( 1 << 5 )
-#define PCF_SWIDTHS           ( 1 << 6 )
-#define PCF_GLYPH_NAMES       ( 1 << 7 )
-#define PCF_BDF_ACCELERATORS  ( 1 << 8 )
-
-#define GLYPHPADOPTIONS  4 /* I'm not sure about this */
-
-  FT_LOCAL( FT_Error )
-  pcf_load_font( FT_Stream,
-                 PCF_Face );
-
-FT_END_HEADER
-
-#endif /* __PCF_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcfdrivr.c b/nx-X11/extras/freetype2/src/pcf/pcfdrivr.c
deleted file mode 100644
index b6b04b98f..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcfdrivr.c
+++ /dev/null
@@ -1,651 +0,0 @@
-/*  pcfdrivr.c
-
-    FreeType font driver for pcf files
-
-    Copyright (C) 2000, 2001, 2002, 2003, 2004 by
-    Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#include <ft2build.h>
-
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_GZIP_H
-#include FT_LZW_H
-#include FT_ERRORS_H
-#include FT_BDF_H
-
-#include "pcf.h"
-#include "pcfdrivr.h"
-#include "pcfread.h"
-
-#include "pcferror.h"
-#include "pcfutil.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pcfread
-
-#include FT_SERVICE_BDF_H
-#include FT_SERVICE_XFREE86_NAME_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pcfdriver
-
-
-  typedef struct  PCF_CMapRec_
-  {
-    FT_CMapRec    root;
-    FT_UInt       num_encodings;
-    PCF_Encoding  encodings;
-
-  } PCF_CMapRec, *PCF_CMap;
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  pcf_cmap_init( FT_CMap     pcfcmap,   /* PCF_CMap */
-                 FT_Pointer  init_data )
-  {
-    PCF_CMap  cmap = (PCF_CMap)pcfcmap;
-    PCF_Face  face = (PCF_Face)FT_CMAP_FACE( pcfcmap );
-
-    FT_UNUSED( init_data );
-
-
-    cmap->num_encodings = (FT_UInt)face->nencodings;
-    cmap->encodings     = face->encodings;
-
-    return PCF_Err_Ok;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  pcf_cmap_done( FT_CMap  pcfcmap )         /* PCF_CMap */
-  {
-    PCF_CMap  cmap = (PCF_CMap)pcfcmap;
-
-
-    cmap->encodings     = NULL;
-    cmap->num_encodings = 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  pcf_cmap_char_index( FT_CMap    pcfcmap,  /* PCF_CMap */
-                       FT_UInt32  charcode )
-  {
-    PCF_CMap      cmap      = (PCF_CMap)pcfcmap;
-    PCF_Encoding  encodings = cmap->encodings;
-    FT_UInt       min, max, mid;
-    FT_UInt       result    = 0;
-
-
-    min = 0;
-    max = cmap->num_encodings;
-
-    while ( min < max )
-    {
-      FT_UInt32  code;
-
-
-      mid  = ( min + max ) >> 1;
-      code = encodings[mid].enc;
-
-      if ( charcode == code )
-      {
-        result = encodings[mid].glyph + 1;
-        break;
-      }
-
-      if ( charcode < code )
-        max = mid;
-      else
-        min = mid + 1;
-    }
-
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  pcf_cmap_char_next( FT_CMap    pcfcmap,   /* PCF_CMap */
-                      FT_UInt32  *acharcode )
-  {
-    PCF_CMap      cmap      = (PCF_CMap)pcfcmap;
-    PCF_Encoding  encodings = cmap->encodings;
-    FT_UInt       min, max, mid;
-    FT_UInt32     charcode  = *acharcode + 1;
-    FT_UInt       result    = 0;
-
-
-    min = 0;
-    max = cmap->num_encodings;
-
-    while ( min < max )
-    {
-      FT_UInt32  code;
-
-
-      mid  = ( min + max ) >> 1;
-      code = encodings[mid].enc;
-
-      if ( charcode == code )
-      {
-        result = encodings[mid].glyph + 1;
-        goto Exit;
-      }
-
-      if ( charcode < code )
-        max = mid;
-      else
-        min = mid + 1;
-    }
-
-    charcode = 0;
-    if ( min < cmap->num_encodings )
-    {
-      charcode = encodings[min].enc;
-      result   = encodings[min].glyph + 1;
-    }
-
-  Exit:
-    *acharcode = charcode;
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_CMap_ClassRec  pcf_cmap_class =
-  {
-    sizeof ( PCF_CMapRec ),
-    pcf_cmap_init,
-    pcf_cmap_done,
-    pcf_cmap_char_index,
-    pcf_cmap_char_next
-  };
-
-
-  FT_CALLBACK_DEF( void )
-  PCF_Face_Done( FT_Face  pcfface )         /* PCF_Face */
-  {
-    PCF_Face   face   = (PCF_Face)pcfface;
-    FT_Memory  memory = FT_FACE_MEMORY( face );
-
-
-    FT_FREE( face->encodings );
-    FT_FREE( face->metrics );
-
-    /* free properties */
-    {
-      PCF_Property  prop = face->properties;
-      FT_Int        i;
-
-
-      for ( i = 0; i < face->nprops; i++ )
-      {
-        prop = &face->properties[i];
-
-        FT_FREE( prop->name );
-        if ( prop->isString )
-          FT_FREE( prop->value );
-      }
-
-      FT_FREE( face->properties );
-    }
-
-    FT_FREE( face->toc.tables );
-    FT_FREE( pcfface->family_name );
-    FT_FREE( pcfface->available_sizes );
-    FT_FREE( face->charset_encoding );
-    FT_FREE( face->charset_registry );
-
-    FT_TRACE4(( "PCF_Face_Done: done face\n" ));
-
-    /* close gzip/LZW stream if any */
-    if ( pcfface->stream == &face->gzip_stream )
-    {
-      FT_Stream_Close( &face->gzip_stream );
-      pcfface->stream = face->gzip_source;
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  PCF_Face_Init( FT_Stream      stream,
-                 FT_Face        pcfface,        /* PCF_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    PCF_Face  face  = (PCF_Face)pcfface;
-    FT_Error  error = PCF_Err_Ok;
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-    FT_UNUSED( face_index );
-
-
-    error = pcf_load_font( stream, face );
-    if ( error )
-    {
-      FT_Error  error2;
-
-
-      /* this didn't work, try gzip support! */
-      error2 = FT_Stream_OpenGzip( &face->gzip_stream, stream );
-      if ( FT_ERROR_BASE( error2 ) == FT_Err_Unimplemented_Feature )
-        goto Fail;
-
-      error = error2;
-      if ( error )
-      {
-        FT_Error  error3;
-
-
-        /* this didn't work, try LZW support! */
-        error3 = FT_Stream_OpenLZW( &face->gzip_stream, stream );
-        if ( FT_ERROR_BASE( error3 ) == FT_Err_Unimplemented_Feature )
-          goto Fail;
-
-        error = error3;
-        if ( error )
-          goto Fail;
-
-        face->gzip_source = stream;
-        pcfface->stream   = &face->gzip_stream;
-
-        stream = pcfface->stream;
-
-        error = pcf_load_font( stream, face );
-        if ( error )
-          goto Fail;
-      }
-      else
-      {
-        face->gzip_source = stream;
-        pcfface->stream   = &face->gzip_stream;
-
-        stream = pcfface->stream;
-
-        error = pcf_load_font( stream, face );
-        if ( error )
-          goto Fail;
-      }
-    }
-
-    /* set up charmap */
-    {
-      FT_String  *charset_registry = face->charset_registry;
-      FT_String  *charset_encoding = face->charset_encoding;
-      FT_Bool     unicode_charmap  = 0;
-
-
-      if ( charset_registry && charset_encoding )
-      {
-        char*  s = charset_registry;
-
-
-        /* Uh, oh, compare first letters manually to avoid dependency
-           on locales. */
-        if ( ( s[0] == 'i' || s[0] == 'I' ) &&
-             ( s[1] == 's' || s[1] == 'S' ) &&
-             ( s[2] == 'o' || s[2] == 'O' ) )
-        {
-          s += 3;
-          if ( !ft_strcmp( s, "10646" )                      ||
-               ( !ft_strcmp( s, "8859" ) &&
-                 !ft_strcmp( face->charset_encoding, "1" ) ) )
-          unicode_charmap = 1;
-        }
-      }
-
-      {
-        FT_CharMapRec  charmap;
-
-
-        charmap.face        = FT_FACE( face );
-        charmap.encoding    = FT_ENCODING_NONE;
-        charmap.platform_id = 0;
-        charmap.encoding_id = 0;
-
-        if ( unicode_charmap )
-        {
-          charmap.encoding    = FT_ENCODING_UNICODE;
-          charmap.platform_id = 3;
-          charmap.encoding_id = 1;
-        }
-
-        error = FT_CMap_New( &pcf_cmap_class, NULL, &charmap, NULL );
-
-#if 0
-        /* Select default charmap */
-        if ( pcfface->num_charmaps )
-          pcfface->charmap = pcfface->charmaps[0];
-#endif
-      }
-    }
-
-  Exit:
-    return error;
-
-  Fail:
-    FT_TRACE2(( "[not a valid PCF file]\n" ));
-    error = PCF_Err_Unknown_File_Format;  /* error */
-    goto Exit;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  PCF_Set_Pixel_Size( FT_Size  size,
-                      FT_UInt  pixel_width,
-                      FT_UInt  pixel_height )
-  {
-    PCF_Face  face = (PCF_Face)FT_SIZE_FACE( size );
-
-    FT_UNUSED( pixel_width );
-    FT_UNUSED( pixel_height );
-
-
-    FT_TRACE4(( "rec %d - pres %d\n", size->metrics.y_ppem,
-                                      face->root.available_sizes->y_ppem >> 6 ));
-
-    if ( size->metrics.y_ppem == face->root.available_sizes->y_ppem >> 6 )
-    {
-      size->metrics.ascender    = face->accel.fontAscent << 6;
-      size->metrics.descender   = face->accel.fontDescent * (-64);
-#if 0
-      size->metrics.height      = face->accel.maxbounds.ascent << 6;
-#endif
-      size->metrics.height      = size->metrics.ascender -
-                                  size->metrics.descender;
-
-      size->metrics.max_advance = face->accel.maxbounds.characterWidth << 6;
-
-      return PCF_Err_Ok;
-    }
-    else
-    {
-      FT_TRACE4(( "size WRONG\n" ));
-      return PCF_Err_Invalid_Pixel_Size;
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  PCF_Set_Point_Size( FT_Size     size,
-                      FT_F26Dot6  char_width,
-                      FT_F26Dot6  char_height,
-                      FT_UInt     horz_resolution,
-                      FT_UInt     vert_resolution )
-  {
-    FT_UNUSED( char_width );
-    FT_UNUSED( char_height );
-    FT_UNUSED( horz_resolution );
-    FT_UNUSED( vert_resolution );
-
-    return PCF_Set_Pixel_Size( size, 0, 0 );
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  PCF_Glyph_Load( FT_GlyphSlot  slot,
-                  FT_Size       size,
-                  FT_UInt       glyph_index,
-                  FT_Int32      load_flags )
-  {
-    PCF_Face    face   = (PCF_Face)FT_SIZE_FACE( size );
-    FT_Stream   stream = face->root.stream;
-    FT_Error    error  = PCF_Err_Ok;
-    FT_Bitmap*  bitmap = &slot->bitmap;
-    PCF_Metric  metric;
-    int         bytes;
-
-    FT_UNUSED( load_flags );
-
-
-    FT_TRACE4(( "load_glyph %d ---", glyph_index ));
-
-    if ( !face )
-    {
-      error = PCF_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    if ( glyph_index > 0 )
-      glyph_index--;
-
-    metric = face->metrics + glyph_index;
-
-    bitmap->rows       = metric->ascent + metric->descent;
-    bitmap->width      = metric->rightSideBearing - metric->leftSideBearing;
-    bitmap->num_grays  = 1;
-    bitmap->pixel_mode = FT_PIXEL_MODE_MONO;
-
-    FT_TRACE6(( "BIT_ORDER %d ; BYTE_ORDER %d ; GLYPH_PAD %d\n",
-                  PCF_BIT_ORDER( face->bitmapsFormat ),
-                  PCF_BYTE_ORDER( face->bitmapsFormat ),
-                  PCF_GLYPH_PAD( face->bitmapsFormat ) ));
-
-    switch ( PCF_GLYPH_PAD( face->bitmapsFormat ) )
-    {
-    case 1:
-      bitmap->pitch = ( bitmap->width + 7 ) >> 3;
-      break;
-
-    case 2:
-      bitmap->pitch = ( ( bitmap->width + 15 ) >> 4 ) << 1;
-      break;
-
-    case 4:
-      bitmap->pitch = ( ( bitmap->width + 31 ) >> 5 ) << 2;
-      break;
-
-    case 8:
-      bitmap->pitch = ( ( bitmap->width + 63 ) >> 6 ) << 3;
-      break;
-
-    default:
-      return PCF_Err_Invalid_File_Format;
-    }
-
-    /* XXX: to do: are there cases that need repadding the bitmap? */
-    bytes = bitmap->pitch * bitmap->rows;
-
-    error = ft_glyphslot_alloc_bitmap( slot, bytes );
-    if ( error )
-      goto Exit;
-
-    if ( FT_STREAM_SEEK( metric->bits )          ||
-         FT_STREAM_READ( bitmap->buffer, bytes ) )
-      goto Exit;
-
-    if ( PCF_BIT_ORDER( face->bitmapsFormat ) != MSBFirst )
-      BitOrderInvert( bitmap->buffer, bytes );
-
-    if ( ( PCF_BYTE_ORDER( face->bitmapsFormat ) !=
-           PCF_BIT_ORDER( face->bitmapsFormat )  ) )
-    {
-      switch ( PCF_SCAN_UNIT( face->bitmapsFormat ) )
-      {
-      case 1:
-        break;
-
-      case 2:
-        TwoByteSwap( bitmap->buffer, bytes );
-        break;
-
-      case 4:
-        FourByteSwap( bitmap->buffer, bytes );
-        break;
-      }
-    }
-
-    slot->bitmap_left = metric->leftSideBearing;
-    slot->bitmap_top  = metric->ascent;
-
-    slot->metrics.horiAdvance  = metric->characterWidth << 6;
-    slot->metrics.horiBearingX = metric->leftSideBearing << 6;
-    slot->metrics.horiBearingY = metric->ascent << 6;
-    slot->metrics.width        = ( metric->rightSideBearing -
-                                   metric->leftSideBearing ) << 6;
-    slot->metrics.height       = bitmap->rows << 6;
-
-    slot->linearHoriAdvance = (FT_Fixed)bitmap->width << 16;
-    slot->format            = FT_GLYPH_FORMAT_BITMAP;
-
-    FT_TRACE4(( " --- ok\n" ));
-
-  Exit:
-    return error;
-  }
-
-
- /*
-  *
-  *  BDF SERVICE
-  *
-  */
-
-  static FT_Error
-  pcf_get_bdf_property( PCF_Face          face,
-                        const char*       prop_name,
-                        BDF_PropertyRec  *aproperty )
-  {
-    PCF_Property  prop;
-
-
-    prop = pcf_find_property( face, prop_name );
-    if ( prop != NULL )
-    {
-      if ( prop->isString )
-      {
-        aproperty->type   = BDF_PROPERTY_TYPE_ATOM;
-        aproperty->u.atom = prop->value.atom;
-      }
-      else
-      {
-        /* Apparently, the PCF driver loads all properties as signed integers!
-         * This really doesn't seem to be a problem, because this is
-         * sufficient for any meaningful values.
-         */
-        aproperty->type      = BDF_PROPERTY_TYPE_INTEGER;
-        aproperty->u.integer = prop->value.integer;
-      }
-      return 0;
-    }
-
-    return PCF_Err_Invalid_Argument;
-  }
-
-
-  static FT_Error
-  pcf_get_charset_id( PCF_Face      face,
-                      const char*  *acharset_encoding,
-                      const char*  *acharset_registry )
-  {
-    *acharset_encoding = face->charset_encoding;
-    *acharset_registry = face->charset_registry;
-
-    return 0;
-  }
-
-
-  static const FT_Service_BDFRec  pcf_service_bdf =
-  {
-    (FT_BDF_GetCharsetIdFunc)pcf_get_charset_id,
-    (FT_BDF_GetPropertyFunc) pcf_get_bdf_property
-  };
-
-
- /*
-  *
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  pcf_services[] =
-  {
-    { FT_SERVICE_ID_BDF,       &pcf_service_bdf },
-    { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_PCF },
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  pcf_driver_requester( FT_Module    module,
-                        const char*  name )
-  {
-    FT_UNUSED( module );
-
-    return ft_service_list_lookup( pcf_services, name );
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  pcf_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER        |
-      FT_MODULE_DRIVER_NO_OUTLINES,
-      sizeof ( FT_DriverRec ),
-
-      "pcf",
-      0x10000L,
-      0x20000L,
-
-      0,
-
-      0,
-      0,
-      pcf_driver_requester
-    },
-
-    sizeof ( PCF_FaceRec ),
-    sizeof ( FT_SizeRec ),
-    sizeof ( FT_GlyphSlotRec ),
-
-    PCF_Face_Init,
-    PCF_Face_Done,
-    0,                      /* FT_Size_InitFunc */
-    0,                      /* FT_Size_DoneFunc */
-    0,                      /* FT_Slot_InitFunc */
-    0,                      /* FT_Slot_DoneFunc */
-
-    PCF_Set_Point_Size,
-    PCF_Set_Pixel_Size,
-
-    PCF_Glyph_Load,
-
-    0,                      /* FT_Face_GetKerningFunc  */
-    0,                      /* FT_Face_AttachFunc      */
-    0                       /* FT_Face_GetAdvancesFunc */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcfdrivr.h b/nx-X11/extras/freetype2/src/pcf/pcfdrivr.h
deleted file mode 100644
index 7ddf697e1..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcfdrivr.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*  pcfdrivr.h
-
-    FreeType font driver for pcf fonts
-
-  Copyright 2000-2001, 2002 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#ifndef __PCFDRIVR_H__
-#define __PCFDRIVR_H__
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-FT_BEGIN_HEADER
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  pcf_driver_class;
-
-FT_END_HEADER
-
-
-#endif /* __PCFDRIVR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcferror.h b/nx-X11/extras/freetype2/src/pcf/pcferror.h
deleted file mode 100644
index d75c067aa..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcferror.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pcferror.h                                                             */
-/*                                                                         */
-/*    PCF error codes (specification only).                                */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the PCF error enumeration constants.      */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __PCFERROR_H__
-#define __PCFERROR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  PCF_Err_
-#define FT_ERR_BASE    FT_Mod_Err_PCF
-
-#include FT_ERRORS_H
-
-#endif /* __PCFERROR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcfread.c b/nx-X11/extras/freetype2/src/pcf/pcfread.c
deleted file mode 100644
index 383daaa1c..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcfread.c
+++ /dev/null
@@ -1,1175 +0,0 @@
-/*  pcfread.c
-
-    FreeType font driver for pcf fonts
-
-  Copyright 2000, 2001, 2002, 2003, 2004 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#include <ft2build.h>
-
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
-
-#include "pcf.h"
-#include "pcfdrivr.h"
-#include "pcfread.h"
-
-#include "pcferror.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pcfread
-
-
-#if defined( FT_DEBUG_LEVEL_TRACE )
-  static const char* const  tableNames[] =
-  {
-    "prop", "accl", "mtrcs", "bmps", "imtrcs",
-    "enc", "swidth", "names", "accel"
-  };
-#endif
-
-
-  static
-  const FT_Frame_Field  pcf_toc_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_TocRec
-
-    FT_FRAME_START( 8 ),
-      FT_FRAME_ULONG_LE( version ),
-      FT_FRAME_ULONG_LE( count ),
-    FT_FRAME_END
-  };
-
-
-  static
-  const FT_Frame_Field  pcf_table_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_TableRec
-
-    FT_FRAME_START( 16  ),
-      FT_FRAME_ULONG_LE( type ),
-      FT_FRAME_ULONG_LE( format ),
-      FT_FRAME_ULONG_LE( size ),
-      FT_FRAME_ULONG_LE( offset ),
-    FT_FRAME_END
-  };
-
-
-  static FT_Error
-  pcf_read_TOC( FT_Stream  stream,
-                PCF_Face   face )
-  {
-    FT_Error   error;
-    PCF_Toc    toc = &face->toc;
-    PCF_Table  tables;
-
-    FT_Memory  memory = FT_FACE(face)->memory;
-    FT_UInt    n;
-
-
-    if ( FT_STREAM_SEEK ( 0 )                          ||
-         FT_STREAM_READ_FIELDS ( pcf_toc_header, toc ) )
-      return PCF_Err_Cannot_Open_Resource;
-
-    if ( toc->version != PCF_FILE_VERSION )
-      return PCF_Err_Invalid_File_Format;
-
-    if ( FT_NEW_ARRAY( face->toc.tables, toc->count ) )
-      return PCF_Err_Out_Of_Memory;
-
-    tables = face->toc.tables;
-    for ( n = 0; n < toc->count; n++ )
-    {
-      if ( FT_STREAM_READ_FIELDS( pcf_table_header, tables ) )
-        goto Exit;
-      tables++;
-    }
-
-#if defined( FT_DEBUG_LEVEL_TRACE )
-
-    {
-      FT_UInt      i, j;
-      const char*  name = "?";
-
-
-      FT_TRACE4(( "pcf_read_TOC:\n" ));
-
-      FT_TRACE4(( "  number of tables: %ld\n", face->toc.count ));
-
-      tables = face->toc.tables;
-      for ( i = 0; i < toc->count; i++ )
-      {
-        for( j = 0; j < sizeof ( tableNames ) / sizeof ( tableNames[0] ); j++ )
-          if ( tables[i].type == (FT_UInt)( 1 << j ) )
-            name = tableNames[j];
-
-        FT_TRACE4(( "  %d: type=%s, format=0x%X, "
-                    "size=%ld (0x%lX), offset=%ld (0x%lX)\n",
-                    i, name,
-                    tables[i].format,
-                    tables[i].size, tables[i].size,
-                    tables[i].offset, tables[i].offset ));
-      }
-    }
-
-#endif
-
-    return PCF_Err_Ok;
-
-  Exit:
-    FT_FREE( face->toc.tables );
-    return error;
-  }
-
-
-  static
-  const FT_Frame_Field  pcf_metric_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_MetricRec
-
-    FT_FRAME_START( 12 ),
-      FT_FRAME_SHORT_LE( leftSideBearing ),
-      FT_FRAME_SHORT_LE( rightSideBearing ),
-      FT_FRAME_SHORT_LE( characterWidth ),
-      FT_FRAME_SHORT_LE( ascent ),
-      FT_FRAME_SHORT_LE( descent ),
-      FT_FRAME_SHORT_LE( attributes ),
-    FT_FRAME_END
-  };
-
-
-  static
-  const FT_Frame_Field  pcf_metric_msb_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_MetricRec
-
-    FT_FRAME_START( 12 ),
-      FT_FRAME_SHORT( leftSideBearing ),
-      FT_FRAME_SHORT( rightSideBearing ),
-      FT_FRAME_SHORT( characterWidth ),
-      FT_FRAME_SHORT( ascent ),
-      FT_FRAME_SHORT( descent ),
-      FT_FRAME_SHORT( attributes ),
-    FT_FRAME_END
-  };
-
-
-  static
-  const FT_Frame_Field  pcf_compressed_metric_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_Compressed_MetricRec
-
-    FT_FRAME_START( 5 ),
-      FT_FRAME_BYTE( leftSideBearing ),
-      FT_FRAME_BYTE( rightSideBearing ),
-      FT_FRAME_BYTE( characterWidth ),
-      FT_FRAME_BYTE( ascent ),
-      FT_FRAME_BYTE( descent ),
-    FT_FRAME_END
-  };
-
-
-  static FT_Error
-  pcf_get_metric( FT_Stream   stream,
-                  FT_ULong    format,
-                  PCF_Metric  metric )
-  {
-    FT_Error  error = PCF_Err_Ok;
-
-
-    if ( PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) )
-    {
-      const FT_Frame_Field*  fields;
-
-
-      /* parsing normal metrics */
-      fields = PCF_BYTE_ORDER( format ) == MSBFirst
-               ? pcf_metric_msb_header
-               : pcf_metric_header;
-
-      /* the following sets 'error' but doesn't return in case of failure */
-      (void)FT_STREAM_READ_FIELDS( fields, metric );
-    }
-    else
-    {
-      PCF_Compressed_MetricRec  compr;
-
-
-      /* parsing compressed metrics */
-      if ( FT_STREAM_READ_FIELDS( pcf_compressed_metric_header, &compr ) )
-        goto Exit;
-
-      metric->leftSideBearing  = (FT_Short)( compr.leftSideBearing  - 0x80 );
-      metric->rightSideBearing = (FT_Short)( compr.rightSideBearing - 0x80 );
-      metric->characterWidth   = (FT_Short)( compr.characterWidth   - 0x80 );
-      metric->ascent           = (FT_Short)( compr.ascent           - 0x80 );
-      metric->descent          = (FT_Short)( compr.descent          - 0x80 );
-      metric->attributes       = 0;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  pcf_seek_to_table_type( FT_Stream  stream,
-                          PCF_Table  tables,
-                          FT_Int     ntables,
-                          FT_ULong   type,
-                          FT_ULong  *aformat,
-                          FT_ULong  *asize )
-  {
-    FT_Error  error = PCF_Err_Invalid_File_Format;
-    FT_Int    i;
-
-
-    for ( i = 0; i < ntables; i++ )
-      if ( tables[i].type == type )
-      {
-        if ( stream->pos > tables[i].offset ) {
-          error = PCF_Err_Invalid_Stream_Skip;
-          goto Fail;
-        }
-
-        if ( FT_STREAM_SKIP( tables[i].offset - stream->pos ) ) {
-          error = PCF_Err_Invalid_Stream_Skip;
-          goto Fail;
-        }
-
-        *asize   = tables[i].size;  /* unused - to be removed */
-        *aformat = tables[i].format;
-
-        return PCF_Err_Ok;
-      }
-
-  Fail:
-    return error;
-  }
-
-
-  static FT_Bool
-  pcf_has_table_type( PCF_Table  tables,
-                      FT_Int     ntables,
-                      FT_ULong   type )
-  {
-    FT_Int  i;
-
-
-    for ( i = 0; i < ntables; i++ )
-      if ( tables[i].type == type )
-        return TRUE;
-
-    return FALSE;
-  }
-
-
-  static
-  const FT_Frame_Field  pcf_property_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_ParsePropertyRec
-
-    FT_FRAME_START( 9 ),
-      FT_FRAME_LONG_LE( name ),
-      FT_FRAME_BYTE   ( isString ),
-      FT_FRAME_LONG_LE( value ),
-    FT_FRAME_END
-  };
-
-
-  static
-  const FT_Frame_Field  pcf_property_msb_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_ParsePropertyRec
-
-    FT_FRAME_START( 9 ),
-      FT_FRAME_LONG( name ),
-      FT_FRAME_BYTE( isString ),
-      FT_FRAME_LONG( value ),
-    FT_FRAME_END
-  };
-
-
-  FT_LOCAL_DEF( PCF_Property )
-  pcf_find_property( PCF_Face          face,
-                     const FT_String*  prop )
-  {
-    PCF_Property  properties = face->properties;
-    FT_Bool       found      = 0;
-    int           i;
-
-
-    for ( i = 0 ; i < face->nprops && !found; i++ )
-    {
-      if ( !ft_strcmp( properties[i].name, prop ) )
-        found = 1;
-    }
-
-    if ( found )
-      return properties + i - 1;
-    else
-      return NULL;
-  }
-
-
-  static FT_Error
-  pcf_get_properties( FT_Stream  stream,
-                      PCF_Face   face )
-  {
-    PCF_ParseProperty  props      = 0;
-    PCF_Property       properties = 0;
-    FT_Int             nprops, i;
-    FT_ULong           format, size;
-    FT_Error           error;
-    FT_Memory          memory     = FT_FACE(face)->memory;
-    FT_ULong           string_size;
-    FT_String*         strings    = 0;
-
-
-    error = pcf_seek_to_table_type( stream,
-                                    face->toc.tables,
-                                    face->toc.count,
-                                    PCF_PROPERTIES,
-                                    &format,
-                                    &size );
-    if ( error )
-      goto Bail;
-
-    if ( FT_READ_ULONG_LE( format ) )
-      goto Bail;
-
-    FT_TRACE4(( "pcf_get_properties:\n" ));
-
-    FT_TRACE4(( "  format = %ld\n", format ));
-
-    if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) )
-      goto Bail;
-
-    if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-      (void)FT_READ_ULONG( nprops );
-    else
-      (void)FT_READ_ULONG_LE( nprops );
-    if ( error )
-      goto Bail;
-
-    FT_TRACE4(( "  nprop = %d\n", nprops ));
-
-    if ( FT_NEW_ARRAY( props, nprops ) )
-      goto Bail;
-
-    for ( i = 0; i < nprops; i++ )
-    {
-      if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-      {
-        if ( FT_STREAM_READ_FIELDS( pcf_property_msb_header, props + i ) )
-          goto Bail;
-      }
-      else
-      {
-        if ( FT_STREAM_READ_FIELDS( pcf_property_header, props + i ) )
-          goto Bail;
-      }
-    }
-
-    /* pad the property array                                            */
-    /*                                                                   */
-    /* clever here - nprops is the same as the number of odd-units read, */
-    /* as only isStringProp are odd length   (Keith Packard)             */
-    /*                                                                   */
-    if ( nprops & 3 )
-    {
-      i = 4 - ( nprops & 3 );
-      FT_Stream_Skip( stream, i );
-    }
-
-    if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-      (void)FT_READ_ULONG( string_size );
-    else
-      (void)FT_READ_ULONG_LE( string_size );
-    if ( error )
-      goto Bail;
-
-    FT_TRACE4(( "  string_size = %ld\n", string_size ));
-
-    if ( FT_NEW_ARRAY( strings, string_size ) )
-      goto Bail;
-
-    error = FT_Stream_Read( stream, (FT_Byte*)strings, string_size );
-    if ( error )
-      goto Bail;
-
-    if ( FT_NEW_ARRAY( properties, nprops ) )
-      goto Bail;
-
-    for ( i = 0; i < nprops; i++ )
-    {
-      /* XXX: make atom */
-      if ( FT_NEW_ARRAY( properties[i].name,
-                         ft_strlen( strings + props[i].name ) + 1 ) )
-        goto Bail;
-      ft_strcpy( properties[i].name, strings + props[i].name );
-
-      FT_TRACE4(( "  %s:", properties[i].name ));
-
-      properties[i].isString = props[i].isString;
-
-      if ( props[i].isString )
-      {
-        if ( FT_NEW_ARRAY( properties[i].value.atom,
-                           ft_strlen( strings + props[i].value ) + 1 ) )
-          goto Bail;
-        ft_strcpy( properties[i].value.atom, strings + props[i].value );
-
-        FT_TRACE4(( " `%s'\n", properties[i].value.atom ));
-      }
-      else
-      {
-        properties[i].value.integer = props[i].value;
-
-        FT_TRACE4(( " %d\n", properties[i].value.integer ));
-      }
-    }
-
-    face->properties = properties;
-    face->nprops = nprops;
-
-    FT_FREE( props );
-    FT_FREE( strings );
-
-    return PCF_Err_Ok;
-
-  Bail:
-    FT_FREE( props );
-    FT_FREE( strings );
-
-    return error;
-  }
-
-
-  static FT_Error
-  pcf_get_metrics( FT_Stream  stream,
-                   PCF_Face   face )
-  {
-    FT_Error    error    = PCF_Err_Ok;
-    FT_Memory   memory   = FT_FACE(face)->memory;
-    FT_ULong    format   = 0;
-    FT_ULong    size     = 0;
-    PCF_Metric  metrics  = 0;
-    int         i;
-    int         nmetrics = -1;
-
-
-    error = pcf_seek_to_table_type( stream,
-                                    face->toc.tables,
-                                    face->toc.count,
-                                    PCF_METRICS,
-                                    &format,
-                                    &size );
-    if ( error )
-      return error;
-
-    error = FT_READ_ULONG_LE( format );
-
-    if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT )     &&
-         !PCF_FORMAT_MATCH( format, PCF_COMPRESSED_METRICS ) )
-      return PCF_Err_Invalid_File_Format;
-
-    if ( PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) )
-    {
-      if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-        (void)FT_READ_ULONG( nmetrics );
-      else
-        (void)FT_READ_ULONG_LE( nmetrics );
-    }
-    else
-    {
-      if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-        (void)FT_READ_USHORT( nmetrics );
-      else
-        (void)FT_READ_USHORT_LE( nmetrics );
-    }
-    if ( error || nmetrics == -1 )
-      return PCF_Err_Invalid_File_Format;
-
-    face->nmetrics = nmetrics;
-
-    if ( FT_NEW_ARRAY( face->metrics, nmetrics ) )
-      return PCF_Err_Out_Of_Memory;
-
-    FT_TRACE4(( "pcf_get_metrics:\n" ));
-
-    metrics = face->metrics;
-    for ( i = 0; i < nmetrics; i++ )
-    {
-      pcf_get_metric( stream, format, metrics + i );
-
-      metrics[i].bits = 0;
-
-      FT_TRACE4(( "  idx %d: width=%d, "
-                  "lsb=%d, rsb=%d, ascent=%d, descent=%d, swidth=%d\n",
-                  i,
-                  ( metrics + i )->characterWidth,
-                  ( metrics + i )->leftSideBearing,
-                  ( metrics + i )->rightSideBearing,
-                  ( metrics + i )->ascent,
-                  ( metrics + i )->descent,
-                  ( metrics + i )->attributes ));
-
-      if ( error )
-        break;
-    }
-
-    if ( error )
-      FT_FREE( face->metrics );
-    return error;
-  }
-
-
-  static FT_Error
-  pcf_get_bitmaps( FT_Stream  stream,
-                   PCF_Face   face )
-  {
-    FT_Error   error  = PCF_Err_Ok;
-    FT_Memory  memory = FT_FACE(face)->memory;
-    FT_Long*   offsets;
-    FT_Long    bitmapSizes[GLYPHPADOPTIONS];
-    FT_ULong   format, size;
-    int        nbitmaps, i, sizebitmaps = 0;
-    char*      bitmaps;
-
-
-    error = pcf_seek_to_table_type( stream,
-                                    face->toc.tables,
-                                    face->toc.count,
-                                    PCF_BITMAPS,
-                                    &format,
-                                    &size );
-    if ( error )
-      return error;
-
-    error = FT_Stream_EnterFrame( stream, 8 );
-    if ( error )
-      return error;
-
-    format = FT_GET_ULONG_LE();
-    if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-      nbitmaps  = FT_GET_ULONG();
-    else
-      nbitmaps  = FT_GET_ULONG_LE();
-
-    FT_Stream_ExitFrame( stream );
-
-    if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) )
-      return PCF_Err_Invalid_File_Format;
-
-    if ( nbitmaps != face->nmetrics )
-      return PCF_Err_Invalid_File_Format;
-
-    if ( FT_NEW_ARRAY( offsets, nbitmaps ) )
-      return error;
-
-    FT_TRACE4(( "pcf_get_bitmaps:\n" ));
-
-    for ( i = 0; i < nbitmaps; i++ )
-    {
-      if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-        (void)FT_READ_LONG( offsets[i] );
-      else
-        (void)FT_READ_LONG_LE( offsets[i] );
-
-      FT_TRACE4(( "  bitmap %d: offset %ld (0x%lX)\n",
-                  i, offsets[i], offsets[i] ));
-    }
-    if ( error )
-      goto Bail;
-
-    for ( i = 0; i < GLYPHPADOPTIONS; i++ )
-    {
-      if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-        (void)FT_READ_LONG( bitmapSizes[i] );
-      else
-        (void)FT_READ_LONG_LE( bitmapSizes[i] );
-      if ( error )
-        goto Bail;
-
-      sizebitmaps = bitmapSizes[PCF_GLYPH_PAD_INDEX( format )];
-
-      FT_TRACE4(( "  padding %d implies a size of %ld\n", i, bitmapSizes[i] ));
-    }
-
-    FT_TRACE4(( "  %d bitmaps, padding index %ld\n",
-                nbitmaps,
-                PCF_GLYPH_PAD_INDEX( format ) ));
-    FT_TRACE4(( "  bitmap size = %d\n", sizebitmaps ));
-
-    FT_UNUSED( sizebitmaps );       /* only used for debugging */
-
-    for ( i = 0; i < nbitmaps; i++ )
-      face->metrics[i].bits = stream->pos + offsets[i];
-
-    face->bitmapsFormat = format;
-
-    FT_FREE ( offsets );
-    return error;
-
-  Bail:
-    FT_FREE ( offsets );
-    FT_FREE ( bitmaps );
-    return error;
-  }
-
-
-  static FT_Error
-  pcf_get_encodings( FT_Stream  stream,
-                     PCF_Face   face )
-  {
-    FT_Error      error  = PCF_Err_Ok;
-    FT_Memory     memory = FT_FACE(face)->memory;
-    FT_ULong      format, size;
-    int           firstCol, lastCol;
-    int           firstRow, lastRow;
-    int           nencoding, encodingOffset;
-    int           i, j;
-    PCF_Encoding  tmpEncoding, encoding = 0;
-
-
-    error = pcf_seek_to_table_type( stream,
-                                    face->toc.tables,
-                                    face->toc.count,
-                                    PCF_BDF_ENCODINGS,
-                                    &format,
-                                    &size );
-    if ( error )
-      return error;
-
-    error = FT_Stream_EnterFrame( stream, 14 );
-    if ( error )
-      return error;
-
-    format = FT_GET_ULONG_LE();
-
-    if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-    {
-      firstCol          = FT_GET_SHORT();
-      lastCol           = FT_GET_SHORT();
-      firstRow          = FT_GET_SHORT();
-      lastRow           = FT_GET_SHORT();
-      face->defaultChar = FT_GET_SHORT();
-    }
-    else
-    {
-      firstCol          = FT_GET_SHORT_LE();
-      lastCol           = FT_GET_SHORT_LE();
-      firstRow          = FT_GET_SHORT_LE();
-      lastRow           = FT_GET_SHORT_LE();
-      face->defaultChar = FT_GET_SHORT_LE();
-    }
-
-    FT_Stream_ExitFrame( stream );
-
-    if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT ) )
-      return PCF_Err_Invalid_File_Format;
-
-    FT_TRACE4(( "pdf_get_encodings:\n" ));
-
-    FT_TRACE4(( "  firstCol %d, lastCol %d, firstRow %d, lastRow %d\n",
-                firstCol, lastCol, firstRow, lastRow ));
-
-    nencoding = ( lastCol - firstCol + 1 ) * ( lastRow - firstRow + 1 );
-
-    if ( FT_NEW_ARRAY( tmpEncoding, nencoding ) )
-      return PCF_Err_Out_Of_Memory;
-
-    error = FT_Stream_EnterFrame( stream, 2 * nencoding );
-    if ( error )
-      goto Bail;
-
-    for ( i = 0, j = 0 ; i < nencoding; i++ )
-    {
-      if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-        encodingOffset = FT_GET_SHORT();
-      else
-        encodingOffset = FT_GET_SHORT_LE();
-
-      if ( encodingOffset != -1 )
-      {
-        tmpEncoding[j].enc = ( ( ( i / ( lastCol - firstCol + 1 ) ) +
-                                 firstRow ) * 256 ) +
-                               ( ( i % ( lastCol - firstCol + 1 ) ) +
-                                 firstCol );
-
-        tmpEncoding[j].glyph = (FT_Short)encodingOffset;
-
-        FT_TRACE4(( "  code %d (0x%04X): idx %d\n",
-                    tmpEncoding[j].enc, tmpEncoding[j].enc,
-                    tmpEncoding[j].glyph ));
-
-        j++;
-      }
-    }
-    FT_Stream_ExitFrame( stream );
-
-    if ( FT_NEW_ARRAY( encoding, j ) )
-      goto Bail;
-
-    for ( i = 0; i < j; i++ )
-    {
-      encoding[i].enc   = tmpEncoding[i].enc;
-      encoding[i].glyph = tmpEncoding[i].glyph;
-    }
-
-    face->nencodings = j;
-    face->encodings  = encoding;
-    FT_FREE( tmpEncoding );
-
-    return error;
-
-  Bail:
-    FT_FREE( encoding );
-    FT_FREE( tmpEncoding );
-    return error;
-  }
-
-
-  static
-  const FT_Frame_Field  pcf_accel_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_AccelRec
-
-    FT_FRAME_START( 20 ),
-      FT_FRAME_BYTE      ( noOverlap ),
-      FT_FRAME_BYTE      ( constantMetrics ),
-      FT_FRAME_BYTE      ( terminalFont ),
-      FT_FRAME_BYTE      ( constantWidth ),
-      FT_FRAME_BYTE      ( inkInside ),
-      FT_FRAME_BYTE      ( inkMetrics ),
-      FT_FRAME_BYTE      ( drawDirection ),
-      FT_FRAME_SKIP_BYTES( 1 ),
-      FT_FRAME_LONG_LE   ( fontAscent ),
-      FT_FRAME_LONG_LE   ( fontDescent ),
-      FT_FRAME_LONG_LE   ( maxOverlap ),
-    FT_FRAME_END
-  };
-
-
-  static
-  const FT_Frame_Field  pcf_accel_msb_header[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PCF_AccelRec
-
-    FT_FRAME_START( 20 ),
-      FT_FRAME_BYTE      ( noOverlap ),
-      FT_FRAME_BYTE      ( constantMetrics ),
-      FT_FRAME_BYTE      ( terminalFont ),
-      FT_FRAME_BYTE      ( constantWidth ),
-      FT_FRAME_BYTE      ( inkInside ),
-      FT_FRAME_BYTE      ( inkMetrics ),
-      FT_FRAME_BYTE      ( drawDirection ),
-      FT_FRAME_SKIP_BYTES( 1 ),
-      FT_FRAME_LONG      ( fontAscent ),
-      FT_FRAME_LONG      ( fontDescent ),
-      FT_FRAME_LONG      ( maxOverlap ),
-    FT_FRAME_END
-  };
-
-
-  static FT_Error
-  pcf_get_accel( FT_Stream  stream,
-                 PCF_Face   face,
-                 FT_ULong   type )
-  {
-    FT_ULong   format, size;
-    FT_Error   error = PCF_Err_Ok;
-    PCF_Accel  accel = &face->accel;
-
-
-    error = pcf_seek_to_table_type( stream,
-                                    face->toc.tables,
-                                    face->toc.count,
-                                    type,
-                                    &format,
-                                    &size );
-    if ( error )
-      goto Bail;
-
-    error = FT_READ_ULONG_LE( format );
-
-    if ( !PCF_FORMAT_MATCH( format, PCF_DEFAULT_FORMAT )    &&
-         !PCF_FORMAT_MATCH( format, PCF_ACCEL_W_INKBOUNDS ) )
-      goto Bail;
-
-    if ( PCF_BYTE_ORDER( format ) == MSBFirst )
-    {
-      if ( FT_STREAM_READ_FIELDS( pcf_accel_msb_header, accel ) )
-        goto Bail;
-    }
-    else
-    {
-      if ( FT_STREAM_READ_FIELDS( pcf_accel_header, accel ) )
-        goto Bail;
-    }
-
-    error = pcf_get_metric( stream,
-                            format & ( ~PCF_FORMAT_MASK ),
-                            &(accel->minbounds) );
-    if ( error )
-      goto Bail;
-
-    error = pcf_get_metric( stream,
-                            format & ( ~PCF_FORMAT_MASK ),
-                            &(accel->maxbounds) );
-    if ( error )
-      goto Bail;
-
-    if ( PCF_FORMAT_MATCH( format, PCF_ACCEL_W_INKBOUNDS ) )
-    {
-      error = pcf_get_metric( stream,
-                              format & ( ~PCF_FORMAT_MASK ),
-                              &(accel->ink_minbounds) );
-      if ( error )
-        goto Bail;
-
-      error = pcf_get_metric( stream,
-                              format & ( ~PCF_FORMAT_MASK ),
-                              &(accel->ink_maxbounds) );
-      if ( error )
-        goto Bail;
-    }
-    else
-    {
-      accel->ink_minbounds = accel->minbounds; /* I'm not sure about this */
-      accel->ink_maxbounds = accel->maxbounds;
-    }
-    return error;
-
-  Bail:
-    return error;
-  }
-
-
-  static FT_Error
-  pcf_interpret_style( PCF_Face  pcf )
-  {
-    FT_Error   error  = PCF_Err_Ok;
-    FT_Face    face   = FT_FACE( pcf );
-    FT_Memory  memory = face->memory;
-
-    PCF_Property  prop;
-
-    char  *istr = NULL, *bstr = NULL;
-    char  *sstr = NULL, *astr = NULL;
-
-    int  parts = 0, len = 0;
-
-
-    face->style_flags = 0;
-
-    prop = pcf_find_property( pcf, "SLANT" );
-    if ( prop && prop->isString                                       &&
-         ( *(prop->value.atom) == 'O' || *(prop->value.atom) == 'o' ||
-           *(prop->value.atom) == 'I' || *(prop->value.atom) == 'i' ) )
-    {
-      face->style_flags |= FT_STYLE_FLAG_ITALIC;
-      istr = ( *(prop->value.atom) == 'O' || *(prop->value.atom) == 'o' )
-               ? (char *)"Oblique"
-               : (char *)"Italic";
-      len += ft_strlen( istr );
-      parts++;
-    }
-
-    prop = pcf_find_property( pcf, "WEIGHT_NAME" );
-    if ( prop && prop->isString                                       &&
-         ( *(prop->value.atom) == 'B' || *(prop->value.atom) == 'b' ) )
-    {
-      face->style_flags |= FT_STYLE_FLAG_BOLD;
-      bstr = (char *)"Bold";
-      len += ft_strlen( bstr );
-      parts++;
-    }
-
-    prop = pcf_find_property( pcf, "SETWIDTH_NAME" );
-    if ( prop && prop->isString                                        &&
-         *(prop->value.atom)                                           &&
-         !( *(prop->value.atom) == 'N' || *(prop->value.atom) == 'n' ) )
-    {
-      sstr = (char *)(prop->value.atom);
-      len += ft_strlen( sstr );
-      parts++;
-    }
-
-    prop = pcf_find_property( pcf, "ADD_STYLE_NAME" );
-    if ( prop && prop->isString                                        &&
-         *(prop->value.atom)                                           &&
-         !( *(prop->value.atom) == 'N' || *(prop->value.atom) == 'n' ) )
-    {
-      astr = (char *)(prop->value.atom);
-      len += ft_strlen( astr );
-      parts++;
-    }
-
-    if ( !parts || !len )
-      face->style_name = (char *)"Regular";
-    else
-    {
-      char          *style, *s;
-      unsigned int  i;
-
-
-      if ( FT_ALLOC( style, len + parts ) )
-        return error;
-
-      s = style;
-
-      if ( astr )
-      {
-        ft_strcpy( s, astr );
-        for ( i = 0; i < ft_strlen( astr ); i++, s++ )
-          if ( *s == ' ' )
-            *s = '-';                     /* replace spaces with dashes */
-        *(s++) = ' ';
-      }
-      if ( bstr )
-      {
-        ft_strcpy( s, bstr );
-        s += ft_strlen( bstr );
-        *(s++) = ' ';
-      }
-      if ( istr )
-      {
-        ft_strcpy( s, istr );
-        s += ft_strlen( istr );
-        *(s++) = ' ';
-      }
-      if ( sstr )
-      {
-        ft_strcpy( s, sstr );
-        for ( i = 0; i < ft_strlen( sstr ); i++, s++ )
-          if ( *s == ' ' )
-            *s = '-';                     /* replace spaces with dashes */
-        *(s++) = ' ';
-      }
-      *(--s) = '\0';        /* overwrite last ' ', terminate the string */
-
-      face->style_name = style;                     /* allocated string */
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pcf_load_font( FT_Stream  stream,
-                 PCF_Face   face )
-  {
-    FT_Error   error  = PCF_Err_Ok;
-    FT_Memory  memory = FT_FACE(face)->memory;
-    FT_Bool    hasBDFAccelerators;
-
-
-    error = pcf_read_TOC( stream, face );
-    if ( error )
-      goto Exit;
-
-    error = pcf_get_properties( stream, face );
-    if ( error )
-      goto Exit;
-
-    /* Use the old accelerators if no BDF accelerators are in the file. */
-    hasBDFAccelerators = pcf_has_table_type( face->toc.tables,
-                                             face->toc.count,
-                                             PCF_BDF_ACCELERATORS );
-    if ( !hasBDFAccelerators )
-    {
-      error = pcf_get_accel( stream, face, PCF_ACCELERATORS );
-      if ( error )
-        goto Exit;
-    }
-
-    /* metrics */
-    error = pcf_get_metrics( stream, face );
-    if ( error )
-      goto Exit;
-
-    /* bitmaps */
-    error = pcf_get_bitmaps( stream, face );
-    if ( error )
-      goto Exit;
-
-    /* encodings */
-    error = pcf_get_encodings( stream, face );
-    if ( error )
-      goto Exit;
-
-    /* BDF style accelerators (i.e. bounds based on encoded glyphs) */
-    if ( hasBDFAccelerators )
-    {
-      error = pcf_get_accel( stream, face, PCF_BDF_ACCELERATORS );
-      if ( error )
-        goto Exit;
-    }
-
-    /* XXX: TO DO: inkmetrics and glyph_names are missing */
-
-    /* now construct the face object */
-    {
-      FT_Face       root = FT_FACE( face );
-      PCF_Property  prop;
-
-
-      root->num_faces  = 1;
-      root->face_index = 0;
-      root->face_flags = FT_FACE_FLAG_FIXED_SIZES |
-                         FT_FACE_FLAG_HORIZONTAL  |
-                         FT_FACE_FLAG_FAST_GLYPHS;
-
-      if ( face->accel.constantWidth )
-        root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      if ( ( error = pcf_interpret_style( face ) ) != 0 )
-         goto Exit;
-
-      prop = pcf_find_property( face, "FAMILY_NAME" );
-      if ( prop && prop->isString )
-      {
-        int  l = ft_strlen( prop->value.atom ) + 1;
-
-
-        if ( FT_NEW_ARRAY( root->family_name, l ) )
-          goto Exit;
-        ft_strcpy( root->family_name, prop->value.atom );
-      }
-      else
-        root->family_name = NULL;
-
-      /* Note: We shift all glyph indices by +1 since we must
-       * respect the convention that glyph 0 always corresponds
-       * to the "missing glyph".
-       *
-       * This implies bumping the number of "available" glyphs by 1.
-       */
-      root->num_glyphs = face->nmetrics + 1;
-
-      root->num_fixed_sizes = 1;
-      if ( FT_NEW_ARRAY( root->available_sizes, 1 ) )
-        goto Exit;
-
-      {
-        FT_Bitmap_Size*  bsize = root->available_sizes;
-        FT_Short         resolution_x = 0, resolution_y = 0;
-
-
-        FT_MEM_ZERO( bsize, sizeof ( FT_Bitmap_Size ) );
-
-        bsize->height = face->accel.fontAscent + face->accel.fontDescent;
-
-        prop = pcf_find_property( face, "AVERAGE_WIDTH" );
-        if ( prop )
-          bsize->width = (FT_Short)( ( prop->value.integer + 5 ) / 10 );
-        else
-          bsize->width = bsize->height * 2/3;
-
-        prop = pcf_find_property( face, "POINT_SIZE" );
-        if ( prop )
-          /* convert from 722.7 decipoints to 72 points per inch */
-          bsize->size =
-            (FT_Pos)( ( prop->value.integer * 64 * 7200 + 36135L ) / 72270L );
-
-        prop = pcf_find_property( face, "PIXEL_SIZE" );
-        if ( prop )
-          bsize->y_ppem = (FT_Short)prop->value.integer << 6;
-
-        prop = pcf_find_property( face, "RESOLUTION_X" );
-        if ( prop )
-          resolution_x = (FT_Short)prop->value.integer;
-
-        prop = pcf_find_property( face, "RESOLUTION_Y" );
-        if ( prop )
-          resolution_y = (FT_Short)prop->value.integer;
-
-        if ( bsize->y_ppem == 0 )
-        {
-          bsize->y_ppem = bsize->size;
-          if ( resolution_y )
-            bsize->y_ppem = bsize->y_ppem * resolution_y / 72;
-        }
-        if ( resolution_x && resolution_y )
-          bsize->x_ppem = bsize->y_ppem * resolution_x / resolution_y;
-        else
-          bsize->x_ppem = bsize->y_ppem;
-      }
-
-      /* set up charset */
-      {
-        PCF_Property  charset_registry = 0, charset_encoding = 0;
-
-
-        charset_registry = pcf_find_property( face, "CHARSET_REGISTRY" );
-        charset_encoding = pcf_find_property( face, "CHARSET_ENCODING" );
-
-        if ( charset_registry && charset_registry->isString &&
-             charset_encoding && charset_encoding->isString )
-        {
-          if ( FT_NEW_ARRAY( face->charset_encoding,
-                             ft_strlen( charset_encoding->value.atom ) + 1 ) )
-            goto Exit;
-
-          if ( FT_NEW_ARRAY( face->charset_registry,
-                             ft_strlen( charset_registry->value.atom ) + 1 ) )
-            goto Exit;
-
-          ft_strcpy( face->charset_registry, charset_registry->value.atom );
-          ft_strcpy( face->charset_encoding, charset_encoding->value.atom );
-        }
-      }
-    }
-
-  Exit:
-    if ( error )
-    {
-      /* this is done to respect the behaviour of the original */
-      /* PCF font driver.                                      */
-      error = PCF_Err_Invalid_File_Format;
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcfread.h b/nx-X11/extras/freetype2/src/pcf/pcfread.h
deleted file mode 100644
index c9524f134..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcfread.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*  pcfread.h
-
-    FreeType font driver for pcf fonts
-
-  Copyright 2003 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#ifndef __PCFREAD_H__
-#define __PCFREAD_H__
-
-
-#include <ft2build.h>
-
-FT_BEGIN_HEADER
-
-  FT_LOCAL( PCF_Property )
-  pcf_find_property( PCF_Face          face,
-                     const FT_String*  prop );
-
-FT_END_HEADER
-
-#endif /* __PCFREAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcfutil.c b/nx-X11/extras/freetype2/src/pcf/pcfutil.c
deleted file mode 100644
index 8fcf23df0..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcfutil.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
-
-Copyright 1990, 1994, 1998  The Open Group
-
-All Rights Reserved.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
-CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
-
-*/
-/* $XFree86: xc/lib/font/util/utilbitmap.c,v 1.3 1999/08/22 08:58:58 dawes Exp $ */
-
-/*
- * Author:  Keith Packard, MIT X Consortium
- */
-
-/* Modified for use with FreeType */
-
-
-#include <ft2build.h>
-#include "pcfutil.h"
-
-
-  /* Utility functions for reformatting font bitmaps */
-
-  static const unsigned char  _reverse_byte[0x100] =
-  {
-    0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
-    0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
-    0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
-    0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
-    0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
-    0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
-    0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
-    0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
-    0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
-    0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
-    0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
-    0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
-    0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
-    0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
-    0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
-    0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
-    0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
-    0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
-    0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
-    0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
-    0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
-    0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
-    0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
-    0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
-    0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
-    0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
-    0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
-    0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
-    0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
-    0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
-    0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
-    0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
-  };
-
-  /*
-   *  Invert bit order within each BYTE of an array.
-   */
-
-  FT_LOCAL_DEF( void )
-  BitOrderInvert( unsigned char*  buf,
-                  int             nbytes )
-  {
-    const unsigned char*  rev = _reverse_byte;
-
-
-    for ( ; --nbytes >= 0; buf++ )
-      *buf = rev[*buf];
-  }
-
-
-  /*
-   *  Invert byte order within each 16-bits of an array.
-   */
-
-  FT_LOCAL_DEF( void )
-  TwoByteSwap( unsigned char*  buf,
-               int             nbytes )
-  {
-    unsigned char  c;
-
-
-    for ( ; nbytes > 0; nbytes -= 2, buf += 2 )
-    {
-      c      = buf[0];
-      buf[0] = buf[1];
-      buf[1] = c;
-    }
-  }
-
-  /*
-   *  Invert byte order within each 32-bits of an array.
-   */
-
-  FT_LOCAL_DEF( void )
-  FourByteSwap( unsigned char*  buf,
-                int             nbytes )
-  {
-    unsigned char  c;
-
-
-    for ( ; nbytes > 0; nbytes -= 4, buf += 4 )
-    {
-      c      = buf[0];
-      buf[0] = buf[3];
-      buf[3] = c;
-
-      c      = buf[1];
-      buf[1] = buf[2];
-      buf[2] = c;
-    }
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/pcfutil.h b/nx-X11/extras/freetype2/src/pcf/pcfutil.h
deleted file mode 100644
index 1557be3e8..000000000
--- a/nx-X11/extras/freetype2/src/pcf/pcfutil.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*  pcfutil.h
-
-    FreeType font driver for pcf fonts
-
-  Copyright 2000, 2001, 2004 by
-  Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-
-#ifndef __PCFUTIL_H__
-#define __PCFUTIL_H__
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-
-
-FT_BEGIN_HEADER
-
-  FT_LOCAL( void )
-  BitOrderInvert( unsigned char*  buf,
-                  int             nbytes );
-
-  FT_LOCAL( void )
-  TwoByteSwap( unsigned char*  buf,
-               int             nbytes );
-
-  FT_LOCAL( void )
-  FourByteSwap( unsigned char*  buf,
-                int             nbytes );
-
-FT_END_HEADER
-
-#endif /* __PCFUTIL_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pcf/readme b/nx-X11/extras/freetype2/src/pcf/readme
deleted file mode 100644
index 75f49e142..000000000
--- a/nx-X11/extras/freetype2/src/pcf/readme
+++ /dev/null
@@ -1,114 +0,0 @@
-                  FreeType font driver for PCF fonts
-
-                       Francesco Zappa Nardelli
-                  <francesco.zappa.nardelli@ens.fr>
-
-
-Introduction
-************
-
-PCF (Portable Compiled Format) is a binary bitmap font format, largely used
-in X world. This code implements a PCF driver for the FreeType library.
-Glyph images are loaded into memory only on demand, thus leading to a small
-memory footprint.
-
-Informations on the PCF font format can only be worked out from
-``pcfread.c'', and ``pcfwrite.c'', to be found, for instance, in the XFree86
-(www.xfree86.org) source tree (xc/lib/font/bitmap/).
-
-Many good bitmap fonts in bdf format come with XFree86: they can be
-compiled into the pcf format using the ``bdftopcf'' utility.
-
-
-Supported hardware
-******************
-
-The driver has been tested on linux/x86 and sunos5.5/sparc.  In both
-cases the compiler was gcc.  When back in Paris, I will test it also
-on linux/alpha.
-
-
-Encodings
-*********
-
-The variety of encodings that accompanies pcf fonts appears to encompass the
-small set defined in freetype.h.  On the other hand, each pcf font defines
-two properties that specify encoding and registry.
-
-I decided to make these two properties directly accessible, leaving to the
-client application the work of interpreting them.  For instance:
-
-  #include "pcftypes.h"  /* include/freetype/internal/pcftypes.h */
-
-  FT_Face     face;
-  PCF_Public_Face  pcfface;
-
-  FT_New_Face( library,..., &face );
-
-  pcfface = (PCF_Public_Face)face;
-  
-  if ((pcfface->charset_registry == "ISO10646") && 
-        (pcfface->charset_encoding) == "1")) [..]
-
-Thus the driver always export ``ft_encoding_none'' as
-face->charmap.encoding.  FT_Get_Char_Index() behavior is unmodified, that
-is, it converts the ULong value given as argument into the corresponding
-glyph number.
-
-
-Known problems
-**************
-
-- dealing explicitly with encodings breaks the uniformity of freetype2
-  api.
-
-- except for encodings properties, client applications have no
-  visibility of the PCF_Face object.  This means that applications
-  cannot directly access font tables and are obliged to trust
-  FreeType.
-
-- currently, glyph names and ink_metrics are ignored.
-
-I plan to give full visibility of the PCF_Face object in the next
-release of the driver, thus implementing also glyph names and
-ink_metrics.
-
-- height is defined as (ascent - descent).  Is this correct?
-
-- if unable to read size informations from the font, PCF_Init_Face
-  sets available_size->width and available_size->height to 12.
-
-- too many english grammar errors in the readme file :-(
-
-
-License
-*******
-
-Copyright (C) 2000 by Francesco Zappa Nardelli
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-Credits
-*******
-
-Keith Packard wrote the pcf driver found in XFree86.  His work is at
-the same time the specification and the sample implementation of the
-PCF format.  Undoubtedly, this driver is inspired from his work.
diff --git a/nx-X11/extras/freetype2/src/pcf/rules.mk b/nx-X11/extras/freetype2/src/pcf/rules.mk
deleted file mode 100644
index 1ad4ba897..000000000
--- a/nx-X11/extras/freetype2/src/pcf/rules.mk
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# FreeType 2 pcf driver configuration rules
-#
-
-
-# Copyright (C) 2000, 2001, 2003 by
-# Francesco Zappa Nardelli
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-
-# pcf driver directory
-#
-PCF_DIR := $(SRC_DIR)/pcf
-
-
-PCF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PCF_DIR))
-
-
-# pcf driver sources (i.e., C files)
-#
-PCF_DRV_SRC := $(PCF_DIR)/pcfread.c  \
-               $(PCF_DIR)/pcfdrivr.c \
-               $(PCF_DIR)/pcfutil.c
-
-# pcf driver headers
-#
-PCF_DRV_H := $(PCF_DIR)/pcf.h      \
-             $(PCF_DIR)/pcfdrivr.h \
-             $(PCF_DIR)/pcfutil.h  \
-             $(PCF_DIR)/pcferror.h
-
-# pcf driver object(s)
-#
-#   PCF_DRV_OBJ_M is used during `multi' builds
-#   PCF_DRV_OBJ_S is used during `single' builds
-#
-PCF_DRV_OBJ_M := $(PCF_DRV_SRC:$(PCF_DIR)/%.c=$(OBJ_DIR)/%.$O)
-PCF_DRV_OBJ_S := $(OBJ_DIR)/pcf.$O
-
-# pcf driver source file for single build
-#
-PCF_DRV_SRC_S := $(PCF_DIR)/pcf.c
-
-
-# pcf driver - single object
-#
-$(PCF_DRV_OBJ_S): $(PCF_DRV_SRC_S) $(PCF_DRV_SRC) $(FREETYPE_H) $(PCF_DRV_H)
-	$(PCF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(PCF_DRV_SRC_S))
-
-
-# pcf driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(PCF_DIR)/%.c $(FREETYPE_H) $(PCF_DRV_H)
-	$(PCF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(PCF_DRV_OBJ_S)
-DRV_OBJS_M += $(PCF_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pfr/Jamfile b/nx-X11/extras/freetype2/src/pfr/Jamfile
deleted file mode 100644
index 4c38a2de9..000000000
--- a/nx-X11/extras/freetype2/src/pfr/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/pfr Jamfile (c) 2002 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) pfr ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = pfrdrivr pfrgload pfrload pfrobjs pfrcmap pfrsbit ;
-  }
-  else
-  {
-    _sources = pfr ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/pfr Jamfile
diff --git a/nx-X11/extras/freetype2/src/pfr/descrip.mms b/nx-X11/extras/freetype2/src/pfr/descrip.mms
deleted file mode 100644
index 75178d0ef..000000000
--- a/nx-X11/extras/freetype2/src/pfr/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 PFR driver compilation rules for VMS
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.pfr])
-
-OBJS=pfr.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pfr/module.mk b/nx-X11/extras/freetype2/src/pfr/module.mk
deleted file mode 100644
index 3da0d5a3c..000000000
--- a/nx-X11/extras/freetype2/src/pfr/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 PFR module definition
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_pfr_driver
-
-add_pfr_driver:
-	$(OPEN_DRIVER)pfr_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)pfr       $(ECHO_DRIVER_DESC)PFR/TrueDoc font files with extension *.pfr$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pfr/pfr.c b/nx-X11/extras/freetype2/src/pfr/pfr.c
deleted file mode 100644
index eb2c4edb7..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfr.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfr.c                                                                  */
-/*                                                                         */
-/*    FreeType PFR driver component.                                       */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-
-#include "pfrload.c"
-#include "pfrgload.c"
-#include "pfrcmap.c"
-#include "pfrobjs.c"
-#include "pfrdrivr.c"
-#include "pfrsbit.c"
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrcmap.c b/nx-X11/extras/freetype2/src/pfr/pfrcmap.c
deleted file mode 100644
index de6c5a07c..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrcmap.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrcmap.c                                                              */
-/*                                                                         */
-/*    FreeType PFR cmap handling (body).                                   */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "pfrcmap.h" 
-#include "pfrobjs.h"
-#include FT_INTERNAL_DEBUG_H
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_cmap_init( PFR_CMap  cmap )
-  {
-    PFR_Face  face = (PFR_Face)FT_CMAP_FACE( cmap );
-
-
-    cmap->num_chars = face->phy_font.num_chars;
-    cmap->chars     = face->phy_font.chars;
-    
-    /* just for safety, check that the character entries are correctly */
-    /* sorted in increasing character code order                       */
-    {
-      FT_UInt  n;
-      
-
-      for ( n = 1; n < cmap->num_chars; n++ )
-      {
-        if ( cmap->chars[n - 1].char_code >= cmap->chars[n].char_code )
-          FT_ASSERT( 0 );
-      }
-    }
-    
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  pfr_cmap_done( PFR_CMap  cmap )
-  {
-    cmap->chars     = NULL;
-    cmap->num_chars = 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  pfr_cmap_char_index( PFR_CMap   cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_UInt   min = 0;
-    FT_UInt   max = cmap->num_chars;
-    FT_UInt   mid;
-    PFR_Char  gchar;
-
-
-    while ( min < max )
-    {
-      mid   = min + ( max - min ) / 2;
-      gchar = cmap->chars + mid;
-
-      if ( gchar->char_code == char_code )
-        return mid + 1;
-
-      if ( gchar->char_code < char_code )
-        min = mid + 1;
-      else
-        max = mid;
-    }
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  pfr_cmap_char_next( PFR_CMap    cmap,
-                      FT_UInt32  *pchar_code )
-  {
-    FT_UInt    result    = 0;
-    FT_UInt32  char_code = *pchar_code + 1;
-
-
-  Restart:
-    {
-      FT_UInt   min = 0;
-      FT_UInt   max = cmap->num_chars;
-      FT_UInt   mid;
-      PFR_Char  gchar;
-
-
-      while ( min < max )
-      {
-        mid   = min + ( ( max - min ) >> 1 );
-        gchar = cmap->chars + mid;
-
-        if ( gchar->char_code == char_code )
-        {
-          result = mid;
-          if ( result != 0 )
-          {
-            result++;
-            goto Exit;
-          }
-
-          char_code++;
-          goto Restart;
-        }
-
-        if ( gchar->char_code < char_code )
-          min = mid+1;
-        else
-          max = mid;
-      }
-
-      /* we didn't find it, but we have a pair just above it */
-      char_code = 0;
-
-      if ( min < cmap->num_chars )
-      {
-        gchar  = cmap->chars + min;
-        result = min;
-        if ( result != 0 )
-        {
-          result++;
-          char_code = gchar->char_code;
-        }
-      }
-    }
-
-  Exit:
-    *pchar_code = char_code;
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  pfr_cmap_class_rec =
-  {
-    sizeof ( PFR_CMapRec ),
-
-    (FT_CMap_InitFunc)     pfr_cmap_init,
-    (FT_CMap_DoneFunc)     pfr_cmap_done,
-    (FT_CMap_CharIndexFunc)pfr_cmap_char_index,
-    (FT_CMap_CharNextFunc) pfr_cmap_char_next
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrcmap.h b/nx-X11/extras/freetype2/src/pfr/pfrcmap.h
deleted file mode 100644
index d77813e3c..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrcmap.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrcmap.h                                                              */
-/*                                                                         */
-/*    FreeType PFR cmap handling (specification).                          */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFRCMAP_H__
-#define __PFRCMAP_H__
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include "pfrtypes.h"
-
-
-FT_BEGIN_HEADER
-
-  typedef struct  PFR_CMapRec_
-  {
-    FT_CMapRec  cmap;
-    FT_UInt     num_chars;
-    PFR_Char    chars;
-  
-  } PFR_CMapRec, *PFR_CMap;
-
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec  pfr_cmap_class_rec;
-
-FT_END_HEADER
-
-
-#endif /* __PFRCMAP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrdrivr.c b/nx-X11/extras/freetype2/src/pfr/pfrdrivr.c
deleted file mode 100644
index 55752a5f4..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrdrivr.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrdrivr.c                                                             */
-/*                                                                         */
-/*    FreeType PFR driver interface (body).                                */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_SERVICE_PFR_H
-#include FT_SERVICE_XFREE86_NAME_H
-#include "pfrdrivr.h"
-#include "pfrobjs.h"
-
-#include "pfrerror.h"
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_get_kerning( FT_Face     pfrface,     /* PFR_Face */
-                   FT_UInt     left,
-                   FT_UInt     right,
-                   FT_Vector  *avector )
-  {
-    PFR_Face     face = (PFR_Face)pfrface;
-    PFR_PhyFont  phys = &face->phy_font;
-
-
-    pfr_face_get_kerning( pfrface, left, right, avector );
-
-    /* convert from metrics to outline units when necessary */
-    if ( phys->outline_resolution != phys->metrics_resolution )
-    {
-      if ( avector->x != 0 )
-        avector->x = FT_MulDiv( avector->x, phys->outline_resolution,
-                                            phys->metrics_resolution );
-
-      if ( avector->y != 0 )
-        avector->y = FT_MulDiv( avector->x, phys->outline_resolution,
-                                            phys->metrics_resolution );
-    }
-
-    return PFR_Err_Ok;
-  }
-
-
- /*
-  *  PFR METRICS SERVICE
-  *
-  */
-
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_get_advance( FT_Face   pfrface,       /* PFR_Face */
-                   FT_UInt   gindex,
-                   FT_Pos   *anadvance )
-  {
-    PFR_Face  face  = (PFR_Face)pfrface;
-    FT_Error  error = PFR_Err_Bad_Argument;
-
-
-    *anadvance = 0;
-    if ( face )
-    {
-      PFR_PhyFont  phys = &face->phy_font;
-
-
-      if ( gindex < phys->num_chars )
-      {
-        *anadvance = phys->chars[gindex].advance;
-        error = 0;
-      }
-    }
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_get_metrics( FT_Face    pfrface,      /* PFR_Face */
-                   FT_UInt   *anoutline_resolution,
-                   FT_UInt   *ametrics_resolution,
-                   FT_Fixed  *ametrics_x_scale,
-                   FT_Fixed  *ametrics_y_scale )
-  {
-    PFR_Face     face = (PFR_Face)pfrface;
-    PFR_PhyFont  phys = &face->phy_font;
-    FT_Fixed     x_scale, y_scale;
-    FT_Size      size = face->root.size;
-
-
-    if ( anoutline_resolution )
-      *anoutline_resolution = phys->outline_resolution;
-
-    if ( ametrics_resolution )
-      *ametrics_resolution = phys->metrics_resolution;
-
-    x_scale = 0x10000L;
-    y_scale = 0x10000L;
-
-    if ( size )
-    {
-      x_scale = FT_DivFix( size->metrics.x_ppem << 6,
-                           phys->metrics_resolution );
-
-      y_scale = FT_DivFix( size->metrics.y_ppem << 6,
-                           phys->metrics_resolution );
-    }
-
-    if ( ametrics_x_scale )
-      *ametrics_x_scale = x_scale;
-
-    if ( ametrics_y_scale )
-      *ametrics_y_scale = y_scale;
-
-    return PFR_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Service_PfrMetricsRec  pfr_metrics_service_rec =
-  {
-    pfr_get_metrics,
-    pfr_face_get_kerning,
-    pfr_get_advance
-  };
-
-
- /*
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  pfr_services[] =
-  {
-    { FT_SERVICE_ID_PFR_METRICS, &pfr_metrics_service_rec },
-    { FT_SERVICE_ID_XF86_NAME,   FT_XF86_FORMAT_PFR },
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  pfr_get_service( FT_Module         module,
-                   const FT_String*  service_id )
-  {
-    FT_UNUSED( module );
-
-    return ft_service_list_lookup( pfr_services, service_id );
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  pfr_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER     |
-      FT_MODULE_DRIVER_SCALABLE,
-
-      sizeof( FT_DriverRec ),
-
-      "pfr",
-      0x10000L,
-      0x20000L,
-
-      NULL,
-
-      0,
-      0,
-      pfr_get_service
-    },
-
-    sizeof( PFR_FaceRec ),
-    sizeof( PFR_SizeRec ),
-    sizeof( PFR_SlotRec ),
-
-    pfr_face_init,
-    pfr_face_done,
-    0,                  /* FT_Size_InitFunc */
-    0,                  /* FT_Size_DoneFunc */
-    pfr_slot_init,
-    pfr_slot_done,
-
-    0,                  /* FT_Size_ResetPointsFunc */
-    0,                  /* FT_Size_ResetPixelsFunc */
-    pfr_slot_load,
-
-    pfr_get_kerning,
-    0,                  /* FT_Face_AttachFunc      */
-    0                   /* FT_Face_GetAdvancesFunc */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrdrivr.h b/nx-X11/extras/freetype2/src/pfr/pfrdrivr.h
deleted file mode 100644
index 36f1205b7..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrdrivr.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrdrivr.h                                                             */
-/*                                                                         */
-/*    High-level Type PFR driver interface (specification).                */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFRDRIVR_H__
-#define __PFRDRIVR_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  pfr_driver_class;
-
-
-FT_END_HEADER
-
-
-#endif /* __PFRDRIVR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrerror.h b/nx-X11/extras/freetype2/src/pfr/pfrerror.h
deleted file mode 100644
index 2e1c401dd..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrerror.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrerror.h                                                             */
-/*                                                                         */
-/*    PFR error codes (specification only).                                */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the PFR error enumeration constants.      */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __PFRERROR_H__
-#define __PFRERROR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  PFR_Err_
-#define FT_ERR_BASE    FT_Mod_Err_PFR
-
-#include FT_ERRORS_H
-
-#endif /* __PFRERROR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrgload.c b/nx-X11/extras/freetype2/src/pfr/pfrgload.c
deleted file mode 100644
index 87ba6846e..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrgload.c
+++ /dev/null
@@ -1,801 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrgload.c                                                             */
-/*                                                                         */
-/*    FreeType PFR glyph loader (body).                                    */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "pfrgload.h"
-#include "pfrsbit.h"
-#include "pfrload.h"            /* for macro definitions */
-#include FT_INTERNAL_DEBUG_H
-
-#include "pfrerror.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pfr
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      PFR GLYPH BUILDER                        *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( void )
-  pfr_glyph_init( PFR_Glyph       glyph,
-                  FT_GlyphLoader  loader )
-  {
-    FT_ZERO( glyph );
-
-    glyph->loader     = loader;
-    glyph->path_begun = 0;
-
-    FT_GlyphLoader_Rewind( loader );
-  }
-
-
-  FT_LOCAL_DEF( void )
-  pfr_glyph_done( PFR_Glyph  glyph )
-  {
-    FT_Memory  memory = glyph->loader->memory;
-
-
-    FT_FREE( glyph->x_control );
-    glyph->y_control = NULL;
-
-    glyph->max_xy_control = 0;
-    glyph->num_x_control  = 0;
-    glyph->num_y_control  = 0;
-
-    FT_FREE( glyph->subs );
-
-    glyph->max_subs = 0;
-    glyph->num_subs = 0;
-
-    glyph->loader     = NULL;
-    glyph->path_begun = 0;
-  }
-
-
-  /* close current contour, if any */
-  static void
-  pfr_glyph_close_contour( PFR_Glyph  glyph )
-  {
-    FT_GlyphLoader  loader  = glyph->loader;
-    FT_Outline*     outline = &loader->current.outline;
-    FT_Int          last, first;
-
-
-    if ( !glyph->path_begun )
-      return;
-
-    /* compute first and last point indices in current glyph outline */
-    last  = outline->n_points - 1;
-    first = 0;
-    if ( outline->n_contours > 0 )
-      first = outline->contours[outline->n_contours - 1];
-
-    /* if the last point falls on the same location than the first one */
-    /* we need to delete it                                            */
-    if ( last > first )
-    {
-      FT_Vector*  p1 = outline->points + first;
-      FT_Vector*  p2 = outline->points + last;
-
-
-      if ( p1->x == p2->x && p1->y == p2->y )
-      {
-        outline->n_points--;
-        last--;
-      }
-    }
-
-    /* don't add empty contours */
-    if ( last >= first )
-      outline->contours[outline->n_contours++] = (short)last;
-
-    glyph->path_begun = 0;
-  }
-
-
-  /* reset glyph to start the loading of a new glyph */
-  static void
-  pfr_glyph_start( PFR_Glyph  glyph )
-  {
-    glyph->path_begun = 0;
-  }
-
-
-  static FT_Error
-  pfr_glyph_line_to( PFR_Glyph   glyph,
-                     FT_Vector*  to )
-  {
-    FT_GlyphLoader  loader  = glyph->loader;
-    FT_Outline*     outline = &loader->current.outline;
-    FT_Error        error;
-
-
-    /* check that we have begun a new path */
-    FT_ASSERT( glyph->path_begun != 0 );
-
-    error = FT_GlyphLoader_CheckPoints( loader, 1, 0 );
-    if ( !error )
-    {
-      FT_UInt  n = outline->n_points;
-
-
-      outline->points[n] = *to;
-      outline->tags  [n] = FT_CURVE_TAG_ON;
-
-      outline->n_points++;
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  pfr_glyph_curve_to( PFR_Glyph   glyph,
-                      FT_Vector*  control1,
-                      FT_Vector*  control2,
-                      FT_Vector*  to )
-  {
-    FT_GlyphLoader  loader  = glyph->loader;
-    FT_Outline*     outline = &loader->current.outline;
-    FT_Error        error;
-
-
-    /* check that we have begun a new path */
-    FT_ASSERT( glyph->path_begun != 0 );
-
-    error = FT_GlyphLoader_CheckPoints( loader, 3, 0 );
-    if ( !error )
-    {
-      FT_Vector*  vec = outline->points         + outline->n_points;
-      FT_Byte*    tag = (FT_Byte*)outline->tags + outline->n_points;
-
-
-      vec[0] = *control1;
-      vec[1] = *control2;
-      vec[2] = *to;
-      tag[0] = FT_CURVE_TAG_CUBIC;
-      tag[1] = FT_CURVE_TAG_CUBIC;
-      tag[2] = FT_CURVE_TAG_ON;
-
-      outline->n_points = (FT_Short)( outline->n_points + 3 );
-    }
-
-    return error;
-  }
-
-
-  static FT_Error
-  pfr_glyph_move_to( PFR_Glyph   glyph,
-                     FT_Vector*  to )
-  {
-    FT_GlyphLoader  loader  = glyph->loader;
-    FT_Error        error;
-
-
-    /* close current contour if any */
-    pfr_glyph_close_contour( glyph );
-
-    /* indicate that a new contour has started */
-    glyph->path_begun = 1;
-
-    /* check that there is space for a new contour and a new point */
-    error = FT_GlyphLoader_CheckPoints( loader, 1, 1 );
-    if ( !error )
-      /* add new start point */
-      error = pfr_glyph_line_to( glyph, to );
-
-    return error;
-  }
-
-
-  static void
-  pfr_glyph_end( PFR_Glyph  glyph )
-  {
-    /* close current contour if any */
-    pfr_glyph_close_contour( glyph );
-
-    /* merge the current glyph into the stack */
-    FT_GlyphLoader_Add( glyph->loader );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      PFR GLYPH LOADER                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* load a simple glyph */
-  static FT_Error
-  pfr_glyph_load_simple( PFR_Glyph  glyph,
-                         FT_Byte*   p,
-                         FT_Byte*   limit )
-  {
-    FT_Error   error  = 0;
-    FT_Memory  memory = glyph->loader->memory;
-    FT_UInt    flags, x_count, y_count, i, count, mask;
-    FT_Int     x;
-
-
-    PFR_CHECK( 1 );
-    flags = PFR_NEXT_BYTE( p );
-
-    /* test for composite glyphs */
-    FT_ASSERT( ( flags & PFR_GLYPH_IS_COMPOUND ) == 0 );
-
-    x_count = 0;
-    y_count = 0;
-
-    if ( flags & PFR_GLYPH_1BYTE_XYCOUNT )
-    {
-      PFR_CHECK( 1 );
-      count   = PFR_NEXT_BYTE( p );
-      x_count = ( count & 15 );
-      y_count = ( count >> 4 );
-    }
-    else
-    {
-      if ( flags & PFR_GLYPH_XCOUNT )
-      {
-        PFR_CHECK( 1 );
-        x_count = PFR_NEXT_BYTE( p );
-      }
-
-      if ( flags & PFR_GLYPH_YCOUNT )
-      {
-        PFR_CHECK( 1 );
-        y_count = PFR_NEXT_BYTE( p );
-      }
-    }
-
-    count = x_count + y_count;
-
-    /* re-allocate array when necessary */
-    if ( count > glyph->max_xy_control )
-    {
-      FT_UInt  new_max = FT_PAD_CEIL( count, 8 );
-
-
-      if ( FT_RENEW_ARRAY( glyph->x_control,
-                           glyph->max_xy_control,
-                           new_max ) )
-        goto Exit;
-
-      glyph->max_xy_control = new_max;
-    }
-
-    glyph->y_control = glyph->x_control + x_count;
-
-    mask  = 0;
-    x     = 0;
-
-    for ( i = 0; i < count; i++ )
-    {
-      if ( ( i & 7 ) == 0 )
-      {
-        PFR_CHECK( 1 );
-        mask = PFR_NEXT_BYTE( p );
-      }
-
-      if ( mask & 1 )
-      {
-        PFR_CHECK( 2 );
-        x = PFR_NEXT_SHORT( p );
-      }
-      else
-      {
-        PFR_CHECK( 1 );
-        x += PFR_NEXT_BYTE( p );
-      }
-
-      glyph->x_control[i] = x;
-
-      mask >>= 1;
-    }
-
-    /* XXX: for now we ignore the secondary stroke and edge definitions */
-    /*      since we don't want to support native PFR hinting           */
-    /*                                                                  */
-    if ( flags & PFR_GLYPH_EXTRA_ITEMS )
-    {
-      error = pfr_extra_items_skip( &p, limit );
-      if ( error )
-        goto Exit;
-    }
-
-    pfr_glyph_start( glyph );
-
-    /* now load a simple glyph */
-    {
-      FT_Vector   pos[4];
-      FT_Vector*  cur;
-
-
-      pos[0].x = pos[0].y = 0;
-      pos[3]   = pos[0];
-
-      for (;;)
-      {
-        FT_Int  format, args_format = 0, args_count, n;
-
-
-        /***************************************************************/
-        /*  read instruction                                           */
-        /*                                                             */
-        PFR_CHECK( 1 );
-        format = PFR_NEXT_BYTE( p );
-
-        switch ( format >> 4 )
-        {
-        case 0:                             /* end glyph */
-          FT_TRACE6(( "- end glyph" ));
-          args_count = 0;
-          break;
-
-        case 1:                             /* general line operation */
-          FT_TRACE6(( "- general line" ));
-          goto Line1;
-
-        case 4:                             /* move to inside contour  */
-          FT_TRACE6(( "- move to inside" ));
-          goto Line1;
-
-        case 5:                             /* move to outside contour */
-          FT_TRACE6(( "- move to outside" ));
-        Line1:
-          args_format = format & 15;
-          args_count  = 1;
-          break;
-
-        case 2:                             /* horizontal line to */
-          FT_TRACE6(( "- horizontal line to cx.%d", format & 15 ));
-          pos[0].y   = pos[3].y;
-          pos[0].x   = glyph->x_control[format & 15];
-          pos[3]     = pos[0];
-          args_count = 0;
-          break;
-
-        case 3:                             /* vertical line to */
-          FT_TRACE6(( "- vertical line to cy.%d", format & 15 ));
-          pos[0].x   = pos[3].x;
-          pos[0].y   = glyph->y_control[format & 15];
-          pos[3] = pos[0];
-          args_count = 0;
-          break;
-
-        case 6:                             /* horizontal to vertical curve */
-          FT_TRACE6(( "- hv curve " ));
-          args_format  = 0xB8E;
-          args_count   = 3;
-          break;
-
-        case 7:                             /* vertical to horizontal curve */
-          FT_TRACE6(( "- vh curve" ));
-          args_format = 0xE2B;
-          args_count  = 3;
-          break;
-
-        default:                            /* general curve to */
-          FT_TRACE6(( "- general curve" ));
-          args_count  = 4;
-          args_format = format & 15;
-        }
-
-        /***********************************************************/
-        /*  now read arguments                                     */
-        /*                                                         */
-        cur = pos;
-        for ( n = 0; n < args_count; n++ )
-        {
-          FT_Int  idx, delta;
-
-
-          /* read the X argument */
-          switch ( args_format & 3 )
-          {
-          case 0:                           /* 8-bit index */
-            PFR_CHECK( 1 );
-            idx  = PFR_NEXT_BYTE( p );
-            cur->x = glyph->x_control[idx];
-            FT_TRACE7(( " cx#%d", idx ));
-            break;
-
-          case 1:                           /* 16-bit value */
-            PFR_CHECK( 2 );
-            cur->x = PFR_NEXT_SHORT( p );
-            FT_TRACE7(( " x.%d", cur->x ));
-            break;
-
-          case 2:                           /* 8-bit delta */
-            PFR_CHECK( 1 );
-            delta  = PFR_NEXT_INT8( p );
-            cur->x = pos[3].x + delta;
-            FT_TRACE7(( " dx.%d", delta ));
-            break;
-
-          default:
-            FT_TRACE7(( " |" ));
-            cur->x = pos[3].x;
-          }
-
-          /* read the Y argument */
-          switch ( ( args_format >> 2 ) & 3 )
-          {
-          case 0:                           /* 8-bit index */
-            PFR_CHECK( 1 );
-            idx  = PFR_NEXT_BYTE( p );
-            cur->y = glyph->y_control[idx];
-            FT_TRACE7(( " cy#%d", idx ));
-            break;
-
-          case 1:                           /* 16-bit absolute value */
-            PFR_CHECK( 2 );
-            cur->y = PFR_NEXT_SHORT( p );
-            FT_TRACE7(( " y.%d", cur->y ));
-            break;
-
-          case 2:                           /* 8-bit delta */
-            PFR_CHECK( 1 );
-            delta  = PFR_NEXT_INT8( p );
-            cur->y = pos[3].y + delta;
-            FT_TRACE7(( " dy.%d", delta ));
-            break;
-
-          default:
-            FT_TRACE7(( " -" ));
-            cur->y = pos[3].y;
-          }
-
-          /* read the additional format flag for the general curve */
-          if ( n == 0 && args_count == 4 )
-          {
-            PFR_CHECK( 1 );
-            args_format = PFR_NEXT_BYTE( p );
-            args_count--;
-          }
-          else
-            args_format >>= 4;
-
-          /* save the previous point */
-          pos[3] = cur[0];
-          cur++;
-        }
-
-        FT_TRACE7(( "\n" ));
-
-        /***********************************************************/
-        /*  finally, execute instruction                           */
-        /*                                                         */
-        switch ( format >> 4 )
-        {
-        case 0:                             /* end glyph => EXIT */
-          pfr_glyph_end( glyph );
-          goto Exit;
-
-        case 1:                             /* line operations */
-        case 2:
-        case 3:
-          error = pfr_glyph_line_to( glyph, pos );
-          goto Test_Error;
-
-        case 4:                             /* move to inside contour  */
-        case 5:                             /* move to outside contour */
-          error = pfr_glyph_move_to( glyph, pos );
-          goto Test_Error;
-
-        default:                            /* curve operations */
-          error = pfr_glyph_curve_to( glyph, pos, pos + 1, pos + 2 );
-
-        Test_Error:  /* test error condition */
-          if ( error )
-            goto Exit;
-        }
-      } /* for (;;) */
-    }
-
-  Exit:
-    return error;
-
-  Too_Short:
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_glyph_load_simple: invalid glyph data\n" ));
-    goto Exit;
-  }
-
-
-  /* load a composite/compound glyph */
-  static FT_Error
-  pfr_glyph_load_compound( PFR_Glyph  glyph,
-                           FT_Byte*   p,
-                           FT_Byte*   limit )
-  {
-    FT_Error        error  = 0;
-    FT_GlyphLoader  loader = glyph->loader;
-    FT_Memory       memory = loader->memory;
-    PFR_SubGlyph    subglyph;
-    FT_UInt         flags, i, count, org_count;
-    FT_Int          x_pos, y_pos;
-
-
-    PFR_CHECK( 1 );
-    flags = PFR_NEXT_BYTE( p );
-
-    /* test for composite glyphs */
-    FT_ASSERT( ( flags & PFR_GLYPH_IS_COMPOUND ) != 0 );
-
-    count = flags & 0x3F;
-
-    /* ignore extra items when present */
-    /*                                 */
-    if ( flags & PFR_GLYPH_EXTRA_ITEMS )
-    {
-      error = pfr_extra_items_skip( &p, limit );
-      if (error) goto Exit;
-    }
-
-    /* we can't rely on the FT_GlyphLoader to load sub-glyphs, because   */
-    /* the PFR format is dumb, using direct file offsets to point to the */
-    /* sub-glyphs (instead of glyph indices).  Sigh.                     */
-    /*                                                                   */
-    /* For now, we load the list of sub-glyphs into a different array    */
-    /* but this will prevent us from using the auto-hinter at its best   */
-    /* quality.                                                          */
-    /*                                                                   */
-    org_count = glyph->num_subs;
-
-    if ( org_count + count > glyph->max_subs )
-    {
-      FT_UInt  new_max = ( org_count + count + 3 ) & -4;
-
-
-      if ( FT_RENEW_ARRAY( glyph->subs, glyph->max_subs, new_max ) )
-        goto Exit;
-
-      glyph->max_subs = new_max;
-    }
-
-    subglyph = glyph->subs + org_count;
-
-    for ( i = 0; i < count; i++, subglyph++ )
-    {
-      FT_UInt  format;
-
-
-      x_pos = 0;
-      y_pos = 0;
-
-      PFR_CHECK( 1 );
-      format = PFR_NEXT_BYTE( p );
-
-      /* read scale when available */
-      subglyph->x_scale = 0x10000L;
-      if ( format & PFR_SUBGLYPH_XSCALE )
-      {
-        PFR_CHECK( 2 );
-        subglyph->x_scale = PFR_NEXT_SHORT( p ) << 4;
-      }
-
-      subglyph->y_scale = 0x10000L;
-      if ( format & PFR_SUBGLYPH_YSCALE )
-      {
-        PFR_CHECK( 2 );
-        subglyph->y_scale = PFR_NEXT_SHORT( p ) << 4;
-      }
-
-      /* read offset */
-      switch ( format & 3 )
-      {
-      case 1:
-        PFR_CHECK( 2 );
-        x_pos = PFR_NEXT_SHORT( p );
-        break;
-
-      case 2:
-        PFR_CHECK( 1 );
-        x_pos += PFR_NEXT_INT8( p );
-        break;
-
-      default:
-        ;
-      }
-
-      switch ( ( format >> 2 ) & 3 )
-      {
-      case 1:
-        PFR_CHECK( 2 );
-        y_pos = PFR_NEXT_SHORT( p );
-        break;
-
-      case 2:
-        PFR_CHECK( 1 );
-        y_pos += PFR_NEXT_INT8( p );
-        break;
-
-      default:
-        ;
-      }
-
-      subglyph->x_delta = x_pos;
-      subglyph->y_delta = y_pos;
-
-      /* read glyph position and size now */
-      if ( format & PFR_SUBGLYPH_2BYTE_SIZE )
-      {
-        PFR_CHECK( 2 );
-        subglyph->gps_size = PFR_NEXT_USHORT( p );
-      }
-      else
-      {
-        PFR_CHECK( 1 );
-        subglyph->gps_size = PFR_NEXT_BYTE( p );
-      }
-
-      if ( format & PFR_SUBGLYPH_3BYTE_OFFSET )
-      {
-        PFR_CHECK( 3 );
-        subglyph->gps_offset = PFR_NEXT_LONG( p );
-      }
-      else
-      {
-        PFR_CHECK( 2 );
-        subglyph->gps_offset = PFR_NEXT_USHORT( p );
-      }
-
-      glyph->num_subs++;
-    }
-
-  Exit:
-    return error;
-
-  Too_Short:
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_glyph_load_compound: invalid glyph data\n" ));
-    goto Exit;
-  }
-
-
-
-
-
-  static FT_Error
-  pfr_glyph_load_rec( PFR_Glyph  glyph,
-                      FT_Stream  stream,
-                      FT_ULong   gps_offset,
-                      FT_ULong   offset,
-                      FT_ULong   size )
-  {
-    FT_Error  error;
-    FT_Byte*  p;
-    FT_Byte*  limit;
-
-
-    if ( FT_STREAM_SEEK( gps_offset + offset ) ||
-         FT_FRAME_ENTER( size )                )
-      goto Exit;
-
-    p     = (FT_Byte*)stream->cursor;
-    limit = p + size;
-
-    if ( size > 0 && *p & PFR_GLYPH_IS_COMPOUND )
-    {
-      FT_Int          n, old_count, count;
-      FT_GlyphLoader  loader = glyph->loader;
-      FT_Outline*     base   = &loader->base.outline;
-
-
-      old_count = glyph->num_subs;
-
-      /* this is a compound glyph - load it */
-      error = pfr_glyph_load_compound( glyph, p, limit );
-
-      FT_FRAME_EXIT();
-
-      if ( error )
-        goto Exit;
-
-      count = glyph->num_subs - old_count;
-
-      /* now, load each individual glyph */
-      for ( n = 0; n < count; n++ )
-      {
-        FT_Int        i, old_points, num_points;
-        PFR_SubGlyph  subglyph;
-
-
-        subglyph   = glyph->subs + old_count + n;
-        old_points = base->n_points;
-
-        error = pfr_glyph_load_rec( glyph, stream, gps_offset,
-                                    subglyph->gps_offset,
-                                    subglyph->gps_size );
-        if ( error )
-          goto Exit;
-
-        /* note that `glyph->subs' might have been re-allocated */
-        subglyph   = glyph->subs + old_count + n;
-        num_points = base->n_points - old_points;
-
-        /* translate and eventually scale the new glyph points */
-        if ( subglyph->x_scale != 0x10000L || subglyph->y_scale != 0x10000L )
-        {
-          FT_Vector*  vec = base->points + old_points;
-
-
-          for ( i = 0; i < num_points; i++, vec++ )
-          {
-            vec->x = FT_MulFix( vec->x, subglyph->x_scale ) +
-                       subglyph->x_delta;
-            vec->y = FT_MulFix( vec->y, subglyph->y_scale ) +
-                       subglyph->y_delta;
-          }
-        }
-        else
-        {
-          FT_Vector*  vec = loader->base.outline.points + old_points;
-
-
-          for ( i = 0; i < num_points; i++, vec++ )
-          {
-            vec->x += subglyph->x_delta;
-            vec->y += subglyph->y_delta;
-          }
-        }
-
-        /* proceed to next sub-glyph */
-      }
-    }
-    else
-    {
-      /* load a simple glyph */
-      error = pfr_glyph_load_simple( glyph, p, limit );
-
-      FT_FRAME_EXIT();
-    }
-
-  Exit:
-    return error;
-  }
-
-
-
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_glyph_load( PFR_Glyph  glyph,
-                  FT_Stream  stream,
-                  FT_ULong   gps_offset,
-                  FT_ULong   offset,
-                  FT_ULong   size )
-  {
-    /* initialize glyph loader */
-    FT_GlyphLoader_Rewind( glyph->loader );
-
-    /* load the glyph, recursively when needed */
-    return pfr_glyph_load_rec( glyph, stream, gps_offset, offset, size );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrgload.h b/nx-X11/extras/freetype2/src/pfr/pfrgload.h
deleted file mode 100644
index 7cc7a8702..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrgload.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrgload.h                                                             */
-/*                                                                         */
-/*    FreeType PFR glyph loader (specification).                           */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFRGLOAD_H__
-#define __PFRGLOAD_H__
-
-#include "pfrtypes.h"
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( void )
-  pfr_glyph_init( PFR_Glyph       glyph,
-                  FT_GlyphLoader  loader );
-
-  FT_LOCAL( void )
-  pfr_glyph_done( PFR_Glyph  glyph );
-
-
-  FT_LOCAL( FT_Error )
-  pfr_glyph_load( PFR_Glyph  glyph,
-                  FT_Stream  stream,
-                  FT_ULong   gps_offset,
-                  FT_ULong   offset,
-                  FT_ULong   size );
-
-
-FT_END_HEADER
-
-
-#endif /* __PFRGLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrload.c b/nx-X11/extras/freetype2/src/pfr/pfrload.c
deleted file mode 100644
index 19ced45d1..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrload.c
+++ /dev/null
@@ -1,1081 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrload.c                                                              */
-/*                                                                         */
-/*    FreeType PFR loader (body).                                          */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "pfrload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-
-#include "pfrerror.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pfr
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          EXTRA ITEMS                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_extra_items_skip( FT_Byte*  *pp,
-                        FT_Byte*   limit )
-  {
-    return pfr_extra_items_parse( pp, limit, NULL, NULL );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_extra_items_parse( FT_Byte*       *pp,
-                         FT_Byte*        limit,
-                         PFR_ExtraItem   item_list,
-                         FT_Pointer      item_data )
-  {
-    FT_Error  error = 0;
-    FT_Byte*  p     = *pp;
-    FT_UInt   num_items, item_type, item_size;
-
-
-    PFR_CHECK( 1 );
-    num_items = PFR_NEXT_BYTE( p );
-
-    for ( ; num_items > 0; num_items-- )
-    {
-      PFR_CHECK( 2 );
-      item_size = PFR_NEXT_BYTE( p );
-      item_type = PFR_NEXT_BYTE( p );
-
-      PFR_CHECK( item_size );
-
-      if ( item_list )
-      {
-        PFR_ExtraItem  extra = item_list;
-
-
-        for ( extra = item_list; extra->parser != NULL; extra++ )
-        {
-          if ( extra->type == item_type )
-          {
-            error = extra->parser( p, p + item_size, item_data );
-            if ( error ) goto Exit;
-
-            break;
-          }
-        }
-      }
-
-      p += item_size;
-    }
-
-  Exit:
-    *pp = p;
-    return error;
-
-  Too_Short:
-    FT_ERROR(( "pfr_extra_items_parse: invalid extra items table\n" ));
-    error = PFR_Err_Invalid_Table;
-    goto Exit;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          PFR HEADER                           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-   static const FT_Frame_Field  pfr_header_fields[] =
-   {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PFR_HeaderRec
-
-     FT_FRAME_START( 58 ),
-       FT_FRAME_ULONG ( signature ),
-       FT_FRAME_USHORT( version ),
-       FT_FRAME_USHORT( signature2 ),
-       FT_FRAME_USHORT( header_size ),
-
-       FT_FRAME_USHORT( log_dir_size ),
-       FT_FRAME_USHORT( log_dir_offset ),
-
-       FT_FRAME_USHORT( log_font_max_size ),
-       FT_FRAME_UOFF3 ( log_font_section_size ),
-       FT_FRAME_UOFF3 ( log_font_section_offset ),
-
-       FT_FRAME_USHORT( phy_font_max_size ),
-       FT_FRAME_UOFF3 ( phy_font_section_size ),
-       FT_FRAME_UOFF3 ( phy_font_section_offset ),
-
-       FT_FRAME_USHORT( gps_max_size ),
-       FT_FRAME_UOFF3 ( gps_section_size ),
-       FT_FRAME_UOFF3 ( gps_section_offset ),
-
-       FT_FRAME_BYTE  ( max_blue_values ),
-       FT_FRAME_BYTE  ( max_x_orus ),
-       FT_FRAME_BYTE  ( max_y_orus ),
-
-       FT_FRAME_BYTE  ( phy_font_max_size_high ),
-       FT_FRAME_BYTE  ( color_flags ),
-
-       FT_FRAME_UOFF3 ( bct_max_size ),
-       FT_FRAME_UOFF3 ( bct_set_max_size ),
-       FT_FRAME_UOFF3 ( phy_bct_set_max_size ),
-
-       FT_FRAME_USHORT( num_phy_fonts ),
-       FT_FRAME_BYTE  ( max_vert_stem_snap ),
-       FT_FRAME_BYTE  ( max_horz_stem_snap ),
-       FT_FRAME_USHORT( max_chars ),
-     FT_FRAME_END
-   };
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_header_load( PFR_Header  header,
-                   FT_Stream   stream )
-  {
-    FT_Error  error;
-
-
-    /* read header directly */
-    if ( !FT_STREAM_SEEK( 0 )                                &&
-         !FT_STREAM_READ_FIELDS( pfr_header_fields, header ) )
-    {
-      /* make a few adjustments to the header */
-      header->phy_font_max_size +=
-        (FT_UInt32)header->phy_font_max_size_high << 16;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Bool )
-  pfr_header_check( PFR_Header  header )
-  {
-    FT_Bool  result = 1;
-
-
-    /* check signature and header size */
-    if ( header->signature  != 0x50465230L ||   /* "PFR0" */
-         header->version     > 4           ||
-         header->header_size < 58          ||
-         header->signature2 != 0x0d0a      )    /* CR/LF  */
-    {
-      result = 0;
-    }
-    return  result;
-  }
-
-
-  /***********************************************************************/
-  /***********************************************************************/
-  /*****                                                             *****/
-  /*****                    PFR LOGICAL FONTS                        *****/
-  /*****                                                             *****/
-  /***********************************************************************/
-  /***********************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_log_font_count( FT_Stream  stream,
-                      FT_UInt32  section_offset,
-                      FT_UInt   *acount )
-  {
-    FT_Error  error;
-    FT_UInt   count;
-    FT_UInt   result = 0;
-
-
-    if ( FT_STREAM_SEEK( section_offset ) || FT_READ_USHORT( count ) )
-      goto Exit;
-
-    result = count;
-
-  Exit:
-    *acount = result;
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_log_font_load( PFR_LogFont  log_font,
-                     FT_Stream    stream,
-                     FT_UInt      idx,
-                     FT_UInt32    section_offset,
-                     FT_Bool      size_increment )
-  {
-    FT_UInt    num_log_fonts;
-    FT_UInt    flags;
-    FT_UInt32  offset;
-    FT_UInt32  size;
-    FT_Error   error;
-
-
-    if ( FT_STREAM_SEEK( section_offset ) ||
-         FT_READ_USHORT( num_log_fonts )  )
-      goto Exit;
-
-    if ( idx >= num_log_fonts )
-      return PFR_Err_Invalid_Argument;
-
-    if ( FT_STREAM_SKIP( idx * 5 ) ||
-         FT_READ_USHORT( size )    ||
-         FT_READ_UOFF3 ( offset )  )
-      goto Exit;
-
-    /* save logical font size and offset */
-    log_font->size   = size;
-    log_font->offset = offset;
-
-    /* now, check the rest of the table before loading it */
-    {
-      FT_Byte*  p;
-      FT_Byte*  limit;
-      FT_UInt   local;
-
-
-      if ( FT_STREAM_SEEK( offset ) || FT_FRAME_ENTER( size ) )
-        goto Exit;
-
-      p     = stream->cursor;
-      limit = p + size;
-
-      PFR_CHECK(13);
-
-      log_font->matrix[0] = PFR_NEXT_LONG( p );
-      log_font->matrix[1] = PFR_NEXT_LONG( p );
-      log_font->matrix[2] = PFR_NEXT_LONG( p );
-      log_font->matrix[3] = PFR_NEXT_LONG( p );
-
-      flags = PFR_NEXT_BYTE( p );
-
-      local = 0;
-      if ( flags & PFR_LOG_STROKE )
-      {
-        local++;
-        if ( flags & PFR_LOG_2BYTE_STROKE )
-          local++;
-
-        if ( (flags & PFR_LINE_JOIN_MASK) == PFR_LINE_JOIN_MITER )
-          local += 3;
-      }
-      if ( flags & PFR_LOG_BOLD )
-      {
-        local++;
-        if ( flags & PFR_LOG_2BYTE_BOLD )
-          local++;
-      }
-
-      PFR_CHECK( local );
-
-      if ( flags & PFR_LOG_STROKE )
-      {
-        log_font->stroke_thickness = ( flags & PFR_LOG_2BYTE_STROKE )
-                                     ? PFR_NEXT_SHORT( p )
-                                     : PFR_NEXT_BYTE( p );
-
-        if ( ( flags & PFR_LINE_JOIN_MASK ) == PFR_LINE_JOIN_MITER )
-          log_font->miter_limit = PFR_NEXT_LONG( p );
-      }
-
-      if ( flags & PFR_LOG_BOLD )
-      {
-        log_font->bold_thickness = ( flags & PFR_LOG_2BYTE_BOLD )
-                                   ? PFR_NEXT_SHORT( p )
-                                   : PFR_NEXT_BYTE( p );
-      }
-
-      if ( flags & PFR_LOG_EXTRA_ITEMS )
-      {
-        error = pfr_extra_items_skip( &p, limit );
-        if (error) goto Fail;
-      }
-
-      PFR_CHECK(5);
-      log_font->phys_size   = PFR_NEXT_USHORT( p );
-      log_font->phys_offset = PFR_NEXT_ULONG( p );
-      if ( size_increment )
-      {
-        PFR_CHECK( 1 );
-        log_font->phys_size += (FT_UInt32)PFR_NEXT_BYTE( p ) << 16;
-      }
-    }
-
-  Fail:
-    FT_FRAME_EXIT();
-
-  Exit:
-    return error;
-
-  Too_Short:
-    FT_ERROR(( "pfr_log_font_load: invalid logical font table\n" ));
-    error = PFR_Err_Invalid_Table;
-    goto Fail;
-  }
-
-
-  /***********************************************************************/
-  /***********************************************************************/
-  /*****                                                             *****/
-  /*****                    PFR PHYSICAL FONTS                       *****/
-  /*****                                                             *****/
-  /***********************************************************************/
-  /***********************************************************************/
-
-
-  /* load bitmap strikes lists */
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_extra_item_load_bitmap_info( FT_Byte*     p,
-                                   FT_Byte*     limit,
-                                   PFR_PhyFont  phy_font )
-  {
-    FT_Memory   memory = phy_font->memory;
-    PFR_Strike  strike;
-    FT_UInt     flags0;
-    FT_UInt     n, count, size1;
-    FT_Error    error = 0;
-
-
-    PFR_CHECK( 5 );
-
-    p += 3;  /* skip bctSize */
-    flags0 = PFR_NEXT_BYTE( p );
-    count  = PFR_NEXT_BYTE( p );
-
-    /* re-allocate when needed */
-    if ( phy_font->num_strikes + count > phy_font->max_strikes )
-    {
-      FT_UInt  new_max = FT_PAD_CEIL( phy_font->num_strikes + count, 4 );
-
-
-      if ( FT_RENEW_ARRAY( phy_font->strikes,
-                           phy_font->num_strikes,
-                           new_max ) )
-        goto Exit;
-
-      phy_font->max_strikes = new_max;
-    }
-
-    size1 = 1 + 1 + 1 + 2 + 2 + 1;
-    if ( flags0 & PFR_STRIKE_2BYTE_XPPM )
-      size1++;
-
-    if ( flags0 & PFR_STRIKE_2BYTE_YPPM )
-      size1++;
-
-    if ( flags0 & PFR_STRIKE_3BYTE_SIZE )
-      size1++;
-
-    if ( flags0 & PFR_STRIKE_3BYTE_OFFSET )
-      size1++;
-
-    if ( flags0 & PFR_STRIKE_2BYTE_COUNT )
-      size1++;
-
-    strike = phy_font->strikes + phy_font->num_strikes;
-
-    PFR_CHECK( count * size1 );
-
-    for ( n = 0; n < count; n++, strike++ )
-    {
-      strike->x_ppm       = ( flags0 & PFR_STRIKE_2BYTE_XPPM )
-                            ? PFR_NEXT_USHORT( p )
-                            : PFR_NEXT_BYTE( p );
-
-      strike->y_ppm       = ( flags0 & PFR_STRIKE_2BYTE_YPPM )
-                            ? PFR_NEXT_USHORT( p )
-                            : PFR_NEXT_BYTE( p );
-
-      strike->flags       = PFR_NEXT_BYTE( p );
-
-      strike->bct_size    = ( flags0 & PFR_STRIKE_3BYTE_SIZE )
-                            ? PFR_NEXT_ULONG( p )
-                            : PFR_NEXT_USHORT( p );
-
-      strike->bct_offset  = ( flags0 & PFR_STRIKE_3BYTE_OFFSET )
-                            ? PFR_NEXT_ULONG( p )
-                            : PFR_NEXT_USHORT( p );
-
-      strike->num_bitmaps = ( flags0 & PFR_STRIKE_2BYTE_COUNT )
-                            ? PFR_NEXT_USHORT( p )
-                            : PFR_NEXT_BYTE( p );
-    }
-
-    phy_font->num_strikes += count;
-
-  Exit:
-    return error;
-
-  Too_Short:
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_extra_item_load_bitmap_info: invalid bitmap info table\n" ));
-    goto Exit;
-  }
-
-
-  /* Load font ID.  This is a so-called "unique" name that is rather
-   * long and descriptive (like "Tiresias ScreenFont v7.51").
-   *
-   * Note that a PFR font's family name is contained in an *undocumented*
-   * string of the "auxiliary data" portion of a physical font record.  This
-   * may also contain the "real" style name!
-   *
-   * If no family name is present, the font ID is used instead for the
-   * family.
-   */
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_extra_item_load_font_id( FT_Byte*     p,
-                               FT_Byte*     limit,
-                               PFR_PhyFont  phy_font )
-  {
-    FT_Error    error  = 0;
-    FT_Memory   memory = phy_font->memory;
-    FT_PtrDist  len    = limit - p;
-
-
-    if ( phy_font->font_id != NULL )
-      goto Exit;
-
-    if ( FT_ALLOC( phy_font->font_id, len + 1 ) )
-      goto Exit;
-
-    /* copy font ID name, and terminate it for safety */
-    FT_MEM_COPY( phy_font->font_id, p, len );
-    phy_font->font_id[len] = 0;
-
-  Exit:
-    return error;
-  }
-
-
-  /* load stem snap tables */
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_extra_item_load_stem_snaps( FT_Byte*     p,
-                                  FT_Byte*     limit,
-                                  PFR_PhyFont  phy_font )
-  {
-    FT_UInt    count, num_vert, num_horz;
-    FT_Int*    snaps;
-    FT_Error   error  = 0;
-    FT_Memory  memory = phy_font->memory;
-
-
-    if ( phy_font->vertical.stem_snaps != NULL )
-      goto Exit;
-
-    PFR_CHECK( 1 );
-    count = PFR_NEXT_BYTE( p );
-
-    num_vert = count & 15;
-    num_horz = count >> 4;
-    count    = num_vert + num_horz;
-
-    PFR_CHECK( count * 2 );
-
-    if ( FT_NEW_ARRAY( snaps, count ) )
-      goto Exit;
-
-    phy_font->vertical.stem_snaps = snaps;
-    phy_font->horizontal.stem_snaps = snaps + num_vert;
-
-    for ( ; count > 0; count--, snaps++ )
-      *snaps = FT_NEXT_SHORT( p );
-
-  Exit:
-    return error;
-
-  Too_Short:
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_exta_item_load_stem_snaps: invalid stem snaps table\n" ));
-    goto Exit;
-  }
-
-
-
-  /* load kerning pair data */
-  FT_CALLBACK_DEF( FT_Error )
-  pfr_extra_item_load_kerning_pairs( FT_Byte*     p,
-                                     FT_Byte*     limit,
-                                     PFR_PhyFont  phy_font )
-  {
-    PFR_KernItem  item;
-    FT_Error      error  = 0;
-    FT_Memory     memory = phy_font->memory;
-
-
-    FT_TRACE2(( "pfr_extra_item_load_kerning_pairs()\n" ));
-
-    if ( FT_NEW( item ) )
-      goto Exit;
-
-    PFR_CHECK( 4 );
-
-    item->pair_count = PFR_NEXT_BYTE( p );
-    item->base_adj   = PFR_NEXT_SHORT( p );
-    item->flags      = PFR_NEXT_BYTE( p );
-    item->offset     = phy_font->offset + ( p - phy_font->cursor );
-
-#ifndef PFR_CONFIG_NO_CHECKS
-    item->pair_size = 3;
-
-    if ( item->flags & PFR_KERN_2BYTE_CHAR )
-      item->pair_size += 2;
-
-    if ( item->flags & PFR_KERN_2BYTE_ADJ )
-      item->pair_size += 1;
-
-    PFR_CHECK( item->pair_count * item->pair_size );
-#endif
-
-    /* load first and last pairs into the item to speed up */
-    /* lookup later...                                     */
-    if ( item->pair_count > 0 )
-    {
-      FT_UInt   char1, char2;
-      FT_Byte*  q;
-
-
-      if ( item->flags & PFR_KERN_2BYTE_CHAR )
-      {
-        q     = p;
-        char1 = PFR_NEXT_USHORT( q );
-        char2 = PFR_NEXT_USHORT( q );
-
-        item->pair1 = PFR_KERN_INDEX( char1, char2 );
-
-        q = p + item->pair_size * ( item->pair_count - 1 );
-        char1 = PFR_NEXT_USHORT( q );
-        char2 = PFR_NEXT_USHORT( q );
-
-        item->pair2 = PFR_KERN_INDEX( char1, char2 );
-      }
-      else
-      {
-        q     = p;
-        char1 = PFR_NEXT_BYTE( q );
-        char2 = PFR_NEXT_BYTE( q );
-
-        item->pair1 = PFR_KERN_INDEX( char1, char2 );
-
-        q = p + item->pair_size * ( item->pair_count - 1 );
-        char1 = PFR_NEXT_BYTE( q );
-        char2 = PFR_NEXT_BYTE( q );
-
-        item->pair2 = PFR_KERN_INDEX( char1, char2 );
-      }
-
-      /* add new item to the current list */
-      item->next                 = NULL;
-      *phy_font->kern_items_tail = item;
-      phy_font->kern_items_tail  = &item->next;
-      phy_font->num_kern_pairs  += item->pair_count;
-    }
-    else
-    {
-      /* empty item! */
-      FT_FREE( item );
-    }
-
-  Exit:
-    return error;
-
-  Too_Short:
-    FT_FREE( item );
-
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_extra_item_load_kerning_pairs: "
-               "invalid kerning pairs table\n" ));
-    goto Exit;
-  }
-
-
- /*
-  *  The kerning data embedded in a PFR font are (charcode,charcode)
-  *  pairs; we need to translate them to (gindex,gindex) and sort
-  *  the resulting array.
-  */
-  static FT_UInt
-  pfr_get_gindex( PFR_Char  chars,
-                  FT_UInt   count,
-                  FT_UInt   charcode )
-  {
-    FT_UInt  min = 0;
-    FT_UInt  max = count;
-
-
-    while ( min < max )
-    {
-      FT_UInt   mid = ( min + max ) >> 1;
-      PFR_Char  c   = chars + mid;
-
-
-      if ( c->char_code == charcode )
-        return mid + 1;
-
-      if ( c->char_code < charcode )
-        min = mid + 1;
-      else
-        max = mid;
-    }
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( int )
-  pfr_compare_kern_pairs( const void*  pair1,
-                          const void*  pair2 )
-  {
-    FT_UInt32  p1 = PFR_KERN_PAIR_INDEX( (PFR_KernPair)pair1 );
-    FT_UInt32  p2 = PFR_KERN_PAIR_INDEX( (PFR_KernPair)pair2 );
-
-
-    if ( p1 < p2 )
-      return -1;
-    if ( p1 > p2 )
-      return 1;
-    return 0;
-  }
-
-
-  static FT_Error
-  pfr_sort_kerning_pairs( FT_Stream    stream,
-                          PFR_PhyFont  phy_font )
-  {
-    FT_Error      error;
-    FT_Memory     memory = stream->memory;
-    PFR_KernPair  pairs;
-    PFR_KernItem  item;
-    PFR_Char      chars     = phy_font->chars;
-    FT_UInt       num_chars = phy_font->num_chars;
-    FT_UInt       count;
-
-
-   /* create kerning pairs array
-    */
-    if ( FT_NEW_ARRAY( phy_font->kern_pairs, phy_font->num_kern_pairs ) )
-      goto Exit;
-
-   /* load all kerning items into the array,
-    * converting character codes into glyph indices
-    */
-    pairs = phy_font->kern_pairs;
-    item  = phy_font->kern_items;
-    count = 0;
-
-    for ( ; item; item = item->next )
-    {
-      FT_UInt   limit = count + item->pair_count;
-      FT_Byte*  p;
-
-
-      if ( limit > phy_font->num_kern_pairs )
-      {
-        error = PFR_Err_Invalid_Table;
-        goto Exit;
-      }
-
-      if ( FT_STREAM_SEEK( item->offset )                       ||
-           FT_FRAME_ENTER( item->pair_count * item->pair_size ) )
-        goto Exit;
-
-      p = stream->cursor;
-
-      for ( ; count < limit; count++ )
-      {
-        PFR_KernPair  pair = pairs + count;
-        FT_UInt       char1, char2;
-        FT_Int        kerning;
-
-
-        if ( item->flags & PFR_KERN_2BYTE_CHAR )
-        {
-          char1 = FT_NEXT_USHORT( p );
-          char2 = FT_NEXT_USHORT( p );
-        }
-        else
-        {
-          char1 = FT_NEXT_BYTE( p );
-          char2 = FT_NEXT_BYTE( p );
-        }
-
-        if ( item->flags & PFR_KERN_2BYTE_ADJ )
-          kerning = item->base_adj + FT_NEXT_SHORT( p );
-        else
-          kerning = item->base_adj + FT_NEXT_CHAR( p );
-
-        pair->glyph1  = pfr_get_gindex( chars, num_chars, char1 );
-        pair->glyph2  = pfr_get_gindex( chars, num_chars, char2 );
-        pair->kerning = kerning;
-      }
-
-      FT_FRAME_EXIT();
-    }
-
-   /* sort the resulting array
-    */
-    ft_qsort( pairs, count,
-              sizeof ( PFR_KernPairRec ),
-              pfr_compare_kern_pairs );
-
-  Exit:
-    if ( error )
-    {
-     /* disable kerning data in case of error
-      */
-      phy_font->num_kern_pairs = 0;
-    }
-
-    return error;
-  }
-
-
-  static const PFR_ExtraItemRec  pfr_phy_font_extra_items[] =
-  {
-    { 1, (PFR_ExtraItem_ParseFunc)pfr_extra_item_load_bitmap_info },
-    { 2, (PFR_ExtraItem_ParseFunc)pfr_extra_item_load_font_id },
-    { 3, (PFR_ExtraItem_ParseFunc)pfr_extra_item_load_stem_snaps },
-    { 4, (PFR_ExtraItem_ParseFunc)pfr_extra_item_load_kerning_pairs },
-    { 0, NULL }
-  };
-
-
-  /* Loads a name from the auxiliary data.  Since this extracts undocumented
-   * strings from the font file, we need to be careful here.
-   */
-  static FT_Error
-  pfr_aux_name_load( FT_Byte*     p,
-                     FT_UInt      len,
-                     FT_Memory    memory,
-                     FT_String*  *astring )
-  {
-    FT_Error    error = 0;
-    FT_String*  result = NULL;
-    FT_UInt     n, ok;
-
-
-    if ( len > 0 && p[len - 1] == 0 )
-      len--;
-
-    /* check that each character is ASCII for making sure not to
-       load garbage
-     */
-    ok = ( len > 0 );
-    for ( n = 0; n < len; n++ )
-      if ( p[n] < 32 || p[n] > 127 )
-      {
-        ok = 0;
-        break;
-      }
-
-    if ( ok )
-    {
-      if ( FT_ALLOC( result, len + 1 ) )
-        goto Exit;
-
-      FT_MEM_COPY( result, p, len );
-      result[len] = 0;
-    }
-  Exit:
-    *astring = result;
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  pfr_phy_font_done( PFR_PhyFont  phy_font,
-                     FT_Memory    memory )
-  {
-    FT_FREE( phy_font->font_id );
-    FT_FREE( phy_font->family_name );
-    FT_FREE( phy_font->style_name );
-
-    FT_FREE( phy_font->vertical.stem_snaps );
-    phy_font->vertical.num_stem_snaps = 0;
-
-    phy_font->horizontal.stem_snaps     = NULL;
-    phy_font->horizontal.num_stem_snaps = 0;
-
-    FT_FREE( phy_font->strikes );
-    phy_font->num_strikes = 0;
-    phy_font->max_strikes = 0;
-
-    FT_FREE( phy_font->chars );
-    phy_font->num_chars    = 0;
-    phy_font->chars_offset = 0;
-
-    FT_FREE( phy_font->blue_values );
-    phy_font->num_blue_values = 0;
-
-    FT_FREE( phy_font->kern_pairs );
-    {
-      PFR_KernItem  item, next;
-
-
-      item = phy_font->kern_items;
-      while ( item )
-      {
-        next = item->next;
-        FT_FREE( item );
-        item = next;
-      }
-      phy_font->kern_items      = NULL;
-      phy_font->kern_items_tail = NULL;
-    }
-
-    phy_font->num_kern_pairs = 0;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_phy_font_load( PFR_PhyFont  phy_font,
-                     FT_Stream    stream,
-                     FT_UInt32    offset,
-                     FT_UInt32    size )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-    FT_UInt    flags, num_aux;
-    FT_Byte*   p;
-    FT_Byte*   limit;
-
-
-    phy_font->memory = memory;
-    phy_font->offset = offset;
-
-    phy_font->kern_items      = NULL;
-    phy_font->kern_items_tail = &phy_font->kern_items;
-
-    if ( FT_STREAM_SEEK( offset ) || FT_FRAME_ENTER( size ) )
-      goto Exit;
-
-    phy_font->cursor = stream->cursor;
-
-    p     = stream->cursor;
-    limit = p + size;
-
-    PFR_CHECK( 15 );
-    phy_font->font_ref_number    = PFR_NEXT_USHORT( p );
-    phy_font->outline_resolution = PFR_NEXT_USHORT( p );
-    phy_font->metrics_resolution = PFR_NEXT_USHORT( p );
-    phy_font->bbox.xMin          = PFR_NEXT_SHORT( p );
-    phy_font->bbox.yMin          = PFR_NEXT_SHORT( p );
-    phy_font->bbox.xMax          = PFR_NEXT_SHORT( p );
-    phy_font->bbox.yMax          = PFR_NEXT_SHORT( p );
-    phy_font->flags      = flags = PFR_NEXT_BYTE( p );
-
-    /* get the standard advance for non-proprotional fonts */
-    if ( !(flags & PFR_PHY_PROPORTIONAL) )
-    {
-      PFR_CHECK( 2 );
-      phy_font->standard_advance = PFR_NEXT_SHORT( p );
-    }
-
-    /* load the extra items when present */
-    if ( flags & PFR_PHY_EXTRA_ITEMS )
-    {
-      error =  pfr_extra_items_parse( &p, limit,
-                                      pfr_phy_font_extra_items, phy_font );
-
-      if ( error )
-        goto Fail;
-    }
-
-    /* In certain fonts, the auxiliary bytes contain interesting  */
-    /* information. These are not in the specification but can be */
-    /* guessed by looking at the content of a few PFR0 fonts.     */
-    PFR_CHECK( 3 );
-    num_aux = PFR_NEXT_ULONG( p );
-
-    if ( num_aux > 0 )
-    {
-      FT_Byte*  q = p;
-      FT_Byte*  q2;
-
-
-      PFR_CHECK( num_aux );
-      p += num_aux;
-
-      while ( num_aux > 0 )
-      {
-        FT_UInt  length, type;
-
-
-        if ( q + 4 > p )
-          break;
-
-        length = PFR_NEXT_USHORT( q );
-        if ( length < 4 || length > num_aux )
-          break;
-
-        q2   = q + length - 2;
-        type = PFR_NEXT_USHORT( q );
-
-        switch ( type )
-        {
-        case 1:
-          /* this seems to correspond to the font's family name,
-           * padded to 16-bits with one zero when necessary
-           */
-          error = pfr_aux_name_load( q, length - 4U, memory,
-                                     &phy_font->family_name );
-          if ( error )
-            goto Exit;
-          break;
-
-        case 2:
-          if ( q + 32 > q2 )
-            break;
-
-          q += 10;
-          phy_font->ascent  = PFR_NEXT_SHORT( q );
-          phy_font->descent = PFR_NEXT_SHORT( q );
-          phy_font->leading = PFR_NEXT_SHORT( q );
-          q += 16;
-          break;
-
-        case 3:
-          /* this seems to correspond to the font's style name,
-           * padded to 16-bits with one zero when necessary
-           */
-          error = pfr_aux_name_load( q, length - 4U, memory,
-                                     &phy_font->style_name );
-          if ( error )
-            goto Exit;
-          break;
-
-        default:
-          ;
-        }
-
-        q        = q2;
-        num_aux -= length;
-      }
-    }
-
-    /* read the blue values */
-    {
-      FT_UInt  n, count;
-
-
-      PFR_CHECK( 1 );
-      phy_font->num_blue_values = count = PFR_NEXT_BYTE( p );
-
-      PFR_CHECK( count * 2 );
-
-      if ( FT_NEW_ARRAY( phy_font->blue_values, count ) )
-        goto Fail;
-
-      for ( n = 0; n < count; n++ )
-        phy_font->blue_values[n] = PFR_NEXT_SHORT( p );
-    }
-
-    PFR_CHECK( 8 );
-    phy_font->blue_fuzz  = PFR_NEXT_BYTE( p );
-    phy_font->blue_scale = PFR_NEXT_BYTE( p );
-
-    phy_font->vertical.standard   = PFR_NEXT_USHORT( p );
-    phy_font->horizontal.standard = PFR_NEXT_USHORT( p );
-
-    /* read the character descriptors */
-    {
-      FT_UInt  n, count, Size;
-
-
-      phy_font->num_chars    = count = PFR_NEXT_USHORT( p );
-      phy_font->chars_offset = offset + ( p - stream->cursor );
-
-      if ( FT_NEW_ARRAY( phy_font->chars, count ) )
-        goto Fail;
-
-      Size = 1 + 1 + 2;
-      if ( flags & PFR_PHY_2BYTE_CHARCODE )
-        Size += 1;
-
-      if ( flags & PFR_PHY_PROPORTIONAL )
-        Size += 2;
-
-      if ( flags & PFR_PHY_ASCII_CODE )
-        Size += 1;
-
-      if ( flags & PFR_PHY_2BYTE_GPS_SIZE )
-        Size += 1;
-
-      if ( flags & PFR_PHY_3BYTE_GPS_OFFSET )
-        Size += 1;
-
-      PFR_CHECK( count * Size );
-
-      for ( n = 0; n < count; n++ )
-      {
-        PFR_Char  cur = &phy_font->chars[n];
-
-
-        cur->char_code = ( flags & PFR_PHY_2BYTE_CHARCODE )
-                         ? PFR_NEXT_USHORT( p )
-                         : PFR_NEXT_BYTE( p );
-
-        cur->advance   = ( flags & PFR_PHY_PROPORTIONAL )
-                         ? PFR_NEXT_SHORT( p )
-                         : (FT_Int) phy_font->standard_advance;
-
-#if 0
-        cur->ascii     = ( flags & PFR_PHY_ASCII_CODE )
-                         ? PFR_NEXT_BYTE( p )
-                         : 0;
-#else
-        if ( flags & PFR_PHY_ASCII_CODE )
-          p += 1;
-#endif
-        cur->gps_size  = ( flags & PFR_PHY_2BYTE_GPS_SIZE )
-                         ? PFR_NEXT_USHORT( p )
-                         : PFR_NEXT_BYTE( p );
-
-        cur->gps_offset = ( flags & PFR_PHY_3BYTE_GPS_OFFSET )
-                          ? PFR_NEXT_ULONG( p )
-                          : PFR_NEXT_USHORT( p );
-      }
-    }
-
-    /* that's it! */
-
-  Fail:
-    FT_FRAME_EXIT();
-
-    /* save position of bitmap info */
-    phy_font->bct_offset = FT_STREAM_POS();
-    phy_font->cursor     = NULL;
-
-    /* now sort kerning pairs */
-    error = pfr_sort_kerning_pairs( stream, phy_font );
-
-  Exit:
-    return error;
-
-  Too_Short:
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_phy_font_load: invalid physical font table\n" ));
-    goto Fail;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrload.h b/nx-X11/extras/freetype2/src/pfr/pfrload.h
deleted file mode 100644
index 9e54b7d3f..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrload.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrload.h                                                              */
-/*                                                                         */
-/*    FreeType PFR loader (specification).                                 */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFRLOAD_H__
-#define __PFRLOAD_H__
-
-#include "pfrobjs.h"
-#include FT_INTERNAL_STREAM_H
-
-
-FT_BEGIN_HEADER
-
-#ifdef PFR_CONFIG_NO_CHECKS
-#define PFR_CHECK( x )  do { } while ( 0 )
-#else
-#define PFR_CHECK( x )  do                       \
-                        {                        \
-                          if ( p + (x) > limit ) \
-                            goto Too_Short;      \
-                        } while ( 0 )
-#endif
-
-#define PFR_NEXT_BYTE( p )    FT_NEXT_BYTE( p )
-#define PFR_NEXT_INT8( p )    FT_NEXT_CHAR( p )
-#define PFR_NEXT_SHORT( p )   FT_NEXT_SHORT( p )
-#define PFR_NEXT_USHORT( p )  FT_NEXT_USHORT( p )
-#define PFR_NEXT_LONG( p )    FT_NEXT_OFF3( p )
-#define PFR_NEXT_ULONG( p )   FT_NEXT_UOFF3( p )
-
-
- /* handling extra items */
-
-  typedef FT_Error
-  (*PFR_ExtraItem_ParseFunc)( FT_Byte*    p,
-                              FT_Byte*    limit,
-                              FT_Pointer  data );
-
-  typedef struct  PFR_ExtraItemRec_
-  {
-    FT_UInt                  type;
-    PFR_ExtraItem_ParseFunc  parser;
-  
-  } PFR_ExtraItemRec;
-  
-  typedef const struct PFR_ExtraItemRec_*  PFR_ExtraItem;
- 
-
-  FT_LOCAL( FT_Error )
-  pfr_extra_items_skip( FT_Byte*  *pp,
-                        FT_Byte*  limit );
-
-  FT_LOCAL( FT_Error )
-  pfr_extra_items_parse( FT_Byte*      *pp,
-                         FT_Byte*       limit,
-                         PFR_ExtraItem  item_list,
-                         FT_Pointer     item_data );
-
-
-  /* load a PFR header */
-  FT_LOCAL( FT_Error )
-  pfr_header_load( PFR_Header  header,
-                   FT_Stream   stream );
-
-  /* check a PFR header */
-  FT_LOCAL( FT_Bool )
-  pfr_header_check( PFR_Header  header );
-
-
-  /* return number of logical fonts in this file */
-  FT_LOCAL( FT_Error )
-  pfr_log_font_count( FT_Stream   stream,
-                      FT_UInt32   log_section_offset,
-                      FT_UInt    *acount );
-
-  /* load a pfr logical font entry */
-  FT_LOCAL( FT_Error )
-  pfr_log_font_load( PFR_LogFont  log_font,
-                     FT_Stream    stream,
-                     FT_UInt      face_index,
-                     FT_UInt32    section_offset,
-                     FT_Bool      size_increment );
-
-
-  /* load a physical font entry */
-  FT_LOCAL( FT_Error )
-  pfr_phy_font_load( PFR_PhyFont  phy_font,
-                     FT_Stream    stream,
-                     FT_UInt32    offset,
-                     FT_UInt32    size );
-
-  /* finalize a physical font */
-  FT_LOCAL( void )
-  pfr_phy_font_done( PFR_PhyFont  phy_font,
-                     FT_Memory    memory );
-
-  /* */
- 
-FT_END_HEADER
-
-#endif /* __PFRLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrobjs.c b/nx-X11/extras/freetype2/src/pfr/pfrobjs.c
deleted file mode 100644
index 8b318e958..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrobjs.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrobjs.c                                                              */
-/*                                                                         */
-/*    FreeType PFR object methods (body).                                  */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "pfrobjs.h"
-#include "pfrload.h"
-#include "pfrgload.h"
-#include "pfrcmap.h"
-#include "pfrsbit.h"
-#include FT_OUTLINE_H
-#include FT_INTERNAL_DEBUG_H
-
-#include "pfrerror.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pfr
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                     FACE OBJECT METHODS                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( void )
-  pfr_face_done( FT_Face  pfrface )     /* PFR_Face */
-  {
-    PFR_Face   face   = (PFR_Face)pfrface;
-    FT_Memory  memory = pfrface->driver->root.memory;
-
-
-    /* we don't want dangling pointers */
-    pfrface->family_name = NULL;
-    pfrface->style_name  = NULL;
-    
-    /* finalize the physical font record */
-    pfr_phy_font_done( &face->phy_font, FT_FACE_MEMORY( face ) );
-
-    /* no need to finalize the logical font or the header */
-    FT_FREE( pfrface->available_sizes );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_face_init( FT_Stream      stream,
-                 FT_Face        pfrface,
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    PFR_Face  face = (PFR_Face)pfrface;
-    FT_Error  error;
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-
-
-    /* load the header and check it */
-    error = pfr_header_load( &face->header, stream );
-    if ( error )
-      goto Exit;
-
-    if ( !pfr_header_check( &face->header ) )
-    {
-      FT_TRACE4(( "pfr_face_init: not a valid PFR font\n" ));
-      error = PFR_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* check face index */
-    {
-      FT_UInt  num_faces;
-
-
-      error = pfr_log_font_count( stream,
-                                  face->header.log_dir_offset,
-                                  &num_faces );
-      if ( error )
-        goto Exit;
-
-      pfrface->num_faces = num_faces;
-    }
-
-    if ( face_index < 0 )
-      goto Exit;
-
-    if ( face_index >= pfrface->num_faces )
-    {
-      FT_ERROR(( "pfr_face_init: invalid face index\n" ));
-      error = PFR_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* load the face */
-    error = pfr_log_font_load(
-               &face->log_font, stream, face_index,
-               face->header.log_dir_offset,
-               FT_BOOL( face->header.phy_font_max_size_high != 0 ) );
-    if ( error )
-      goto Exit;
-
-    /* now load the physical font descriptor */
-    error = pfr_phy_font_load( &face->phy_font, stream,
-                               face->log_font.phys_offset,
-                               face->log_font.phys_size );
-    if ( error )
-      goto Exit;
-
-    /* now, set-up all root face fields */
-    {
-      PFR_PhyFont  phy_font = &face->phy_font;
-
-
-      pfrface->face_index = face_index;
-      pfrface->num_glyphs = phy_font->num_chars;
-      pfrface->face_flags = FT_FACE_FLAG_SCALABLE;
-
-      if ( (phy_font->flags & PFR_PHY_PROPORTIONAL) == 0 )
-        pfrface->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      if ( phy_font->flags & PFR_PHY_VERTICAL )
-        pfrface->face_flags |= FT_FACE_FLAG_VERTICAL;
-      else
-        pfrface->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-
-      if ( phy_font->num_strikes > 0 )
-        pfrface->face_flags |= FT_FACE_FLAG_FIXED_SIZES;
-
-      if ( phy_font->num_kern_pairs > 0 )
-        pfrface->face_flags |= FT_FACE_FLAG_KERNING;
-
-      /* If no family name was found in the "undocumented" auxiliary
-       * data, use the font ID instead.  This sucks but is better than
-       * nothing.
-       */
-      pfrface->family_name = phy_font->family_name;
-      if ( pfrface->family_name == NULL )
-        pfrface->family_name = phy_font->font_id;
-
-      /* note that the style name can be NULL in certain PFR fonts,
-       * probably meaning "Regular"
-       */
-      pfrface->style_name = phy_font->style_name;
-
-      pfrface->num_fixed_sizes = 0;
-      pfrface->available_sizes = 0;
-
-      pfrface->bbox         = phy_font->bbox;
-      pfrface->units_per_EM = (FT_UShort)phy_font->outline_resolution;
-      pfrface->ascender     = (FT_Short) phy_font->bbox.yMax;
-      pfrface->descender    = (FT_Short) phy_font->bbox.yMin;
-      pfrface->height       = (FT_Short)(
-        ( ( pfrface->ascender - pfrface->descender ) * 12 ) / 10 );
-
-      if ( phy_font->num_strikes > 0 )
-      {
-        FT_UInt          n, count = phy_font->num_strikes;
-        FT_Bitmap_Size*  size;
-        PFR_Strike       strike;
-        FT_Memory        memory = pfrface->stream->memory;
-         
-         
-        if ( FT_NEW_ARRAY( pfrface->available_sizes, count ) )
-          goto Exit;
-         
-        size   = pfrface->available_sizes;
-        strike = phy_font->strikes;
-        for ( n = 0; n < count; n++, size++, strike++ )
-        {
-          size->height = (FT_UShort)strike->y_ppm;
-          size->width  = (FT_UShort)strike->x_ppm;
-        }
-        pfrface->num_fixed_sizes = count;
-      }
-
-      /* now compute maximum advance width */
-      if ( ( phy_font->flags & PFR_PHY_PROPORTIONAL ) == 0 )
-        pfrface->max_advance_width = (FT_Short)phy_font->standard_advance;
-      else
-      {
-        FT_Int    max = 0;
-        FT_UInt   count = phy_font->num_chars;
-        PFR_Char  gchar = phy_font->chars;
-
-
-        for ( ; count > 0; count--, gchar++ )
-        {
-          if ( max < gchar->advance )
-            max = gchar->advance;
-        }
-
-        pfrface->max_advance_width = (FT_Short)max;
-      }
-
-      pfrface->max_advance_height = pfrface->height;
-
-      pfrface->underline_position  = (FT_Short)( -pfrface->units_per_EM / 10 );
-      pfrface->underline_thickness = (FT_Short)(  pfrface->units_per_EM / 30 );
-
-      /* create charmap */
-      {
-        FT_CharMapRec  charmap;
-
-
-        charmap.face        = pfrface;
-        charmap.platform_id = 3;
-        charmap.encoding_id = 1;
-        charmap.encoding    = FT_ENCODING_UNICODE;
-
-        FT_CMap_New( &pfr_cmap_class_rec, NULL, &charmap, NULL );
-
-#if 0
-        /* Select default charmap */
-        if ( pfrface->num_charmaps )
-          pfrface->charmap = pfrface->charmaps[0];
-#endif
-      }
-
-      /* check whether we've loaded any kerning pairs */
-      if ( phy_font->num_kern_pairs )
-        pfrface->face_flags |= FT_FACE_FLAG_KERNING;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    SLOT OBJECT METHOD                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_slot_init( FT_GlyphSlot  pfrslot )        /* PFR_Slot */
-  {
-    PFR_Slot        slot   = (PFR_Slot)pfrslot;
-    FT_GlyphLoader  loader = pfrslot->internal->loader;
-
-
-    pfr_glyph_init( &slot->glyph, loader );
-
-    return 0;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  pfr_slot_done( FT_GlyphSlot  pfrslot )        /* PFR_Slot */
-  {
-    PFR_Slot  slot = (PFR_Slot)pfrslot;
-
-
-    pfr_glyph_done( &slot->glyph );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_slot_load( FT_GlyphSlot  pfrslot,         /* PFR_Slot */
-                 FT_Size       pfrsize,         /* PFR_Size */
-                 FT_UInt       gindex,
-                 FT_Int32      load_flags )
-  {
-    PFR_Slot     slot    = (PFR_Slot)pfrslot;
-    PFR_Size     size    = (PFR_Size)pfrsize;
-    FT_Error     error;
-    PFR_Face     face    = (PFR_Face)pfrslot->face;
-    PFR_Char     gchar;
-    FT_Outline*  outline = &pfrslot->outline;
-    FT_ULong     gps_offset;
-
-
-    if ( gindex > 0 )
-      gindex--;
-
-    /* check that the glyph index is correct */
-    FT_ASSERT( gindex < face->phy_font.num_chars );
-
-    /* try to load an embedded bitmap */
-    if ( ( load_flags & ( FT_LOAD_NO_SCALE | FT_LOAD_NO_BITMAP ) ) == 0 )
-    {
-      error = pfr_slot_load_bitmap( slot, size, gindex );
-      if ( error == 0 )
-        goto Exit;
-    }
-
-    if ( load_flags & FT_LOAD_SBITS_ONLY )
-    {
-      error = PFR_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    gchar               = face->phy_font.chars + gindex;
-    pfrslot->format     = FT_GLYPH_FORMAT_OUTLINE;
-    outline->n_points   = 0;
-    outline->n_contours = 0;
-    gps_offset          = face->header.gps_section_offset;
-
-    /* load the glyph outline (FT_LOAD_NO_RECURSE isn't supported) */
-    error = pfr_glyph_load( &slot->glyph, face->root.stream,
-                            gps_offset, gchar->gps_offset, gchar->gps_size );
-
-    if ( !error )
-    {
-      FT_BBox            cbox;
-      FT_Glyph_Metrics*  metrics = &pfrslot->metrics;
-      FT_Pos             advance;
-      FT_Int             em_metrics, em_outline;
-      FT_Bool            scaling;
-
-
-      scaling = FT_BOOL( ( load_flags & FT_LOAD_NO_SCALE ) == 0 );
-
-      /* copy outline data */
-      *outline = slot->glyph.loader->base.outline;
-
-      outline->flags &= ~FT_OUTLINE_OWNER;
-      outline->flags |= FT_OUTLINE_REVERSE_FILL;
-
-      if ( size && pfrsize->metrics.y_ppem < 24 )
-        outline->flags |= FT_OUTLINE_HIGH_PRECISION;
-
-      /* compute the advance vector */
-      metrics->horiAdvance = 0;
-      metrics->vertAdvance = 0;
-
-      advance    = gchar->advance;
-      em_metrics = face->phy_font.metrics_resolution;
-      em_outline = face->phy_font.outline_resolution;
-
-      if ( em_metrics != em_outline )
-        advance = FT_MulDiv( advance, em_outline, em_metrics );
-
-      if ( face->phy_font.flags & PFR_PHY_VERTICAL )
-        metrics->vertAdvance = advance;
-      else
-        metrics->horiAdvance = advance;
-
-      pfrslot->linearHoriAdvance = metrics->horiAdvance;
-      pfrslot->linearVertAdvance = metrics->vertAdvance;
-
-      /* make-up vertical metrics(?) */
-      metrics->vertBearingX = 0;
-      metrics->vertBearingY = 0;
-
-      /* Apply the font matrix, if any.                 */
-      /* TODO: Test existing fonts with unusual matrix  */
-      /* whether we have to adjust Units per EM.        */
-      {
-        FT_Matrix font_matrix;
-
-
-        font_matrix.xx = face->log_font.matrix[0] << 8;
-        font_matrix.yx = face->log_font.matrix[1] << 8;
-        font_matrix.xy = face->log_font.matrix[2] << 8;
-        font_matrix.yy = face->log_font.matrix[3] << 8;
-
-        FT_Outline_Transform( outline, &font_matrix );
-      }
-
-      /* scale when needed */
-      if ( scaling )
-      {
-        FT_Int      n;
-        FT_Fixed    x_scale = pfrsize->metrics.x_scale;
-        FT_Fixed    y_scale = pfrsize->metrics.y_scale;
-        FT_Vector*  vec     = outline->points;
-
-
-        /* scale outline points */
-        for ( n = 0; n < outline->n_points; n++, vec++ )
-        {
-          vec->x = FT_MulFix( vec->x, x_scale );
-          vec->y = FT_MulFix( vec->y, y_scale );
-        }
-
-        /* scale the advance */
-        metrics->horiAdvance = FT_MulFix( metrics->horiAdvance, x_scale );
-        metrics->vertAdvance = FT_MulFix( metrics->vertAdvance, y_scale );
-      }
-
-      /* compute the rest of the metrics */
-      FT_Outline_Get_CBox( outline, &cbox );
-
-      metrics->width        = cbox.xMax - cbox.xMin;
-      metrics->height       = cbox.yMax - cbox.yMin;
-      metrics->horiBearingX = cbox.xMin;
-      metrics->horiBearingY = cbox.yMax - metrics->height;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      KERNING METHOD                           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( FT_Error )
-  pfr_face_get_kerning( FT_Face     pfrface,        /* PFR_Face */
-                        FT_UInt     glyph1,
-                        FT_UInt     glyph2,
-                        FT_Vector*  kerning )
-  {
-    PFR_Face      face     = (PFR_Face)pfrface;
-    FT_Error      error    = PFR_Err_Ok;
-    PFR_PhyFont   phy_font = &face->phy_font;
-    PFR_KernPair  pairs    = phy_font->kern_pairs;
-    FT_UInt32     idx      = PFR_KERN_INDEX( glyph1, glyph2 );
-    FT_UInt       min, max;
-
-
-    kerning->x = 0;
-    kerning->y = 0;
-
-    min = 0;
-    max = phy_font->num_kern_pairs;
-    
-    while ( min < max )
-    {
-      FT_UInt       mid  = ( min + max ) >> 1;
-      PFR_KernPair  pair = pairs + mid;
-      FT_UInt32     pidx = PFR_KERN_PAIR_INDEX( pair );
-      
-
-      if ( pidx == idx )
-      {
-        kerning->x = pair->kerning;
-        break;
-      }
-      
-      if ( pidx < idx )
-        min = mid + 1;
-      else
-        max = mid;
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrobjs.h b/nx-X11/extras/freetype2/src/pfr/pfrobjs.h
deleted file mode 100644
index f6aa8b44c..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrobjs.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrobjs.h                                                              */
-/*                                                                         */
-/*    FreeType PFR object methods (specification).                         */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFROBJS_H__
-#define __PFROBJS_H__
-
-#include "pfrtypes.h"
-
-
-FT_BEGIN_HEADER
-
-  typedef struct PFR_FaceRec_*  PFR_Face;
-
-  typedef struct PFR_SizeRec_*  PFR_Size;
-
-  typedef struct PFR_SlotRec_*  PFR_Slot;
-
-
-  typedef struct  PFR_FaceRec_
-  {
-    FT_FaceRec      root;
-    PFR_HeaderRec   header;
-    PFR_LogFontRec  log_font;
-    PFR_PhyFontRec  phy_font;
-
-  } PFR_FaceRec;
-
-
-  typedef struct  PFR_SizeRec_
-  {
-    FT_SizeRec  root;
-
-  } PFR_SizeRec;
-
-
-  typedef struct  PFR_SlotRec_
-  {
-    FT_GlyphSlotRec  root;
-    PFR_GlyphRec     glyph;
-
-  } PFR_SlotRec;
-
-
-  FT_LOCAL( FT_Error )
-  pfr_face_init( FT_Stream      stream,
-                 FT_Face        face,           /* PFR_Face */
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params );
-
-  FT_LOCAL( void )
-  pfr_face_done( FT_Face  face );               /* PFR_Face */
-
-
-  FT_LOCAL( FT_Error )
-  pfr_face_get_kerning( FT_Face     face,       /* PFR_Face */
-                        FT_UInt     glyph1,
-                        FT_UInt     glyph2,
-                        FT_Vector*  kerning );
-
-
-  FT_LOCAL( FT_Error )
-  pfr_slot_init( FT_GlyphSlot  slot );          /* PFR_Slot */
-
-  FT_LOCAL( void )
-  pfr_slot_done( FT_GlyphSlot  slot );          /* PFR_Slot */
-
-
-  FT_LOCAL( FT_Error )
-  pfr_slot_load( FT_GlyphSlot  slot,            /* PFR_Slot */
-                 FT_Size       size,            /* PFR_Size */
-                 FT_UInt       gindex,
-                 FT_Int32      load_flags );
-
-
-FT_END_HEADER
-
-#endif /* __PFROBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrsbit.c b/nx-X11/extras/freetype2/src/pfr/pfrsbit.c
deleted file mode 100644
index da8fdba33..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrsbit.c
+++ /dev/null
@@ -1,671 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrsbit.c                                                              */
-/*                                                                         */
-/*    FreeType PFR bitmap loader (body).                                   */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "pfrsbit.h"
-#include "pfrload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-
-#include "pfrerror.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pfr
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      PFR BIT WRITER                           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct  PFR_BitWriter_
-  {
-    FT_Byte*  line;      /* current line start                    */
-    FT_Int    pitch;     /* line size in bytes                    */
-    FT_Int    width;     /* width in pixels/bits                  */
-    FT_Int    rows;      /* number of remaining rows to scan      */
-    FT_Int    total;     /* total number of bits to draw          */
-
-  } PFR_BitWriterRec, *PFR_BitWriter;
-
-
-  static void
-  pfr_bitwriter_init( PFR_BitWriter  writer,
-                      FT_Bitmap*     target,
-                      FT_Bool        decreasing )
-  {
-    writer->line   = target->buffer;
-    writer->pitch  = target->pitch;
-    writer->width  = target->width;
-    writer->rows   = target->rows;
-    writer->total  = writer->width * writer->rows;
-
-    if ( !decreasing )
-    {
-      writer->line += writer->pitch * ( target->rows-1 );
-      writer->pitch = -writer->pitch;
-    }
-  }
-
-
-  static void
-  pfr_bitwriter_decode_bytes( PFR_BitWriter  writer,
-                              FT_Byte*       p,
-                              FT_Byte*       limit )
-  {
-    FT_Int    n, reload;
-    FT_Int    left = writer->width;
-    FT_Byte*  cur  = writer->line;
-    FT_UInt   mask = 0x80;
-    FT_UInt   val  = 0;
-    FT_UInt   c    = 0;
-
-
-    n = (FT_Int)( limit - p ) * 8;
-    if ( n > writer->total )
-      n = writer->total;
-
-    reload = n & 7;
-
-    for ( ; n > 0; n-- )
-    {
-      if ( ( n & 7 ) == reload )
-        val = *p++;
-
-      if ( val & 0x80 )
-        c |= mask;
-
-      val  <<= 1;
-      mask >>= 1;
-
-      if ( --left <= 0 )
-      {
-        cur[0] = (FT_Byte)c;
-        left   = writer->width;
-        mask   = 0x80;
-
-        writer->line += writer->pitch;
-        cur           = writer->line;
-        c             = 0;
-      }
-      else if ( mask == 0 )
-      {
-        cur[0] = (FT_Byte)c;
-        mask   = 0x80;
-        c      = 0;
-        cur ++;
-      }
-    }
-
-    if ( mask != 0x80 )
-      cur[0] = (FT_Byte)c;
-  }
-
-
-  static void
-  pfr_bitwriter_decode_rle1( PFR_BitWriter  writer,
-                             FT_Byte*       p,
-                             FT_Byte*       limit )
-  {
-    FT_Int    n, phase, count, counts[2], reload;
-    FT_Int    left = writer->width;
-    FT_Byte*  cur  = writer->line;
-    FT_UInt   mask = 0x80;
-    FT_UInt   c    = 0;
-
-
-    n = writer->total;
-
-    phase     = 1;
-    counts[0] = 0;
-    counts[1] = 0;
-    count     = 0;
-    reload    = 1;
-
-    for ( ; n > 0; n-- )
-    {
-      if ( reload )
-      {
-        do
-        {
-          if ( phase )
-          {
-            FT_Int  v;
-
-
-            if ( p >= limit )
-              break;
-
-            v         = *p++;
-            counts[0] = v >> 4;
-            counts[1] = v & 15;
-            phase     = 0;
-            count     = counts[0];
-          }
-          else
-          {
-            phase = 1;
-            count = counts[1];
-          }
-
-        } while ( count == 0 );
-      }
-
-      if ( phase )
-        c |= mask;
-
-      mask >>= 1;
-
-      if ( --left <= 0 )
-      {
-        cur[0] = (FT_Byte) c;
-        left   = writer->width;
-        mask   = 0x80;
-
-        writer->line += writer->pitch;
-        cur           = writer->line;
-        c             = 0;
-      }
-      else if ( mask == 0 )
-      {
-        cur[0] = (FT_Byte)c;
-        mask   = 0x80;
-        c      = 0;
-        cur ++;
-      }
-
-      reload = ( --count <= 0 );
-    }
-
-    if ( mask != 0x80 )
-      cur[0] = (FT_Byte) c;
-  }
-
-
-  static void
-  pfr_bitwriter_decode_rle2( PFR_BitWriter  writer,
-                             FT_Byte*       p,
-                             FT_Byte*       limit )
-  {
-    FT_Int    n, phase, count, reload;
-    FT_Int    left = writer->width;
-    FT_Byte*  cur  = writer->line;
-    FT_UInt   mask = 0x80;
-    FT_UInt   c    = 0;
-
-
-    n = writer->total;
-
-    phase  = 1;
-    count  = 0;
-    reload = 1;
-
-    for ( ; n > 0; n-- )
-    {
-      if ( reload )
-      {
-        do
-        {
-          if ( p >= limit )
-            break;
-
-          count = *p++;
-          phase = phase ^ 1;
-
-        } while ( count == 0 );
-      }
-
-      if ( phase )
-        c |= mask;
-
-      mask >>= 1;
-
-      if ( --left <= 0 )
-      {
-        cur[0] = (FT_Byte) c;
-        c      = 0;
-        mask   = 0x80;
-        left   = writer->width;
-
-        writer->line += writer->pitch;
-        cur           = writer->line;
-      }
-      else if ( mask == 0 )
-      {
-        cur[0] = (FT_Byte)c;
-        c      = 0;
-        mask   = 0x80;
-        cur ++;
-      }
-
-      reload = ( --count <= 0 );
-    }
-
-    if ( mask != 0x80 )
-      cur[0] = (FT_Byte) c;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  BITMAP DATA DECODING                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  pfr_lookup_bitmap_data( FT_Byte*   base,
-                          FT_Byte*   limit,
-                          FT_UInt    count,
-                          FT_UInt    flags,
-                          FT_UInt    char_code,
-                          FT_ULong*  found_offset,
-                          FT_ULong*  found_size )
-  {
-    FT_UInt   left, right, char_len;
-    FT_Bool   two = FT_BOOL( flags & 1 );
-    FT_Byte*  buff;
-
-
-    char_len = 4;
-    if ( two )       char_len += 1;
-    if ( flags & 2 ) char_len += 1;
-    if ( flags & 4 ) char_len += 1;
-
-    left  = 0;
-    right = count;
-
-    while ( left < right )
-    {
-      FT_UInt  middle, code;
-
-
-      middle = ( left + right ) >> 1;
-      buff   = base + middle * char_len;
-
-      /* check that we are not outside of the table -- */
-      /* this is possible with broken fonts...         */
-      if ( buff + char_len > limit )
-        goto Fail;
-
-      if ( two )
-        code = PFR_NEXT_USHORT( buff );
-      else
-        code = PFR_NEXT_BYTE( buff );
-
-      if ( code == char_code )
-        goto Found_It;
-
-      if ( code < char_code )
-        left = middle;
-      else
-        right = middle;
-    }
-
-  Fail:
-    /* Not found */
-    *found_size   = 0;
-    *found_offset = 0;
-    return;
-
-  Found_It:
-    if ( flags & 2 )
-      *found_size = PFR_NEXT_USHORT( buff );
-    else
-      *found_size = PFR_NEXT_BYTE( buff );
-
-    if ( flags & 4 )
-      *found_offset = PFR_NEXT_ULONG( buff );
-    else
-      *found_offset = PFR_NEXT_USHORT( buff );
-  }
-
-
-  /* load bitmap metrics.  "*padvance" must be set to the default value */
-  /* before calling this function...                                    */
-  /*                                                                    */
-  static FT_Error
-  pfr_load_bitmap_metrics( FT_Byte**  pdata,
-                           FT_Byte*   limit,
-                           FT_Long    scaled_advance,
-                           FT_Long   *axpos,
-                           FT_Long   *aypos,
-                           FT_UInt   *axsize,
-                           FT_UInt   *aysize,
-                           FT_Long   *aadvance,
-                           FT_UInt   *aformat )
-  {
-    FT_Error  error = 0;
-    FT_Byte   flags;
-    FT_Char   b;
-    FT_Byte*  p = *pdata;
-    FT_Long   xpos, ypos, advance;
-    FT_UInt   xsize, ysize;
-
-
-    PFR_CHECK( 1 );
-    flags = PFR_NEXT_BYTE( p );
-
-    xpos    = 0;
-    ypos    = 0;
-    xsize   = 0;
-    ysize   = 0;
-    advance = 0;
-
-    switch ( flags & 3 )
-    {
-    case 0:
-      PFR_CHECK( 1 );
-      b    = PFR_NEXT_INT8( p );
-      xpos = b >> 4;
-      ypos = ( (FT_Char)( b << 4 ) ) >> 4;
-      break;
-
-    case 1:
-      PFR_CHECK( 2 );
-      xpos = PFR_NEXT_INT8( p );
-      ypos = PFR_NEXT_INT8( p );
-      break;
-
-    case 2:
-      PFR_CHECK( 4 );
-      xpos = PFR_NEXT_SHORT( p );
-      ypos = PFR_NEXT_SHORT( p );
-      break;
-
-    case 3:
-      PFR_CHECK( 6 );
-      xpos = PFR_NEXT_LONG( p );
-      ypos = PFR_NEXT_LONG( p );
-      break;
-
-    default:
-      ;
-    }
-
-    flags >>= 2;
-    switch ( flags & 3 )
-    {
-    case 0:
-      /* blank image */
-      xsize = 0;
-      ysize = 0;
-      break;
-
-    case 1:
-      PFR_CHECK( 1 );
-      b     = PFR_NEXT_BYTE( p );
-      xsize = ( b >> 4 ) & 0xF;
-      ysize = b & 0xF;
-      break;
-
-    case 2:
-      PFR_CHECK( 2 );
-      xsize = PFR_NEXT_BYTE( p );
-      ysize = PFR_NEXT_BYTE( p );
-      break;
-
-    case 3:
-      PFR_CHECK( 4 );
-      xsize = PFR_NEXT_USHORT( p );
-      ysize = PFR_NEXT_USHORT( p );
-      break;
-
-    default:
-      ;
-    }
-
-    flags >>= 2;
-    switch ( flags & 3 )
-    {
-    case 0:
-      advance = scaled_advance;
-      break;
-
-    case 1:
-      PFR_CHECK( 1 );
-      advance = PFR_NEXT_INT8( p ) << 8;
-      break;
-
-    case 2:
-      PFR_CHECK( 2 );
-      advance = PFR_NEXT_SHORT( p );
-      break;
-
-    case 3:
-      PFR_CHECK( 3 );
-      advance = PFR_NEXT_LONG( p );
-      break;
-
-    default:
-      ;
-    }
-
-    *axpos    = xpos;
-    *aypos    = ypos;
-    *axsize   = xsize;
-    *aysize   = ysize;
-    *aadvance = advance;
-    *aformat  = flags >> 2;
-    *pdata    = p;
-
-  Exit:
-    return error;
-
-  Too_Short:
-    error = PFR_Err_Invalid_Table;
-    FT_ERROR(( "pfr_load_bitmap_metrics: invalid glyph data\n" ));
-    goto Exit;
-  }
-
-
-  static FT_Error
-  pfr_load_bitmap_bits( FT_Byte*    p,
-                        FT_Byte*    limit,
-                        FT_UInt     format,
-                        FT_Bool     decreasing,
-                        FT_Bitmap*  target )
-  {
-    FT_Error          error = 0;
-    PFR_BitWriterRec  writer;
-
-
-    if ( target->rows > 0 && target->width > 0 )
-    {
-      pfr_bitwriter_init( &writer, target, decreasing );
-
-      switch ( format )
-      {
-      case 0: /* packed bits */
-        pfr_bitwriter_decode_bytes( &writer, p, limit );
-        break;
-
-      case 1: /* RLE1 */
-        pfr_bitwriter_decode_rle1( &writer, p, limit );
-        break;
-
-      case 2: /* RLE2 */
-        pfr_bitwriter_decode_rle2( &writer, p, limit );
-        break;
-
-      default:
-        FT_ERROR(( "pfr_read_bitmap_data: invalid image type\n" ));
-        error = PFR_Err_Invalid_File_Format;
-      }
-    }
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                     BITMAP LOADING                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL( FT_Error )
-  pfr_slot_load_bitmap( PFR_Slot  glyph,
-                        PFR_Size  size,
-                        FT_UInt   glyph_index )
-  {
-    FT_Error     error;
-    PFR_Face     face   = (PFR_Face) glyph->root.face;
-    FT_Stream    stream = face->root.stream;
-    PFR_PhyFont  phys   = &face->phy_font;
-    FT_ULong     gps_offset;
-    FT_ULong     gps_size;
-    PFR_Char     character;
-    PFR_Strike   strike;
-
-
-    character = &phys->chars[glyph_index];
-
-    /* Look-up a bitmap strike corresponding to the current */
-    /* character dimensions                                 */
-    {
-      FT_UInt  n;
-
-
-      strike = phys->strikes;
-      for ( n = 0; n < phys->num_strikes; n++ )
-      {
-        if ( strike->x_ppm == (FT_UInt)size->root.metrics.x_ppem &&
-             strike->y_ppm == (FT_UInt)size->root.metrics.y_ppem )
-        {
-          goto Found_Strike;
-        }
-
-        strike++;
-      }
-
-      /* couldn't find it */
-      return PFR_Err_Invalid_Argument;
-    }
-
-  Found_Strike:
-
-    /* Now lookup the glyph's position within the file */
-    {
-      FT_UInt  char_len;
-
-
-      char_len = 4;
-      if ( strike->flags & 1 ) char_len += 1;
-      if ( strike->flags & 2 ) char_len += 1;
-      if ( strike->flags & 4 ) char_len += 1;
-
-      /* Access data directly in the frame to speed lookups */
-      if ( FT_STREAM_SEEK( phys->bct_offset + strike->bct_offset ) ||
-           FT_FRAME_ENTER( char_len * strike->num_bitmaps )        )
-        goto Exit;
-
-      pfr_lookup_bitmap_data( stream->cursor,
-                              stream->limit,
-                              strike->num_bitmaps,
-                              strike->flags,
-                              character->char_code,
-                              &gps_offset,
-                              &gps_size );
-
-      FT_FRAME_EXIT();
-
-      if ( gps_size == 0 )
-      {
-        /* Could not find a bitmap program string for this glyph */
-        error = PFR_Err_Invalid_Argument;
-        goto Exit;
-      }
-    }
-
-    /* get the bitmap metrics */
-    {
-      FT_Long   xpos, ypos, advance;
-      FT_UInt   xsize, ysize, format;
-      FT_Byte*  p;
-
-
-      advance = FT_MulDiv( size->root.metrics.x_ppem << 8,
-                           character->advance,
-                           phys->metrics_resolution );
-
-      /* XXX: handle linearHoriAdvance correctly! */
-
-      if ( FT_STREAM_SEEK( face->header.gps_section_offset + gps_offset ) ||
-           FT_FRAME_ENTER( gps_size )                                     )
-        goto Exit;
-
-      p     = stream->cursor;
-      error = pfr_load_bitmap_metrics( &p, stream->limit,
-                                       advance,
-                                       &xpos, &ypos,
-                                       &xsize, &ysize,
-                                       &advance, &format );
-      if ( !error )
-      {
-        glyph->root.format = FT_GLYPH_FORMAT_BITMAP;
-
-        /* Set up glyph bitmap and metrics */
-        glyph->root.bitmap.width      = (FT_Int)xsize;
-        glyph->root.bitmap.rows       = (FT_Int)ysize;
-        glyph->root.bitmap.pitch      = (FT_Long)( xsize + 7 ) >> 3;
-        glyph->root.bitmap.pixel_mode = FT_PIXEL_MODE_MONO;
-
-        glyph->root.metrics.width        = (FT_Long)xsize << 6;
-        glyph->root.metrics.height       = (FT_Long)ysize << 6;
-        glyph->root.metrics.horiBearingX = xpos << 6;
-        glyph->root.metrics.horiBearingY = ypos << 6;
-        glyph->root.metrics.horiAdvance  = FT_PIX_ROUND( ( advance >> 2 ) );
-        glyph->root.metrics.vertBearingX = - glyph->root.metrics.width >> 1;
-        glyph->root.metrics.vertBearingY = 0;
-        glyph->root.metrics.vertAdvance  = size->root.metrics.height;
-
-        glyph->root.bitmap_left = xpos;
-        glyph->root.bitmap_top  = ypos + ysize;
-
-        /* Allocate and read bitmap data */
-        {
-          FT_ULong  len = glyph->root.bitmap.pitch * ysize;
-
-
-          error = ft_glyphslot_alloc_bitmap( &glyph->root, len );
-          if ( !error )
-          {
-            error = pfr_load_bitmap_bits(
-                      p,
-                      stream->limit,
-                      format,
-                      FT_BOOL(face->header.color_flags & 2),
-                      &glyph->root.bitmap );
-          }
-        }
-      }
-
-      FT_FRAME_EXIT();
-    }
-
-  Exit:
-    return error;
-  }
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrsbit.h b/nx-X11/extras/freetype2/src/pfr/pfrsbit.h
deleted file mode 100644
index 015e9e6da..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrsbit.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrsbit.h                                                              */
-/*                                                                         */
-/*    FreeType PFR bitmap loader (specification).                          */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFRSBIT_H__
-#define __PFRSBIT_H__
-
-#include "pfrobjs.h"
-
-FT_BEGIN_HEADER
-
-  FT_LOCAL( FT_Error )
-  pfr_slot_load_bitmap( PFR_Slot  glyph,
-                        PFR_Size  size,
-                        FT_UInt   glyph_index );
-
-FT_END_HEADER
-
-#endif /* __PFR_SBIT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/pfrtypes.h b/nx-X11/extras/freetype2/src/pfr/pfrtypes.h
deleted file mode 100644
index a10a2b26c..000000000
--- a/nx-X11/extras/freetype2/src/pfr/pfrtypes.h
+++ /dev/null
@@ -1,364 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pfrtypes.h                                                             */
-/*                                                                         */
-/*    FreeType PFR data structures (specification only).                   */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PFRTYPES_H__
-#define __PFRTYPES_H__
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-
-FT_BEGIN_HEADER
-
-  /************************************************************************/
-
-  /* the PFR Header structure */
-  typedef struct  PFR_HeaderRec_
-  {
-    FT_UInt32  signature;
-    FT_UInt    version;
-    FT_UInt    signature2;
-    FT_UInt    header_size;
-
-    FT_UInt    log_dir_size;
-    FT_UInt    log_dir_offset;
-
-    FT_UInt    log_font_max_size;
-    FT_UInt32  log_font_section_size;
-    FT_UInt32  log_font_section_offset;
-
-    FT_UInt32  phy_font_max_size;
-    FT_UInt32  phy_font_section_size;
-    FT_UInt32  phy_font_section_offset;
-
-    FT_UInt    gps_max_size;
-    FT_UInt32  gps_section_size;
-    FT_UInt32  gps_section_offset;
-
-    FT_UInt    max_blue_values;
-    FT_UInt    max_x_orus;
-    FT_UInt    max_y_orus;
-
-    FT_UInt    phy_font_max_size_high;
-    FT_UInt    color_flags;
-
-    FT_UInt32  bct_max_size;
-    FT_UInt32  bct_set_max_size;
-    FT_UInt32  phy_bct_set_max_size;
-
-    FT_UInt    num_phy_fonts;
-    FT_UInt    max_vert_stem_snap;
-    FT_UInt    max_horz_stem_snap;
-    FT_UInt    max_chars;
-
-  } PFR_HeaderRec, *PFR_Header;
-
-
-  /* used in `color_flags' field of the PFR_Header */
-  typedef enum  PFR_HeaderFlags_
-  {
-    PFR_FLAG_BLACK_PIXEL   = 1,
-    PFR_FLAG_INVERT_BITMAP = 2
-
-  } PFR_HeaderFlags;
-
-
-  /************************************************************************/
-
-  typedef struct  PFR_LogFontRec_
-  {
-    FT_UInt32  size;
-    FT_UInt32  offset;
-
-    FT_Int32   matrix[4];
-    FT_UInt    stroke_flags;
-    FT_Int     stroke_thickness;
-    FT_Int     bold_thickness;
-    FT_Int32   miter_limit;
-
-    FT_UInt32  phys_size;
-    FT_UInt32  phys_offset;
-
-  } PFR_LogFontRec, *PFR_LogFont;
-
-
-  typedef enum  PFR_LogFlags_
-  {
-    PFR_LOG_EXTRA_ITEMS  = 0x40,
-    PFR_LOG_2BYTE_BOLD   = 0x20,
-    PFR_LOG_BOLD         = 0x10,
-    PFR_LOG_2BYTE_STROKE = 8,
-    PFR_LOG_STROKE       = 4,
-    PFR_LINE_JOIN_MASK   = 3
-
-  } PFR_LogFlags;
-
-
-  typedef enum  PFR_LineJoinFlags_
-  {
-    PFR_LINE_JOIN_MITER = 0,
-    PFR_LINE_JOIN_ROUND = 1,
-    PFR_LINE_JOIN_BEVEL = 2
-
-  } PFR_LineJoinFlags;
-
-
-  /************************************************************************/
-
-  typedef enum  PFR_BitmapFlags_
-  {
-    PFR_BITMAP_3BYTE_OFFSET   = 4,
-    PFR_BITMAP_2BYTE_SIZE     = 2,
-    PFR_BITMAP_2BYTE_CHARCODE = 1
-
-  } PFR_BitmapFlags;
-
-
-  typedef struct  PFR_BitmapCharRec_
-  {
-    FT_UInt    char_code;
-    FT_UInt    gps_size;
-    FT_UInt32  gps_offset;
-
-  } PFR_BitmapCharRec, *PFR_BitmapChar;
-
-
-  typedef enum  PFR_StrikeFlags_
-  {
-    PFR_STRIKE_2BYTE_COUNT  = 0x10,
-    PFR_STRIKE_3BYTE_OFFSET = 0x08,
-    PFR_STRIKE_3BYTE_SIZE   = 0x04,
-    PFR_STRIKE_2BYTE_YPPM   = 0x02,
-    PFR_STRIKE_2BYTE_XPPM   = 0x01
-
-  } PFR_StrikeFlags;
-
-
-  typedef struct  PFR_StrikeRec_
-  {
-    FT_UInt         x_ppm;
-    FT_UInt         y_ppm;
-    FT_UInt         flags;
-
-    FT_UInt32       gps_size;
-    FT_UInt32       gps_offset;
-
-    FT_UInt32       bct_size;
-    FT_UInt32       bct_offset;
-
-    /* optional */
-    FT_UInt         num_bitmaps;
-    PFR_BitmapChar  bitmaps;
-
-  } PFR_StrikeRec, *PFR_Strike;
-
-
-  /************************************************************************/
-
-  typedef struct  PFR_CharRec_
-  {
-    FT_UInt    char_code;
-    FT_Int     advance;
-    FT_UInt    gps_size;
-    FT_UInt32  gps_offset;
-
-  } PFR_CharRec, *PFR_Char;
-
-
-  /************************************************************************/
-
-  typedef struct  PFR_DimensionRec_
-  {
-    FT_UInt  standard;
-    FT_UInt  num_stem_snaps;
-    FT_Int*  stem_snaps;
-
-  } PFR_DimensionRec, *PFR_Dimension;
-
-  /************************************************************************/
-
-  typedef struct PFR_KernItemRec_*  PFR_KernItem;
-
-  typedef struct  PFR_KernItemRec_
-  {
-    PFR_KernItem  next;
-    FT_UInt       pair_count;
-    FT_UInt       pair_size;
-    FT_Int        base_adj;
-    FT_UInt       flags;
-    FT_UInt32     offset;
-    FT_UInt32     pair1;
-    FT_UInt32     pair2;
-
-  } PFR_KernItemRec;
-
-#define PFR_KERN_INDEX( g1, g2 ) \
-  ( ( (FT_UInt32)(g1) << 16 ) | (FT_UInt16)(g2) )
-
-#define PFR_KERN_PAIR_INDEX( pair )  \
-          PFR_KERN_INDEX( (pair)->glyph1, (pair)->glyph2 )
-
-  typedef struct  PFR_KernPairRec_
-  {
-    FT_UInt    glyph1;
-    FT_UInt    glyph2;
-    FT_Int     kerning;
-
-  } PFR_KernPairRec, *PFR_KernPair;
-
-  /************************************************************************/
-
-  typedef struct  PFR_PhyFontRec_
-  {
-    FT_Memory          memory;
-    FT_UInt32          offset;
-
-    FT_UInt            font_ref_number;
-    FT_UInt            outline_resolution;
-    FT_UInt            metrics_resolution;
-    FT_BBox            bbox;
-    FT_UInt            flags;
-    FT_UInt            standard_advance;
-
-    FT_Int             ascent;   /* optional, bbox.yMax if not present */
-    FT_Int             descent;  /* optional, bbox.yMin if not present */
-    FT_Int             leading;  /* optional, 0 if not present         */
-
-    PFR_DimensionRec   horizontal;
-    PFR_DimensionRec   vertical;
-
-    FT_String*         font_id;
-    FT_String*         family_name;
-    FT_String*         style_name;
-
-    FT_UInt            num_strikes;
-    FT_UInt            max_strikes;
-    PFR_StrikeRec*     strikes;
-
-    FT_UInt            num_blue_values;
-    FT_Int            *blue_values;
-    FT_UInt            blue_fuzz;
-    FT_UInt            blue_scale;
-
-    FT_UInt            num_chars;
-    FT_UInt32          chars_offset;
-    PFR_Char           chars;
-
-    FT_UInt            num_kern_pairs;
-    PFR_KernItem       kern_items;
-    PFR_KernItem*      kern_items_tail;
-    PFR_KernPair       kern_pairs;
-
-    /* not part of the spec, but used during load */
-    FT_UInt32          bct_offset;
-    FT_Byte*           cursor;
-
-  } PFR_PhyFontRec, *PFR_PhyFont;
-
-
-  typedef enum  PFR_PhyFlags_
-  {
-    PFR_PHY_EXTRA_ITEMS      = 0x80,
-    PFR_PHY_3BYTE_GPS_OFFSET = 0x20,
-    PFR_PHY_2BYTE_GPS_SIZE   = 0x10,
-    PFR_PHY_ASCII_CODE       = 0x08,
-    PFR_PHY_PROPORTIONAL     = 0x04,
-    PFR_PHY_2BYTE_CHARCODE   = 0x02,
-    PFR_PHY_VERTICAL         = 0x01
-
-  } PFR_PhyFlags;
-
-
-  typedef enum PFR_KernFlags_
-  {
-    PFR_KERN_2BYTE_CHAR  = 0x01,
-    PFR_KERN_2BYTE_ADJ   = 0x02
-
-  } PFR_KernFlags;
-
-
-  /************************************************************************/
-
-  typedef enum  PFR_GlyphFlags_
-  {
-    PFR_GLYPH_IS_COMPOUND   = 0x80,
-    PFR_GLYPH_EXTRA_ITEMS   = 0x08,
-    PFR_GLYPH_1BYTE_XYCOUNT = 0x04,
-    PFR_GLYPH_XCOUNT        = 0x02,
-    PFR_GLYPH_YCOUNT        = 0x01
-
-  } PFR_GlyphFlags;
-
-
-  /* controlled coordinate */
-  typedef struct  PFR_CoordRec_
-  {
-    FT_UInt  org;
-    FT_UInt  cur;
-
-  } PFR_CoordRec, *PFR_Coord;
-
-
-  typedef struct  PFR_SubGlyphRec_
-  {
-    FT_Fixed   x_scale;
-    FT_Fixed   y_scale;
-    FT_Int     x_delta;
-    FT_Int     y_delta;
-    FT_UInt32  gps_offset;
-    FT_UInt    gps_size;
-
-  } PFR_SubGlyphRec, *PFR_SubGlyph;
-
-
-  typedef enum  PFR_SubgGlyphFlags_
-  {
-    PFR_SUBGLYPH_3BYTE_OFFSET = 0x80,
-    PFR_SUBGLYPH_2BYTE_SIZE   = 0x40,
-    PFR_SUBGLYPH_YSCALE       = 0x20,
-    PFR_SUBGLYPH_XSCALE       = 0x10
-
-  } PFR_SubGlyphFlags;
-
-
-  typedef struct  PFR_GlyphRec_
-  {
-    FT_Byte           format;
-
-    FT_UInt           num_x_control;
-    FT_UInt           num_y_control;
-    FT_UInt           max_xy_control;
-    FT_Pos*           x_control;
-    FT_Pos*           y_control;
-
-
-    FT_UInt           num_subs;
-    FT_UInt           max_subs;
-    PFR_SubGlyphRec*  subs;
-
-    FT_GlyphLoader    loader;
-    FT_Bool           path_begun;
-
-  } PFR_GlyphRec, *PFR_Glyph;
-
-
-FT_END_HEADER
-
-#endif /* __PFRTYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pfr/rules.mk b/nx-X11/extras/freetype2/src/pfr/rules.mk
deleted file mode 100644
index 60b96c741..000000000
--- a/nx-X11/extras/freetype2/src/pfr/rules.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# FreeType 2 PFR driver configuration rules
-#
-
-
-# Copyright 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# pfr driver directory
-#
-PFR_DIR := $(SRC_DIR)/pfr
-
-
-# compilation flags for the driver
-#
-PFR_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PFR_DIR))
-
-
-# pfr driver sources (i.e., C files)
-#
-PFR_DRV_SRC := $(PFR_DIR)/pfrload.c  \
-               $(PFR_DIR)/pfrgload.c \
-               $(PFR_DIR)/pfrcmap.c  \
-               $(PFR_DIR)/pfrdrivr.c \
-               $(PFR_DIR)/pfrsbit.c  \
-               $(PFR_DIR)/pfrobjs.c
-
-# pfr driver headers
-#
-PFR_DRV_H := $(PFR_DRV_SRC:%.c=%.h) \
-             $(PFR_DIR)/pfrerror.h  \
-             $(PFR_DIR)/pfrtypes.h
-
-
-# Pfr driver object(s)
-#
-#   PFR_DRV_OBJ_M is used during `multi' builds
-#   PFR_DRV_OBJ_S is used during `single' builds
-#
-PFR_DRV_OBJ_M := $(PFR_DRV_SRC:$(PFR_DIR)/%.c=$(OBJ_DIR)/%.$O)
-PFR_DRV_OBJ_S := $(OBJ_DIR)/pfr.$O
-
-# pfr driver source file for single build
-#
-PFR_DRV_SRC_S := $(PFR_DIR)/pfr.c
-
-
-# pfr driver - single object
-#
-$(PFR_DRV_OBJ_S): $(PFR_DRV_SRC_S) $(PFR_DRV_SRC) $(FREETYPE_H) $(PFR_DRV_H)
-	$(PFR_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(PFR_DRV_SRC_S))
-
-
-# pfr driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(PFR_DIR)/%.c $(FREETYPE_H) $(PFR_DRV_H)
-	$(PFR_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(PFR_DRV_OBJ_S)
-DRV_OBJS_M += $(PFR_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psaux/Jamfile b/nx-X11/extras/freetype2/src/psaux/Jamfile
deleted file mode 100644
index fc834b32c..000000000
--- a/nx-X11/extras/freetype2/src/psaux/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/psaux Jamfile (c) 2001, 2002 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) psaux ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = psauxmod psobjs t1decode t1cmap ;
-  }
-  else
-  {
-    _sources = psaux ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/psaux Jamfile
diff --git a/nx-X11/extras/freetype2/src/psaux/descrip.mms b/nx-X11/extras/freetype2/src/psaux/descrip.mms
deleted file mode 100644
index bff019243..000000000
--- a/nx-X11/extras/freetype2/src/psaux/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 PSaux driver compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psaux])
-
-OBJS=psaux.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psaux/module.mk b/nx-X11/extras/freetype2/src/psaux/module.mk
deleted file mode 100644
index 29c3e28a9..000000000
--- a/nx-X11/extras/freetype2/src/psaux/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 PSaux module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_psaux_module
-
-add_psaux_module:
-	$(OPEN_DRIVER)psaux_module_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)psaux     $(ECHO_DRIVER_DESC)Postscript Type 1 & Type 2 helper module$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psaux/psaux.c b/nx-X11/extras/freetype2/src/psaux/psaux.c
deleted file mode 100644
index 992818414..000000000
--- a/nx-X11/extras/freetype2/src/psaux/psaux.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psaux.c                                                                */
-/*                                                                         */
-/*    FreeType auxiliary PostScript driver component (body only).          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "psobjs.c"
-#include "psauxmod.c"
-#include "t1decode.c"
-#include "t1cmap.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/psauxerr.h b/nx-X11/extras/freetype2/src/psaux/psauxerr.h
deleted file mode 100644
index d0baa3cbb..000000000
--- a/nx-X11/extras/freetype2/src/psaux/psauxerr.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psauxerr.h                                                             */
-/*                                                                         */
-/*    PS auxiliary module error codes (specification only).                */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the PS auxiliary module error enumeration */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __PSAUXERR_H__
-#define __PSAUXERR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  PSaux_Err_
-#define FT_ERR_BASE    FT_Mod_Err_PSaux
-
-#include FT_ERRORS_H
-
-#endif /* __PSAUXERR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/psauxmod.c b/nx-X11/extras/freetype2/src/psaux/psauxmod.c
deleted file mode 100644
index 756ec1c56..000000000
--- a/nx-X11/extras/freetype2/src/psaux/psauxmod.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psauxmod.c                                                             */
-/*                                                                         */
-/*    FreeType auxiliary PostScript module implementation (body).          */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "psauxmod.h"
-#include "psobjs.h"
-#include "t1decode.h"
-#include "t1cmap.h"
-
-
-  FT_CALLBACK_TABLE_DEF
-  const PS_Table_FuncsRec  ps_table_funcs =
-  {
-    ps_table_new,
-    ps_table_done,
-    ps_table_add,
-    ps_table_release
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const PS_Parser_FuncsRec  ps_parser_funcs =
-  {
-    ps_parser_init,
-    ps_parser_done,
-    ps_parser_skip_spaces,
-    ps_parser_skip_PS_token,
-    ps_parser_to_int,
-    ps_parser_to_fixed,
-    ps_parser_to_bytes,
-    ps_parser_to_coord_array,
-    ps_parser_to_fixed_array,
-    ps_parser_to_token,
-    ps_parser_to_token_array,
-    ps_parser_load_field,
-    ps_parser_load_field_table
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const T1_Builder_FuncsRec  t1_builder_funcs =
-  {
-    t1_builder_init,
-    t1_builder_done,
-    t1_builder_check_points,
-    t1_builder_add_point,
-    t1_builder_add_point1,
-    t1_builder_add_contour,
-    t1_builder_start_point,
-    t1_builder_close_contour
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const T1_Decoder_FuncsRec  t1_decoder_funcs =
-  {
-    t1_decoder_init,
-    t1_decoder_done,
-    t1_decoder_parse_charstrings
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const T1_CMap_ClassesRec  t1_cmap_classes =
-  {
-    &t1_cmap_standard_class_rec,
-    &t1_cmap_expert_class_rec,
-    &t1_cmap_custom_class_rec,
-    &t1_cmap_unicode_class_rec
-  };
-
-
-  static
-  const PSAux_Interface  psaux_interface =
-  {
-    &ps_table_funcs,
-    &ps_parser_funcs,
-    &t1_builder_funcs,
-    &t1_decoder_funcs,
-
-    t1_decrypt,
-    
-    (const T1_CMap_ClassesRec*) &t1_cmap_classes,
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Module_Class  psaux_module_class =
-  {
-    0,
-    sizeof( FT_ModuleRec ),
-    "psaux",
-    0x20000L,
-    0x20000L,
-
-    &psaux_interface,  /* module-specific interface */
-
-    (FT_Module_Constructor)0,
-    (FT_Module_Destructor) 0,
-    (FT_Module_Requester)  0
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/psauxmod.h b/nx-X11/extras/freetype2/src/psaux/psauxmod.h
deleted file mode 100644
index 92ac05604..000000000
--- a/nx-X11/extras/freetype2/src/psaux/psauxmod.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psauxmod.h                                                             */
-/*                                                                         */
-/*    FreeType auxiliary PostScript module implementation (specification). */
-/*                                                                         */
-/*  Copyright 2000-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSAUXMOD_H__
-#define __PSAUXMOD_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Module_Class )  psaux_driver_class;
-
-
-FT_END_HEADER
-
-#endif /* __PSAUXMOD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/psobjs.c b/nx-X11/extras/freetype2/src/psaux/psobjs.c
deleted file mode 100644
index d02986cee..000000000
--- a/nx-X11/extras/freetype2/src/psaux/psobjs.c
+++ /dev/null
@@ -1,1784 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psobjs.c                                                               */
-/*                                                                         */
-/*    Auxiliary functions for PostScript fonts (body).                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_DEBUG_H
-
-#include "psobjs.h"
-
-#include "psauxerr.h"
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                             PS_TABLE                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ps_table_new                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a PS_Table.                                            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    table  :: The address of the target table.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    count  :: The table size = the maximum number of elements.         */
-  /*                                                                       */
-  /*    memory :: The memory object to use for all subsequent              */
-  /*              reallocations.                                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  ps_table_new( PS_Table   table,
-                FT_Int     count,
-                FT_Memory  memory )
-  {
-    FT_Error  error;
-
-
-    table->memory = memory;
-    if ( FT_NEW_ARRAY( table->elements, count ) ||
-         FT_NEW_ARRAY( table->lengths,  count ) )
-      goto Exit;
-
-    table->max_elems = count;
-    table->init      = 0xDEADBEEFUL;
-    table->num_elems = 0;
-    table->block     = 0;
-    table->capacity  = 0;
-    table->cursor    = 0;
-
-    *(PS_Table_FuncsRec*)&table->funcs = ps_table_funcs;
-
-  Exit:
-    if ( error )
-      FT_FREE( table->elements );
-
-    return error;
-  }
-
-
-  static void
-  shift_elements( PS_Table  table,
-                  FT_Byte*  old_base )
-  {
-    FT_Long    delta  = (FT_Long)( table->block - old_base );
-    FT_Byte**  offset = table->elements;
-    FT_Byte**  limit  = offset + table->max_elems;
-
-
-    for ( ; offset < limit; offset++ )
-    {
-      if ( offset[0] )
-        offset[0] += delta;
-    }
-  }
-
-
-  static FT_Error
-  reallocate_t1_table( PS_Table  table,
-                       FT_Long   new_size )
-  {
-    FT_Memory  memory   = table->memory;
-    FT_Byte*   old_base = table->block;
-    FT_Error   error;
-
-
-    /* allocate new base block */
-    if ( FT_ALLOC( table->block, new_size ) )
-    {
-      table->block = old_base;
-      return error;
-    }
-
-    /* copy elements and shift offsets */
-    if (old_base )
-    {
-      FT_MEM_COPY( table->block, old_base, table->capacity );
-      shift_elements( table, old_base );
-      FT_FREE( old_base );
-    }
-
-    table->capacity = new_size;
-
-    return PSaux_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ps_table_add                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Adds an object to a PS_Table, possibly growing its memory block.   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    table  :: The target table.                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    idx    :: The index of the object in the table.                    */
-  /*                                                                       */
-  /*    object :: The address of the object to copy in memory.             */
-  /*                                                                       */
-  /*    length :: The length in bytes of the source object.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.  An error is returned if a  */
-  /*    reallocation fails.                                                */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  ps_table_add( PS_Table    table,
-                FT_Int      idx,
-                void*       object,
-                FT_PtrDist  length )
-  {
-    if ( idx < 0 || idx > table->max_elems )
-    {
-      FT_ERROR(( "ps_table_add: invalid index\n" ));
-      return PSaux_Err_Invalid_Argument;
-    }
-
-    /* grow the base block if needed */
-    if ( table->cursor + length > table->capacity )
-    {
-      FT_Error   error;
-      FT_Offset  new_size  = table->capacity;
-      FT_Long    in_offset;
-
-
-      in_offset = (FT_Long)((FT_Byte*)object - table->block);
-      if ( (FT_ULong)in_offset >= table->capacity )
-        in_offset = -1;
-
-      while ( new_size < table->cursor + length )
-      {
-        /* increase size by 25% and round up to the nearest multiple
-           of 1024 */
-        new_size += ( new_size >> 2 ) + 1;
-        new_size  = FT_PAD_CEIL( new_size, 1024 );
-      }
-
-      error = reallocate_t1_table( table, new_size );
-      if ( error )
-        return error;
-
-      if ( in_offset >= 0 )
-        object = table->block + in_offset;
-    }
-
-    /* add the object to the base block and adjust offset */
-    table->elements[idx] = table->block + table->cursor;
-    table->lengths [idx] = length;
-    FT_MEM_COPY( table->block + table->cursor, object, length );
-
-    table->cursor += length;
-    return PSaux_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ps_table_done                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a PS_TableRec (i.e., reallocate it to its current        */
-  /*    cursor).                                                           */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    table :: The target table.                                         */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function does NOT release the heap's memory block.  It is up  */
-  /*    to the caller to clean it, or reference it in its own structures.  */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ps_table_done( PS_Table  table )
-  {
-    FT_Memory  memory = table->memory;
-    FT_Error   error;
-    FT_Byte*   old_base = table->block;
-
-
-    /* should never fail, because rec.cursor <= rec.size */
-    if ( !old_base )
-      return;
-
-    if ( FT_ALLOC( table->block, table->cursor ) )
-      return;
-    FT_MEM_COPY( table->block, old_base, table->cursor );
-    shift_elements( table, old_base );
-
-    table->capacity = table->cursor;
-    FT_FREE( old_base );
-
-    FT_UNUSED( error );
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ps_table_release( PS_Table  table )
-  {
-    FT_Memory  memory = table->memory;
-
-
-    if ( (FT_ULong)table->init == 0xDEADBEEFUL )
-    {
-      FT_FREE( table->block );
-      FT_FREE( table->elements );
-      FT_FREE( table->lengths );
-      table->init = 0;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            T1 PARSER                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* In the PostScript Language Reference Manual (PLRM) the following */
-  /* characters are called `whitespace characters'.                   */
-#define IS_T1_WHITESPACE( c )  ( (c) == ' '  || (c) == '\t' )
-#define IS_T1_LINESPACE( c )   ( (c) == '\r' || (c) == '\n' || (c) == '\f' )
-#define IS_T1_NULLSPACE( c )   ( (c) == '\0' )
-
-  /* According to the PLRM all whitespace characters are equivalent, */
-  /* except in comments and strings.                                 */
-#define IS_T1_SPACE( c )  ( IS_T1_WHITESPACE( c ) || \
-                            IS_T1_LINESPACE( c )  || \
-                            IS_T1_NULLSPACE( c )  )
-
-
-  /* The following array is used by various functions to quickly convert */
-  /* digits (both decimal and non-decimal) into numbers.                 */
-
-#if 'A' == 65
-  /* ASCII */
-
-  static const char  ft_char_table[128] =
-  {
-    /* 0x00 */
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-     0,  1,  2,  3,  4,  5,  6,  7,  8,  9, -1, -1, -1, -1, -1, -1,
-    -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-    25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
-    -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
-    25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
-  };
-
-  /* no character >= 0x80 can represent a valid number */
-#define OP  >=
-
-#endif /* 'A' == 65 */
-
-#if 'A' == 193
-  /* EBCDIC */
-
-  static const char  ft_char_table[128] =
-  {
-    /* 0x80 */
-    -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, -1, -1, -1, -1, -1, -1,
-    -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1,
-    -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, -1, -1, -1, -1, -1, -1,
-    -1, 19, 20, 21, 22, 23, 24, 25, 26, 27, -1, -1, -1, -1, -1, -1,
-    -1, -1, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1,
-     0,  1,  2,  3,  4,  5,  6,  7,  8,  9, -1, -1, -1, -1, -1, -1,
-  }
-
-  /* no character < 0x80 can represent a valid number */
-#define OP  <
-
-#endif /* 'A' == 193 */
-
-
-  /* first character must be already part of the comment */
-
-  static void
-  skip_comment( FT_Byte*  *acur,
-                FT_Byte*   limit )
-  {
-    FT_Byte*  cur = *acur;
-
-
-    while ( cur < limit )
-    {
-      if ( IS_T1_LINESPACE( *cur ) )
-        break;
-      cur++;
-    }
-
-    *acur = cur;
-  }
-
-
-  static void
-  skip_spaces( FT_Byte*  *acur,
-               FT_Byte*   limit )
-  {
-    FT_Byte*  cur = *acur;
-
-
-    while ( cur < limit )
-    {
-      if ( !IS_T1_SPACE( *cur ) )
-      {
-        if ( *cur == '%' )
-          /* According to the PLRM, a comment is equal to a space. */
-          skip_comment( &cur, limit );
-        else
-          break;
-      }
-      cur++;
-    }
-
-    *acur = cur;
-  }
-
-
-  /* first character must be `(' */
-
-  static void
-  skip_literal_string( FT_Byte*  *acur,
-                       FT_Byte*   limit )
-  {
-    FT_Byte*  cur   = *acur;
-    FT_Int    embed = 0;
-
-
-    while ( cur < limit )
-    {
-      if ( *cur == '\\' )
-        cur++;
-      else if ( *cur == '(' )
-        embed++;
-      else if ( *cur == ')' )
-      {
-        embed--;
-        if ( embed == 0 )
-        {
-          cur++;
-          break;
-        }
-      }
-      cur++;
-    }
-
-    *acur = cur;
-  }
-
-
-  /* first character must be `<' */
-
-  static void
-  skip_string( PS_Parser  parser )
-  {
-    FT_Byte*  cur   = parser->cursor;
-    FT_Byte*  limit = parser->limit;
-
-
-    while ( ++cur < limit )
-    {
-      int  d;
-
-
-      /* All whitespace characters are ignored. */
-      skip_spaces( &cur, limit );
-      if ( cur >= limit )
-        break;
-
-      if ( *cur OP 0x80 )
-        break;
-
-      d = ft_char_table[*cur & 0x7F];
-      if ( d < 0 || d >= 16 )
-        break;
-    }
-
-    if ( cur < limit && *cur != '>' )
-      parser->error = PSaux_Err_Invalid_File_Format;
-    else
-      cur++;
-
-    parser->cursor = cur;
-  }
-
-
-  /***********************************************************************/
-  /*                                                                     */
-  /* All exported parsing routines handle leading whitespace and stop at */
-  /* the first character which isn't part of the just handled token.     */
-  /*                                                                     */
-  /***********************************************************************/
-
-
-  FT_LOCAL_DEF( void )
-  ps_parser_skip_PS_token( PS_Parser  parser )
-  {
-    /* Note: PostScript allows any non-delimiting, non-whitespace        */
-    /*       character in a name (PS Ref Manual, 3rd ed, p31).           */
-    /*       PostScript delimiters are (, ), <, >, [, ], {, }, /, and %. */
-
-    FT_Byte*  cur   = parser->cursor;
-    FT_Byte*  limit = parser->limit;
-
-
-    skip_spaces( &cur, limit );             /* this also skips comments */
-    if ( cur >= limit )
-      goto Exit;
-
-    /* self-delimiting, single-character tokens */
-    if ( *cur == '[' || *cur == ']' ||
-         *cur == '{' || *cur == '}' )
-    {
-      cur++;
-      goto Exit;
-    }
-
-    if ( *cur == '(' )                              /* (...) */
-    {
-      skip_literal_string( &cur, limit );
-      goto Exit;
-    }
-
-    if ( *cur == '<' )                              /* <...> */
-    {
-      if ( cur + 1 < limit && *(cur + 1) == '<' )   /* << */
-      {
-        cur++;
-        cur++;
-        goto Exit;
-      }
-      parser->cursor = cur;
-      skip_string( parser );
-      return;
-    }
-
-    if ( *cur == '>' )
-    {
-      cur++;
-      if ( cur >= limit || *cur != '>' )             /* >> */
-      {
-        parser->error = PSaux_Err_Invalid_File_Format;
-        goto Exit;
-      }
-      cur++;
-      goto Exit;
-    }
-
-    if ( *cur == '/' )
-      cur++;
-
-    /* anything else */
-    while ( cur < limit )
-    {
-      if ( IS_T1_SPACE( *cur )        ||
-           *cur == '('                ||
-           *cur == '/'                ||
-           *cur == '%'                ||
-           *cur == '[' || *cur == ']' ||
-           *cur == '{' || *cur == '}' ||
-           *cur == '<' || *cur == '>' )
-        break;
-
-      if ( *cur == ')' )
-      {
-        parser->error = PSaux_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      cur++;
-    }
-
-  Exit:
-    parser->cursor = cur;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ps_parser_skip_spaces( PS_Parser  parser )
-  {
-    skip_spaces( &parser->cursor, parser->limit );
-  }
-
-
-  /* `token' here means either something between balanced delimiters */
-  /* or the next token; the delimiters are not removed.              */
-
-  FT_LOCAL_DEF( void )
-  ps_parser_to_token( PS_Parser  parser,
-                      T1_Token   token )
-  {
-    FT_Byte*  cur;
-    FT_Byte*  limit;
-    FT_Byte   starter, ender;
-    FT_Int    embed;
-
-
-    token->type  = T1_TOKEN_TYPE_NONE;
-    token->start = 0;
-    token->limit = 0;
-
-    /* first of all, skip leading whitespace */
-    ps_parser_skip_spaces( parser );
-
-    cur   = parser->cursor;
-    limit = parser->limit;
-
-    if ( cur >= limit )
-      return;
-
-    switch ( *cur )
-    {
-      /************* check for literal string *****************/
-    case '(':
-      token->type  = T1_TOKEN_TYPE_STRING;
-      token->start = cur;
-      skip_literal_string( &cur, limit );
-      if ( cur < limit )
-        token->limit = cur;
-      break;
-
-      /************* check for programs/array *****************/
-    case '{':
-      token->type = T1_TOKEN_TYPE_ARRAY;
-      ender = '}';
-      goto Lookup_Ender;
-
-      /************* check for table/array ********************/
-    case '[':
-      token->type = T1_TOKEN_TYPE_ARRAY;
-      ender = ']';
-      /* fall through */
-
-    Lookup_Ender:
-      embed        = 1;
-      starter      = *cur;
-      token->start = cur++;
-
-      /* we need this to catch `[ ]' */
-      parser->cursor = cur;
-      ps_parser_skip_spaces( parser );
-      cur = parser->cursor;
-
-      while ( cur < limit && !parser->error )
-      {
-        if ( *cur == starter )
-          embed++;
-        else if ( *cur == ender )
-        {
-          embed--;
-          if ( embed <= 0 )
-          {
-            token->limit = ++cur;
-            break;
-          }
-        }
-
-        parser->cursor = cur;
-        ps_parser_skip_PS_token( parser );
-        /* we need this to catch `[XXX ]' */
-        ps_parser_skip_spaces  ( parser );
-        cur = parser->cursor;
-      }
-      break;
-
-      /* ************ otherwise, it is any token **************/
-    default:
-      token->start = cur;
-      token->type  = T1_TOKEN_TYPE_ANY;
-      ps_parser_skip_PS_token( parser );
-      cur = parser->cursor;
-      if ( !parser->error )
-        token->limit = cur;
-    }
-
-    if ( !token->limit )
-    {
-      token->start = 0;
-      token->type  = T1_TOKEN_TYPE_NONE;
-    }
-
-    parser->cursor = cur;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ps_parser_to_token_array( PS_Parser  parser,
-                            T1_Token   tokens,
-                            FT_UInt    max_tokens,
-                            FT_Int*    pnum_tokens )
-  {
-    T1_TokenRec  master;
-
-
-    *pnum_tokens = -1;
-
-    /* this also handles leading whitespace */
-    ps_parser_to_token( parser, &master );
-
-    if ( master.type == T1_TOKEN_TYPE_ARRAY )
-    {
-      FT_Byte*  old_cursor = parser->cursor;
-      FT_Byte*  old_limit  = parser->limit;
-      T1_Token  cur        = tokens;
-      T1_Token  limit      = cur + max_tokens;
-
-
-      /* don't include outermost delimiters */
-      parser->cursor = master.start + 1;
-      parser->limit  = master.limit - 1;
-
-      while ( parser->cursor < parser->limit )
-      {
-        T1_TokenRec  token;
-
-
-        ps_parser_to_token( parser, &token );
-        if ( !token.type )
-          break;
-
-        if ( cur < limit )
-          *cur = token;
-
-        cur++;
-      }
-
-      *pnum_tokens = (FT_Int)( cur - tokens );
-
-      parser->cursor = old_cursor;
-      parser->limit  = old_limit;
-    }
-  }
-
-
-  /* first character must be already part of the number */
-
-  static FT_Long
-  ps_radix( FT_Long    radixBase,
-            FT_Byte*  *acur,
-            FT_Byte*   limit )
-  {
-    FT_Long   result = 0;
-    FT_Byte*  cur    = *acur;
-
-
-    if ( radixBase < 2 || radixBase > 36 )
-      return 0;
-
-    while ( cur < limit )
-    {
-      int  d;
-
-
-      if ( *cur OP 0x80 )
-        break;
-
-      d = ft_char_table[*cur & 0x7F];
-      if ( d < 0 || d >= radixBase )
-        break;
-
-      result = result * radixBase + d;
-
-      cur++;
-    }
-
-    *acur = cur;
-
-    return result;
-  }
-
-
-  /* first character must be already part of the number */
-
-  static FT_Long
-  ps_toint( FT_Byte*  *acur,
-            FT_Byte*   limit )
-  {
-    FT_Long   result = 0;
-    FT_Byte*  cur    = *acur;
-    FT_Byte   c;
-
-
-    if ( cur >= limit )
-      goto Exit;
-
-    c = *cur;
-    if ( c == '-' )
-      cur++;
-
-    while ( cur < limit )
-    {
-      int  d;
-
-
-      if ( *cur == '#' )
-      {
-        cur++;
-        result = ps_radix( result, &cur, limit );
-        break;
-      }
-
-      if ( *cur OP 0x80 )
-        break;
-
-      d = ft_char_table[*cur & 0x7F];
-      if ( d < 0 || d >= 10 )
-        break;
-      result = result * 10 + d;
-
-      cur++;
-    };
-
-    if ( c == '-' )
-      result = -result;
-
-  Exit:
-    *acur = cur;
-    return result;
-  }
-
-
-  /* first character must be `<' if `delimiters' is non-zero */
-
-  static FT_Error
-  ps_tobytes( FT_Byte*  *acur,
-              FT_Byte*   limit,
-              FT_Long    max_bytes,
-              FT_Byte*   bytes,
-              FT_Long*   pnum_bytes,
-              FT_Bool    delimiters )
-  {
-    FT_Error  error = PSaux_Err_Ok;
-
-    FT_Byte*  cur = *acur;
-    FT_Long   n   = 0;
-
-
-    if ( cur >= limit )
-      goto Exit;
-
-    if ( delimiters )
-    {
-      if ( *cur != '<' )
-      {
-        error = PSaux_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      cur++;
-    }
-
-    max_bytes = max_bytes * 2;
-
-    for ( n = 0; cur < limit; n++, cur++ )
-    {
-      int  d;
-
-
-      if ( n >= max_bytes )
-        /* buffer is full */
-        goto Exit;
-
-      /* All whitespace characters are ignored. */
-      skip_spaces( &cur, limit );
-      if ( cur >= limit )
-        break;
-
-      if ( *cur OP 0x80 )
-        break;
-
-      d = ft_char_table[*cur & 0x7F];
-      if ( d < 0 || d >= 16 )
-        break;
-
-      /* <f> == <f0> != <0f> */
-      bytes[n / 2] = (FT_Byte)( ( n % 2 ) ? bytes[n / 2] + d
-                                          : d * 16 );
-    }
-
-    if ( delimiters )
-    {
-      if ( cur < limit && *cur != '>' )
-      {
-        error = PSaux_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      cur++;
-    }
-
-    *acur = cur;
-
-  Exit:
-    *pnum_bytes = ( n + 1 ) / 2;
-
-    return error;
-  }
-
-
-  /* first character must be already part of the number */
-
-  static FT_Long
-  ps_tofixed( FT_Byte*  *acur,
-              FT_Byte*   limit,
-              FT_Long    power_ten )
-  {
-    FT_Byte*  cur  = *acur;
-    FT_Long   num, divider, result;
-    FT_Int    sign = 0;
-
-
-    if ( cur >= limit )
-      return 0;
-
-    /* first of all, check the sign */
-    if ( *cur == '-' && cur + 1 < limit )
-    {
-      sign = 1;
-      cur++;
-    }
-
-    /* then, read the integer part, if any */
-    if ( *cur != '.' )
-      result = ps_toint( &cur, limit ) << 16;
-    else
-      result = 0;
-
-    num     = 0;
-    divider = 1;
-
-    if ( cur >= limit )
-      goto Exit;
-
-    /* read decimal part, if any */
-    if ( *cur == '.' && cur + 1 < limit )
-    {
-      cur++;
-
-      for (;;)
-      {
-        int  d;
-
-
-        if ( *cur OP 0x80 )
-          break;
-
-        d = ft_char_table[*cur & 0x7F];
-        if ( d < 0 || d >= 10 )
-          break;
-
-        if ( divider < 10000000L )
-        {
-          num      = num * 10 + d;
-          divider *= 10;
-        }
-
-        cur++;
-        if ( cur >= limit )
-          break;
-      }
-    }
-
-    /* read exponent, if any */
-    if ( cur + 1 < limit && ( *cur == 'e' || *cur == 'E' ) )
-    {
-      cur++;
-      power_ten += ps_toint( &cur, limit );
-    }
-
-  Exit:
-    /* raise to power of ten if needed */
-    while ( power_ten > 0 )
-    {
-      result = result * 10;
-      num    = num * 10;
-      power_ten--;
-    }
-
-    while ( power_ten < 0 )
-    {
-      result  = result / 10;
-      divider = divider * 10;
-      power_ten++;
-    }
-
-    if ( num )
-      result += FT_DivFix( num, divider );
-
-    if ( sign )
-      result = -result;
-
-    *acur = cur;
-    return result;
-  }
-
-
-  /* first character must be a delimiter or a part of a number */
-
-  static FT_Int
-  ps_tocoordarray( FT_Byte*  *acur,
-                   FT_Byte*   limit,
-                   FT_Int     max_coords,
-                   FT_Short*  coords )
-  {
-    FT_Byte*  cur   = *acur;
-    FT_Int    count = 0;
-    FT_Byte   c, ender;
-
-
-    if ( cur >= limit )
-      goto Exit;
-
-    /* check for the beginning of an array; otherwise, only one number */
-    /* will be read                                                    */
-    c     = *cur;
-    ender = 0;
-
-    if ( c == '[' )
-      ender = ']';
-
-    if ( c == '{' )
-      ender = '}';
-
-    if ( ender )
-      cur++;
-
-    /* now, read the coordinates */
-    while ( cur < limit )
-    {
-      /* skip whitespace in front of data */
-      skip_spaces( &cur, limit );
-      if ( cur >= limit )
-        goto Exit;
-
-      if ( count >= max_coords )
-        break;
-
-      if ( c == ender )
-      {
-        cur++;
-        break;
-      }
-
-      coords[count] = (FT_Short)( ps_tofixed( &cur, limit, 0 ) >> 16 );
-      count++;
-
-      if ( !ender )
-        break;
-    }
-
-  Exit:
-    *acur = cur;
-    return count;
-  }
-
-
-  /* first character must be a delimiter or a part of a number */
-
-  static FT_Int
-  ps_tofixedarray( FT_Byte*  *acur,
-                   FT_Byte*   limit,
-                   FT_Int     max_values,
-                   FT_Fixed*  values,
-                   FT_Int     power_ten )
-  {
-    FT_Byte*  cur   = *acur;
-    FT_Int    count = 0;
-    FT_Byte   c, ender;
-
-
-    if ( cur >= limit )
-      goto Exit;
-
-    /* Check for the beginning of an array.  Otherwise, only one number */
-    /* will be read.                                                    */
-    c     = *cur;
-    ender = 0;
-
-    if ( c == '[' )
-      ender = ']';
-
-    if ( c == '{' )
-      ender = '}';
-
-    if ( ender )
-      cur++;
-
-    /* now, read the values */
-    while ( cur < limit )
-    {
-      /* skip whitespace in front of data */
-      skip_spaces( &cur, limit );
-      if ( cur >= limit )
-        goto Exit;
-
-      if ( count >= max_values )
-        break;
-
-      if ( c == ender )
-      {
-        cur++;
-        break;
-      }
-
-      values[count] = ps_tofixed( &cur, limit, power_ten );
-      count++;
-
-      if ( !ender )
-        break;
-    }
-
-  Exit:
-    *acur = cur;
-    return count;
-  }
-
-
-#if 0
-
-  static FT_String*
-  ps_tostring( FT_Byte**  cursor,
-               FT_Byte*   limit,
-               FT_Memory  memory )
-  {
-    FT_Byte*    cur = *cursor;
-    FT_PtrDist  len = 0;
-    FT_Int      count;
-    FT_String*  result;
-    FT_Error    error;
-
-
-    /* XXX: some stupid fonts have a `Notice' or `Copyright' string     */
-    /*      that simply doesn't begin with an opening parenthesis, even */
-    /*      though they have a closing one!  E.g. "amuncial.pfb"        */
-    /*                                                                  */
-    /*      We must deal with these ill-fated cases there.  Note that   */
-    /*      these fonts didn't work with the old Type 1 driver as the   */
-    /*      notice/copyright was not recognized as a valid string token */
-    /*      and made the old token parser commit errors.                */
-
-    while ( cur < limit && ( *cur == ' ' || *cur == '\t' ) )
-      cur++;
-    if ( cur + 1 >= limit )
-      return 0;
-
-    if ( *cur == '(' )
-      cur++;  /* skip the opening parenthesis, if there is one */
-
-    *cursor = cur;
-    count   = 0;
-
-    /* then, count its length */
-    for ( ; cur < limit; cur++ )
-    {
-      if ( *cur == '(' )
-        count++;
-
-      else if ( *cur == ')' )
-      {
-        count--;
-        if ( count < 0 )
-          break;
-      }
-    }
-
-    len = cur - *cursor;
-    if ( cur >= limit || FT_ALLOC( result, len + 1 ) )
-      return 0;
-
-    /* now copy the string */
-    FT_MEM_COPY( result, *cursor, len );
-    result[len] = '\0';
-    *cursor = cur;
-    return result;
-  }
-
-#endif /* 0 */
-
-
-  static int
-  ps_tobool( FT_Byte*  *acur,
-             FT_Byte*   limit )
-  {
-    FT_Byte*  cur    = *acur;
-    FT_Bool   result = 0;
-
-
-    /* return 1 if we find `true', 0 otherwise */
-    if ( cur + 3 < limit &&
-         cur[0] == 't'   &&
-         cur[1] == 'r'   &&
-         cur[2] == 'u'   &&
-         cur[3] == 'e'   )
-    {
-      result = 1;
-      cur   += 5;
-    }
-    else if ( cur + 4 < limit &&
-              cur[0] == 'f'   &&
-              cur[1] == 'a'   &&
-              cur[2] == 'l'   &&
-              cur[3] == 's'   &&
-              cur[4] == 'e'   )
-    {
-      result = 0;
-      cur   += 6;
-    }
-
-    *acur = cur;
-    return result;
-  }
-
-
-  /* load a simple field (i.e. non-table) into the current list of objects */
-
-  FT_LOCAL_DEF( FT_Error )
-  ps_parser_load_field( PS_Parser       parser,
-                        const T1_Field  field,
-                        void**          objects,
-                        FT_UInt         max_objects,
-                        FT_ULong*       pflags )
-  {
-    T1_TokenRec  token;
-    FT_Byte*     cur;
-    FT_Byte*     limit;
-    FT_UInt      count;
-    FT_UInt      idx;
-    FT_Error     error;
-
-
-    /* this also skips leading whitespace */
-    ps_parser_to_token( parser, &token );
-    if ( !token.type )
-      goto Fail;
-
-    count = 1;
-    idx   = 0;
-    cur   = token.start;
-    limit = token.limit;
-
-    /* we must detect arrays in /FontBBox */
-    if ( field->type == T1_FIELD_TYPE_BBOX )
-    {
-      T1_TokenRec  token2;
-      FT_Byte*     old_cur   = parser->cursor;
-      FT_Byte*     old_limit = parser->limit;
-
-
-      /* don't include delimiters */
-      parser->cursor = token.start + 1;
-      parser->limit  = token.limit - 1;
-
-      ps_parser_to_token( parser, &token2 );
-      parser->cursor = old_cur;
-      parser->limit  = old_limit;
-
-      if ( token2.type == T1_TOKEN_TYPE_ARRAY )
-        goto FieldArray;
-    }
-    else if ( token.type == T1_TOKEN_TYPE_ARRAY )
-    {
-    FieldArray:
-      /* if this is an array and we have no blend, an error occurs */
-      if ( max_objects == 0 )
-        goto Fail;
-
-      count = max_objects;
-      idx   = 1;
-
-      /* don't include delimiters */
-      cur++;
-      limit--;
-    }
-
-    for ( ; count > 0; count--, idx++ )
-    {
-      FT_Byte*    q = (FT_Byte*)objects[idx] + field->offset;
-      FT_Long     val;
-      FT_String*  string;
-
-
-      skip_spaces( &cur, limit );
-
-      switch ( field->type )
-      {
-      case T1_FIELD_TYPE_BOOL:
-        val = ps_tobool( &cur, limit );
-        goto Store_Integer;
-
-      case T1_FIELD_TYPE_FIXED:
-        val = ps_tofixed( &cur, limit, 0 );
-        goto Store_Integer;
-
-      case T1_FIELD_TYPE_FIXED_1000:
-        val = ps_tofixed( &cur, limit, 3 );
-        goto Store_Integer;
-
-      case T1_FIELD_TYPE_INTEGER:
-        val = ps_toint( &cur, limit );
-        /* fall through */
-
-      Store_Integer:
-        switch ( field->size )
-        {
-        case (8 / FT_CHAR_BIT):
-          *(FT_Byte*)q = (FT_Byte)val;
-          break;
-
-        case (16 / FT_CHAR_BIT):
-          *(FT_UShort*)q = (FT_UShort)val;
-          break;
-
-        case (32 / FT_CHAR_BIT):
-          *(FT_UInt32*)q = (FT_UInt32)val;
-          break;
-
-        default:                /* for 64-bit systems */
-          *(FT_Long*)q = val;
-        }
-        break;
-
-      case T1_FIELD_TYPE_STRING:
-      case T1_FIELD_TYPE_KEY:
-        {
-          FT_Memory  memory = parser->memory;
-          FT_UInt    len    = (FT_UInt)( limit - cur );
-
-
-          if ( cur >= limit )
-            break;
-
-          if ( field->type == T1_FIELD_TYPE_KEY )
-          {
-            /* don't include leading `/' */
-            len--;
-            cur++;
-          }
-          else
-          {
-            /* don't include delimiting parentheses */
-            cur++;
-            len -= 2;
-          }
-
-          if ( FT_ALLOC( string, len + 1 ) )
-            goto Exit;
-
-          FT_MEM_COPY( string, cur, len );
-          string[len] = 0;
-
-          *(FT_String**)q = string;
-        }
-        break;
-
-      case T1_FIELD_TYPE_BBOX:
-        {
-          FT_Fixed  temp[4];
-          FT_BBox*  bbox = (FT_BBox*)q;
-
-
-          (void)ps_tofixedarray( &token.start, token.limit, 4, temp, 0 );
-
-          bbox->xMin = FT_RoundFix( temp[0] );
-          bbox->yMin = FT_RoundFix( temp[1] );
-          bbox->xMax = FT_RoundFix( temp[2] );
-          bbox->yMax = FT_RoundFix( temp[3] );
-        }
-        break;
-
-      default:
-        /* an error occured */
-        goto Fail;
-      }
-    }
-
-#if 0  /* obsolete -- keep for reference */
-    if ( pflags )
-      *pflags |= 1L << field->flag_bit;
-#else
-    FT_UNUSED( pflags );
-#endif
-
-    error = PSaux_Err_Ok;
-
-  Exit:
-    return error;
-
-  Fail:
-    error = PSaux_Err_Invalid_File_Format;
-    goto Exit;
-  }
-
-
-#define T1_MAX_TABLE_ELEMENTS  32
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ps_parser_load_field_table( PS_Parser       parser,
-                              const T1_Field  field,
-                              void**          objects,
-                              FT_UInt         max_objects,
-                              FT_ULong*       pflags )
-  {
-    T1_TokenRec  elements[T1_MAX_TABLE_ELEMENTS];
-    T1_Token     token;
-    FT_Int       num_elements;
-    FT_Error     error = PSaux_Err_Ok;
-    FT_Byte*     old_cursor;
-    FT_Byte*     old_limit;
-    T1_FieldRec  fieldrec = *(T1_Field)field;
-
-
-#if 1
-    fieldrec.type = T1_FIELD_TYPE_INTEGER;
-    if ( field->type == T1_FIELD_TYPE_FIXED_ARRAY )
-      fieldrec.type = T1_FIELD_TYPE_FIXED;
-#endif
-
-    ps_parser_to_token_array( parser, elements,
-                              T1_MAX_TABLE_ELEMENTS, &num_elements );
-    if ( num_elements < 0 )
-    {
-      error = PSaux_Err_Ignore;
-      goto Exit;
-    }
-    if ( num_elements > T1_MAX_TABLE_ELEMENTS )
-      num_elements = T1_MAX_TABLE_ELEMENTS;
-
-    old_cursor = parser->cursor;
-    old_limit  = parser->limit;
-
-    /* we store the elements count */
-    *(FT_Byte*)( (FT_Byte*)objects[0] + field->count_offset ) =
-      (FT_Byte)num_elements;
-
-    /* we now load each element, adjusting the field.offset on each one */
-    token = elements;
-    for ( ; num_elements > 0; num_elements--, token++ )
-    {
-      parser->cursor = token->start;
-      parser->limit  = token->limit;
-      ps_parser_load_field( parser, &fieldrec, objects, max_objects, 0 );
-      fieldrec.offset += fieldrec.size;
-    }
-
-#if 0  /* obsolete -- keep for reference */
-    if ( pflags )
-      *pflags |= 1L << field->flag_bit;
-#else
-    FT_UNUSED( pflags );
-#endif
-
-    parser->cursor = old_cursor;
-    parser->limit  = old_limit;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Long )
-  ps_parser_to_int( PS_Parser  parser )
-  {
-    ps_parser_skip_spaces( parser );
-    return ps_toint( &parser->cursor, parser->limit );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  ps_parser_to_bytes( PS_Parser  parser,
-                      FT_Byte*   bytes,
-                      FT_Long    max_bytes,
-                      FT_Long*   pnum_bytes,
-                      FT_Bool    delimiters )
-  {
-    ps_parser_skip_spaces( parser );
-    return ps_tobytes( &parser->cursor,
-                       parser->limit,
-                       max_bytes,
-                       bytes,
-                       pnum_bytes,
-                       delimiters );
-  }
-
-
-  FT_LOCAL_DEF( FT_Fixed )
-  ps_parser_to_fixed( PS_Parser  parser,
-                      FT_Int     power_ten )
-  {
-    ps_parser_skip_spaces( parser );
-    return ps_tofixed( &parser->cursor, parser->limit, power_ten );
-  }
-
-
-  FT_LOCAL_DEF( FT_Int )
-  ps_parser_to_coord_array( PS_Parser  parser,
-                            FT_Int     max_coords,
-                            FT_Short*  coords )
-  {
-    ps_parser_skip_spaces( parser );
-    return ps_tocoordarray( &parser->cursor, parser->limit,
-                            max_coords, coords );
-  }
-
-
-  FT_LOCAL_DEF( FT_Int )
-  ps_parser_to_fixed_array( PS_Parser  parser,
-                            FT_Int     max_values,
-                            FT_Fixed*  values,
-                            FT_Int     power_ten )
-  {
-    ps_parser_skip_spaces( parser );
-    return ps_tofixedarray( &parser->cursor, parser->limit,
-                            max_values, values, power_ten );
-  }
-
-
-#if 0
-
-  FT_LOCAL_DEF( FT_String* )
-  T1_ToString( PS_Parser  parser )
-  {
-    return ps_tostring( &parser->cursor, parser->limit, parser->memory );
-  }
-
-
-  FT_LOCAL_DEF( FT_Bool )
-  T1_ToBool( PS_Parser  parser )
-  {
-    return ps_tobool( &parser->cursor, parser->limit );
-  }
-
-#endif /* 0 */
-
-
-  FT_LOCAL_DEF( void )
-  ps_parser_init( PS_Parser  parser,
-                  FT_Byte*   base,
-                  FT_Byte*   limit,
-                  FT_Memory  memory )
-  {
-    parser->error  = PSaux_Err_Ok;
-    parser->base   = base;
-    parser->limit  = limit;
-    parser->cursor = base;
-    parser->memory = memory;
-    parser->funcs  = ps_parser_funcs;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  ps_parser_done( PS_Parser  parser )
-  {
-    FT_UNUSED( parser );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            T1 BUILDER                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    t1_builder_init                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given glyph builder.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    builder :: A pointer to the glyph builder to initialize.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face    :: The current face object.                                */
-  /*                                                                       */
-  /*    size    :: The current size object.                                */
-  /*                                                                       */
-  /*    glyph   :: The current glyph object.                               */
-  /*                                                                       */
-  /*    hinting :: Whether hinting should be applied.                      */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  t1_builder_init( T1_Builder    builder,
-                   FT_Face       face,
-                   FT_Size       size,
-                   FT_GlyphSlot  glyph,
-                   FT_Bool       hinting )
-  {
-    builder->parse_state = T1_Parse_Start;
-    builder->load_points = 1;
-
-    builder->face   = face;
-    builder->glyph  = glyph;
-    builder->memory = face->memory;
-
-    if ( glyph )
-    {
-      FT_GlyphLoader  loader = glyph->internal->loader;
-
-
-      builder->loader  = loader;
-      builder->base    = &loader->base.outline;
-      builder->current = &loader->current.outline;
-      FT_GlyphLoader_Rewind( loader );
-
-      builder->hints_globals = size->internal;
-      builder->hints_funcs   = 0;
-
-      if ( hinting )
-        builder->hints_funcs = glyph->internal->glyph_hints;
-    }
-
-    if ( size )
-    {
-      builder->scale_x = size->metrics.x_scale;
-      builder->scale_y = size->metrics.y_scale;
-    }
-
-    builder->pos_x = 0;
-    builder->pos_y = 0;
-
-    builder->left_bearing.x = 0;
-    builder->left_bearing.y = 0;
-    builder->advance.x      = 0;
-    builder->advance.y      = 0;
-
-    builder->funcs = t1_builder_funcs;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    t1_builder_done                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given glyph builder.  Its contents can still be used   */
-  /*    after the call, but the function saves important information       */
-  /*    within the corresponding glyph slot.                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    builder :: A pointer to the glyph builder to finalize.             */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  t1_builder_done( T1_Builder  builder )
-  {
-    FT_GlyphSlot  glyph = builder->glyph;
-
-
-    if ( glyph )
-      glyph->outline = *builder->base;
-  }
-
-
-  /* check that there is enough space for `count' more points */
-  FT_LOCAL_DEF( FT_Error )
-  t1_builder_check_points( T1_Builder  builder,
-                           FT_Int      count )
-  {
-    return FT_GlyphLoader_CheckPoints( builder->loader, count, 0 );
-  }
-
-
-  /* add a new point, do not check space */
-  FT_LOCAL_DEF( void )
-  t1_builder_add_point( T1_Builder  builder,
-                        FT_Pos      x,
-                        FT_Pos      y,
-                        FT_Byte     flag )
-  {
-    FT_Outline*  outline = builder->current;
-
-
-    if ( builder->load_points )
-    {
-      FT_Vector*  point   = outline->points + outline->n_points;
-      FT_Byte*    control = (FT_Byte*)outline->tags + outline->n_points;
-
-
-      if ( builder->shift )
-      {
-        x >>= 16;
-        y >>= 16;
-      }
-      point->x = x;
-      point->y = y;
-      *control = (FT_Byte)( flag ? FT_CURVE_TAG_ON : FT_CURVE_TAG_CUBIC );
-
-      builder->last = *point;
-    }
-    outline->n_points++;
-  }
-
-
-  /* check space for a new on-curve point, then add it */
-  FT_LOCAL_DEF( FT_Error )
-  t1_builder_add_point1( T1_Builder  builder,
-                         FT_Pos      x,
-                         FT_Pos      y )
-  {
-    FT_Error  error;
-
-
-    error = t1_builder_check_points( builder, 1 );
-    if ( !error )
-      t1_builder_add_point( builder, x, y, 1 );
-
-    return error;
-  }
-
-
-  /* check space for a new contour, then add it */
-  FT_LOCAL_DEF( FT_Error )
-  t1_builder_add_contour( T1_Builder  builder )
-  {
-    FT_Outline*  outline = builder->current;
-    FT_Error     error;
-
-
-    if ( !builder->load_points )
-    {
-      outline->n_contours++;
-      return PSaux_Err_Ok;
-    }
-
-    error = FT_GlyphLoader_CheckPoints( builder->loader, 0, 1 );
-    if ( !error )
-    {
-      if ( outline->n_contours > 0 )
-        outline->contours[outline->n_contours - 1] =
-          (short)( outline->n_points - 1 );
-
-      outline->n_contours++;
-    }
-
-    return error;
-  }
-
-
-  /* if a path was begun, add its first on-curve point */
-  FT_LOCAL_DEF( FT_Error )
-  t1_builder_start_point( T1_Builder  builder,
-                          FT_Pos      x,
-                          FT_Pos      y )
-  {
-    FT_Error  error = PSaux_Err_Invalid_File_Format;
-
-
-    /* test whether we are building a new contour */
-
-    if ( builder->parse_state == T1_Parse_Have_Path )
-      error = PSaux_Err_Ok;
-    else if ( builder->parse_state == T1_Parse_Have_Moveto )
-    {
-      builder->parse_state = T1_Parse_Have_Path;
-      error = t1_builder_add_contour( builder );
-      if ( !error )
-        error = t1_builder_add_point1( builder, x, y );
-    }
-
-    return error;
-  }
-
-
-  /* close the current contour */
-  FT_LOCAL_DEF( void )
-  t1_builder_close_contour( T1_Builder  builder )
-  {
-    FT_Outline*  outline = builder->current;
-
-
-    /* XXXX: We must not include the last point in the path if it */
-    /*       is located on the first point.                       */
-    if ( outline->n_points > 1 )
-    {
-      FT_Int      first   = 0;
-      FT_Vector*  p1      = outline->points + first;
-      FT_Vector*  p2      = outline->points + outline->n_points - 1;
-      FT_Byte*    control = (FT_Byte*)outline->tags + outline->n_points - 1;
-
-
-      if ( outline->n_contours > 1 )
-      {
-        first = outline->contours[outline->n_contours - 2] + 1;
-        p1    = outline->points + first;
-      }
-
-      /* `delete' last point only if it coincides with the first */
-      /* point and it is not a control point (which can happen). */
-      if ( p1->x == p2->x && p1->y == p2->y )
-        if ( *control == FT_CURVE_TAG_ON )
-          outline->n_points--;
-    }
-
-    if ( outline->n_contours > 0 )
-      outline->contours[outline->n_contours - 1] =
-        (short)( outline->n_points - 1 );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            OTHER                              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( void )
-  t1_decrypt( FT_Byte*   buffer,
-              FT_Offset  length,
-              FT_UShort  seed )
-  {
-    while ( length > 0 )
-    {
-      FT_Byte  plain;
-
-
-      plain     = (FT_Byte)( *buffer ^ ( seed >> 8 ) );
-      seed      = (FT_UShort)( ( *buffer + seed ) * 52845U + 22719 );
-      *buffer++ = plain;
-      length--;
-    }
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/psobjs.h b/nx-X11/extras/freetype2/src/psaux/psobjs.h
deleted file mode 100644
index c2cbf2c79..000000000
--- a/nx-X11/extras/freetype2/src/psaux/psobjs.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psobjs.h                                                               */
-/*                                                                         */
-/*    Auxiliary functions for PostScript fonts (specification).            */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSOBJS_H__
-#define __PSOBJS_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                             T1_TABLE                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_CALLBACK_TABLE
-  const PS_Table_FuncsRec    ps_table_funcs;
-
-  FT_CALLBACK_TABLE
-  const PS_Parser_FuncsRec   ps_parser_funcs;
-
-  FT_CALLBACK_TABLE
-  const T1_Builder_FuncsRec  t1_builder_funcs;
-
-
-  FT_LOCAL( FT_Error )
-  ps_table_new( PS_Table   table,
-                FT_Int     count,
-                FT_Memory  memory );
-
-  FT_LOCAL( FT_Error )
-  ps_table_add( PS_Table    table,
-                FT_Int      idx,
-                void*       object,
-                FT_PtrDist  length );
-
-  FT_LOCAL( void )
-  ps_table_done( PS_Table  table );
-
-
-  FT_LOCAL( void )
-  ps_table_release( PS_Table  table );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            T1 PARSER                          *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL( void )
-  ps_parser_skip_spaces( PS_Parser  parser );
-
-  FT_LOCAL( void )
-  ps_parser_skip_PS_token( PS_Parser  parser );
-
-  FT_LOCAL( void )
-  ps_parser_to_token( PS_Parser  parser,
-                      T1_Token   token );
-
-  FT_LOCAL( void )
-  ps_parser_to_token_array( PS_Parser  parser,
-                            T1_Token   tokens,
-                            FT_UInt    max_tokens,
-                            FT_Int*    pnum_tokens );
-
-  FT_LOCAL( FT_Error )
-  ps_parser_load_field( PS_Parser       parser,
-                        const T1_Field  field,
-                        void**          objects,
-                        FT_UInt         max_objects,
-                        FT_ULong*       pflags );
-
-  FT_LOCAL( FT_Error )
-  ps_parser_load_field_table( PS_Parser       parser,
-                              const T1_Field  field,
-                              void**          objects,
-                              FT_UInt         max_objects,
-                              FT_ULong*       pflags );
-
-  FT_LOCAL( FT_Long )
-  ps_parser_to_int( PS_Parser  parser );
-
-
-  FT_LOCAL( FT_Error )
-  ps_parser_to_bytes( PS_Parser  parser,
-                      FT_Byte*   bytes,
-                      FT_Long    max_bytes,
-                      FT_Long*   pnum_bytes,
-                      FT_Bool    delimiters );
-
-
-  FT_LOCAL( FT_Fixed )
-  ps_parser_to_fixed( PS_Parser  parser,
-                      FT_Int     power_ten );
-
-
-  FT_LOCAL( FT_Int )
-  ps_parser_to_coord_array( PS_Parser  parser,
-                            FT_Int     max_coords,
-                            FT_Short*  coords );
-
-  FT_LOCAL( FT_Int )
-  ps_parser_to_fixed_array( PS_Parser  parser,
-                            FT_Int     max_values,
-                            FT_Fixed*  values,
-                            FT_Int     power_ten );
-
-
-  FT_LOCAL( void )
-  ps_parser_init( PS_Parser  parser,
-                  FT_Byte*   base,
-                  FT_Byte*   limit,
-                  FT_Memory  memory );
-
-  FT_LOCAL( void )
-  ps_parser_done( PS_Parser  parser );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            T1 BUILDER                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL( void )
-  t1_builder_init( T1_Builder    builder,
-                   FT_Face       face,
-                   FT_Size       size,
-                   FT_GlyphSlot  glyph,
-                   FT_Bool       hinting );
-
-  FT_LOCAL( void )
-  t1_builder_done( T1_Builder  builder );
-
-  FT_LOCAL( FT_Error )
-  t1_builder_check_points( T1_Builder  builder,
-                           FT_Int      count );
-
-  FT_LOCAL( void )
-  t1_builder_add_point( T1_Builder  builder,
-                        FT_Pos      x,
-                        FT_Pos      y,
-                        FT_Byte     flag );
-
-  FT_LOCAL( FT_Error )
-  t1_builder_add_point1( T1_Builder  builder,
-                         FT_Pos      x,
-                         FT_Pos      y );
-
-  FT_LOCAL( FT_Error )
-  t1_builder_add_contour( T1_Builder  builder );
-
-
-  FT_LOCAL( FT_Error )
-  t1_builder_start_point( T1_Builder  builder,
-                          FT_Pos      x,
-                          FT_Pos      y );
-
-
-  FT_LOCAL( void )
-  t1_builder_close_contour( T1_Builder  builder );
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                            OTHER                              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_LOCAL( void )
-  t1_decrypt( FT_Byte*   buffer,
-              FT_Offset  length,
-              FT_UShort  seed );
-
-
-FT_END_HEADER
-
-#endif /* __PSOBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/rules.mk b/nx-X11/extras/freetype2/src/psaux/rules.mk
deleted file mode 100644
index 7338d3657..000000000
--- a/nx-X11/extras/freetype2/src/psaux/rules.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-#
-# FreeType 2 PSaux driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# PSAUX driver directory
-#
-PSAUX_DIR := $(SRC_DIR)/psaux
-
-
-# compilation flags for the driver
-#
-PSAUX_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PSAUX_DIR))
-
-
-# PSAUX driver sources (i.e., C files)
-#
-PSAUX_DRV_SRC := $(PSAUX_DIR)/psobjs.c   \
-                 $(PSAUX_DIR)/t1decode.c \
-                 $(PSAUX_DIR)/t1cmap.c   \
-                 $(PSAUX_DIR)/psauxmod.c
-
-# PSAUX driver headers
-#
-PSAUX_DRV_H := $(PSAUX_DRV_SRC:%c=%h)  \
-               $(PSAUX_DIR)/psauxerr.h
-
-
-# PSAUX driver object(s)
-#
-#   PSAUX_DRV_OBJ_M is used during `multi' builds.
-#   PSAUX_DRV_OBJ_S is used during `single' builds.
-#
-PSAUX_DRV_OBJ_M := $(PSAUX_DRV_SRC:$(PSAUX_DIR)/%.c=$(OBJ_DIR)/%.$O)
-PSAUX_DRV_OBJ_S := $(OBJ_DIR)/psaux.$O
-
-# PSAUX driver source file for single build
-#
-PSAUX_DRV_SRC_S := $(PSAUX_DIR)/psaux.c
-
-
-# PSAUX driver - single object
-#
-$(PSAUX_DRV_OBJ_S): $(PSAUX_DRV_SRC_S) $(PSAUX_DRV_SRC) \
-                   $(FREETYPE_H) $(PSAUX_DRV_H)
-	$(PSAUX_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(PSAUX_DRV_SRC_S))
-
-
-# PSAUX driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(PSAUX_DIR)/%.c $(FREETYPE_H) $(PSAUX_DRV_H)
-	$(PSAUX_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(PSAUX_DRV_OBJ_S)
-DRV_OBJS_M += $(PSAUX_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psaux/t1cmap.c b/nx-X11/extras/freetype2/src/psaux/t1cmap.c
deleted file mode 100644
index dcd99be49..000000000
--- a/nx-X11/extras/freetype2/src/psaux/t1cmap.c
+++ /dev/null
@@ -1,456 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1cmap.c                                                               */
-/*                                                                         */
-/*    Type 1 character map support (body).                                 */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "t1cmap.h"
-
-#include FT_INTERNAL_DEBUG_H
-
-#include "psauxerr.h"
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****          TYPE1 STANDARD (AND EXPERT) ENCODING CMAPS           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  t1_cmap_std_init( T1_CMapStd  cmap,
-                    FT_Int      is_expert )
-  {
-    T1_Face             face    = (T1_Face)FT_CMAP_FACE( cmap );
-    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)face->psnames;
-
-
-    cmap->num_glyphs    = face->type1.num_glyphs;
-    cmap->glyph_names   = (const char* const*)face->type1.glyph_names;
-    cmap->sid_to_string = psnames->adobe_std_strings;
-    cmap->code_to_sid   = is_expert ? psnames->adobe_expert_encoding
-                                    : psnames->adobe_std_encoding;
-
-    FT_ASSERT( cmap->code_to_sid != NULL );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  t1_cmap_std_done( T1_CMapStd  cmap )
-  {
-    cmap->num_glyphs    = 0;
-    cmap->glyph_names   = NULL;
-    cmap->sid_to_string = NULL;
-    cmap->code_to_sid   = NULL;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  t1_cmap_std_char_index( T1_CMapStd  cmap,
-                          FT_UInt32   char_code )
-  {
-    FT_UInt  result = 0;
-
-
-    if ( char_code < 256 )
-    {
-      FT_UInt      code, n;
-      const char*  glyph_name;
-
-
-      /* convert character code to Adobe SID string */
-      code       = cmap->code_to_sid[char_code];
-      glyph_name = cmap->sid_to_string( code );
-
-      /* look for the corresponding glyph name */
-      for ( n = 0; n < cmap->num_glyphs; n++ )
-      {
-        const char* gname = cmap->glyph_names[n];
-
-
-        if ( gname && gname[0] == glyph_name[0]  &&
-             ft_strcmp( gname, glyph_name ) == 0 )
-        {
-          result = n;
-          break;
-        }
-      }
-    }
-
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  t1_cmap_std_char_next( T1_CMapStd   cmap,
-                         FT_UInt32   *pchar_code )
-  {
-    FT_UInt    result    = 0;
-    FT_UInt32  char_code = *pchar_code + 1;
-
-
-    while ( char_code < 256 )
-    {
-      result = t1_cmap_std_char_index( cmap, char_code );
-      if ( result != 0 )
-        goto Exit;
-
-      char_code++;
-    }
-    char_code = 0;
-
-  Exit:
-    *pchar_code = char_code;
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  t1_cmap_standard_init( T1_CMapStd  cmap )
-  {
-    t1_cmap_std_init( cmap, 0 );
-    return 0;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  t1_cmap_standard_class_rec =
-  {
-    sizeof ( T1_CMapStdRec ),
-
-    (FT_CMap_InitFunc)     t1_cmap_standard_init,
-    (FT_CMap_DoneFunc)     t1_cmap_std_done,
-    (FT_CMap_CharIndexFunc)t1_cmap_std_char_index,
-    (FT_CMap_CharNextFunc) t1_cmap_std_char_next
-  };
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  t1_cmap_expert_init( T1_CMapStd  cmap )
-  {
-    t1_cmap_std_init( cmap, 1 );
-    return 0;
-  }
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  t1_cmap_expert_class_rec =
-  {
-    sizeof ( T1_CMapStdRec ),
-
-    (FT_CMap_InitFunc)     t1_cmap_expert_init,
-    (FT_CMap_DoneFunc)     t1_cmap_std_done,
-    (FT_CMap_CharIndexFunc)t1_cmap_std_char_index,
-    (FT_CMap_CharNextFunc) t1_cmap_std_char_next
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    TYPE1 CUSTOM ENCODING CMAP                 *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  t1_cmap_custom_init( T1_CMapCustom  cmap )
-  {
-    T1_Face      face     = (T1_Face)FT_CMAP_FACE( cmap );
-    T1_Encoding  encoding = &face->type1.encoding;
-
-
-    cmap->first   = encoding->code_first;
-    cmap->count   = (FT_UInt)( encoding->code_last - cmap->first + 1 );
-    cmap->indices = encoding->char_index;
-
-    FT_ASSERT( cmap->indices != NULL );
-    FT_ASSERT( encoding->code_first <= encoding->code_last );
-
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  t1_cmap_custom_done( T1_CMapCustom  cmap )
-  {
-    cmap->indices = NULL;
-    cmap->first   = 0;
-    cmap->count   = 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  t1_cmap_custom_char_index( T1_CMapCustom  cmap,
-                             FT_UInt32      char_code )
-  {
-    FT_UInt    result = 0;
-
-
-    if ( ( char_code >= cmap->first )                  &&
-         ( char_code < ( cmap->first + cmap->count ) ) )
-      result = cmap->indices[char_code];
-
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  t1_cmap_custom_char_next( T1_CMapCustom  cmap,
-                            FT_UInt32     *pchar_code )
-  {
-    FT_UInt    result = 0;
-    FT_UInt32  char_code = *pchar_code;
-
-
-    ++char_code;
-
-    if ( char_code < cmap->first )
-      char_code = cmap->first;
-
-    for ( ; char_code < ( cmap->first + cmap->count ); char_code++ )
-    {
-      result = cmap->indices[char_code];
-      if ( result != 0 )
-        goto Exit;
-    }
-
-    char_code = 0;
-
-  Exit:
-    *pchar_code = char_code;
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  t1_cmap_custom_class_rec =
-  {
-    sizeof ( T1_CMapCustomRec ),
-
-    (FT_CMap_InitFunc)     t1_cmap_custom_init,
-    (FT_CMap_DoneFunc)     t1_cmap_custom_done,
-    (FT_CMap_CharIndexFunc)t1_cmap_custom_char_index,
-    (FT_CMap_CharNextFunc) t1_cmap_custom_char_next
-  };
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****            TYPE1 SYNTHETIC UNICODE ENCODING CMAP              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_CALLBACK_DEF( FT_Int )
-  t1_cmap_uni_pair_compare( const void*  pair1,
-                            const void*  pair2 )
-  {
-    FT_UInt32  u1 = ((T1_CMapUniPair)pair1)->unicode;
-    FT_UInt32  u2 = ((T1_CMapUniPair)pair2)->unicode;
-
-
-    if ( u1 < u2 )
-      return -1;
-
-    if ( u1 > u2 )
-      return +1;
-
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  t1_cmap_unicode_init( T1_CMapUnicode  cmap )
-  {
-    FT_Error            error;
-    FT_UInt             count;
-    T1_Face             face    = (T1_Face)FT_CMAP_FACE( cmap );
-    FT_Memory           memory  = FT_FACE_MEMORY( face );
-    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)face->psnames;
-
-
-    cmap->num_pairs = 0;
-    cmap->pairs     = NULL;
-
-    count = face->type1.num_glyphs;
-
-    if ( !FT_NEW_ARRAY( cmap->pairs, count ) )
-    {
-      FT_UInt         n, new_count;
-      T1_CMapUniPair  pair;
-      FT_UInt32       uni_code;
-
-
-      pair = cmap->pairs;
-      for ( n = 0; n < count; n++ )
-      {
-        const char*  gname = face->type1.glyph_names[n];
-
-
-        /* build unsorted pair table by matching glyph names */
-        if ( gname )
-        {
-          uni_code = psnames->unicode_value( gname );
-
-          if ( uni_code != 0 )
-          {
-            pair->unicode = uni_code;
-            pair->gindex  = n;
-            pair++;
-          }
-        }
-      }
-
-      new_count = (FT_UInt)( pair - cmap->pairs );
-      if ( new_count == 0 )
-      {
-        /* there are no unicode characters in here! */
-        FT_FREE( cmap->pairs );
-        error = PSaux_Err_Invalid_Argument;
-      }
-      else
-      {
-        /* re-allocate if the new array is much smaller than the original */
-        /* one                                                            */
-        if ( new_count != count && new_count < count / 2 )
-        {
-          (void)FT_RENEW_ARRAY( cmap->pairs, count, new_count );
-          error = 0;
-        }
-
-        /* sort the pairs table to allow efficient binary searches */
-        ft_qsort( cmap->pairs,
-                  new_count,
-                  sizeof ( T1_CMapUniPairRec ),
-                  t1_cmap_uni_pair_compare );
-
-        cmap->num_pairs = new_count;
-      }
-    }
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  t1_cmap_unicode_done( T1_CMapUnicode  cmap )
-  {
-    FT_Face    face   = FT_CMAP_FACE(cmap);
-    FT_Memory  memory = FT_FACE_MEMORY(face);
-
-    FT_FREE( cmap->pairs );
-    cmap->num_pairs = 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  t1_cmap_unicode_char_index( T1_CMapUnicode  cmap,
-                              FT_UInt32       char_code )
-  {
-    FT_UInt         min = 0;
-    FT_UInt         max = cmap->num_pairs;
-    FT_UInt         mid;
-    T1_CMapUniPair  pair;
-
-
-    while ( min < max )
-    {
-      mid  = min + ( max - min ) / 2;
-      pair = cmap->pairs + mid;
-
-      if ( pair->unicode == char_code )
-        return pair->gindex;
-
-      if ( pair->unicode < char_code )
-        min = mid + 1;
-      else
-        max = mid;
-    }
-    return 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  t1_cmap_unicode_char_next( T1_CMapUnicode  cmap,
-                             FT_UInt32      *pchar_code )
-  {
-    FT_UInt    result    = 0;
-    FT_UInt32  char_code = *pchar_code + 1;
-
-
-  Restart:
-    {
-      FT_UInt         min = 0;
-      FT_UInt         max = cmap->num_pairs;
-      FT_UInt         mid;
-      T1_CMapUniPair  pair;
-
-
-      while ( min < max )
-      {
-        mid  = min + ( ( max - min ) >> 1 );
-        pair = cmap->pairs + mid;
-
-        if ( pair->unicode == char_code )
-        {
-          result = pair->gindex;
-          if ( result != 0 )
-            goto Exit;
-
-          char_code++;
-          goto Restart;
-        }
-
-        if ( pair->unicode < char_code )
-          min = mid+1;
-        else
-          max = mid;
-      }
-
-      /* we didn't find it, but we have a pair just above it */
-      char_code = 0;
-
-      if ( min < cmap->num_pairs )
-      {
-        pair   = cmap->pairs + min;
-        result = pair->gindex;
-        if ( result != 0 )
-          char_code = pair->unicode;
-      }
-    }
-
-  Exit:
-    *pchar_code = char_code;
-    return result;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
-  t1_cmap_unicode_class_rec =
-  {
-    sizeof ( T1_CMapUnicodeRec ),
-
-    (FT_CMap_InitFunc)     t1_cmap_unicode_init,
-    (FT_CMap_DoneFunc)     t1_cmap_unicode_done,
-    (FT_CMap_CharIndexFunc)t1_cmap_unicode_char_index,
-    (FT_CMap_CharNextFunc) t1_cmap_unicode_char_next
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/t1cmap.h b/nx-X11/extras/freetype2/src/psaux/t1cmap.h
deleted file mode 100644
index aa93d746c..000000000
--- a/nx-X11/extras/freetype2/src/psaux/t1cmap.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1cmap.h                                                               */
-/*                                                                         */
-/*    Type 1 character map support (specification).                        */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1CMAP_H__
-#define __T1CMAP_H__
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****          TYPE1 STANDARD (AND EXPERT) ENCODING CMAPS           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* standard (and expert) encoding cmaps */
-  typedef struct T1_CMapStdRec_*  T1_CMapStd;
-
-  typedef struct  T1_CMapStdRec_
-  {
-    FT_CMapRec                 cmap;
-
-    const FT_UShort*           code_to_sid;
-    PS_Adobe_Std_Strings_Func  sid_to_string;
-
-    FT_UInt                    num_glyphs;
-    const char* const*         glyph_names;
-
-  } T1_CMapStdRec;
-
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec
-  t1_cmap_standard_class_rec;
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec
-  t1_cmap_expert_class_rec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  TYPE1 CUSTOM ENCODING CMAP                   *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef struct T1_CMapCustomRec_*  T1_CMapCustom;
-
-  typedef struct  T1_CMapCustomRec_
-  {
-    FT_CMapRec  cmap;
-    FT_UInt     first;
-    FT_UInt     count;
-    FT_UShort*  indices;
-
-  } T1_CMapCustomRec;
-
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec
-  t1_cmap_custom_class_rec;
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****             TYPE1 SYNTHETIC UNICODE ENCODING CMAP             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* unicode (syntehtic) cmaps */
-  typedef struct T1_CMapUnicodeRec_*  T1_CMapUnicode;
-
-  typedef struct  T1_CMapUniPairRec_
-  {
-    FT_UInt32  unicode;
-    FT_UInt    gindex;
-
-  } T1_CMapUniPairRec, *T1_CMapUniPair;
-
-
-  typedef struct  T1_CMapUnicodeRec_
-  {
-    FT_CMapRec      cmap;
-    FT_UInt         num_pairs;
-    T1_CMapUniPair  pairs;
-
-  } T1_CMapUnicodeRec;
-
-
-  FT_CALLBACK_TABLE const FT_CMap_ClassRec
-  t1_cmap_unicode_class_rec;
-
- /* */
-
-
-FT_END_HEADER
-
-#endif /* __T1CMAP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/t1decode.c b/nx-X11/extras/freetype2/src/psaux/t1decode.c
deleted file mode 100644
index c2adf480c..000000000
--- a/nx-X11/extras/freetype2/src/psaux/t1decode.c
+++ /dev/null
@@ -1,1165 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1decode.c                                                             */
-/*                                                                         */
-/*    PostScript Type 1 decoding routines (body).                          */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-#include FT_OUTLINE_H
-
-#include "t1decode.h"
-#include "psobjs.h"
-
-#include "psauxerr.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1decode
-
-
-  typedef enum  T1_Operator_
-  {
-    op_none = 0,
-    op_endchar,
-    op_hsbw,
-    op_seac,
-    op_sbw,
-    op_closepath,
-    op_hlineto,
-    op_hmoveto,
-    op_hvcurveto,
-    op_rlineto,
-    op_rmoveto,
-    op_rrcurveto,
-    op_vhcurveto,
-    op_vlineto,
-    op_vmoveto,
-    op_dotsection,
-    op_hstem,
-    op_hstem3,
-    op_vstem,
-    op_vstem3,
-    op_div,
-    op_callothersubr,
-    op_callsubr,
-    op_pop,
-    op_return,
-    op_setcurrentpoint,
-
-    op_max    /* never remove this one */
-
-  } T1_Operator;
-
-
-  static
-  const FT_Int  t1_args_count[op_max] =
-  {
-    0, /* none */
-    0, /* endchar */
-    2, /* hsbw */
-    5, /* seac */
-    4, /* sbw */
-    0, /* closepath */
-    1, /* hlineto */
-    1, /* hmoveto */
-    4, /* hvcurveto */
-    2, /* rlineto */
-    2, /* rmoveto */
-    6, /* rrcurveto */
-    4, /* vhcurveto */
-    1, /* vlineto */
-    1, /* vmoveto */
-    0, /* dotsection */
-    2, /* hstem */
-    6, /* hstem3 */
-    2, /* vstem */
-    6, /* vstem3 */
-    2, /* div */
-   -1, /* callothersubr */
-    1, /* callsubr */
-    0, /* pop */
-    0, /* return */
-    2  /* setcurrentpoint */
-  };
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    t1_lookup_glyph_by_stdcharcode                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Looks up a given glyph by its StandardEncoding charcode.  Used to  */
-  /*    implement the SEAC Type 1 operator.                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face     :: The current face object.                               */
-  /*                                                                       */
-  /*    charcode :: The character code to look for.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A glyph index in the font face.  Returns -1 if the corresponding   */
-  /*    glyph wasn't found.                                                */
-  /*                                                                       */
-  static FT_Int
-  t1_lookup_glyph_by_stdcharcode( T1_Decoder  decoder,
-                                  FT_Int      charcode )
-  {
-    FT_UInt             n;
-    const FT_String*    glyph_name;
-    FT_Service_PsCMaps  psnames = decoder->psnames;
-
-
-    /* check range of standard char code */
-    if ( charcode < 0 || charcode > 255 )
-      return -1;
-
-    glyph_name = psnames->adobe_std_strings(
-                   psnames->adobe_std_encoding[charcode]);
-
-    for ( n = 0; n < decoder->num_glyphs; n++ )
-    {
-      FT_String*  name = (FT_String*)decoder->glyph_names[n];
-
-
-      if ( name && name[0] == glyph_name[0]  &&
-           ft_strcmp( name, glyph_name ) == 0 )
-        return n;
-    }
-
-    return -1;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    t1operator_seac                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Implements the `seac' Type 1 operator for a Type 1 decoder.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    decoder :: The current CID decoder.                                */
-  /*                                                                       */
-  /*    asb     :: The accent's side bearing.                              */
-  /*                                                                       */
-  /*    adx     :: The horizontal offset of the accent.                    */
-  /*                                                                       */
-  /*    ady     :: The vertical offset of the accent.                      */
-  /*                                                                       */
-  /*    bchar   :: The base character's StandardEncoding charcode.         */
-  /*                                                                       */
-  /*    achar   :: The accent character's StandardEncoding charcode.       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  t1operator_seac( T1_Decoder  decoder,
-                   FT_Pos      asb,
-                   FT_Pos      adx,
-                   FT_Pos      ady,
-                   FT_Int      bchar,
-                   FT_Int      achar )
-  {
-    FT_Error     error;
-    FT_Int       bchar_index, achar_index;
-#if 0
-    FT_Int       n_base_points;
-    FT_Outline*  base = decoder->builder.base;
-#endif
-    FT_Vector    left_bearing, advance;
-
-
-    /* seac weirdness */
-    adx += decoder->builder.left_bearing.x;
-
-    /* `glyph_names' is set to 0 for CID fonts which do not */
-    /* include an encoding.  How can we deal with these?    */
-    if ( decoder->glyph_names == 0 )
-    {
-      FT_ERROR(( "t1operator_seac:" ));
-      FT_ERROR(( " glyph names table not available in this font!\n" ));
-      return PSaux_Err_Syntax_Error;
-    }
-
-    bchar_index = t1_lookup_glyph_by_stdcharcode( decoder, bchar );
-    achar_index = t1_lookup_glyph_by_stdcharcode( decoder, achar );
-
-    if ( bchar_index < 0 || achar_index < 0 )
-    {
-      FT_ERROR(( "t1operator_seac:" ));
-      FT_ERROR(( " invalid seac character code arguments\n" ));
-      return PSaux_Err_Syntax_Error;
-    }
-
-    /* if we are trying to load a composite glyph, do not load the */
-    /* accent character and return the array of subglyphs.         */
-    if ( decoder->builder.no_recurse )
-    {
-      FT_GlyphSlot    glyph  = (FT_GlyphSlot)decoder->builder.glyph;
-      FT_GlyphLoader  loader = glyph->internal->loader;
-      FT_SubGlyph     subg;
-
-
-      /* reallocate subglyph array if necessary */
-      error = FT_GlyphLoader_CheckSubGlyphs( loader, 2 );
-      if ( error )
-        goto Exit;
-
-      subg = loader->current.subglyphs;
-
-      /* subglyph 0 = base character */
-      subg->index = bchar_index;
-      subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES |
-                    FT_SUBGLYPH_FLAG_USE_MY_METRICS;
-      subg->arg1  = 0;
-      subg->arg2  = 0;
-      subg++;
-
-      /* subglyph 1 = accent character */
-      subg->index = achar_index;
-      subg->flags = FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES;
-      subg->arg1  = (FT_Int)( adx - asb );
-      subg->arg2  = (FT_Int)ady;
-
-      /* set up remaining glyph fields */
-      glyph->num_subglyphs = 2;
-      glyph->subglyphs     = loader->base.subglyphs;
-      glyph->format        = FT_GLYPH_FORMAT_COMPOSITE;
-
-      loader->current.num_subglyphs = 2;
-      goto Exit;
-    }
-
-    /* First load `bchar' in builder */
-    /* now load the unscaled outline */
-
-    FT_GlyphLoader_Prepare( decoder->builder.loader );  /* prepare loader */
-
-    error = t1_decoder_parse_glyph( decoder, bchar_index );
-    if ( error )
-      goto Exit;
-
-    /* save the left bearing and width of the base character */
-    /* as they will be erased by the next load.              */
-
-    left_bearing = decoder->builder.left_bearing;
-    advance      = decoder->builder.advance;
-
-    decoder->builder.left_bearing.x = 0;
-    decoder->builder.left_bearing.y = 0;
-
-    decoder->builder.pos_x = adx - asb;
-    decoder->builder.pos_y = ady;
-
-    /* Now load `achar' on top of */
-    /* the base outline           */
-    error = t1_decoder_parse_glyph( decoder, achar_index );
-    if ( error )
-      goto Exit;
-
-    /* restore the left side bearing and   */
-    /* advance width of the base character */
-
-    decoder->builder.left_bearing = left_bearing;
-    decoder->builder.advance      = advance;
-
-    decoder->builder.pos_x = 0;
-    decoder->builder.pos_y = 0;
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    t1_decoder_parse_charstrings                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Parses a given Type 1 charstrings program.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    decoder         :: The current Type 1 decoder.                     */
-  /*                                                                       */
-  /*    charstring_base :: The base address of the charstring stream.      */
-  /*                                                                       */
-  /*    charstring_len  :: The length in bytes of the charstring stream.   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  t1_decoder_parse_charstrings( T1_Decoder  decoder,
-                                FT_Byte*    charstring_base,
-                                FT_UInt     charstring_len )
-  {
-    FT_Error         error;
-    T1_Decoder_Zone  zone;
-    FT_Byte*         ip;
-    FT_Byte*         limit;
-    T1_Builder       builder = &decoder->builder;
-    FT_Pos           x, y, orig_x, orig_y;
-
-    T1_Hints_Funcs   hinter;
-
-
-    /* we don't want to touch the source code -- use macro trick */
-#define start_point    t1_builder_start_point
-#define check_points   t1_builder_check_points
-#define add_point      t1_builder_add_point
-#define add_point1     t1_builder_add_point1
-#define add_contour    t1_builder_add_contour
-#define close_contour  t1_builder_close_contour
-
-    /* First of all, initialize the decoder */
-    decoder->top  = decoder->stack;
-    decoder->zone = decoder->zones;
-    zone          = decoder->zones;
-
-    builder->parse_state = T1_Parse_Start;
-
-    hinter = (T1_Hints_Funcs)builder->hints_funcs;
-
-    zone->base           = charstring_base;
-    limit = zone->limit  = charstring_base + charstring_len;
-    ip    = zone->cursor = zone->base;
-
-    error = PSaux_Err_Ok;
-
-    x = orig_x = builder->pos_x;
-    y = orig_y = builder->pos_y;
-
-    /* begin hints recording session, if any */
-    if ( hinter )
-      hinter->open( hinter->hints );
-
-    /* now, execute loop */
-    while ( ip < limit )
-    {
-      FT_Long*     top   = decoder->top;
-      T1_Operator  op    = op_none;
-      FT_Long      value = 0;
-
-
-      /*********************************************************************/
-      /*                                                                   */
-      /* Decode operator or operand                                        */
-      /*                                                                   */
-      /*                                                                   */
-
-      /* first of all, decompress operator or value */
-      switch ( *ip++ )
-      {
-      case 1:
-        op = op_hstem;
-        break;
-
-      case 3:
-        op = op_vstem;
-        break;
-      case 4:
-        op = op_vmoveto;
-        break;
-      case 5:
-        op = op_rlineto;
-        break;
-      case 6:
-        op = op_hlineto;
-        break;
-      case 7:
-        op = op_vlineto;
-        break;
-      case 8:
-        op = op_rrcurveto;
-        break;
-      case 9:
-        op = op_closepath;
-        break;
-      case 10:
-        op = op_callsubr;
-        break;
-      case 11:
-        op = op_return;
-        break;
-
-      case 13:
-        op = op_hsbw;
-        break;
-      case 14:
-        op = op_endchar;
-        break;
-
-      case 15:          /* undocumented, obsolete operator */
-        op = op_none;
-        break;
-
-      case 21:
-        op = op_rmoveto;
-        break;
-      case 22:
-        op = op_hmoveto;
-        break;
-
-      case 30:
-        op = op_vhcurveto;
-        break;
-      case 31:
-        op = op_hvcurveto;
-        break;
-
-      case 12:
-        if ( ip > limit )
-        {
-          FT_ERROR(( "t1_decoder_parse_charstrings: "
-                     "invalid escape (12+EOF)\n" ));
-          goto Syntax_Error;
-        }
-
-        switch ( *ip++ )
-        {
-        case 0:
-          op = op_dotsection;
-          break;
-        case 1:
-          op = op_vstem3;
-          break;
-        case 2:
-          op = op_hstem3;
-          break;
-        case 6:
-          op = op_seac;
-          break;
-        case 7:
-          op = op_sbw;
-          break;
-        case 12:
-          op = op_div;
-          break;
-        case 16:
-          op = op_callothersubr;
-          break;
-        case 17:
-          op = op_pop;
-          break;
-        case 33:
-          op = op_setcurrentpoint;
-          break;
-
-        default:
-          FT_ERROR(( "t1_decoder_parse_charstrings: "
-                     "invalid escape (12+%d)\n",
-                     ip[-1] ));
-          goto Syntax_Error;
-        }
-        break;
-
-      case 255:    /* four bytes integer */
-        if ( ip + 4 > limit )
-        {
-          FT_ERROR(( "t1_decoder_parse_charstrings: "
-                     "unexpected EOF in integer\n" ));
-          goto Syntax_Error;
-        }
-
-        value = (FT_Int32)( ((FT_Long)ip[0] << 24) |
-                            ((FT_Long)ip[1] << 16) |
-                            ((FT_Long)ip[2] << 8 ) |
-                                      ip[3] );
-        ip += 4;
-        break;
-
-      default:
-        if ( ip[-1] >= 32 )
-        {
-          if ( ip[-1] < 247 )
-            value = (FT_Long)ip[-1] - 139;
-          else
-          {
-            if ( ++ip > limit )
-            {
-              FT_ERROR(( "t1_decoder_parse_charstrings: " ));
-              FT_ERROR(( "unexpected EOF in integer\n" ));
-              goto Syntax_Error;
-            }
-
-            if ( ip[-2] < 251 )
-              value =  ( ( (FT_Long)ip[-2] - 247 ) << 8 ) + ip[-1] + 108;
-            else
-              value = -( ( ( (FT_Long)ip[-2] - 251 ) << 8 ) + ip[-1] + 108 );
-          }
-        }
-        else
-        {
-          FT_ERROR(( "t1_decoder_parse_charstrings: "
-                     "invalid byte (%d)\n", ip[-1] ));
-          goto Syntax_Error;
-        }
-      }
-
-      /*********************************************************************/
-      /*                                                                   */
-      /*  Push value on stack, or process operator                         */
-      /*                                                                   */
-      /*                                                                   */
-      if ( op == op_none )
-      {
-        if ( top - decoder->stack >= T1_MAX_CHARSTRINGS_OPERANDS )
-        {
-          FT_ERROR(( "t1_decoder_parse_charstrings: stack overflow!\n" ));
-          goto Syntax_Error;
-        }
-
-        FT_TRACE4(( " %ld", value ));
-
-        *top++       = value;
-        decoder->top = top;
-      }
-      else if ( op == op_callothersubr )  /* callothersubr */
-      {
-        FT_TRACE4(( " callothersubr" ));
-
-        if ( top - decoder->stack < 2 )
-          goto Stack_Underflow;
-
-        top -= 2;
-        switch ( (FT_Int)top[1] )
-        {
-        case 1:                     /* start flex feature */
-          if ( top[0] != 0 )
-            goto Unexpected_OtherSubr;
-
-          decoder->flex_state        = 1;
-          decoder->num_flex_vectors  = 0;
-          if ( start_point( builder, x, y ) ||
-               check_points( builder, 6 )   )
-            goto Fail;
-          break;
-
-        case 2:                     /* add flex vectors */
-          {
-            FT_Int  idx;
-
-
-            if ( top[0] != 0 )
-              goto Unexpected_OtherSubr;
-
-            /* note that we should not add a point for index 0; */
-            /* this will move our current position to the flex  */
-            /* point without adding any point to the outline    */
-            idx = decoder->num_flex_vectors++;
-            if ( idx > 0 && idx < 7 )
-              add_point( builder,
-                         x,
-                         y,
-                         (FT_Byte)( idx == 3 || idx == 6 ) );
-          }
-          break;
-
-        case 0:                     /* end flex feature */
-          if ( top[0] != 3 )
-            goto Unexpected_OtherSubr;
-
-          if ( decoder->flex_state       == 0 ||
-               decoder->num_flex_vectors != 7 )
-          {
-            FT_ERROR(( "t1_decoder_parse_charstrings: "
-                       "unexpected flex end\n" ));
-            goto Syntax_Error;
-          }
-
-          /* now consume the remaining `pop pop setcurpoint' */
-          if ( ip + 6 > limit ||
-               ip[0] != 12 || ip[1] != 17 || /* pop */
-               ip[2] != 12 || ip[3] != 17 || /* pop */
-               ip[4] != 12 || ip[5] != 33 )  /* setcurpoint */
-          {
-            FT_ERROR(( "t1_decoder_parse_charstrings: "
-                       "invalid flex charstring\n" ));
-            goto Syntax_Error;
-          }
-
-          ip += 6;
-          decoder->flex_state = 0;
-          break;
-
-        case 3:                     /* change hints */
-          if ( top[0] != 1 )
-            goto Unexpected_OtherSubr;
-
-          /* eat the following `pop' */
-          if ( ip + 2 > limit )
-          {
-            FT_ERROR(( "t1_decoder_parse_charstrings: "
-                       "invalid escape (12+%d)\n", ip[-1] ));
-            goto Syntax_Error;
-          }
-
-          if ( ip[0] != 12 || ip[1] != 17 )
-          {
-            FT_ERROR(( "t1_decoder_parse_charstrings: " ));
-            FT_ERROR(( "`pop' expected, found (%d %d)\n", ip[0], ip[1] ));
-            goto Syntax_Error;
-          }
-          ip += 2;
-
-          if ( hinter )
-            hinter->reset( hinter->hints, builder->current->n_points );
-
-          break;
-
-        case 12:
-        case 13:
-          /* counter control hints, clear stack */
-          top = decoder->stack;
-          break;
-
-        case 14:
-        case 15:
-        case 16:
-        case 17:
-        case 18:                    /* multiple masters */
-          {
-            PS_Blend  blend = decoder->blend;
-            FT_UInt   num_points, nn, mm;
-            FT_Long*  delta;
-            FT_Long*  values;
-
-
-            if ( !blend )
-            {
-              FT_ERROR(( "t1_decoder_parse_charstrings: " ));
-              FT_ERROR(( "unexpected multiple masters operator!\n" ));
-              goto Syntax_Error;
-            }
-
-            num_points = (FT_UInt)top[1] - 13 + ( top[1] == 18 );
-            if ( top[0] != (FT_Int)( num_points * blend->num_designs ) )
-            {
-              FT_ERROR(( "t1_decoder_parse_charstrings: " ));
-              FT_ERROR(( "incorrect number of mm arguments\n" ));
-              goto Syntax_Error;
-            }
-
-            top -= blend->num_designs * num_points;
-            if ( top < decoder->stack )
-              goto Stack_Underflow;
-
-            /* we want to compute:                                   */
-            /*                                                       */
-            /*  a0*w0 + a1*w1 + ... + ak*wk                          */
-            /*                                                       */
-            /* but we only have the a0, a1-a0, a2-a0, .. ak-a0       */
-            /* however, given that w0 + w1 + ... + wk == 1, we can   */
-            /* rewrite it easily as:                                 */
-            /*                                                       */
-            /*  a0 + (a1-a0)*w1 + (a2-a0)*w2 + .. + (ak-a0)*wk       */
-            /*                                                       */
-            /* where k == num_designs-1                              */
-            /*                                                       */
-            /* I guess that's why it's written in this `compact'     */
-            /* form.                                                 */
-            /*                                                       */
-            delta  = top + num_points;
-            values = top;
-            for ( nn = 0; nn < num_points; nn++ )
-            {
-              FT_Long  tmp = values[0];
-
-
-              for ( mm = 1; mm < blend->num_designs; mm++ )
-                tmp += FT_MulFix( *delta++, blend->weight_vector[mm] );
-
-              *values++ = tmp;
-            }
-            /* note that `top' will be incremented later by calls to `pop' */
-            break;
-          }
-
-        default:
-        Unexpected_OtherSubr:
-          FT_ERROR(( "t1_decoder_parse_charstrings: "
-                     "invalid othersubr [%d %d]!\n", top[0], top[1] ));
-          goto Syntax_Error;
-        }
-        decoder->top = top;
-      }
-      else  /* general operator */
-      {
-        FT_Int  num_args = t1_args_count[op];
-
-
-        if ( top - decoder->stack < num_args )
-          goto Stack_Underflow;
-
-        top -= num_args;
-
-        switch ( op )
-        {
-        case op_endchar:
-          FT_TRACE4(( " endchar" ));
-
-          close_contour( builder );
-
-          /* close hints recording session */
-          if ( hinter )
-          {
-            if (hinter->close( hinter->hints, builder->current->n_points ))
-              goto Syntax_Error;
-
-            /* apply hints to the loaded glyph outline now */
-            hinter->apply( hinter->hints,
-                           builder->current,
-                           (PSH_Globals) builder->hints_globals,
-                           decoder->hint_mode );
-          }
-
-          /* add current outline to the glyph slot */
-          FT_GlyphLoader_Add( builder->loader );
-
-          /* return now! */
-          FT_TRACE4(( "\n\n" ));
-          return PSaux_Err_Ok;
-
-        case op_hsbw:
-          FT_TRACE4(( " hsbw" ));
-
-          builder->parse_state = T1_Parse_Have_Width;
-
-          builder->left_bearing.x += top[0];
-          builder->advance.x       = top[1];
-          builder->advance.y       = 0;
-
-          orig_x = builder->last.x = x = builder->pos_x + top[0];
-          orig_y = builder->last.y = y = builder->pos_y;
-
-          FT_UNUSED( orig_y );
-
-          /* the `metrics_only' indicates that we only want to compute */
-          /* the glyph's metrics (lsb + advance width), not load the   */
-          /* rest of it; so exit immediately                           */
-          if ( builder->metrics_only )
-            return PSaux_Err_Ok;
-
-          break;
-
-        case op_seac:
-          /* return immediately after the processing */
-          return t1operator_seac( decoder, top[0], top[1], top[2],
-                                           (FT_Int)top[3], (FT_Int)top[4] );
-
-        case op_sbw:
-          FT_TRACE4(( " sbw" ));
-
-          builder->parse_state = T1_Parse_Have_Width;
-
-          builder->left_bearing.x += top[0];
-          builder->left_bearing.y += top[1];
-          builder->advance.x       = top[2];
-          builder->advance.y       = top[3];
-
-          builder->last.x = x = builder->pos_x + top[0];
-          builder->last.y = y = builder->pos_y + top[1];
-
-          /* the `metrics_only' indicates that we only want to compute */
-          /* the glyph's metrics (lsb + advance width), not load the   */
-          /* rest of it; so exit immediately                           */
-          if ( builder->metrics_only )
-            return PSaux_Err_Ok;
-
-          break;
-
-        case op_closepath:
-          FT_TRACE4(( " closepath" ));
-
-          close_contour( builder );
-          if ( builder->parse_state != T1_Parse_Have_Path )
-            goto Syntax_Error;
-          builder->parse_state = T1_Parse_Have_Width;
-          break;
-
-        case op_hlineto:
-          FT_TRACE4(( " hlineto" ));
-
-          if ( start_point( builder, x, y ) )
-            goto Fail;
-
-          x += top[0];
-          goto Add_Line;
-
-        case op_hmoveto:
-          FT_TRACE4(( " hmoveto" ));
-
-          x += top[0];
-          if ( !decoder->flex_state )
-          {
-            if ( builder->parse_state == T1_Parse_Start )
-              goto Syntax_Error;
-            builder->parse_state = T1_Parse_Have_Moveto;
-          }
-          break;
-
-        case op_hvcurveto:
-          FT_TRACE4(( " hvcurveto" ));
-
-          if ( start_point( builder, x, y ) ||
-               check_points( builder, 3 )   )
-            goto Fail;
-
-          x += top[0];
-          add_point( builder, x, y, 0 );
-          x += top[1];
-          y += top[2];
-          add_point( builder, x, y, 0 );
-          y += top[3];
-          add_point( builder, x, y, 1 );
-          break;
-
-        case op_rlineto:
-          FT_TRACE4(( " rlineto" ));
-
-          if ( start_point( builder, x, y ) )
-            goto Fail;
-
-          x += top[0];
-          y += top[1];
-
-        Add_Line:
-          if ( add_point1( builder, x, y ) )
-            goto Fail;
-          break;
-
-        case op_rmoveto:
-          FT_TRACE4(( " rmoveto" ));
-
-          x += top[0];
-          y += top[1];
-          if ( !decoder->flex_state )
-          {
-            if ( builder->parse_state == T1_Parse_Start )
-              goto Syntax_Error;
-            builder->parse_state = T1_Parse_Have_Moveto;
-          }
-          break;
-
-        case op_rrcurveto:
-          FT_TRACE4(( " rcurveto" ));
-
-          if ( start_point( builder, x, y ) ||
-               check_points( builder, 3 )   )
-            goto Fail;
-
-          x += top[0];
-          y += top[1];
-          add_point( builder, x, y, 0 );
-
-          x += top[2];
-          y += top[3];
-          add_point( builder, x, y, 0 );
-
-          x += top[4];
-          y += top[5];
-          add_point( builder, x, y, 1 );
-          break;
-
-        case op_vhcurveto:
-          FT_TRACE4(( " vhcurveto" ));
-
-          if ( start_point( builder, x, y ) ||
-               check_points( builder, 3 )   )
-            goto Fail;
-
-          y += top[0];
-          add_point( builder, x, y, 0 );
-          x += top[1];
-          y += top[2];
-          add_point( builder, x, y, 0 );
-          x += top[3];
-          add_point( builder, x, y, 1 );
-          break;
-
-        case op_vlineto:
-          FT_TRACE4(( " vlineto" ));
-
-          if ( start_point( builder, x, y ) )
-            goto Fail;
-
-          y += top[0];
-          goto Add_Line;
-
-        case op_vmoveto:
-          FT_TRACE4(( " vmoveto" ));
-
-          y += top[0];
-          if ( !decoder->flex_state )
-          {
-            if ( builder->parse_state == T1_Parse_Start )
-              goto Syntax_Error;
-            builder->parse_state = T1_Parse_Have_Moveto;
-          }
-          break;
-
-        case op_div:
-          FT_TRACE4(( " div" ));
-
-          if ( top[1] )
-          {
-            *top = top[0] / top[1];
-            ++top;
-          }
-          else
-          {
-            FT_ERROR(( "t1_decoder_parse_charstrings: division by 0\n" ));
-            goto Syntax_Error;
-          }
-          break;
-
-        case op_callsubr:
-          {
-            FT_Int  idx;
-
-
-            FT_TRACE4(( " callsubr" ));
-
-            idx = (FT_Int)top[0];
-            if ( idx < 0 || idx >= (FT_Int)decoder->num_subrs )
-            {
-              FT_ERROR(( "t1_decoder_parse_charstrings: "
-                         "invalid subrs index\n" ));
-              goto Syntax_Error;
-            }
-
-            if ( zone - decoder->zones >= T1_MAX_SUBRS_CALLS )
-            {
-              FT_ERROR(( "t1_decoder_parse_charstrings: "
-                         "too many nested subrs\n" ));
-              goto Syntax_Error;
-            }
-
-            zone->cursor = ip;  /* save current instruction pointer */
-
-            zone++;
-
-            /* The Type 1 driver stores subroutines without the seed bytes. */
-            /* The CID driver stores subroutines with seed bytes.  This     */
-            /* case is taken care of when decoder->subrs_len == 0.          */
-            zone->base = decoder->subrs[idx];
-
-            if ( decoder->subrs_len )
-              zone->limit = zone->base + decoder->subrs_len[idx];
-            else
-            {
-              /* We are using subroutines from a CID font.  We must adjust */
-              /* for the seed bytes.                                       */
-              zone->base  += ( decoder->lenIV >= 0 ? decoder->lenIV : 0 );
-              zone->limit  = decoder->subrs[idx + 1];
-            }
-
-            zone->cursor = zone->base;
-
-            if ( !zone->base )
-            {
-              FT_ERROR(( "t1_decoder_parse_charstrings: "
-                         "invoking empty subrs!\n" ));
-              goto Syntax_Error;
-            }
-
-            decoder->zone = zone;
-            ip            = zone->base;
-            limit         = zone->limit;
-            break;
-          }
-
-        case op_pop:
-          FT_TRACE4(( " pop" ));
-
-          /* theoretically, the arguments are already on the stack */
-          top++;
-          break;
-
-        case op_return:
-          FT_TRACE4(( " return" ));
-
-          if ( zone <= decoder->zones )
-          {
-            FT_ERROR(( "t1_decoder_parse_charstrings: unexpected return\n" ));
-            goto Syntax_Error;
-          }
-
-          zone--;
-          ip            = zone->cursor;
-          limit         = zone->limit;
-          decoder->zone = zone;
-          break;
-
-        case op_dotsection:
-          FT_TRACE4(( " dotsection" ));
-
-          break;
-
-        case op_hstem:
-          FT_TRACE4(( " hstem" ));
-
-          /* record horizontal hint */
-          if ( hinter )
-          {
-            /* top[0] += builder->left_bearing.y; */
-            hinter->stem( hinter->hints, 1, top );
-          }
-
-          break;
-
-        case op_hstem3:
-          FT_TRACE4(( " hstem3" ));
-
-          /* record horizontal counter-controlled hints */
-          if ( hinter )
-            hinter->stem3( hinter->hints, 1, top );
-
-          break;
-
-        case op_vstem:
-          FT_TRACE4(( " vstem" ));
-
-          /* record vertical  hint */
-          if ( hinter )
-          {
-            top[0] += orig_x;
-            hinter->stem( hinter->hints, 0, top );
-          }
-
-          break;
-
-        case op_vstem3:
-          FT_TRACE4(( " vstem3" ));
-
-          /* record vertical counter-controlled hints */
-          if ( hinter )
-          {
-            FT_Pos  dx = orig_x;
-
-
-            top[0] += dx;
-            top[2] += dx;
-            top[4] += dx;
-            hinter->stem3( hinter->hints, 0, top );
-          }
-          break;
-
-        case op_setcurrentpoint:
-          FT_TRACE4(( " setcurrentpoint" ));
-
-          FT_ERROR(( "t1_decoder_parse_charstrings: " ));
-          FT_ERROR(( "unexpected `setcurrentpoint'\n" ));
-          goto Syntax_Error;
-
-        default:
-          FT_ERROR(( "t1_decoder_parse_charstrings: "
-                     "unhandled opcode %d\n", op ));
-          goto Syntax_Error;
-        }
-
-        decoder->top = top;
-
-      } /* general operator processing */
-
-    } /* while ip < limit */
-
-    FT_TRACE4(( "..end..\n\n" ));
-
-  Fail:
-    return error;
-
-  Syntax_Error:
-    return PSaux_Err_Syntax_Error;
-
-  Stack_Underflow:
-    return PSaux_Err_Stack_Underflow;
-  }
-
-
-  /* parse a single Type 1 glyph */
-  FT_LOCAL_DEF( FT_Error )
-  t1_decoder_parse_glyph( T1_Decoder  decoder,
-                          FT_UInt     glyph )
-  {
-    return decoder->parse_callback( decoder, glyph );
-  }
-
-
-  /* initialize T1 decoder */
-  FT_LOCAL_DEF( FT_Error )
-  t1_decoder_init( T1_Decoder           decoder,
-                   FT_Face              face,
-                   FT_Size              size,
-                   FT_GlyphSlot         slot,
-                   FT_Byte**            glyph_names,
-                   PS_Blend             blend,
-                   FT_Bool              hinting,
-                   FT_Render_Mode       hint_mode,
-                   T1_Decoder_Callback  parse_callback )
-  {
-    FT_MEM_ZERO( decoder, sizeof ( *decoder ) );
-
-    /* retrieve PSNames interface from list of current modules */
-    {
-      FT_Service_PsCMaps  psnames = 0;
-
-
-      FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-      if ( !psnames )
-      {
-        FT_ERROR(( "t1_decoder_init: " ));
-        FT_ERROR(( "the `psnames' module is not available\n" ));
-        return PSaux_Err_Unimplemented_Feature;
-      }
-
-      decoder->psnames = psnames;
-    }
-
-    t1_builder_init( &decoder->builder, face, size, slot, hinting );
-
-    decoder->num_glyphs     = (FT_UInt)face->num_glyphs;
-    decoder->glyph_names    = glyph_names;
-    decoder->hint_mode      = hint_mode;
-    decoder->blend          = blend;
-    decoder->parse_callback = parse_callback;
-
-    decoder->funcs          = t1_decoder_funcs;
-
-    return 0;
-  }
-
-
-  /* finalize T1 decoder */
-  FT_LOCAL_DEF( void )
-  t1_decoder_done( T1_Decoder  decoder )
-  {
-    t1_builder_done( &decoder->builder );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psaux/t1decode.h b/nx-X11/extras/freetype2/src/psaux/t1decode.h
deleted file mode 100644
index 00728db50..000000000
--- a/nx-X11/extras/freetype2/src/psaux/t1decode.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1decode.h                                                             */
-/*                                                                         */
-/*    PostScript Type 1 decoding routines (specification).                 */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1DECODE_H__
-#define __T1DECODE_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_CALLBACK_TABLE
-  const T1_Decoder_FuncsRec  t1_decoder_funcs;
-
-
-  FT_LOCAL( FT_Error )
-  t1_decoder_parse_glyph( T1_Decoder  decoder,
-                          FT_UInt     glyph_index );
-
-  FT_LOCAL( FT_Error )
-  t1_decoder_parse_charstrings( T1_Decoder  decoder,
-                                FT_Byte*    base,
-                                FT_UInt     len );
-
-  FT_LOCAL( FT_Error )
-  t1_decoder_init( T1_Decoder           decoder,
-                   FT_Face              face,
-                   FT_Size              size,
-                   FT_GlyphSlot         slot,
-                   FT_Byte**            glyph_names,
-                   PS_Blend             blend,
-                   FT_Bool              hinting,
-                   FT_Render_Mode       hint_mode,
-                   T1_Decoder_Callback  parse_glyph );
-
-  FT_LOCAL( void )
-  t1_decoder_done( T1_Decoder  decoder );
-
-
-FT_END_HEADER
-
-#endif /* __T1DECODE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/Jamfile b/nx-X11/extras/freetype2/src/pshinter/Jamfile
deleted file mode 100644
index ee02a144b..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/pshinter Jamfile (c) 2001, 2003 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) pshinter ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = pshrec pshglob pshalgo pshmod ;
-  }
-  else
-  {
-    _sources = pshinter ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/pshinter Jamfile
diff --git a/nx-X11/extras/freetype2/src/pshinter/descrip.mms b/nx-X11/extras/freetype2/src/pshinter/descrip.mms
deleted file mode 100644
index 205d6cfcc..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 PSHinter driver compilation rules for OpenVMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
-
-OBJS=pshinter.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pshinter/module.mk b/nx-X11/extras/freetype2/src/pshinter/module.mk
deleted file mode 100644
index 63c7e217f..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 PSHinter module definition
-#
-
-
-# Copyright 1996-2001 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_pshinter_module
-
-add_pshinter_module:
-	$(OPEN_DRIVER)pshinter_module_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)pshinter  $(ECHO_DRIVER_DESC)Postscript hinter module$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshalgo.c b/nx-X11/extras/freetype2/src/pshinter/pshalgo.c
deleted file mode 100644
index 5f077d54d..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshalgo.c
+++ /dev/null
@@ -1,2091 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshalgo.c                                                              */
-/*                                                                         */
-/*    PostScript hinting algorithm (body).                                 */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003, 2004 by                                    */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include "pshalgo.h"
-
-#include "pshnterr.h"
-
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pshalgo2
-
-
-#ifdef DEBUG_HINTER
-  PSH_Hint_Table  ps_debug_hint_table = 0;
-  PSH_HintFunc    ps_debug_hint_func  = 0;
-  PSH_Glyph       ps_debug_glyph      = 0;
-#endif
-
-
-#define  COMPUTE_INFLEXS  /* compute inflection points to optimize `S' */
-                          /* and similar glyphs                        */
-#define  STRONGER         /* slightly increase the contrast of smooth  */
-                          /* hinting                                   */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                  BASIC HINTS RECORDINGS                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* return true if two stem hints overlap */
-  static FT_Int
-  psh_hint_overlap( PSH_Hint  hint1,
-                    PSH_Hint  hint2 )
-  {
-    return hint1->org_pos + hint1->org_len >= hint2->org_pos &&
-           hint2->org_pos + hint2->org_len >= hint1->org_pos;
-  }
-
-
-  /* destroy hints table */
-  static void
-  psh_hint_table_done( PSH_Hint_Table  table,
-                       FT_Memory       memory )
-  {
-    FT_FREE( table->zones );
-    table->num_zones = 0;
-    table->zone      = 0;
-
-    FT_FREE( table->sort );
-    FT_FREE( table->hints );
-    table->num_hints   = 0;
-    table->max_hints   = 0;
-    table->sort_global = 0;
-  }
-
-
-  /* deactivate all hints in a table */
-  static void
-  psh_hint_table_deactivate( PSH_Hint_Table  table )
-  {
-    FT_UInt   count = table->max_hints;
-    PSH_Hint  hint  = table->hints;
-
-
-    for ( ; count > 0; count--, hint++ )
-    {
-      psh_hint_deactivate( hint );
-      hint->order = -1;
-    }
-  }
-
-
-  /* internal function to record a new hint */
-  static void
-  psh_hint_table_record( PSH_Hint_Table  table,
-                         FT_UInt         idx )
-  {
-    PSH_Hint  hint = table->hints + idx;
-
-
-    if ( idx >= table->max_hints )
-    {
-      FT_ERROR(( "psh_hint_table_record: invalid hint index %d\n", idx ));
-      return;
-    }
-
-    /* ignore active hints */
-    if ( psh_hint_is_active( hint ) )
-      return;
-
-    psh_hint_activate( hint );
-
-    /* now scan the current active hint set to check */
-    /* whether `hint' overlaps with another hint     */
-    {
-      PSH_Hint*  sorted = table->sort_global;
-      FT_UInt    count  = table->num_hints;
-      PSH_Hint   hint2;
-
-
-      hint->parent = 0;
-      for ( ; count > 0; count--, sorted++ )
-      {
-        hint2 = sorted[0];
-
-        if ( psh_hint_overlap( hint, hint2 ) )
-        {
-          hint->parent = hint2;
-          break;
-        }
-      }
-    }
-
-    if ( table->num_hints < table->max_hints )
-      table->sort_global[table->num_hints++] = hint;
-    else
-      FT_ERROR(( "psh_hint_table_record: too many sorted hints!  BUG!\n" ));
-  }
-
-
-  static void
-  psh_hint_table_record_mask( PSH_Hint_Table  table,
-                              PS_Mask         hint_mask )
-  {
-    FT_Int    mask = 0, val = 0;
-    FT_Byte*  cursor = hint_mask->bytes;
-    FT_UInt   idx, limit;
-
-
-    limit = hint_mask->num_bits;
-
-    for ( idx = 0; idx < limit; idx++ )
-    {
-      if ( mask == 0 )
-      {
-        val  = *cursor++;
-        mask = 0x80;
-      }
-
-      if ( val & mask )
-        psh_hint_table_record( table, idx );
-
-      mask >>= 1;
-    }
-  }
-
-
-  /* create hints table */
-  static FT_Error
-  psh_hint_table_init( PSH_Hint_Table  table,
-                       PS_Hint_Table   hints,
-                       PS_Mask_Table   hint_masks,
-                       PS_Mask_Table   counter_masks,
-                       FT_Memory       memory )
-  {
-    FT_UInt   count;
-    FT_Error  error;
-
-    FT_UNUSED( counter_masks );
-
-
-    count = hints->num_hints;
-
-    /* allocate our tables */
-    if ( FT_NEW_ARRAY( table->sort,  2 * count     ) ||
-         FT_NEW_ARRAY( table->hints,     count     ) ||
-         FT_NEW_ARRAY( table->zones, 2 * count + 1 ) )
-      goto Exit;
-
-    table->max_hints   = count;
-    table->sort_global = table->sort + count;
-    table->num_hints   = 0;
-    table->num_zones   = 0;
-    table->zone        = 0;
-
-    /* initialize the `table->hints' array */
-    {
-      PSH_Hint  write = table->hints;
-      PS_Hint   read  = hints->hints;
-
-
-      for ( ; count > 0; count--, write++, read++ )
-      {
-        write->org_pos = read->pos;
-        write->org_len = read->len;
-        write->flags   = read->flags;
-      }
-    }
-
-    /* we now need to determine the initial `parent' stems; first  */
-    /* activate the hints that are given by the initial hint masks */
-    if ( hint_masks )
-    {
-      PS_Mask  mask = hint_masks->masks;
-
-
-      count             = hint_masks->num_masks;
-      table->hint_masks = hint_masks;
-
-      for ( ; count > 0; count--, mask++ )
-        psh_hint_table_record_mask( table, mask );
-    }
-
-    /* finally, do a linear parse in case some hints were left alone */
-    if ( table->num_hints != table->max_hints )
-    {
-      FT_UInt  idx;
-
-
-      FT_ERROR(( "psh_hint_table_init: missing/incorrect hint masks!\n" ));
-
-      count = table->max_hints;
-      for ( idx = 0; idx < count; idx++ )
-        psh_hint_table_record( table, idx );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static void
-  psh_hint_table_activate_mask( PSH_Hint_Table  table,
-                                PS_Mask         hint_mask )
-  {
-    FT_Int    mask = 0, val = 0;
-    FT_Byte*  cursor = hint_mask->bytes;
-    FT_UInt   idx, limit, count;
-
-
-    limit = hint_mask->num_bits;
-    count = 0;
-
-    psh_hint_table_deactivate( table );
-
-    for ( idx = 0; idx < limit; idx++ )
-    {
-      if ( mask == 0 )
-      {
-        val  = *cursor++;
-        mask = 0x80;
-      }
-
-      if ( val & mask )
-      {
-        PSH_Hint  hint = &table->hints[idx];
-
-
-        if ( !psh_hint_is_active( hint ) )
-        {
-          FT_UInt     count2;
-
-#if 0
-          PSH_Hint*  sort = table->sort;
-          PSH_Hint   hint2;
-
-
-          for ( count2 = count; count2 > 0; count2--, sort++ )
-          {
-            hint2 = sort[0];
-            if ( psh_hint_overlap( hint, hint2 ) )
-              FT_ERROR(( "psh_hint_table_activate_mask:"
-                         " found overlapping hints\n" ))
-          }
-#else
-          count2 = 0;
-#endif
-
-          if ( count2 == 0 )
-          {
-            psh_hint_activate( hint );
-            if ( count < table->max_hints )
-              table->sort[count++] = hint;
-            else
-              FT_ERROR(( "psh_hint_tableactivate_mask:"
-                         " too many active hints\n" ));
-          }
-        }
-      }
-
-      mask >>= 1;
-    }
-    table->num_hints = count;
-
-    /* now, sort the hints; they are guaranteed to not overlap */
-    /* so we can compare their "org_pos" field directly        */
-    {
-      FT_Int     i1, i2;
-      PSH_Hint   hint1, hint2;
-      PSH_Hint*  sort = table->sort;
-
-
-      /* a simple bubble sort will do, since in 99% of cases, the hints */
-      /* will be already sorted -- and the sort will be linear          */
-      for ( i1 = 1; i1 < (FT_Int)count; i1++ )
-      {
-        hint1 = sort[i1];
-        for ( i2 = i1 - 1; i2 >= 0; i2-- )
-        {
-          hint2 = sort[i2];
-
-          if ( hint2->org_pos < hint1->org_pos )
-            break;
-
-          sort[i2 + 1] = hint2;
-          sort[i2]     = hint1;
-        }
-      }
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****               HINTS GRID-FITTING AND OPTIMIZATION             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#if 1
-  static FT_Pos
-  psh_dimension_quantize_len( PSH_Dimension  dim,
-                              FT_Pos         len,
-                              FT_Bool        do_snapping )
-  {
-    if ( len <= 64 )
-      len = 64;
-    else
-    {
-      FT_Pos  delta = len - dim->stdw.widths[0].cur;
-
-
-      if ( delta < 0 )
-        delta = -delta;
-
-      if ( delta < 40 )
-      {
-        len = dim->stdw.widths[0].cur;
-        if ( len < 48 )
-          len = 48;
-      }
-
-      if ( len < 3 * 64 )
-      {
-        delta = ( len & 63 );
-        len  &= -64;
-
-        if ( delta < 10 )
-          len += delta;
-
-        else if ( delta < 32 )
-          len += 10;
-
-        else if ( delta < 54 )
-          len += 54;
-
-        else
-          len += delta;
-      }
-      else
-        len = FT_PIX_ROUND( len );
-    }
-
-    if ( do_snapping )
-      len = FT_PIX_ROUND( len );
-
-    return  len;
-  }
-#endif /* 0 */
-
-
-#ifdef DEBUG_HINTER
-
-  static void
-  ps_simple_scale( PSH_Hint_Table  table,
-                   FT_Fixed        scale,
-                   FT_Fixed        delta,
-                   FT_Int          dimension )
-  {
-    PSH_Hint  hint;
-    FT_UInt   count;
-
-
-    for ( count = 0; count < table->max_hints; count++ )
-    {
-      hint = table->hints + count;
-
-      hint->cur_pos = FT_MulFix( hint->org_pos, scale ) + delta;
-      hint->cur_len = FT_MulFix( hint->org_len, scale );
-
-      if ( ps_debug_hint_func )
-        ps_debug_hint_func( hint, dimension );
-    }
-  }
-
-#endif /* DEBUG_HINTER */
-
-
-  static FT_Fixed
-  psh_hint_snap_stem_side_delta( FT_Fixed  pos,
-                                 FT_Fixed  len )
-  {
-    FT_Fixed  delta1 = FT_PIX_ROUND( pos ) - pos;
-    FT_Fixed  delta2 = FT_PIX_ROUND( pos + len ) - pos - len;
-
-
-    if ( FT_ABS( delta1 ) <= FT_ABS( delta2 ) )
-      return delta1;
-    else
-      return delta2;
-  }
-
-
-  static void
-  psh_hint_align( PSH_Hint     hint,
-                  PSH_Globals  globals,
-                  FT_Int       dimension,
-                  PSH_Glyph    glyph )
-  {
-    PSH_Dimension  dim   = &globals->dimension[dimension];
-    FT_Fixed       scale = dim->scale_mult;
-    FT_Fixed       delta = dim->scale_delta;
-
-
-    if ( !psh_hint_is_fitted( hint ) )
-    {
-      FT_Pos  pos = FT_MulFix( hint->org_pos, scale ) + delta;
-      FT_Pos  len = FT_MulFix( hint->org_len, scale );
-
-      FT_Int            do_snapping;
-      FT_Pos            fit_len;
-      PSH_AlignmentRec  align;
-
-
-      /* ignore stem alignments when requested through the hint flags */
-      if ( ( dimension == 0 && !glyph->do_horz_hints ) ||
-           ( dimension == 1 && !glyph->do_vert_hints ) )
-      {
-        hint->cur_pos = pos;
-        hint->cur_len = len;
-
-        psh_hint_set_fitted( hint );
-        return;
-      }
-
-      /* perform stem snapping when requested - this is necessary
-       * for monochrome and LCD hinting modes only
-       */
-      do_snapping = ( dimension == 0 && glyph->do_horz_snapping ) ||
-                    ( dimension == 1 && glyph->do_vert_snapping );
-
-      hint->cur_len = fit_len = len;
-
-      /* check blue zones for horizontal stems */
-      align.align     = PSH_BLUE_ALIGN_NONE;
-      align.align_bot = align.align_top = 0;
-
-      if ( dimension == 1 )
-        psh_blues_snap_stem( &globals->blues,
-                             hint->org_pos + hint->org_len,
-                             hint->org_pos,
-                             &align );
-
-      switch ( align.align )
-      {
-      case PSH_BLUE_ALIGN_TOP:
-        /* the top of the stem is aligned against a blue zone */
-        hint->cur_pos = align.align_top - fit_len;
-        break;
-
-      case PSH_BLUE_ALIGN_BOT:
-        /* the bottom of the stem is aligned against a blue zone */
-        hint->cur_pos = align.align_bot;
-        break;
-
-      case PSH_BLUE_ALIGN_TOP | PSH_BLUE_ALIGN_BOT:
-        /* both edges of the stem are aligned against blue zones */
-        hint->cur_pos = align.align_bot;
-        hint->cur_len = align.align_top - align.align_bot;
-        break;
-
-      default:
-        {
-          PSH_Hint  parent = hint->parent;
-
-
-          if ( parent )
-          {
-            FT_Pos  par_org_center, par_cur_center;
-            FT_Pos  cur_org_center, cur_delta;
-
-
-            /* ensure that parent is already fitted */
-            if ( !psh_hint_is_fitted( parent ) )
-              psh_hint_align( parent, globals, dimension, glyph );
-
-            /* keep original relation between hints, this is, use the */
-            /* scaled distance between the centers of the hints to    */
-            /* compute the new position                               */
-            par_org_center = parent->org_pos + ( parent->org_len >> 1 );
-            par_cur_center = parent->cur_pos + ( parent->cur_len >> 1 );
-            cur_org_center = hint->org_pos   + ( hint->org_len   >> 1 );
-
-            cur_delta = FT_MulFix( cur_org_center - par_org_center, scale );
-            pos       = par_cur_center + cur_delta - ( len >> 1 );
-          }
-
-          hint->cur_pos = pos;
-          hint->cur_len = fit_len;
-
-          /* Stem adjustment tries to snap stem widths to standard
-           * ones.  This is important to prevent unpleasant rounding
-           * artefacts.
-           */
-          if ( glyph->do_stem_adjust )
-          {
-            if ( len <= 64 )
-            {
-              /* the stem is less than one pixel; we will center it
-               * around the nearest pixel center
-               */
-#if 1
-              pos = FT_PIX_FLOOR( pos + ( len >> 1 ) );
-#else
-             /* this seems to be a bug! */
-              pos = pos + FT_PIX_FLOOR( len >> 1 );
-#endif
-              len = 64;
-            }
-            else
-            {
-              len = psh_dimension_quantize_len( dim, len, 0 );
-            }
-          }
-
-          /* now that we have a good hinted stem width, try to position */
-          /* the stem along a pixel grid integer coordinate             */
-          hint->cur_pos = pos + psh_hint_snap_stem_side_delta( pos, len );
-          hint->cur_len = len;
-        }
-      }
-
-      if ( do_snapping )
-      {
-        pos = hint->cur_pos;
-        len = hint->cur_len;
-
-        if ( len < 64 )
-          len = 64;
-        else
-          len = FT_PIX_ROUND( len );
-
-        switch ( align.align )
-        {
-          case PSH_BLUE_ALIGN_TOP:
-            hint->cur_pos = align.align_top - len;
-            hint->cur_len = len;
-            break;
-
-          case PSH_BLUE_ALIGN_BOT:
-            hint->cur_len = len;
-            break;
-
-          case PSH_BLUE_ALIGN_BOT | PSH_BLUE_ALIGN_TOP:
-            /* don't touch */
-            break;
-
-
-          default:
-            hint->cur_len = len;
-            if ( len & 64 )
-              pos = FT_PIX_FLOOR( pos + ( len >> 1 ) ) + 32;
-            else
-              pos = FT_PIX_ROUND( pos + ( len >> 1 ) );
-
-            hint->cur_pos = pos - ( len >> 1 );
-            hint->cur_len = len;
-        }
-      }
-
-      psh_hint_set_fitted( hint );
-
-#ifdef DEBUG_HINTER
-      if ( ps_debug_hint_func )
-        ps_debug_hint_func( hint, dimension );
-#endif
-    }
-  }
-
-
-#if 0  /* not used for now, experimental */
-
- /*
-  *  A variant to perform "light" hinting (i.e. FT_RENDER_MODE_LIGHT)
-  *  of stems
-  */
-  static void
-  psh_hint_align_light( PSH_Hint     hint,
-                        PSH_Globals  globals,
-                        FT_Int       dimension,
-                        PSH_Glyph    glyph )
-  {
-    PSH_Dimension  dim   = &globals->dimension[dimension];
-    FT_Fixed       scale = dim->scale_mult;
-    FT_Fixed       delta = dim->scale_delta;
-
-
-    if ( !psh_hint_is_fitted( hint ) )
-    {
-      FT_Pos  pos = FT_MulFix( hint->org_pos, scale ) + delta;
-      FT_Pos  len = FT_MulFix( hint->org_len, scale );
-
-      FT_Pos  fit_len;
-
-      PSH_AlignmentRec  align;
-
-
-      /* ignore stem alignments when requested through the hint flags */
-      if ( ( dimension == 0 && !glyph->do_horz_hints ) ||
-           ( dimension == 1 && !glyph->do_vert_hints ) )
-      {
-        hint->cur_pos = pos;
-        hint->cur_len = len;
-
-        psh_hint_set_fitted( hint );
-        return;
-      }
-
-      fit_len = len;
-
-      hint->cur_len = fit_len;
-
-      /* check blue zones for horizontal stems */
-      align.align = PSH_BLUE_ALIGN_NONE;
-      align.align_bot = align.align_top = 0;
-
-      if ( dimension == 1 )
-        psh_blues_snap_stem( &globals->blues,
-                             hint->org_pos + hint->org_len,
-                             hint->org_pos,
-                             &align );
-
-      switch ( align.align )
-      {
-      case PSH_BLUE_ALIGN_TOP:
-        /* the top of the stem is aligned against a blue zone */
-        hint->cur_pos = align.align_top - fit_len;
-        break;
-
-      case PSH_BLUE_ALIGN_BOT:
-        /* the bottom of the stem is aligned against a blue zone */
-        hint->cur_pos = align.align_bot;
-        break;
-
-      case PSH_BLUE_ALIGN_TOP | PSH_BLUE_ALIGN_BOT:
-        /* both edges of the stem are aligned against blue zones */
-        hint->cur_pos = align.align_bot;
-        hint->cur_len = align.align_top - align.align_bot;
-        break;
-
-      default:
-        {
-          PSH_Hint  parent = hint->parent;
-
-
-          if ( parent )
-          {
-            FT_Pos  par_org_center, par_cur_center;
-            FT_Pos  cur_org_center, cur_delta;
-
-
-            /* ensure that parent is already fitted */
-            if ( !psh_hint_is_fitted( parent ) )
-              psh_hint_align_light( parent, globals, dimension, glyph );
-
-            par_org_center = parent->org_pos + ( parent->org_len / 2 );
-            par_cur_center = parent->cur_pos + ( parent->cur_len / 2 );
-            cur_org_center = hint->org_pos   + ( hint->org_len   / 2 );
-
-            cur_delta = FT_MulFix( cur_org_center - par_org_center, scale );
-            pos       = par_cur_center + cur_delta - ( len >> 1 );
-          }
-
-          /* Stems less than one pixel wide are easy -- we want to
-           * make them as dark as possible, so they must fall within
-           * one pixel.  If the stem is split between two pixels
-           * then snap the edge that is nearer to the pixel boundary
-           * to the pixel boundary.
-           */
-          if ( len <= 64 )
-          {
-            if ( ( pos + len + 63 ) / 64  != pos / 64 + 1 )
-              pos += psh_hint_snap_stem_side_delta ( pos, len );
-          }
-
-          /* Position stems other to minimize the amount of mid-grays.
-           * There are, in general, two positions that do this,
-           * illustrated as A) and B) below.
-           *
-           *   +                   +                   +                   +
-           *
-           * A)             |--------------------------------|
-           * B)   |--------------------------------|
-           * C)       |--------------------------------|
-           *
-           * Position A) (split the excess stem equally) should be better
-           * for stems of width N + f where f < 0.5.
-           *
-           * Position B) (split the deficiency equally) should be better
-           * for stems of width N + f where f > 0.5.
-           *
-           * It turns out though that minimizing the total number of lit
-           * pixels is also important, so position C), with one edge
-           * aligned with a pixel boundary is actually preferable
-           * to A).  There are also more possibile positions for C) than
-           * for A) or B), so it involves less distortion of the overall
-           * character shape.
-           */
-          else /* len > 64 */
-          {
-            FT_Fixed  frac_len = len & 63;
-            FT_Fixed  center = pos + ( len >> 1 );
-            FT_Fixed  delta_a, delta_b;
-
-
-            if ( ( len / 64 ) & 1 )
-            {
-              delta_a = FT_PIX_FLOOR( center ) + 32 - center;
-              delta_b = FT_PIX_ROUND( center ) - center;
-            }
-            else
-            {
-              delta_a = FT_PIX_ROUND( center ) - center;
-              delta_b = FT_PIX_FLOOR( center ) + 32 - center;
-            }
-
-            /* We choose between B) and C) above based on the amount
-             * of fractinal stem width; for small amounts, choose
-             * C) always, for large amounts, B) always, and inbetween,
-             * pick whichever one involves less stem movement.
-             */
-            if ( frac_len < 32 )
-            {
-              pos += psh_hint_snap_stem_side_delta ( pos, len );
-            }
-            else if ( frac_len < 48 )
-            {
-              FT_Fixed  side_delta = psh_hint_snap_stem_side_delta ( pos,
-                                                                     len );
-
-              if ( FT_ABS( side_delta ) < FT_ABS( delta_b ) )
-                pos += side_delta;
-              else
-                pos += delta_b;
-            }
-            else
-            {
-              pos += delta_b;
-            }
-          }
-
-          hint->cur_pos = pos;
-        }
-      }  /* switch */
-
-      psh_hint_set_fitted( hint );
-
-#ifdef DEBUG_HINTER
-      if ( ps_debug_hint_func )
-        ps_debug_hint_func( hint, dimension );
-#endif
-    }
-  }
-
-#endif /* 0 */
-
-
-  static void
-  psh_hint_table_align_hints( PSH_Hint_Table  table,
-                              PSH_Globals     globals,
-                              FT_Int          dimension,
-                              PSH_Glyph       glyph )
-  {
-    PSH_Hint       hint;
-    FT_UInt        count;
-
-#ifdef DEBUG_HINTER
-
-    PSH_Dimension  dim   = &globals->dimension[dimension];
-    FT_Fixed       scale = dim->scale_mult;
-    FT_Fixed       delta = dim->scale_delta;
-
-
-    if ( ps_debug_no_vert_hints && dimension == 0 )
-    {
-      ps_simple_scale( table, scale, delta, dimension );
-      return;
-    }
-
-    if ( ps_debug_no_horz_hints && dimension == 1 )
-    {
-      ps_simple_scale( table, scale, delta, dimension );
-      return;
-    }
-
-#endif /* DEBUG_HINTER*/
-
-    hint  = table->hints;
-    count = table->max_hints;
-
-    for ( ; count > 0; count--, hint++ )
-      psh_hint_align( hint, globals, dimension, glyph );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                POINTS INTERPOLATION ROUTINES                  *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#define PSH_ZONE_MIN  -3200000L
-#define PSH_ZONE_MAX  +3200000L
-
-#define xxDEBUG_ZONES
-
-
-#ifdef DEBUG_ZONES
-
-#include <stdio.h>
-
-  static void
-  psh_print_zone( PSH_Zone  zone )
-  {
-    printf( "zone [scale,delta,min,max] = [%.3f,%.3f,%d,%d]\n",
-             zone->scale / 65536.0,
-             zone->delta / 64.0,
-             zone->min,
-             zone->max );
-  }
-
-#else
-
-#define psh_print_zone( x )  do { } while ( 0 )
-
-#endif /* DEBUG_ZONES */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    HINTER GLYPH MANAGEMENT                    *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#ifdef COMPUTE_INFLEXS
-
-  /* compute all inflex points in a given glyph */
-  static void
-  psh_glyph_compute_inflections( PSH_Glyph  glyph )
-  {
-    FT_UInt  n;
-
-
-    for ( n = 0; n < glyph->num_contours; n++ )
-    {
-      PSH_Point  first, start, end, before, after;
-      FT_Angle   angle_in, angle_seg, angle_out;
-      FT_Angle   diff_in, diff_out;
-      FT_Int     finished = 0;
-
-
-      /* we need at least 4 points to create an inflection point */
-      if ( glyph->contours[n].count < 4 )
-        continue;
-
-      /* compute first segment in contour */
-      first = glyph->contours[n].start;
-
-      start = end = first;
-      do
-      {
-        end = end->next;
-        if ( end == first )
-          goto Skip;
-
-      } while ( PSH_POINT_EQUAL_ORG( end, first ) );
-
-      angle_seg = PSH_POINT_ANGLE( start, end );
-
-      /* extend the segment start whenever possible */
-      before = start;
-      do
-      {
-        do
-        {
-          start  = before;
-          before = before->prev;
-          if ( before == first )
-            goto Skip;
-
-        } while ( PSH_POINT_EQUAL_ORG( before, start ) );
-
-        angle_in = PSH_POINT_ANGLE( before, start );
-
-      } while ( angle_in == angle_seg );
-
-      first   = start;
-      diff_in = FT_Angle_Diff( angle_in, angle_seg );
-
-      /* now, process all segments in the contour */
-      do
-      {
-        /* first, extend current segment's end whenever possible */
-        after = end;
-        do
-        {
-          do
-          {
-            end   = after;
-            after = after->next;
-            if ( after == first )
-              finished = 1;
-
-          } while ( PSH_POINT_EQUAL_ORG( end, after ) );
-
-          angle_out = PSH_POINT_ANGLE( end, after );
-
-        } while ( angle_out == angle_seg );
-
-        diff_out = FT_Angle_Diff( angle_seg, angle_out );
-
-        if ( ( diff_in ^ diff_out ) < 0 )
-        {
-          /* diff_in and diff_out have different signs, we have */
-          /* inflection points here...                          */
-
-          do
-          {
-            psh_point_set_inflex( start );
-            start = start->next;
-          }
-          while ( start != end );
-
-          psh_point_set_inflex( start );
-        }
-
-        start     = end;
-        end       = after;
-        angle_seg = angle_out;
-        diff_in   = diff_out;
-
-      } while ( !finished );
-
-    Skip:
-      ;
-    }
-  }
-
-#endif /* COMPUTE_INFLEXS */
-
-
-  static void
-  psh_glyph_done( PSH_Glyph  glyph )
-  {
-    FT_Memory  memory = glyph->memory;
-
-
-    psh_hint_table_done( &glyph->hint_tables[1], memory );
-    psh_hint_table_done( &glyph->hint_tables[0], memory );
-
-    FT_FREE( glyph->points );
-    FT_FREE( glyph->contours );
-
-    glyph->num_points   = 0;
-    glyph->num_contours = 0;
-
-    glyph->memory = 0;
-  }
-
-
-  static int
-  psh_compute_dir( FT_Pos  dx,
-                   FT_Pos  dy )
-  {
-    FT_Pos  ax, ay;
-    int     result = PSH_DIR_NONE;
-
-
-    ax = ( dx >= 0 ) ? dx : -dx;
-    ay = ( dy >= 0 ) ? dy : -dy;
-
-    if ( ay * 12 < ax )
-    {
-      /* |dy| <<< |dx|  means a near-horizontal segment */
-      result = ( dx >= 0 ) ? PSH_DIR_RIGHT : PSH_DIR_LEFT;
-    }
-    else if ( ax * 12 < ay )
-    {
-      /* |dx| <<< |dy|  means a near-vertical segment */
-      result = ( dy >= 0 ) ? PSH_DIR_UP : PSH_DIR_DOWN;
-    }
-
-    return result;
-  }
-
-
-  /* load outline point coordinates into hinter glyph */
-  static void
-  psh_glyph_load_points( PSH_Glyph  glyph,
-                         FT_Int     dimension )
-  {
-    FT_Vector*  vec   = glyph->outline->points;
-    PSH_Point   point = glyph->points;
-    FT_UInt     count = glyph->num_points;
-
-
-    for ( ; count > 0; count--, point++, vec++ )
-    {
-      point->flags2 = 0;
-      point->hint   = NULL;
-      if ( dimension == 0 )
-      {
-        point->org_u = vec->x;
-        point->org_v = vec->y;
-      }
-      else
-      {
-        point->org_u = vec->y;
-        point->org_v = vec->x;
-      }
-
-#ifdef DEBUG_HINTER
-      point->org_x = vec->x;
-      point->org_y = vec->y;
-#endif
-
-    }
-  }
-
-
-  /* save hinted point coordinates back to outline */
-  static void
-  psh_glyph_save_points( PSH_Glyph  glyph,
-                         FT_Int     dimension )
-  {
-    FT_UInt     n;
-    PSH_Point   point = glyph->points;
-    FT_Vector*  vec   = glyph->outline->points;
-    char*       tags  = glyph->outline->tags;
-
-
-    for ( n = 0; n < glyph->num_points; n++ )
-    {
-      if ( dimension == 0 )
-        vec[n].x = point->cur_u;
-      else
-        vec[n].y = point->cur_u;
-
-      if ( psh_point_is_strong( point ) )
-        tags[n] |= (char)( ( dimension == 0 ) ? 32 : 64 );
-
-#ifdef DEBUG_HINTER
-
-      if ( dimension == 0 )
-      {
-        point->cur_x   = point->cur_u;
-        point->flags_x = point->flags2 | point->flags;
-      }
-      else
-      {
-        point->cur_y   = point->cur_u;
-        point->flags_y = point->flags2 | point->flags;
-      }
-
-#endif
-
-      point++;
-    }
-  }
-
-
-  static FT_Error
-  psh_glyph_init( PSH_Glyph    glyph,
-                  FT_Outline*  outline,
-                  PS_Hints     ps_hints,
-                  PSH_Globals  globals )
-  {
-    FT_Error   error;
-    FT_Memory  memory;
-
-
-    /* clear all fields */
-    FT_MEM_ZERO( glyph, sizeof ( *glyph ) );
-
-    memory = glyph->memory = globals->memory;
-
-    /* allocate and setup points + contours arrays */
-    if ( FT_NEW_ARRAY( glyph->points,   outline->n_points   ) ||
-         FT_NEW_ARRAY( glyph->contours, outline->n_contours ) )
-      goto Exit;
-
-    glyph->num_points   = outline->n_points;
-    glyph->num_contours = outline->n_contours;
-
-    {
-      FT_UInt      first = 0, next, n;
-      PSH_Point    points  = glyph->points;
-      PSH_Contour  contour = glyph->contours;
-
-
-      for ( n = 0; n < glyph->num_contours; n++ )
-      {
-        FT_Int     count;
-        PSH_Point  point;
-
-
-        next  = outline->contours[n] + 1;
-        count = next - first;
-
-        contour->start = points + first;
-        contour->count = (FT_UInt)count;
-
-        if ( count > 0 )
-        {
-          point = points + first;
-
-          point->prev    = points + next - 1;
-          point->contour = contour;
-
-          for ( ; count > 1; count-- )
-          {
-            point[0].next = point + 1;
-            point[1].prev = point;
-            point++;
-            point->contour = contour;
-          }
-          point->next = points + first;
-        }
-
-        contour++;
-        first = next;
-      }
-    }
-
-    {
-      PSH_Point   points = glyph->points;
-      PSH_Point   point  = points;
-      FT_Vector*  vec    = outline->points;
-      FT_UInt     n;
-
-
-      for ( n = 0; n < glyph->num_points; n++, point++ )
-      {
-        FT_Int  n_prev = (FT_Int)( point->prev - points );
-        FT_Int  n_next = (FT_Int)( point->next - points );
-        FT_Pos  dxi, dyi, dxo, dyo;
-
-
-        if ( !( outline->tags[n] & FT_CURVE_TAG_ON ) )
-          point->flags = PSH_POINT_OFF;
-
-        dxi = vec[n].x - vec[n_prev].x;
-        dyi = vec[n].y - vec[n_prev].y;
-
-        point->dir_in = (FT_Char)psh_compute_dir( dxi, dyi );
-
-        dxo = vec[n_next].x - vec[n].x;
-        dyo = vec[n_next].y - vec[n].y;
-
-        point->dir_out = (FT_Char)psh_compute_dir( dxo, dyo );
-
-        /* detect smooth points */
-        if ( point->flags & PSH_POINT_OFF )
-          point->flags |= PSH_POINT_SMOOTH;
-        else if ( point->dir_in  != PSH_DIR_NONE ||
-                  point->dir_out != PSH_DIR_NONE )
-        {
-          if ( point->dir_in == point->dir_out )
-            point->flags |= PSH_POINT_SMOOTH;
-        }
-        else
-        {
-          FT_Angle  angle_in, angle_out, diff;
-
-
-          angle_in  = FT_Atan2( dxi, dyi );
-          angle_out = FT_Atan2( dxo, dyo );
-
-          diff = angle_in - angle_out;
-          if ( diff < 0 )
-            diff = -diff;
-
-          if ( diff > FT_ANGLE_PI )
-            diff = FT_ANGLE_2PI - diff;
-
-          if ( diff < FT_ANGLE_PI / 16 )
-            point->flags |= PSH_POINT_SMOOTH;
-        }
-      }
-    }
-
-    glyph->outline = outline;
-    glyph->globals = globals;
-
-#ifdef COMPUTE_INFLEXS
-    psh_glyph_load_points( glyph, 0 );
-    psh_glyph_compute_inflections( glyph );
-#endif /* COMPUTE_INFLEXS */
-
-    /* now deal with hints tables */
-    error = psh_hint_table_init( &glyph->hint_tables [0],
-                                 &ps_hints->dimension[0].hints,
-                                 &ps_hints->dimension[0].masks,
-                                 &ps_hints->dimension[0].counters,
-                                 memory );
-    if ( error )
-      goto Exit;
-
-    error = psh_hint_table_init( &glyph->hint_tables [1],
-                                 &ps_hints->dimension[1].hints,
-                                 &ps_hints->dimension[1].masks,
-                                 &ps_hints->dimension[1].counters,
-                                 memory );
-    if ( error )
-      goto Exit;
-
-  Exit:
-    return error;
-  }
-
-
-  /* compute all extrema in a glyph for a given dimension */
-  static void
-  psh_glyph_compute_extrema( PSH_Glyph  glyph )
-  {
-    FT_UInt  n;
-
-
-    /* first of all, compute all local extrema */
-    for ( n = 0; n < glyph->num_contours; n++ )
-    {
-      PSH_Point  first = glyph->contours[n].start;
-      PSH_Point  point, before, after;
-
-
-      if ( glyph->contours[n].count == 0 )
-        continue;
-
-      point  = first;
-      before = point;
-      after  = point;
-
-      do
-      {
-        before = before->prev;
-        if ( before == first )
-          goto Skip;
-
-      } while ( before->org_u == point->org_u );
-
-      first = point = before->next;
-
-      for (;;)
-      {
-        after = point;
-        do
-        {
-          after = after->next;
-          if ( after == first )
-            goto Next;
-
-        } while ( after->org_u == point->org_u );
-
-        if ( before->org_u < point->org_u )
-        {
-          if ( after->org_u < point->org_u )
-          {
-            /* local maximum */
-            goto Extremum;
-          }
-        }
-        else /* before->org_u > point->org_u */
-        {
-          if ( after->org_u > point->org_u )
-          {
-            /* local minimum */
-          Extremum:
-            do
-            {
-              psh_point_set_extremum( point );
-              point = point->next;
-
-            } while ( point != after );
-          }
-        }
-
-        before = after->prev;
-        point  = after;
-
-      } /* for  */
-
-    Next:
-      ;
-    }
-
-    /* for each extremum, determine its direction along the */
-    /* orthogonal axis                                      */
-    for ( n = 0; n < glyph->num_points; n++ )
-    {
-      PSH_Point  point, before, after;
-
-
-      point  = &glyph->points[n];
-      before = point;
-      after  = point;
-
-      if ( psh_point_is_extremum( point ) )
-      {
-        do
-        {
-          before = before->prev;
-          if ( before == point )
-            goto Skip;
-
-        } while ( before->org_v == point->org_v );
-
-        do
-        {
-          after = after->next;
-          if ( after == point )
-            goto Skip;
-
-        } while ( after->org_v == point->org_v );
-      }
-
-      if ( before->org_v < point->org_v &&
-           after->org_v  > point->org_v )
-      {
-        psh_point_set_positive( point );
-      }
-      else if ( before->org_v > point->org_v &&
-                after->org_v  < point->org_v )
-      {
-        psh_point_set_negative( point );
-      }
-
-    Skip:
-      ;
-    }
-  }
-
-
-  /* major_dir is the direction for points on the bottom/left of the stem; */
-  /* Points on the top/right of the stem will have a direction of          */
-  /* -major_dir.                                                           */
-
-  static void
-  psh_hint_table_find_strong_point( PSH_Hint_Table  table,
-                                    PSH_Point       point,
-                                    FT_Int          threshold,
-                                    FT_Int          major_dir )
-  {
-    PSH_Hint*  sort      = table->sort;
-    FT_UInt    num_hints = table->num_hints;
-    FT_Int     point_dir = 0;
-
-
-    if ( PSH_DIR_COMPARE( point->dir_in, major_dir ) )
-      point_dir = point->dir_in;
-
-    else if ( PSH_DIR_COMPARE( point->dir_out, major_dir ) )
-      point_dir = point->dir_out;
-
-    if ( point_dir )
-    {
-      FT_UInt  flag;
-
-
-      for ( ; num_hints > 0; num_hints--, sort++ )
-      {
-        PSH_Hint  hint = sort[0];
-        FT_Pos    d;
-
-
-        if ( point_dir == major_dir )
-        {
-          flag = PSH_POINT_EDGE_MIN;
-          d    = point->org_u - hint->org_pos;
-
-          if ( FT_ABS( d ) < threshold )
-          {
-          Is_Strong:
-            psh_point_set_strong( point );
-            point->flags2 |= flag;
-            point->hint    = hint;
-            break;
-          }
-        }
-        else if ( point_dir == -major_dir )
-        {
-          flag = PSH_POINT_EDGE_MAX;
-          d    = point->org_u - hint->org_pos - hint->org_len;
-
-          if ( FT_ABS( d ) < threshold )
-            goto Is_Strong;
-        }
-      }
-    }
-
-#if 1
-    else if ( psh_point_is_extremum( point ) )
-    {
-      /* treat extrema as special cases for stem edge alignment */
-      FT_UInt  min_flag, max_flag;
-
-
-      if ( major_dir == PSH_DIR_HORIZONTAL )
-      {
-        min_flag = PSH_POINT_POSITIVE;
-        max_flag = PSH_POINT_NEGATIVE;
-      }
-      else
-      {
-        min_flag = PSH_POINT_NEGATIVE;
-        max_flag = PSH_POINT_POSITIVE;
-      }
-
-      for ( ; num_hints > 0; num_hints--, sort++ )
-      {
-        PSH_Hint  hint = sort[0];
-        FT_Pos    d;
-        FT_Int    flag;
-
-
-        if ( point->flags2 & min_flag )
-        {
-          flag = PSH_POINT_EDGE_MIN;
-          d    = point->org_u - hint->org_pos;
-
-          if ( FT_ABS( d ) < threshold )
-          {
-          Is_Strong2:
-            point->flags2 |= flag;
-            point->hint    = hint;
-            psh_point_set_strong( point );
-            break;
-          }
-        }
-        else if ( point->flags2 & max_flag )
-        {
-          flag = PSH_POINT_EDGE_MAX;
-          d    = point->org_u - hint->org_pos - hint->org_len;
-
-          if ( FT_ABS( d ) < threshold )
-            goto Is_Strong2;
-        }
-
-        if ( point->org_u >= hint->org_pos                 &&
-             point->org_u <= hint->org_pos + hint->org_len )
-        {
-          point->hint = hint;
-        }
-      }
-    }
-
-#endif /* 1 */
-  }
-
-
-  /* the accepted shift for strong points in fractional pixels */
-#define PSH_STRONG_THRESHOLD  32
-
-  /* the maximum shift value in font units */
-#define PSH_STRONG_THRESHOLD_MAXIMUM  30
-
-
-  /* find strong points in a glyph */
-  static void
-  psh_glyph_find_strong_points( PSH_Glyph  glyph,
-                                FT_Int     dimension )
-  {
-    /* a point is `strong' if it is located on a stem edge and       */
-    /* has an `in' or `out' tangent parallel to the hint's direction */
-
-    PSH_Hint_Table  table     = &glyph->hint_tables[dimension];
-    PS_Mask         mask      = table->hint_masks->masks;
-    FT_UInt         num_masks = table->hint_masks->num_masks;
-    FT_UInt         first     = 0;
-    FT_Int          major_dir = dimension == 0 ? PSH_DIR_VERTICAL
-                                               : PSH_DIR_HORIZONTAL;
-    PSH_Dimension   dim       = &glyph->globals->dimension[dimension];
-    FT_Fixed        scale     = dim->scale_mult;
-    FT_Int          threshold;
-
-
-    threshold = (FT_Int)FT_DivFix( PSH_STRONG_THRESHOLD, scale );
-    if ( threshold > PSH_STRONG_THRESHOLD_MAXIMUM )
-      threshold = PSH_STRONG_THRESHOLD_MAXIMUM;
-
-    /* process secondary hints to `selected' points */
-    if ( num_masks > 1 && glyph->num_points > 0 )
-    {
-      first = mask->end_point;
-      mask++;
-      for ( ; num_masks > 1; num_masks--, mask++ )
-      {
-        FT_UInt  next;
-        FT_Int   count;
-
-
-        next  = mask->end_point;
-        count = next - first;
-        if ( count > 0 )
-        {
-          PSH_Point  point = glyph->points + first;
-
-
-          psh_hint_table_activate_mask( table, mask );
-
-          for ( ; count > 0; count--, point++ )
-            psh_hint_table_find_strong_point( table, point,
-                                              threshold, major_dir );
-        }
-        first = next;
-      }
-    }
-
-    /* process primary hints for all points */
-    if ( num_masks == 1 )
-    {
-      FT_UInt    count = glyph->num_points;
-      PSH_Point  point = glyph->points;
-
-
-      psh_hint_table_activate_mask( table, table->hint_masks->masks );
-      for ( ; count > 0; count--, point++ )
-      {
-        if ( !psh_point_is_strong( point ) )
-          psh_hint_table_find_strong_point( table, point,
-                                            threshold, major_dir );
-      }
-    }
-
-    /* now, certain points may have been attached to a hint and */
-    /* not marked as strong; update their flags then            */
-    {
-      FT_UInt    count = glyph->num_points;
-      PSH_Point  point = glyph->points;
-
-
-      for ( ; count > 0; count--, point++ )
-        if ( point->hint && !psh_point_is_strong( point ) )
-          psh_point_set_strong( point );
-    }
-  }
-
-
-  /* find points in a glyph which are in a blue zone and have `in' or */
-  /* `out' tangents parallel to the horizontal axis                   */
-  static void
-  psh_glyph_find_blue_points( PSH_Blues  blues,
-                              PSH_Glyph  glyph )
-  {
-    PSH_Blue_Table  table;
-    PSH_Blue_Zone   zone;
-    FT_UInt         glyph_count = glyph->num_points;
-    FT_UInt         blue_count;
-    PSH_Point       point = glyph->points;
-
-
-    for ( ; glyph_count > 0; glyph_count--, point++ )
-    {
-      FT_Pos  y;
-
-
-      /* check tangents */
-      if ( !PSH_DIR_COMPARE( point->dir_in,  PSH_DIR_HORIZONTAL ) &&
-           !PSH_DIR_COMPARE( point->dir_out, PSH_DIR_HORIZONTAL ) )
-        continue;
-
-      /* skip strong points */
-      if ( psh_point_is_strong( point ) )
-        continue;
-
-      y = point->org_u;
-
-      /* look up top zones */
-      table      = &blues->normal_top;
-      blue_count = table->count;
-      zone       = table->zones;
-
-      for ( ; blue_count > 0; blue_count--, zone++ )
-      {
-        FT_Pos  delta = y - zone->org_bottom;
-
-
-        if ( delta < -blues->blue_fuzz )
-          break;
-
-        if ( y <= zone->org_top + blues->blue_fuzz )
-          if ( blues->no_overshoots || delta <= blues->blue_threshold )
-          {
-            point->cur_u = zone->cur_bottom;
-            psh_point_set_strong( point );
-            psh_point_set_fitted( point );
-          }
-      }
-
-      /* look up bottom zones */
-      table      = &blues->normal_bottom;
-      blue_count = table->count;
-      zone       = table->zones + blue_count - 1;
-
-      for ( ; blue_count > 0; blue_count--, zone-- )
-      {
-        FT_Pos  delta = zone->org_top - y;
-
-
-        if ( delta < -blues->blue_fuzz )
-          break;
-
-        if ( y >= zone->org_bottom - blues->blue_fuzz )
-          if ( blues->no_overshoots || delta < blues->blue_threshold )
-          {
-            point->cur_u = zone->cur_top;
-            psh_point_set_strong( point );
-            psh_point_set_fitted( point );
-          }
-      }
-    }
-  }
-
-
-  /* interpolate strong points with the help of hinted coordinates */
-  static void
-  psh_glyph_interpolate_strong_points( PSH_Glyph  glyph,
-                                       FT_Int     dimension )
-  {
-    PSH_Dimension  dim   = &glyph->globals->dimension[dimension];
-    FT_Fixed       scale = dim->scale_mult;
-
-    FT_UInt        count = glyph->num_points;
-    PSH_Point      point = glyph->points;
-
-
-    for ( ; count > 0; count--, point++ )
-    {
-      PSH_Hint  hint = point->hint;
-
-
-      if ( hint )
-      {
-        FT_Pos  delta;
-
-
-        if ( psh_point_is_edge_min( point ) )
-          point->cur_u = hint->cur_pos;
-
-        else if ( psh_point_is_edge_max( point ) )
-          point->cur_u = hint->cur_pos + hint->cur_len;
-
-        else
-        {
-          delta = point->org_u - hint->org_pos;
-
-          if ( delta <= 0 )
-            point->cur_u = hint->cur_pos + FT_MulFix( delta, scale );
-
-          else if ( delta >= hint->org_len )
-            point->cur_u = hint->cur_pos + hint->cur_len +
-                             FT_MulFix( delta - hint->org_len, scale );
-
-          else if ( hint->org_len > 0 )
-            point->cur_u = hint->cur_pos +
-                             FT_MulDiv( delta, hint->cur_len,
-                                        hint->org_len );
-          else
-            point->cur_u = hint->cur_pos;
-        }
-        psh_point_set_fitted( point );
-      }
-    }
-  }
-
-
-  static void
-  psh_glyph_interpolate_normal_points( PSH_Glyph  glyph,
-                                       FT_Int     dimension )
-  {
-
-#if 1
-    /* first technique: a point is strong if it is a local extremum */
-
-    PSH_Dimension  dim   = &glyph->globals->dimension[dimension];
-    FT_Fixed       scale = dim->scale_mult;
-
-    FT_UInt        count = glyph->num_points;
-    PSH_Point      point = glyph->points;
-
-
-    for ( ; count > 0; count--, point++ )
-    {
-      if ( psh_point_is_strong( point ) )
-        continue;
-
-      /* sometimes, some local extrema are smooth points */
-      if ( psh_point_is_smooth( point ) )
-      {
-        if ( point->dir_in == PSH_DIR_NONE   ||
-             point->dir_in != point->dir_out )
-          continue;
-
-        if ( !psh_point_is_extremum( point ) &&
-             !psh_point_is_inflex( point )   )
-          continue;
-
-        point->flags &= ~PSH_POINT_SMOOTH;
-      }
-
-      /* find best enclosing point coordinates */
-      {
-        PSH_Point  before = 0;
-        PSH_Point  after  = 0;
-
-        FT_Pos     diff_before = -32000;
-        FT_Pos     diff_after  =  32000;
-        FT_Pos     u = point->org_u;
-
-        FT_Int     count2 = glyph->num_points;
-        PSH_Point  cur    = glyph->points;
-
-
-        for ( ; count2 > 0; count2--, cur++ )
-        {
-          if ( psh_point_is_strong( cur ) )
-          {
-            FT_Pos  diff = cur->org_u - u;
-
-
-            if ( diff <= 0 )
-            {
-              if ( diff > diff_before )
-              {
-                diff_before = diff;
-                before      = cur;
-              }
-            }
-
-            else if ( diff >= 0 )
-            {
-              if ( diff < diff_after )
-              {
-                diff_after = diff;
-                after      = cur;
-              }
-            }
-          }
-        }
-
-        if ( !before )
-        {
-          if ( !after )
-            continue;
-
-          /* we are before the first strong point coordinate; */
-          /* simply translate the point                       */
-          point->cur_u = after->cur_u +
-                           FT_MulFix( point->org_u - after->org_u, scale );
-        }
-        else if ( !after )
-        {
-          /* we are after the last strong point coordinate; */
-          /* simply translate the point                     */
-          point->cur_u = before->cur_u +
-                           FT_MulFix( point->org_u - before->org_u, scale );
-        }
-        else
-        {
-          if ( diff_before == 0 )
-            point->cur_u = before->cur_u;
-
-          else if ( diff_after == 0 )
-            point->cur_u = after->cur_u;
-
-          else
-            point->cur_u = before->cur_u +
-                             FT_MulDiv( u - before->org_u,
-                                        after->cur_u - before->cur_u,
-                                        after->org_u - before->org_u );
-        }
-
-        psh_point_set_fitted( point );
-      }
-    }
-
-#endif /* 1 */
-
-  }
-
-
-  /* interpolate other points */
-  static void
-  psh_glyph_interpolate_other_points( PSH_Glyph  glyph,
-                                      FT_Int     dimension )
-  {
-    PSH_Dimension  dim          = &glyph->globals->dimension[dimension];
-    FT_Fixed       scale        = dim->scale_mult;
-    FT_Fixed       delta        = dim->scale_delta;
-    PSH_Contour    contour      = glyph->contours;
-    FT_UInt        num_contours = glyph->num_contours;
-
-
-    for ( ; num_contours > 0; num_contours--, contour++ )
-    {
-      PSH_Point  start = contour->start;
-      PSH_Point  first, next, point;
-      FT_UInt    fit_count;
-
-
-      /* count the number of strong points in this contour */
-      next      = start + contour->count;
-      fit_count = 0;
-      first     = 0;
-
-      for ( point = start; point < next; point++ )
-        if ( psh_point_is_fitted( point ) )
-        {
-          if ( !first )
-            first = point;
-
-          fit_count++;
-        }
-
-      /* if there are less than 2 fitted points in the contour, we */
-      /* simply scale and eventually translate the contour points  */
-      if ( fit_count < 2 )
-      {
-        if ( fit_count == 1 )
-          delta = first->cur_u - FT_MulFix( first->org_u, scale );
-
-        for ( point = start; point < next; point++ )
-          if ( point != first )
-            point->cur_u = FT_MulFix( point->org_u, scale ) + delta;
-
-        goto Next_Contour;
-      }
-
-      /* there are more than 2 strong points in this contour; we */
-      /* need to interpolate weak points between them            */
-      start = first;
-      do
-      {
-        point = first;
-
-        /* skip consecutive fitted points */
-        for (;;)
-        {
-          next = first->next;
-          if ( next == start )
-            goto Next_Contour;
-
-          if ( !psh_point_is_fitted( next ) )
-            break;
-
-          first = next;
-        }
-
-        /* find next fitted point after unfitted one */
-        for (;;)
-        {
-          next = next->next;
-          if ( psh_point_is_fitted( next ) )
-            break;
-        }
-
-        /* now interpolate between them */
-        {
-          FT_Pos    org_a, org_ab, cur_a, cur_ab;
-          FT_Pos    org_c, org_ac, cur_c;
-          FT_Fixed  scale_ab;
-
-
-          if ( first->org_u <= next->org_u )
-          {
-            org_a  = first->org_u;
-            cur_a  = first->cur_u;
-            org_ab = next->org_u - org_a;
-            cur_ab = next->cur_u - cur_a;
-          }
-          else
-          {
-            org_a  = next->org_u;
-            cur_a  = next->cur_u;
-            org_ab = first->org_u - org_a;
-            cur_ab = first->cur_u - cur_a;
-          }
-
-          scale_ab = 0x10000L;
-          if ( org_ab > 0 )
-            scale_ab = FT_DivFix( cur_ab, org_ab );
-
-          point = first->next;
-          do
-          {
-            org_c  = point->org_u;
-            org_ac = org_c - org_a;
-
-            if ( org_ac <= 0 )
-            {
-              /* on the left of the interpolation zone */
-              cur_c = cur_a + FT_MulFix( org_ac, scale );
-            }
-            else if ( org_ac >= org_ab )
-            {
-              /* on the right on the interpolation zone */
-              cur_c = cur_a + cur_ab + FT_MulFix( org_ac - org_ab, scale );
-            }
-            else
-            {
-              /* within the interpolation zone */
-              cur_c = cur_a + FT_MulFix( org_ac, scale_ab );
-            }
-
-            point->cur_u = cur_c;
-
-            point = point->next;
-
-          } while ( point != next );
-        }
-
-        /* keep going until all points in the contours have been processed */
-        first = next;
-
-      } while ( first != start );
-
-    Next_Contour:
-      ;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                     HIGH-LEVEL INTERFACE                      *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  FT_Error
-  ps_hints_apply( PS_Hints        ps_hints,
-                  FT_Outline*     outline,
-                  PSH_Globals     globals,
-                  FT_Render_Mode  hint_mode )
-  {
-    PSH_GlyphRec  glyphrec;
-    PSH_Glyph     glyph = &glyphrec;
-    FT_Error      error;
-#ifdef DEBUG_HINTER
-    FT_Memory     memory;
-#endif
-    FT_Int        dimension;
-
-
-    /* something to do? */
-    if ( outline->n_points == 0 || outline->n_contours == 0 )
-      return PSH_Err_Ok;
-
-#ifdef DEBUG_HINTER
-
-    memory = globals->memory;
-
-    if ( ps_debug_glyph )
-    {
-      psh_glyph_done( ps_debug_glyph );
-      FT_FREE( ps_debug_glyph );
-    }
-
-    if ( FT_NEW( glyph ) )
-      return error;
-
-    ps_debug_glyph = glyph;
-
-#endif /* DEBUG_HINTER */
-
-    error = psh_glyph_init( glyph, outline, ps_hints, globals );
-    if ( error )
-      goto Exit;
-
-    /* try to optimize the y_scale so that the top of non-capital letters
-     * is aligned on a pixel boundary whenever possible
-     */
-    {
-      PSH_Dimension  dim_x = &glyph->globals->dimension[0];
-      PSH_Dimension  dim_y = &glyph->globals->dimension[1];
-
-      FT_Fixed x_scale = dim_x->scale_mult;
-      FT_Fixed y_scale = dim_y->scale_mult;
-
-      FT_Fixed scaled;
-      FT_Fixed fitted;
-
-
-      scaled = FT_MulFix( globals->blues.normal_top.zones->org_ref, y_scale );
-      fitted = FT_PIX_ROUND( scaled );
-
-      if (scaled != fitted ) {
-        y_scale = FT_MulDiv( y_scale, fitted, scaled );
-
-        if ( fitted < scaled )
-          x_scale -= x_scale / 50;
-
-        psh_globals_set_scale( glyph->globals, x_scale, y_scale, 0, 0 );
-      }
-    }
-
-    glyph->do_horz_hints = 1;
-    glyph->do_vert_hints = 1;
-
-    glyph->do_horz_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_MONO ||
-                                       hint_mode == FT_RENDER_MODE_LCD  );
-
-    glyph->do_vert_snapping = FT_BOOL( hint_mode == FT_RENDER_MODE_MONO  ||
-                                       hint_mode == FT_RENDER_MODE_LCD_V );
-
-    glyph->do_stem_adjust   = FT_BOOL( hint_mode != FT_RENDER_MODE_LIGHT );
-
-    for ( dimension = 0; dimension < 2; dimension++ )
-    {
-      /* load outline coordinates into glyph */
-      psh_glyph_load_points( glyph, dimension );
-
-      /* compute local extrema */
-      psh_glyph_compute_extrema( glyph );
-
-      /* compute aligned stem/hints positions */
-      psh_hint_table_align_hints( &glyph->hint_tables[dimension],
-                                  glyph->globals,
-                                  dimension,
-                                  glyph );
-
-      /* find strong points, align them, then interpolate others */
-      psh_glyph_find_strong_points( glyph, dimension );
-      if ( dimension == 1 )
-        psh_glyph_find_blue_points( &globals->blues, glyph );
-      psh_glyph_interpolate_strong_points( glyph, dimension );
-      psh_glyph_interpolate_normal_points( glyph, dimension );
-      psh_glyph_interpolate_other_points( glyph, dimension );
-
-      /* save hinted coordinates back to outline */
-      psh_glyph_save_points( glyph, dimension );
-    }
-
-  Exit:
-
-#ifndef DEBUG_HINTER
-    psh_glyph_done( glyph );
-#endif
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshalgo.h b/nx-X11/extras/freetype2/src/pshinter/pshalgo.h
deleted file mode 100644
index f68de7120..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshalgo.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshalgo.h                                                              */
-/*                                                                         */
-/*    PostScript hinting algorithm (specification).                        */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSHALGO_H__
-#define __PSHALGO_H__
-
-
-#include "pshrec.h"
-#include "pshglob.h"
-#include FT_TRIGONOMETRY_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* handle to Hint structure */
-  typedef struct PSH_HintRec_*  PSH_Hint;
-
-  /* hint bit-flags */
-  typedef enum
-  {
-    PSH_HINT_GHOST  = PS_HINT_FLAG_GHOST,
-    PSH_HINT_BOTTOM = PS_HINT_FLAG_BOTTOM,
-    PSH_HINT_ACTIVE = 4,
-    PSH_HINT_FITTED = 8
-
-  } PSH_Hint_Flags;
-
-
-#define psh_hint_is_active( x )  ( ( (x)->flags & PSH_HINT_ACTIVE ) != 0 )
-#define psh_hint_is_ghost( x )   ( ( (x)->flags & PSH_HINT_GHOST  ) != 0 )
-#define psh_hint_is_fitted( x )  ( ( (x)->flags & PSH_HINT_FITTED ) != 0 )
-
-#define psh_hint_activate( x )    (x)->flags |=  PSH_HINT_ACTIVE
-#define psh_hint_deactivate( x )  (x)->flags &= ~PSH_HINT_ACTIVE
-#define psh_hint_set_fitted( x )  (x)->flags |=  PSH_HINT_FITTED
-
-  /* hint structure */
-  typedef struct  PSH_HintRec_
-  {
-    FT_Int    org_pos;
-    FT_Int    org_len;
-    FT_Pos    cur_pos;
-    FT_Pos    cur_len;
-    FT_UInt   flags;
-    PSH_Hint  parent;
-    FT_Int    order;
-
-  } PSH_HintRec;
-
-
-  /* this is an interpolation zone used for strong points;  */
-  /* weak points are interpolated according to their strong */
-  /* neighbours                                             */
-  typedef struct  PSH_ZoneRec_
-  {
-    FT_Fixed  scale;
-    FT_Fixed  delta;
-    FT_Pos    min;
-    FT_Pos    max;
-
-  } PSH_ZoneRec, *PSH_Zone;
-
-
-  typedef struct  PSH_Hint_TableRec_
-  {
-    FT_UInt        max_hints;
-    FT_UInt        num_hints;
-    PSH_Hint       hints;
-    PSH_Hint*      sort;
-    PSH_Hint*      sort_global;
-    FT_UInt        num_zones;
-    PSH_ZoneRec*   zones;
-    PSH_Zone       zone;
-    PS_Mask_Table  hint_masks;
-    PS_Mask_Table  counter_masks;
-
-  } PSH_Hint_TableRec, *PSH_Hint_Table;
-
-
-  typedef struct PSH_PointRec_*    PSH_Point;
-  typedef struct PSH_ContourRec_*  PSH_Contour;
-
-  enum
-  {
-    PSH_DIR_NONE  =  4,
-    PSH_DIR_UP    = -1,
-    PSH_DIR_DOWN  =  1,
-    PSH_DIR_LEFT  = -2,
-    PSH_DIR_RIGHT =  2
-  };
-
-#define PSH_DIR_HORIZONTAL  2
-#define PSH_DIR_VERTICAL    1
-
-#define PSH_DIR_COMPARE( d1, d2 )   ( (d1) == (d2) || (d1) == -(d2) )
-#define PSH_DIR_IS_HORIZONTAL( d )  PSH_DIR_COMPARE( d, PSH_DIR_HORIZONTAL )
-#define PSH_DIR_IS_VERTICAL( d )    PSH_DIR_COMPARE( d, PSH_DIR_VERTICAL )
-
-
- /* the following bit-flags are computed once by the glyph */
- /* analyzer, for both dimensions                          */
-  enum
-  {
-    PSH_POINT_OFF    = 1,   /* point is off the curve */
-    PSH_POINT_SMOOTH = 2,   /* point is smooth        */
-    PSH_POINT_INFLEX = 4    /* point is inflection    */
-  };
-
-#define psh_point_is_smooth( p )  ( (p)->flags & PSH_POINT_SMOOTH )
-#define psh_point_is_off( p )     ( (p)->flags & PSH_POINT_OFF    )
-#define psh_point_is_inflex( p )  ( (p)->flags & PSH_POINT_INFLEX )
-
-#define psh_point_set_smooth( p )  (p)->flags |= PSH_POINT_SMOOTH
-#define psh_point_set_off( p )     (p)->flags |= PSH_POINT_OFF
-#define psh_point_set_inflex( p )  (p)->flags |= PSH_POINT_INFLEX
-
-  /* the following bit-flags are re-computed for each dimension */
-  enum
-  {
-    PSH_POINT_STRONG   = 16,   /* point is strong                           */
-    PSH_POINT_FITTED   = 32,   /* point is already fitted                   */
-    PSH_POINT_EXTREMUM = 64,   /* point is local extremum                   */
-    PSH_POINT_POSITIVE = 128,  /* extremum has positive contour flow        */
-    PSH_POINT_NEGATIVE = 256,  /* extremum has negative contour flow        */
-    PSH_POINT_EDGE_MIN = 512,  /* point is aligned to left/bottom stem edge */
-    PSH_POINT_EDGE_MAX = 1024  /* point is aligned to top/right stem edge   */
-  };
-
-#define psh_point_is_strong( p )    ( (p)->flags2 & PSH_POINT_STRONG )
-#define psh_point_is_fitted( p )    ( (p)->flags2 & PSH_POINT_FITTED )
-#define psh_point_is_extremum( p )  ( (p)->flags2 & PSH_POINT_EXTREMUM )
-#define psh_point_is_positive( p )  ( (p)->flags2 & PSH_POINT_POSITIVE )
-#define psh_point_is_negative( p )  ( (p)->flags2 & PSH_POINT_NEGATIVE )
-#define psh_point_is_edge_min( p )  ( (p)->flags2 & PSH_POINT_EDGE_MIN )
-#define psh_point_is_edge_max( p )  ( (p)->flags2 & PSH_POINT_EDGE_MAX )
-
-#define psh_point_set_strong( p )    (p)->flags2 |= PSH_POINT_STRONG
-#define psh_point_set_fitted( p )    (p)->flags2 |= PSH_POINT_FITTED
-#define psh_point_set_extremum( p )  (p)->flags2 |= PSH_POINT_EXTREMUM
-#define psh_point_set_positive( p )  (p)->flags2 |= PSH_POINT_POSITIVE
-#define psh_point_set_negative( p )  (p)->flags2 |= PSH_POINT_NEGATIVE
-#define psh_point_set_edge_min( p )  (p)->flags2 |= PSH_POINT_EDGE_MIN
-#define psh_point_set_edge_max( p )  (p)->flags2 |= PSH_POINT_EDGE_MAX
-
-
-  typedef struct  PSH_PointRec_
-  {
-    PSH_Point    prev;
-    PSH_Point    next;
-    PSH_Contour  contour;
-    FT_UInt      flags;
-    FT_UInt      flags2;
-    FT_Char      dir_in;
-    FT_Char      dir_out;
-    FT_Angle     angle_in;
-    FT_Angle     angle_out;
-    PSH_Hint     hint;
-    FT_Pos       org_u;
-    FT_Pos       org_v;
-    FT_Pos       cur_u;
-#ifdef DEBUG_HINTER
-    FT_Pos       org_x;
-    FT_Pos       cur_x;
-    FT_Pos       org_y;
-    FT_Pos       cur_y;
-    FT_UInt      flags_x;
-    FT_UInt      flags_y;
-#endif
-
-  } PSH_PointRec;
-
-
-#define PSH_POINT_EQUAL_ORG( a, b )  ( (a)->org_u == (b)->org_u && \
-                                       (a)->org_v == (b)->org_v )
-
-#define PSH_POINT_ANGLE( a, b )  FT_Atan2( (b)->org_u - (a)->org_u,  \
-                                           (b)->org_v - (a)->org_v )
-
-  typedef struct  PSH_ContourRec_
-  {
-    PSH_Point  start;
-    FT_UInt    count;
-
-  } PSH_ContourRec;
-
-
-  typedef struct  PSH_GlyphRec_
-  {
-    FT_UInt            num_points;
-    FT_UInt            num_contours;
-
-    PSH_Point          points;
-    PSH_Contour        contours;
-
-    FT_Memory          memory;
-    FT_Outline*        outline;
-    PSH_Globals        globals;
-    PSH_Hint_TableRec  hint_tables[2];
-
-    FT_Bool            vertical;
-    FT_Int             major_dir;
-    FT_Int             minor_dir;
-
-    FT_Bool            do_horz_hints;
-    FT_Bool            do_vert_hints;
-    FT_Bool            do_horz_snapping;
-    FT_Bool            do_vert_snapping;
-    FT_Bool            do_stem_adjust;
-
-  } PSH_GlyphRec, *PSH_Glyph;
-
-
-#ifdef DEBUG_HINTER
-  extern PSH_Hint_Table  ps_debug_hint_table;
-
-  typedef void
-  (*PSH_HintFunc)( PSH_Hint  hint,
-                   FT_Bool   vertical );
-
-  extern PSH_HintFunc    ps_debug_hint_func;
-
-  extern PSH_Glyph       ps_debug_glyph;
-#endif
-
-
-  extern FT_Error
-  ps_hints_apply( PS_Hints        ps_hints,
-                  FT_Outline*     outline,
-                  PSH_Globals     globals,
-                  FT_Render_Mode  hint_mode );
-
-
-FT_END_HEADER
-
-
-#endif /* __PSHALGO_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshglob.c b/nx-X11/extras/freetype2/src/pshinter/pshglob.c
deleted file mode 100644
index 21d45e92f..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshglob.c
+++ /dev/null
@@ -1,750 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshglob.c                                                              */
-/*                                                                         */
-/*    PostScript hinter global hinting management (body).                  */
-/*    Inspired by the new auto-hinter module.                              */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003, 2004 by                                    */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
-#include "pshglob.h"
-
-#ifdef DEBUG_HINTER
-  PSH_Globals  ps_debug_globals = 0;
-#endif
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       STANDARD WIDTHS                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* scale the widths/heights table */
-  static void
-  psh_globals_scale_widths( PSH_Globals  globals,
-                            FT_UInt      direction )
-  {
-    PSH_Dimension  dim   = &globals->dimension[direction];
-    PSH_Widths     stdw  = &dim->stdw;
-    FT_UInt        count = stdw->count;
-    PSH_Width      width = stdw->widths;
-    PSH_Width      stand = width;               /* standard width/height */
-    FT_Fixed       scale = dim->scale_mult;
-
-
-    if ( count > 0 )
-    {
-      width->cur = FT_MulFix( width->org, scale );
-      width->fit = FT_PIX_ROUND( width->cur );
-
-      width++;
-      count--;
-
-      for ( ; count > 0; count--, width++ )
-      {
-        FT_Pos  w, dist;
-
-
-        w    = FT_MulFix( width->org, scale );
-        dist = w - stand->cur;
-
-        if ( dist < 0 )
-          dist = -dist;
-
-        if ( dist < 128 )
-          w = stand->cur;
-
-        width->cur = w;
-        width->fit = FT_PIX_ROUND( w );
-      }
-    }
-  }
-
-
-#if 0
-
-  /* org_width is is font units, result in device pixels, 26.6 format */
-  FT_LOCAL_DEF( FT_Pos )
-  psh_dimension_snap_width( PSH_Dimension  dimension,
-                            FT_Int         org_width )
-  {
-    FT_UInt  n;
-    FT_Pos   width     = FT_MulFix( org_width, dimension->scale_mult );
-    FT_Pos   best      = 64 + 32 + 2;
-    FT_Pos   reference = width;
-
-
-    for ( n = 0; n < dimension->stdw.count; n++ )
-    {
-      FT_Pos  w;
-      FT_Pos  dist;
-
-
-      w = dimension->stdw.widths[n].cur;
-      dist = width - w;
-      if ( dist < 0 )
-        dist = -dist;
-      if ( dist < best )
-      {
-        best      = dist;
-        reference = w;
-      }
-    }
-
-    if ( width >= reference )
-    {
-      width -= 0x21;
-      if ( width < reference )
-        width = reference;
-    }
-    else
-    {
-      width += 0x21;
-      if ( width > reference )
-        width = reference;
-    }
-
-    return width;
-  }
-
-#endif /* 0 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       BLUE ZONES                              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  psh_blues_set_zones_0( PSH_Blues       target,
-                         FT_Bool         is_others,
-                         FT_UInt         read_count,
-                         FT_Short*       read,
-                         PSH_Blue_Table  top_table,
-                         PSH_Blue_Table  bot_table )
-  {
-    FT_UInt  count_top = top_table->count;
-    FT_UInt  count_bot = bot_table->count;
-    FT_Bool  first     = 1;
-
-    FT_UNUSED( target );
-
-
-    for ( ; read_count > 0; read_count -= 2 )
-    {
-      FT_Int         reference, delta;
-      FT_UInt        count;
-      PSH_Blue_Zone  zones, zone;
-      FT_Bool        top;
-
-
-      /* read blue zone entry, and select target top/bottom zone */
-      top = 0;
-      if ( first || is_others )
-      {
-        reference = read[1];
-        delta     = read[0] - reference;
-
-        zones = bot_table->zones;
-        count = count_bot;
-        first = 0;
-      }
-      else
-      {
-        reference = read[0];
-        delta     = read[1] - reference;
-
-        zones = top_table->zones;
-        count = count_top;
-        top   = 1;
-      }
-
-      /* insert into sorted table */
-      zone = zones;
-      for ( ; count > 0; count--, zone++ )
-      {
-        if ( reference < zone->org_ref )
-          break;
-
-        if ( reference == zone->org_ref )
-        {
-          FT_Int  delta0 = zone->org_delta;
-
-
-          /* we have two zones on the same reference position -- */
-          /* only keep the largest one                           */
-          if ( delta < 0 )
-          {
-            if ( delta < delta0 )
-              zone->org_delta = delta;
-          }
-          else
-          {
-            if ( delta > delta0 )
-              zone->org_delta = delta;
-          }
-          goto Skip;
-        }
-      }
-
-      for ( ; count > 0; count-- )
-        zone[count] = zone[count-1];
-
-      zone->org_ref   = reference;
-      zone->org_delta = delta;
-
-      if ( top )
-        count_top++;
-      else
-        count_bot++;
-
-    Skip:
-      read += 2;
-    }
-
-    top_table->count = count_top;
-    bot_table->count = count_bot;
-  }
-
-
-  /* Re-read blue zones from the original fonts and store them into out */
-  /* private structure.  This function re-orders, sanitizes and         */
-  /* fuzz-expands the zones as well.                                    */
-  static void
-  psh_blues_set_zones( PSH_Blues  target,
-                       FT_UInt    count,
-                       FT_Short*  blues,
-                       FT_UInt    count_others,
-                       FT_Short*  other_blues,
-                       FT_Int     fuzz,
-                       FT_Int     family )
-  {
-    PSH_Blue_Table  top_table, bot_table;
-    FT_Int          count_top, count_bot;
-
-
-    if ( family )
-    {
-      top_table = &target->family_top;
-      bot_table = &target->family_bottom;
-    }
-    else
-    {
-      top_table = &target->normal_top;
-      bot_table = &target->normal_bottom;
-    }
-
-    /* read the input blue zones, and build two sorted tables  */
-    /* (one for the top zones, the other for the bottom zones) */
-    top_table->count = 0;
-    bot_table->count = 0;
-
-    /* first, the blues */
-    psh_blues_set_zones_0( target, 0,
-                           count, blues, top_table, bot_table );
-    psh_blues_set_zones_0( target, 1,
-                           count_others, other_blues, top_table, bot_table );
-
-    count_top = top_table->count;
-    count_bot = bot_table->count;
-
-    /* sanitize top table */
-    if ( count_top > 0 )
-    {
-      PSH_Blue_Zone  zone = top_table->zones;
-
-
-      for ( count = count_top; count > 0; count--, zone++ )
-      {
-        FT_Int  delta;
-
-
-        if ( count > 1 )
-        {
-          delta = zone[1].org_ref - zone[0].org_ref;
-          if ( zone->org_delta > delta )
-            zone->org_delta = delta;
-        }
-
-        zone->org_bottom = zone->org_ref;
-        zone->org_top    = zone->org_delta + zone->org_ref;
-      }
-    }
-
-    /* sanitize bottom table */
-    if ( count_bot > 0 )
-    {
-      PSH_Blue_Zone  zone = bot_table->zones;
-
-
-      for ( count = count_bot; count > 0; count--, zone++ )
-      {
-        FT_Int  delta;
-
-
-        if ( count > 1 )
-        {
-          delta = zone[0].org_ref - zone[1].org_ref;
-          if ( zone->org_delta < delta )
-            zone->org_delta = delta;
-        }
-
-        zone->org_top    = zone->org_ref;
-        zone->org_bottom = zone->org_delta + zone->org_ref;
-      }
-    }
-
-    /* expand top and bottom tables with blue fuzz */
-    {
-      FT_Int         dim, top, bot, delta;
-      PSH_Blue_Zone  zone;
-
-
-      zone  = top_table->zones;
-      count = count_top;
-
-      for ( dim = 1; dim >= 0; dim-- )
-      {
-        if ( count > 0 )
-        {
-          /* expand the bottom of the lowest zone normally */
-          zone->org_bottom -= fuzz;
-
-          /* expand the top and bottom of intermediate zones;    */
-          /* checking that the interval is smaller than the fuzz */
-          top = zone->org_top;
-
-          for ( count--; count > 0; count-- )
-          {
-            bot   = zone[1].org_bottom;
-            delta = bot - top;
-
-            if ( delta < 2 * fuzz )
-              zone[0].org_top = zone[1].org_bottom = top + delta / 2;
-            else
-            {
-              zone[0].org_top    = top + fuzz;
-              zone[1].org_bottom = bot - fuzz;
-            }
-
-            zone++;
-            top = zone->org_top;
-          }
-
-          /* expand the top of the highest zone normally */
-          zone->org_top = top + fuzz;
-        }
-        zone  = bot_table->zones;
-        count = count_bot;
-      }
-    }
-  }
-
-
-  /* reset the blues table when the device transform changes */
-  static void
-  psh_blues_scale_zones( PSH_Blues  blues,
-                         FT_Fixed   scale,
-                         FT_Pos     delta )
-  {
-    FT_UInt         count;
-    FT_UInt         num;
-    PSH_Blue_Table  table = 0;
-
-    /*                                                        */
-    /* Determine whether we need to suppress overshoots or    */
-    /* not.  We simply need to compare the vertical scale     */
-    /* parameter to the raw bluescale value.  Here is why:    */
-    /*                                                        */
-    /*   We need to suppress overshoots for all pointsizes.   */
-    /*   At 300dpi that satisfies:                            */
-    /*                                                        */
-    /*      pointsize < 240*bluescale + 0.49                  */
-    /*                                                        */
-    /*   This corresponds to:                                 */
-    /*                                                        */
-    /*      pixelsize < 1000*bluescale + 49/24                */
-    /*                                                        */
-    /*      scale*EM_Size < 1000*bluescale + 49/24            */
-    /*                                                        */
-    /*   However, for normal Type 1 fonts, EM_Size is 1000!   */
-    /*   We thus only check:                                  */
-    /*                                                        */
-    /*      scale < bluescale + 49/24000                      */
-    /*                                                        */
-    /*   which we shorten to                                  */
-    /*                                                        */
-    /*      "scale < bluescale"                               */
-    /*                                                        */
-    /* Note that `blue_scale' is stored 1000 times its real   */
-    /* value, and that `scale' converts from font units to    */
-    /* fractional pixels.                                     */
-    /*                                                        */
-
-    /* 1000 / 64 = 125 / 8 */
-    if ( scale >= 0x20C49BAL )
-      blues->no_overshoots = FT_BOOL( scale < blues->blue_scale * 8 / 125 );
-    else
-      blues->no_overshoots = FT_BOOL( scale * 125 < blues->blue_scale * 8 );
-
-    /*                                                        */
-    /*  The blue threshold is the font units distance under   */
-    /*  which overshoots are suppressed due to the BlueShift  */
-    /*  even if the scale is greater than BlueScale.          */
-    /*                                                        */
-    /*  It is the smallest distance such that                 */
-    /*                                                        */
-    /*    dist <= BlueShift && dist*scale <= 0.5 pixels       */
-    /*                                                        */
-    {
-      FT_Int  threshold = blues->blue_shift;
-
-
-      while ( threshold > 0 && FT_MulFix( threshold, scale ) > 32 )
-        threshold--;
-
-      blues->blue_threshold = threshold;
-    }
-
-    for ( num = 0; num < 4; num++ )
-    {
-      PSH_Blue_Zone  zone;
-
-
-      switch ( num )
-      {
-      case 0:
-        table = &blues->normal_top;
-        break;
-      case 1:
-        table = &blues->normal_bottom;
-        break;
-      case 2:
-        table = &blues->family_top;
-        break;
-      default:
-        table = &blues->family_bottom;
-        break;
-      }
-
-      zone  = table->zones;
-      count = table->count;
-      for ( ; count > 0; count--, zone++ )
-      {
-        zone->cur_top    = FT_MulFix( zone->org_top,    scale ) + delta;
-        zone->cur_bottom = FT_MulFix( zone->org_bottom, scale ) + delta;
-        zone->cur_ref    = FT_MulFix( zone->org_ref,    scale ) + delta;
-        zone->cur_delta  = FT_MulFix( zone->org_delta,  scale );
-
-        /* round scaled reference position */
-        zone->cur_ref = FT_PIX_ROUND( zone->cur_ref );
-
-#if 0
-        if ( zone->cur_ref > zone->cur_top )
-          zone->cur_ref -= 64;
-        else if ( zone->cur_ref < zone->cur_bottom )
-          zone->cur_ref += 64;
-#endif
-      }
-    }
-
-    /* process the families now */
-
-    for ( num = 0; num < 2; num++ )
-    {
-      PSH_Blue_Zone   zone1, zone2;
-      FT_UInt         count1, count2;
-      PSH_Blue_Table  normal, family;
-
-
-      switch ( num )
-      {
-      case 0:
-        normal = &blues->normal_top;
-        family = &blues->family_top;
-        break;
-
-      default:
-        normal = &blues->normal_bottom;
-        family = &blues->family_bottom;
-      }
-
-      zone1  = normal->zones;
-      count1 = normal->count;
-
-      for ( ; count1 > 0; count1--, zone1++ )
-      {
-        /* try to find a family zone whose reference position is less */
-        /* than 1 pixel far from the current zone                     */
-        zone2  = family->zones;
-        count2 = family->count;
-
-        for ( ; count2 > 0; count2--, zone2++ )
-        {
-          FT_Pos  Delta;
-
-
-          Delta = zone1->org_ref - zone2->org_ref;
-          if ( Delta < 0 )
-            Delta = -Delta;
-
-          if ( FT_MulFix( Delta, scale ) < 64 )
-          {
-            zone1->cur_top    = zone2->cur_top;
-            zone1->cur_bottom = zone2->cur_bottom;
-            zone1->cur_ref    = zone2->cur_ref;
-            zone1->cur_delta  = zone2->cur_delta;
-            break;
-          }
-        }
-      }
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  psh_blues_snap_stem( PSH_Blues      blues,
-                       FT_Int         stem_top,
-                       FT_Int         stem_bot,
-                       PSH_Alignment  alignment )
-  {
-    PSH_Blue_Table  table;
-    FT_UInt         count;
-    FT_Pos          delta;
-    PSH_Blue_Zone   zone;
-    FT_Int          no_shoots;
-
-
-    alignment->align = PSH_BLUE_ALIGN_NONE;
-
-    no_shoots = blues->no_overshoots;
-
-    /* look up stem top in top zones table */
-    table = &blues->normal_top;
-    count = table->count;
-    zone  = table->zones;
-
-    for ( ; count > 0; count--, zone++ )
-    {
-      delta = stem_top - zone->org_bottom;
-      if ( delta < -blues->blue_fuzz )
-        break;
-
-      if ( stem_top <= zone->org_top + blues->blue_fuzz )
-      {
-        if ( no_shoots || delta <= blues->blue_threshold )
-        {
-          alignment->align    |= PSH_BLUE_ALIGN_TOP;
-          alignment->align_top = zone->cur_ref;
-        }
-        break;
-      }
-    }
-
-    /* look up stem bottom in bottom zones table */
-    table = &blues->normal_bottom;
-    count = table->count;
-    zone  = table->zones + count-1;
-
-    for ( ; count > 0; count--, zone-- )
-    {
-      delta = zone->org_top - stem_bot;
-      if ( delta < -blues->blue_fuzz )
-        break;
-
-      if ( stem_bot >= zone->org_bottom - blues->blue_fuzz )
-      {
-        if ( no_shoots || delta < blues->blue_threshold )
-        {
-          alignment->align    |= PSH_BLUE_ALIGN_BOT;
-          alignment->align_bot = zone->cur_ref;
-        }
-        break;
-      }
-    }
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                        GLOBAL HINTS                           *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  psh_globals_destroy( PSH_Globals  globals )
-  {
-    if ( globals )
-    {
-      FT_Memory  memory;
-
-
-      memory = globals->memory;
-      globals->dimension[0].stdw.count = 0;
-      globals->dimension[1].stdw.count = 0;
-
-      globals->blues.normal_top.count    = 0;
-      globals->blues.normal_bottom.count = 0;
-      globals->blues.family_top.count    = 0;
-      globals->blues.family_bottom.count = 0;
-
-      FT_FREE( globals );
-
-#ifdef DEBUG_HINTER
-      ps_debug_globals = 0;
-#endif
-    }
-  }
-
-
-  static FT_Error
-  psh_globals_new( FT_Memory     memory,
-                   T1_Private*   priv,
-                   PSH_Globals  *aglobals )
-  {
-    PSH_Globals  globals;
-    FT_Error     error;
-
-
-    if ( !FT_NEW( globals ) )
-    {
-      FT_UInt    count;
-      FT_Short*  read;
-
-
-      globals->memory = memory;
-
-      /* copy standard widths */
-      {
-        PSH_Dimension  dim   = &globals->dimension[1];
-        PSH_Width      write = dim->stdw.widths;
-
-
-        write->org = priv->standard_width[0];
-        write++;
-
-        read = priv->snap_widths;
-        for ( count = priv->num_snap_widths; count > 0; count-- )
-        {
-          write->org = *read;
-          write++;
-          read++;
-        }
-
-        dim->stdw.count = priv->num_snap_widths + 1;
-      }
-
-      /* copy standard heights */
-      {
-        PSH_Dimension  dim = &globals->dimension[0];
-        PSH_Width      write = dim->stdw.widths;
-
-
-        write->org = priv->standard_height[0];
-        write++;
-        read = priv->snap_heights;
-        for ( count = priv->num_snap_heights; count > 0; count-- )
-        {
-          write->org = *read;
-          write++;
-          read++;
-        }
-
-        dim->stdw.count = priv->num_snap_heights + 1;
-      }
-
-      /* copy blue zones */
-      psh_blues_set_zones( &globals->blues, priv->num_blue_values,
-                           priv->blue_values, priv->num_other_blues,
-                           priv->other_blues, priv->blue_fuzz, 0 );
-
-      psh_blues_set_zones( &globals->blues, priv->num_family_blues,
-                           priv->family_blues, priv->num_family_other_blues,
-                           priv->family_other_blues, priv->blue_fuzz, 1 );
-
-      globals->blues.blue_scale = priv->blue_scale;
-      globals->blues.blue_shift = priv->blue_shift;
-      globals->blues.blue_fuzz  = priv->blue_fuzz;
-
-      globals->dimension[0].scale_mult  = 0;
-      globals->dimension[0].scale_delta = 0;
-      globals->dimension[1].scale_mult  = 0;
-      globals->dimension[1].scale_delta = 0;
-
-#ifdef DEBUG_HINTER
-      ps_debug_globals = globals;
-#endif
-    }
-
-    *aglobals = globals;
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  psh_globals_set_scale( PSH_Globals  globals,
-                         FT_Fixed     x_scale,
-                         FT_Fixed     y_scale,
-                         FT_Fixed     x_delta,
-                         FT_Fixed     y_delta )
-  {
-    PSH_Dimension  dim = &globals->dimension[0];
-
-
-    dim = &globals->dimension[0];
-    if ( x_scale != dim->scale_mult  ||
-         x_delta != dim->scale_delta )
-    {
-      dim->scale_mult  = x_scale;
-      dim->scale_delta = x_delta;
-
-      psh_globals_scale_widths( globals, 0 );
-    }
-
-    dim = &globals->dimension[1];
-    if ( y_scale != dim->scale_mult  ||
-         y_delta != dim->scale_delta )
-    {
-      dim->scale_mult  = y_scale;
-      dim->scale_delta = y_delta;
-
-      psh_globals_scale_widths( globals, 1 );
-      psh_blues_scale_zones( &globals->blues, y_scale, y_delta );
-    }
-
-    return 0;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  psh_globals_funcs_init( PSH_Globals_FuncsRec*  funcs )
-  {
-    funcs->create    = psh_globals_new;
-    funcs->set_scale = psh_globals_set_scale;
-    funcs->destroy   = psh_globals_destroy;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshglob.h b/nx-X11/extras/freetype2/src/pshinter/pshglob.h
deleted file mode 100644
index c51162615..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshglob.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshglob.h                                                              */
-/*                                                                         */
-/*    PostScript hinter global hinting management.                         */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSHGLOB_H__
-#define __PSHGLOB_H__
-
-
-#include FT_FREETYPE_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    GLOBAL HINTS INTERNALS                     *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @constant:                                                            */
-  /*    PS_GLOBALS_MAX_BLUE_ZONES                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The maximum number of blue zones in a font global hints structure. */
-  /*    See @PS_Globals_BluesRec.                                          */
-  /*                                                                       */
-#define PS_GLOBALS_MAX_BLUE_ZONES  16
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* @constant:                                                            */
-  /*    PS_GLOBALS_MAX_STD_WIDTHS                                          */
-  /*                                                                       */
-  /* @description:                                                         */
-  /*    The maximum number of standard and snap widths in either the       */
-  /*    horizontal or vertical direction.  See @PS_Globals_WidthsRec.      */
-  /*                                                                       */
-#define PS_GLOBALS_MAX_STD_WIDTHS  16
-
-
-  /* standard and snap width */
-  typedef struct  PSH_WidthRec_
-  {
-    FT_Int  org;
-    FT_Pos  cur;
-    FT_Pos  fit;
-
-  } PSH_WidthRec, *PSH_Width;
-
-
-  /* standard and snap widths table */
-  typedef struct  PSH_WidthsRec_
-  {
-    FT_UInt       count;
-    PSH_WidthRec  widths[PS_GLOBALS_MAX_STD_WIDTHS];
-
-  } PSH_WidthsRec, *PSH_Widths;
-
-
-  typedef struct  PSH_DimensionRec_
-  {
-    PSH_WidthsRec  stdw;
-    FT_Fixed       scale_mult;
-    FT_Fixed       scale_delta;
-
-  } PSH_DimensionRec, *PSH_Dimension;
-
-
-  /* blue zone descriptor */
-  typedef struct  PSH_Blue_ZoneRec_
-  {
-    FT_Int  org_ref;
-    FT_Int  org_delta;
-    FT_Int  org_top;
-    FT_Int  org_bottom;
-
-    FT_Pos  cur_ref;
-    FT_Pos  cur_delta;
-    FT_Pos  cur_bottom;
-    FT_Pos  cur_top;
-
-  } PSH_Blue_ZoneRec, *PSH_Blue_Zone;
-
-
-  typedef struct  PSH_Blue_TableRec_
-  {
-    FT_UInt           count;
-    PSH_Blue_ZoneRec  zones[PS_GLOBALS_MAX_BLUE_ZONES];
-
-  } PSH_Blue_TableRec, *PSH_Blue_Table;
-
-
-  /* blue zones table */
-  typedef struct  PSH_BluesRec_
-  {
-    PSH_Blue_TableRec  normal_top;
-    PSH_Blue_TableRec  normal_bottom;
-    PSH_Blue_TableRec  family_top;
-    PSH_Blue_TableRec  family_bottom;
-
-    FT_Fixed           blue_scale;
-    FT_Int             blue_shift;
-    FT_Int             blue_threshold;
-    FT_Int             blue_fuzz;
-    FT_Bool            no_overshoots;
-
-  } PSH_BluesRec, *PSH_Blues;
-
-
-  /* font globals.                                         */
-  /* dimension 0 => X coordinates + vertical hints/stems   */
-  /* dimension 1 => Y coordinates + horizontal hints/stems */
-  typedef struct  PSH_GlobalsRec_
-  {
-    FT_Memory         memory;
-    PSH_DimensionRec  dimension[2];
-    PSH_BluesRec      blues;
-
-  } PSH_GlobalsRec;
-
-
-#define PSH_BLUE_ALIGN_NONE  0
-#define PSH_BLUE_ALIGN_TOP   1
-#define PSH_BLUE_ALIGN_BOT   2
-
-
-  typedef struct  PSH_AlignmentRec_
-  {
-    int     align;
-    FT_Pos  align_top;
-    FT_Pos  align_bot;
-
-  } PSH_AlignmentRec, *PSH_Alignment;
-
-
-  FT_LOCAL( void )
-  psh_globals_funcs_init( PSH_Globals_FuncsRec*  funcs );
-
-
-#if 0
-  /* snap a stem width to fitter coordinates.  `org_width' is in font */
-  /* units.  The result is in device pixels (26.6 format).            */
-  FT_LOCAL( FT_Pos )
-  psh_dimension_snap_width( PSH_Dimension  dimension,
-                            FT_Int         org_width );
-#endif
-
-  FT_LOCAL( FT_Error )
-  psh_globals_set_scale( PSH_Globals  globals,
-                         FT_Fixed     x_scale,
-                         FT_Fixed     y_scale,
-                         FT_Fixed     x_delta,
-                         FT_Fixed     y_delta );
-
-  /* snap a stem to one or two blue zones */
-  FT_LOCAL( void )
-  psh_blues_snap_stem( PSH_Blues      blues,
-                       FT_Int         stem_top,
-                       FT_Int         stem_bot,
-                       PSH_Alignment  alignment );
-  /* */
-
-#ifdef DEBUG_HINTER
-  extern PSH_Globals  ps_debug_globals;
-#endif
-
-
-FT_END_HEADER
-
-
-#endif /* __PSHGLOB_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshinter.c b/nx-X11/extras/freetype2/src/pshinter/pshinter.c
deleted file mode 100644
index 8e3f19309..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshinter.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshinter.c                                                             */
-/*                                                                         */
-/*    FreeType PostScript Hinting module                                   */
-/*                                                                         */
-/*  Copyright 2001, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "pshrec.c"
-#include "pshglob.c"
-#include "pshalgo.c"
-#include "pshmod.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshmod.c b/nx-X11/extras/freetype2/src/pshinter/pshmod.c
deleted file mode 100644
index 5b18684c7..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshmod.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshmod.c                                                               */
-/*                                                                         */
-/*    FreeType PostScript hinter module implementation (body).             */
-/*                                                                         */
-/*  Copyright 2001, 2002 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include "pshrec.h"
-#include "pshalgo.h"
-
-
-  /* the Postscript Hinter module structure */
-  typedef struct  PS_Hinter_Module_Rec_
-  {
-    FT_ModuleRec          root;
-    PS_HintsRec           ps_hints;
-
-    PSH_Globals_FuncsRec  globals_funcs;
-    T1_Hints_FuncsRec     t1_funcs;
-    T2_Hints_FuncsRec     t2_funcs;
-
-  } PS_Hinter_ModuleRec, *PS_Hinter_Module;
-
-
-  /* finalize module */
-  FT_CALLBACK_DEF( void )
-  ps_hinter_done( PS_Hinter_Module  module )
-  {
-    module->t1_funcs.hints = NULL;
-    module->t2_funcs.hints = NULL;
-
-    ps_hints_done( &module->ps_hints );
-  }
-
-
-  /* initialize module, create hints recorder and the interface */
-  FT_CALLBACK_DEF( FT_Error )
-  ps_hinter_init( PS_Hinter_Module  module )
-  {
-    FT_Memory  memory = module->root.memory;
-
-
-    ps_hints_init( &module->ps_hints, memory );
-
-    psh_globals_funcs_init( &module->globals_funcs );
-
-    t1_hints_funcs_init( &module->t1_funcs );
-    module->t1_funcs.hints = (T1_Hints)&module->ps_hints;
-
-    t2_hints_funcs_init( &module->t2_funcs );
-    module->t2_funcs.hints = (T2_Hints)&module->ps_hints;
-
-    return 0;
-  }
-
-
-  /* returns global hints interface */
-  FT_CALLBACK_DEF( PSH_Globals_Funcs )
-  pshinter_get_globals_funcs( FT_Module  module )
-  {
-    return &((PS_Hinter_Module)module)->globals_funcs;
-  }
-
-
-  /* return Type 1 hints interface */
-  FT_CALLBACK_DEF( T1_Hints_Funcs )
-  pshinter_get_t1_funcs( FT_Module  module )
-  {
-    return &((PS_Hinter_Module)module)->t1_funcs;
-  }
-
-
-  /* return Type 2 hints interface */
-  FT_CALLBACK_DEF( T2_Hints_Funcs )
-  pshinter_get_t2_funcs( FT_Module  module )
-  {
-    return &((PS_Hinter_Module)module)->t2_funcs;
-  }
-
-
-  static
-  const PSHinter_Interface  pshinter_interface =
-  {
-    pshinter_get_globals_funcs,
-    pshinter_get_t1_funcs,
-    pshinter_get_t2_funcs
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Module_Class  pshinter_module_class =
-  {
-    0,
-    sizeof ( PS_Hinter_ModuleRec ),
-    "pshinter",
-    0x10000L,
-    0x20000L,
-
-    &pshinter_interface,            /* module-specific interface */
-
-    (FT_Module_Constructor)ps_hinter_init,
-    (FT_Module_Destructor) ps_hinter_done,
-    (FT_Module_Requester)  0        /* no additional interface for now */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshmod.h b/nx-X11/extras/freetype2/src/pshinter/pshmod.h
deleted file mode 100644
index 1a91025b2..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshmod.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshmod.h                                                               */
-/*                                                                         */
-/*    PostScript hinter module interface (specification).                  */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSHMOD_H__
-#define __PSHMOD_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Module_Class )  pshinter_module_class;
-
-
-FT_END_HEADER
-
-
-#endif /* __PSHMOD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshnterr.h b/nx-X11/extras/freetype2/src/pshinter/pshnterr.h
deleted file mode 100644
index 3c0029fbf..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshnterr.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshnterr.h                                                             */
-/*                                                                         */
-/*    PS Hinter error codes (specification only).                          */
-/*                                                                         */
-/*  Copyright 2003 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the PSHinter error enumeration constants. */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __PSHNTERR_H__
-#define __PSHNTERR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  PSH_Err_
-#define FT_ERR_BASE    FT_Mod_Err_PShinter
-
-#include FT_ERRORS_H
-
-#endif /* __PSHNTERR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshrec.c b/nx-X11/extras/freetype2/src/pshinter/pshrec.c
deleted file mode 100644
index 648de18bc..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshrec.c
+++ /dev/null
@@ -1,1215 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshrec.c                                                               */
-/*                                                                         */
-/*    FreeType PostScript hints recorder (body).                           */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003, 2004 by                                    */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include "pshrec.h"
-#include "pshalgo.h"
-
-#include "pshnterr.h"
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_pshrec
-
-#ifdef DEBUG_HINTER
-  PS_Hints  ps_debug_hints         = 0;
-  int       ps_debug_no_horz_hints = 0;
-  int       ps_debug_no_vert_hints = 0;
-#endif
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      PS_HINT MANAGEMENT                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* destroy hints table */
-  static void
-  ps_hint_table_done( PS_Hint_Table  table,
-                      FT_Memory      memory )
-  {
-    FT_FREE( table->hints );
-    table->num_hints = 0;
-    table->max_hints = 0;
-  }
-
-
-  /* ensure that a table can contain "count" elements */
-  static FT_Error
-  ps_hint_table_ensure( PS_Hint_Table  table,
-                        FT_UInt        count,
-                        FT_Memory      memory )
-  {
-    FT_UInt   old_max = table->max_hints;
-    FT_UInt   new_max = count;
-    FT_Error  error   = 0;
-
-
-    if ( new_max > old_max )
-    {
-      /* try to grow the table */
-      new_max = FT_PAD_CEIL( new_max, 8 );
-      if ( !FT_RENEW_ARRAY( table->hints, old_max, new_max ) )
-        table->max_hints = new_max;
-    }
-    return error;
-  }
-
-
-  static FT_Error
-  ps_hint_table_alloc( PS_Hint_Table  table,
-                       FT_Memory      memory,
-                       PS_Hint       *ahint )
-  {
-    FT_Error  error = 0;
-    FT_UInt   count;
-    PS_Hint   hint = 0;
-
-
-    count = table->num_hints;
-    count++;
-
-    if ( count >= table->max_hints )
-    {
-      error = ps_hint_table_ensure( table, count, memory );
-      if ( error )
-        goto Exit;
-    }
-
-    hint        = table->hints + count - 1;
-    hint->pos   = 0;
-    hint->len   = 0;
-    hint->flags = 0;
-
-    table->num_hints = count;
-
-  Exit:
-    *ahint = hint;
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      PS_MASK MANAGEMENT                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* destroy mask */
-  static void
-  ps_mask_done( PS_Mask    mask,
-                FT_Memory  memory )
-  {
-    FT_FREE( mask->bytes );
-    mask->num_bits  = 0;
-    mask->max_bits  = 0;
-    mask->end_point = 0;
-  }
-
-
-  /* ensure that a mask can contain "count" bits */
-  static FT_Error
-  ps_mask_ensure( PS_Mask    mask,
-                  FT_UInt    count,
-                  FT_Memory  memory )
-  {
-    FT_UInt   old_max = ( mask->max_bits + 7 ) >> 3;
-    FT_UInt   new_max = ( count          + 7 ) >> 3;
-    FT_Error  error   = 0;
-
-
-    if ( new_max > old_max )
-    {
-      new_max = FT_PAD_CEIL( new_max, 8 );
-      if ( !FT_RENEW_ARRAY( mask->bytes, old_max, new_max ) )
-        mask->max_bits = new_max * 8;
-    }
-    return error;
-  }
-
-
-  /* test a bit value in a given mask */
-  static FT_Int
-  ps_mask_test_bit( PS_Mask  mask,
-                    FT_Int   idx )
-  {
-    if ( (FT_UInt)idx >= mask->num_bits )
-      return 0;
-
-    return mask->bytes[idx >> 3] & ( 0x80 >> ( idx & 7 ) );
-  }
-
-
-  /* clear a given bit */
-  static void
-  ps_mask_clear_bit( PS_Mask  mask,
-                     FT_Int   idx )
-  {
-    FT_Byte*  p;
-
-
-    if ( (FT_UInt)idx >= mask->num_bits )
-      return;
-
-    p    = mask->bytes + ( idx >> 3 );
-    p[0] = (FT_Byte)( p[0] & ~( 0x80 >> ( idx & 7 ) ) );
-  }
-
-
-  /* set a given bit, possibly grow the mask */
-  static FT_Error
-  ps_mask_set_bit( PS_Mask    mask,
-                   FT_Int     idx,
-                   FT_Memory  memory )
-  {
-    FT_Error  error = 0;
-    FT_Byte*  p;
-
-
-    if ( idx < 0 )
-      goto Exit;
-
-    if ( (FT_UInt)idx >= mask->num_bits )
-    {
-      error = ps_mask_ensure( mask, idx + 1, memory );
-      if ( error )
-        goto Exit;
-
-      mask->num_bits = idx + 1;
-    }
-
-    p    = mask->bytes + ( idx >> 3 );
-    p[0] = (FT_Byte)( p[0] | ( 0x80 >> ( idx & 7 ) ) );
-
-  Exit:
-    return error;
-  }
-
-
-  /* destroy mask table */
-  static void
-  ps_mask_table_done( PS_Mask_Table  table,
-                      FT_Memory      memory )
-  {
-    FT_UInt  count = table->max_masks;
-    PS_Mask  mask  = table->masks;
-
-
-    for ( ; count > 0; count--, mask++ )
-      ps_mask_done( mask, memory );
-
-    FT_FREE( table->masks );
-    table->num_masks = 0;
-    table->max_masks = 0;
-  }
-
-
-  /* ensure that a mask table can contain "count" masks */
-  static FT_Error
-  ps_mask_table_ensure( PS_Mask_Table  table,
-                        FT_UInt        count,
-                        FT_Memory      memory )
-  {
-    FT_UInt   old_max = table->max_masks;
-    FT_UInt   new_max = count;
-    FT_Error  error   = 0;
-
-
-    if ( new_max > old_max )
-    {
-      new_max = FT_PAD_CEIL( new_max, 8 );
-      if ( !FT_RENEW_ARRAY( table->masks, old_max, new_max ) )
-        table->max_masks = new_max;
-    }
-    return error;
-  }
-
-
-  /* allocate a new mask in a table */
-  static FT_Error
-  ps_mask_table_alloc( PS_Mask_Table  table,
-                       FT_Memory      memory,
-                       PS_Mask       *amask )
-  {
-    FT_UInt   count;
-    FT_Error  error = 0;
-    PS_Mask   mask  = 0;
-
-
-    count = table->num_masks;
-    count++;
-
-    if ( count > table->max_masks )
-    {
-      error = ps_mask_table_ensure( table, count, memory );
-      if ( error )
-        goto Exit;
-    }
-
-    mask             = table->masks + count - 1;
-    mask->num_bits   = 0;
-    mask->end_point  = 0;
-    table->num_masks = count;
-
-  Exit:
-    *amask = mask;
-    return error;
-  }
-
-
-  /* return last hint mask in a table, create one if the table is empty */
-  static FT_Error
-  ps_mask_table_last( PS_Mask_Table  table,
-                      FT_Memory      memory,
-                      PS_Mask       *amask )
-  {
-    FT_Error  error = 0;
-    FT_UInt   count;
-    PS_Mask   mask;
-
-
-    count = table->num_masks;
-    if ( count == 0 )
-    {
-      error = ps_mask_table_alloc( table, memory, &mask );
-      if ( error )
-        goto Exit;
-    }
-    else
-      mask = table->masks + count - 1;
-
-  Exit:
-    *amask = mask;
-    return error;
-  }
-
-
-  /* set a new mask to a given bit range */
-  static FT_Error
-  ps_mask_table_set_bits( PS_Mask_Table  table,
-                          FT_Byte*       source,
-                          FT_UInt        bit_pos,
-                          FT_UInt        bit_count,
-                          FT_Memory      memory )
-  {
-    FT_Error  error = 0;
-    PS_Mask   mask;
-
-
-    error = ps_mask_table_last( table, memory, &mask );
-    if ( error )
-      goto Exit;
-
-    error = ps_mask_ensure( mask, bit_count, memory );
-    if ( error )
-      goto Exit;
-
-    mask->num_bits = bit_count;
-
-    /* now, copy bits */
-    {
-      FT_Byte*  read  = source + ( bit_pos >> 3 );
-      FT_Int    rmask = 0x80 >> ( bit_pos & 7 );
-      FT_Byte*  write = mask->bytes;
-      FT_Int    wmask = 0x80;
-      FT_Int    val;
-
-
-      for ( ; bit_count > 0; bit_count-- )
-      {
-        val = write[0] & ~wmask;
-
-        if ( read[0] & rmask )
-          val |= wmask;
-
-        write[0] = (FT_Byte)val;
-
-        rmask >>= 1;
-        if ( rmask == 0 )
-        {
-          read++;
-          rmask = 0x80;
-        }
-
-        wmask >>= 1;
-        if ( wmask == 0 )
-        {
-          write++;
-          wmask = 0x80;
-        }
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* test whether two masks in a table intersect */
-  static FT_Int
-  ps_mask_table_test_intersect( PS_Mask_Table  table,
-                                FT_Int         index1,
-                                FT_Int         index2 )
-  {
-    PS_Mask   mask1  = table->masks + index1;
-    PS_Mask   mask2  = table->masks + index2;
-    FT_Byte*  p1     = mask1->bytes;
-    FT_Byte*  p2     = mask2->bytes;
-    FT_UInt   count1 = mask1->num_bits;
-    FT_UInt   count2 = mask2->num_bits;
-    FT_UInt   count;
-
-
-    count = ( count1 <= count2 ) ? count1 : count2;
-    for ( ; count >= 8; count -= 8 )
-    {
-      if ( p1[0] & p2[0] )
-        return 1;
-
-      p1++;
-      p2++;
-    }
-
-    if ( count == 0 )
-      return 0;
-
-    return ( p1[0] & p2[0] ) & ~( 0xFF >> count );
-  }
-
-
-  /* merge two masks, used by ps_mask_table_merge_all */
-  static FT_Error
-  ps_mask_table_merge( PS_Mask_Table  table,
-                       FT_Int         index1,
-                       FT_Int         index2,
-                       FT_Memory      memory )
-  {
-    FT_UInt   temp;
-    FT_Error  error = 0;
-
-
-    /* swap index1 and index2 so that index1 < index2 */
-    if ( index1 > index2 )
-    {
-      temp   = index1;
-      index1 = index2;
-      index2 = temp;
-    }
-
-    if ( index1 < index2 && index1 >= 0 && index2 < (FT_Int)table->num_masks )
-    {
-      /* we need to merge the bitsets of index1 and index2 with a */
-      /* simple union                                             */
-      PS_Mask  mask1  = table->masks + index1;
-      PS_Mask  mask2  = table->masks + index2;
-      FT_UInt  count1 = mask1->num_bits;
-      FT_UInt  count2 = mask2->num_bits;
-      FT_Int   delta;
-
-
-      if ( count2 > 0 )
-      {
-        FT_UInt   pos;
-        FT_Byte*  read;
-        FT_Byte*  write;
-
-
-        /* if "count2" is greater than "count1", we need to grow the */
-        /* first bitset, and clear the highest bits                  */
-        if ( count2 > count1 )
-        {
-          error = ps_mask_ensure( mask1, count2, memory );
-          if ( error )
-            goto Exit;
-
-          for ( pos = count1; pos < count2; pos++ )
-            ps_mask_clear_bit( mask1, pos );
-        }
-
-        /* merge (unite) the bitsets */
-        read  = mask2->bytes;
-        write = mask1->bytes;
-        pos   = (FT_UInt)( ( count2 + 7 ) >> 3 );
-
-        for ( ; pos > 0; pos-- )
-        {
-          write[0] = (FT_Byte)( write[0] | read[0] );
-          write++;
-          read++;
-        }
-      }
-
-      /* Now, remove "mask2" from the list.  We need to keep the masks */
-      /* sorted in order of importance, so move table elements.        */
-      mask2->num_bits  = 0;
-      mask2->end_point = 0;
-
-      delta = table->num_masks - 1 - index2; /* number of masks to move */
-      if ( delta > 0 )
-      {
-        /* move to end of table for reuse */
-        PS_MaskRec  dummy = *mask2;
-
-
-        ft_memmove( mask2, mask2 + 1, delta * sizeof ( PS_MaskRec ) );
-
-        mask2[delta] = dummy;
-      }
-
-      table->num_masks--;
-    }
-    else
-      FT_ERROR(( "ps_mask_table_merge: ignoring invalid indices (%d,%d)\n",
-                 index1, index2 ));
-
-  Exit:
-    return error;
-  }
-
-
-  /* Try to merge all masks in a given table.  This is used to merge */
-  /* all counter masks into independent counter "paths".             */
-  /*                                                                 */
-  static FT_Error
-  ps_mask_table_merge_all( PS_Mask_Table  table,
-                           FT_Memory      memory )
-  {
-    FT_Int    index1, index2;
-    FT_Error  error = 0;
-
-
-    for ( index1 = table->num_masks - 1; index1 > 0; index1-- )
-    {
-      for ( index2 = index1 - 1; index2 >= 0; index2-- )
-      {
-        if ( ps_mask_table_test_intersect( table, index1, index2 ) )
-        {
-          error = ps_mask_table_merge( table, index2, index1, memory );
-          if ( error )
-            goto Exit;
-
-          break;
-        }
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    PS_DIMENSION MANAGEMENT                    *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* finalize a given dimension */
-  static void
-  ps_dimension_done( PS_Dimension  dimension,
-                     FT_Memory     memory )
-  {
-    ps_mask_table_done( &dimension->counters, memory );
-    ps_mask_table_done( &dimension->masks,    memory );
-    ps_hint_table_done( &dimension->hints,    memory );
-  }
-
-
-  /* initialize a given dimension */
-  static void
-  ps_dimension_init( PS_Dimension  dimension )
-  {
-    dimension->hints.num_hints    = 0;
-    dimension->masks.num_masks    = 0;
-    dimension->counters.num_masks = 0;
-  }
-
-
-#if 0
-
-  /* set a bit at a given index in the current hint mask */
-  static FT_Error
-  ps_dimension_set_mask_bit( PS_Dimension  dim,
-                             FT_UInt       idx,
-                             FT_Memory     memory )
-  {
-    PS_Mask  mask;
-    FT_Error  error = 0;
-
-
-    /* get last hint mask */
-    error = ps_mask_table_last( &dim->masks, memory, &mask );
-    if ( error )
-      goto Exit;
-
-    error = ps_mask_set_bit( mask, idx, memory );
-
-  Exit:
-    return error;
-  }
-
-#endif
-
-  /* set the end point in a mask, called from "End" & "Reset" methods */
-  static void
-  ps_dimension_end_mask( PS_Dimension  dim,
-                         FT_UInt       end_point )
-  {
-    FT_UInt  count = dim->masks.num_masks;
-    PS_Mask  mask;
-
-
-    if ( count > 0 )
-    {
-      mask            = dim->masks.masks + count - 1;
-      mask->end_point = end_point;
-    }
-  }
-
-
-  /* set the end point in the current mask, then create a new empty one */
-  /* (called by "Reset" method)                                         */
-  static FT_Error
-  ps_dimension_reset_mask( PS_Dimension  dim,
-                           FT_UInt       end_point,
-                           FT_Memory     memory )
-  {
-    PS_Mask  mask;
-
-
-    /* end current mask */
-    ps_dimension_end_mask( dim, end_point );
-
-    /* allocate new one */
-    return ps_mask_table_alloc( &dim->masks, memory, &mask );
-  }
-
-
-  /* set a new mask, called from the "T2Stem" method */
-  static FT_Error
-  ps_dimension_set_mask_bits( PS_Dimension    dim,
-                              const FT_Byte*  source,
-                              FT_UInt         source_pos,
-                              FT_UInt         source_bits,
-                              FT_UInt         end_point,
-                              FT_Memory       memory )
-  {
-    FT_Error  error = 0;
-
-
-    /* reset current mask, if any */
-    error = ps_dimension_reset_mask( dim, end_point, memory );
-    if ( error )
-      goto Exit;
-
-    /* set bits in new mask */
-    error = ps_mask_table_set_bits( &dim->masks, (FT_Byte*)source,
-                                    source_pos, source_bits, memory );
-
-  Exit:
-    return error;
-  }
-
-
-  /* add a new single stem (called from "T1Stem" method) */
-  static FT_Error
-  ps_dimension_add_t1stem( PS_Dimension  dim,
-                           FT_Int        pos,
-                           FT_Int        len,
-                           FT_Memory     memory,
-                           FT_Int       *aindex )
-  {
-    FT_Error  error = 0;
-    FT_UInt   flags = 0;
-
-
-    /* detect ghost stem */
-    if ( len < 0 )
-    {
-      flags |= PS_HINT_FLAG_GHOST;
-      if ( len == -21 )
-      {
-        flags |= PS_HINT_FLAG_BOTTOM;
-        pos   += len;
-      }
-      len = 0;
-    }
-
-    if ( aindex )
-      *aindex = -1;
-
-    /* now, lookup stem in the current hints table */
-    {
-      PS_Mask  mask;
-      FT_UInt  idx;
-      FT_UInt  max   = dim->hints.num_hints;
-      PS_Hint  hint  = dim->hints.hints;
-
-
-      for ( idx = 0; idx < max; idx++, hint++ )
-      {
-        if ( hint->pos == pos && hint->len == len )
-          break;
-      }
-
-      /* we need to create a new hint in the table */
-      if ( idx >= max )
-      {
-        error = ps_hint_table_alloc( &dim->hints, memory, &hint );
-        if ( error )
-          goto Exit;
-
-        hint->pos   = pos;
-        hint->len   = len;
-        hint->flags = flags;
-      }
-
-      /* now, store the hint in the current mask */
-      error = ps_mask_table_last( &dim->masks, memory, &mask );
-      if ( error )
-        goto Exit;
-
-      error = ps_mask_set_bit( mask, idx, memory );
-      if ( error )
-        goto Exit;
-
-      if ( aindex )
-        *aindex = (FT_Int)idx;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /* add a "hstem3/vstem3" counter to our dimension table */
-  static FT_Error
-  ps_dimension_add_counter( PS_Dimension  dim,
-                            FT_Int        hint1,
-                            FT_Int        hint2,
-                            FT_Int        hint3,
-                            FT_Memory     memory )
-  {
-    FT_Error  error   = 0;
-    FT_UInt   count   = dim->counters.num_masks;
-    PS_Mask   counter = dim->counters.masks;
-
-
-    /* try to find an existing counter mask that already uses */
-    /* one of these stems here                                */
-    for ( ; count > 0; count--, counter++ )
-    {
-      if ( ps_mask_test_bit( counter, hint1 ) ||
-           ps_mask_test_bit( counter, hint2 ) ||
-           ps_mask_test_bit( counter, hint3 ) )
-        break;
-    }
-
-    /* creat a new counter when needed */
-    if ( count == 0 )
-    {
-      error = ps_mask_table_alloc( &dim->counters, memory, &counter );
-      if ( error )
-        goto Exit;
-    }
-
-    /* now, set the bits for our hints in the counter mask */
-    error = ps_mask_set_bit( counter, hint1, memory );
-    if ( error )
-      goto Exit;
-
-    error = ps_mask_set_bit( counter, hint2, memory );
-    if ( error )
-      goto Exit;
-
-    error = ps_mask_set_bit( counter, hint3, memory );
-    if ( error )
-      goto Exit;
-
-  Exit:
-    return error;
-  }
-
-
-  /* end of recording session for a given dimension */
-  static FT_Error
-  ps_dimension_end( PS_Dimension  dim,
-                    FT_UInt       end_point,
-                    FT_Memory     memory )
-  {
-    /* end hint mask table */
-    ps_dimension_end_mask( dim, end_point );
-
-    /* merge all counter masks into independent "paths" */
-    return ps_mask_table_merge_all( &dim->counters, memory );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    PS_RECORDER MANAGEMENT                     *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /* destroy hints */
-  FT_LOCAL( void )
-  ps_hints_done( PS_Hints  hints )
-  {
-    FT_Memory  memory = hints->memory;
-
-
-    ps_dimension_done( &hints->dimension[0], memory );
-    ps_dimension_done( &hints->dimension[1], memory );
-
-    hints->error  = 0;
-    hints->memory = 0;
-  }
-
-
-  FT_LOCAL( FT_Error )
-  ps_hints_init( PS_Hints   hints,
-                 FT_Memory  memory )
-  {
-    FT_MEM_ZERO( hints, sizeof ( *hints ) );
-    hints->memory = memory;
-    return 0;
-  }
-
-
-  /* initialize a hints for a new session */
-  static void
-  ps_hints_open( PS_Hints      hints,
-                 PS_Hint_Type  hint_type )
-  {
-    switch ( hint_type )
-    {
-    case PS_HINT_TYPE_1:
-    case PS_HINT_TYPE_2:
-      hints->error     = 0;
-      hints->hint_type = hint_type;
-
-      ps_dimension_init( &hints->dimension[0] );
-      ps_dimension_init( &hints->dimension[1] );
-      break;
-
-    default:
-      hints->error     = PSH_Err_Invalid_Argument;
-      hints->hint_type = hint_type;
-
-      FT_ERROR(( "ps_hints_open: invalid charstring type!\n" ));
-      break;
-    }
-  }
-
-
-  /* add one or more stems to the current hints table */
-  static void
-  ps_hints_stem( PS_Hints  hints,
-                 FT_Int    dimension,
-                 FT_UInt   count,
-                 FT_Long*  stems )
-  {
-    if ( !hints->error )
-    {
-      /* limit "dimension" to 0..1 */
-      if ( dimension < 0 || dimension > 1 )
-      {
-        FT_ERROR(( "ps_hints_stem: invalid dimension (%d) used\n",
-                   dimension ));
-        dimension = ( dimension != 0 );
-      }
-
-      /* record the stems in the current hints/masks table */
-      switch ( hints->hint_type )
-      {
-      case PS_HINT_TYPE_1:  /* Type 1 "hstem" or "vstem" operator */
-      case PS_HINT_TYPE_2:  /* Type 2 "hstem" or "vstem" operator */
-        {
-          PS_Dimension  dim = &hints->dimension[dimension];
-
-
-          for ( ; count > 0; count--, stems += 2 )
-          {
-            FT_Error   error;
-            FT_Memory  memory = hints->memory;
-
-
-            error = ps_dimension_add_t1stem(
-                      dim, (FT_Int)stems[0], (FT_Int)stems[1],
-                      memory, NULL );
-            if ( error )
-            {
-              FT_ERROR(( "ps_hints_stem: could not add stem"
-                         " (%d,%d) to hints table\n", stems[0], stems[1] ));
-
-              hints->error = error;
-              return;
-            }
-          }
-          break;
-        }
-
-      default:
-        FT_ERROR(( "ps_hints_stem: called with invalid hint type (%d)\n",
-                   hints->hint_type ));
-        break;
-      }
-    }
-  }
-
-
-  /* add one Type1 counter stem to the current hints table */
-  static void
-  ps_hints_t1stem3( PS_Hints  hints,
-                    FT_Int    dimension,
-                    FT_Long*  stems )
-  {
-    FT_Error  error = 0;
-
-
-    if ( !hints->error )
-    {
-      PS_Dimension  dim;
-      FT_Memory     memory = hints->memory;
-      FT_Int        count;
-      FT_Int        idx[3];
-
-
-      /* limit "dimension" to 0..1 */
-      if ( dimension < 0 || dimension > 1 )
-      {
-        FT_ERROR(( "ps_hints_t1stem3: invalid dimension (%d) used\n",
-                   dimension ));
-        dimension = ( dimension != 0 );
-      }
-
-      dim = &hints->dimension[dimension];
-
-      /* there must be 6 elements in the 'stem' array */
-      if ( hints->hint_type == PS_HINT_TYPE_1 )
-      {
-        /* add the three stems to our hints/masks table */
-        for ( count = 0; count < 3; count++, stems += 2 )
-        {
-          error = ps_dimension_add_t1stem(
-                    dim, (FT_Int)stems[0], (FT_Int)stems[1],
-                    memory, &idx[count] );
-          if ( error )
-            goto Fail;
-        }
-
-        /* now, add the hints to the counters table */
-        error = ps_dimension_add_counter( dim, idx[0], idx[1], idx[2],
-                                          memory );
-        if ( error )
-          goto Fail;
-      }
-      else
-      {
-        FT_ERROR(( "ps_hints_t1stem3: called with invalid hint type!\n" ));
-        error = PSH_Err_Invalid_Argument;
-        goto Fail;
-      }
-    }
-
-    return;
-
-  Fail:
-    FT_ERROR(( "ps_hints_t1stem3: could not add counter stems to table\n" ));
-    hints->error = error;
-  }
-
-
-  /* reset hints (only with Type 1 hints) */
-  static void
-  ps_hints_t1reset( PS_Hints  hints,
-                    FT_UInt   end_point )
-  {
-    FT_Error  error = 0;
-
-
-    if ( !hints->error )
-    {
-      FT_Memory  memory = hints->memory;
-
-
-      if ( hints->hint_type == PS_HINT_TYPE_1 )
-      {
-        error = ps_dimension_reset_mask( &hints->dimension[0],
-                                         end_point, memory );
-        if ( error )
-          goto Fail;
-
-        error = ps_dimension_reset_mask( &hints->dimension[1],
-                                         end_point, memory );
-        if ( error )
-          goto Fail;
-      }
-      else
-      {
-        /* invalid hint type */
-        error = PSH_Err_Invalid_Argument;
-        goto Fail;
-      }
-    }
-    return;
-
-  Fail:
-    hints->error = error;
-  }
-
-
-  /* Type2 "hintmask" operator, add a new hintmask to each direction */
-  static void
-  ps_hints_t2mask( PS_Hints        hints,
-                   FT_UInt         end_point,
-                   FT_UInt         bit_count,
-                   const FT_Byte*  bytes )
-  {
-    FT_Error  error;
-
-
-    if ( !hints->error )
-    {
-      PS_Dimension  dim    = hints->dimension;
-      FT_Memory     memory = hints->memory;
-      FT_UInt       count1 = dim[0].hints.num_hints;
-      FT_UInt       count2 = dim[1].hints.num_hints;
-
-
-      /* check bit count; must be equal to current total hint count */
-      if ( bit_count !=  count1 + count2 )
-      {
-        FT_ERROR(( "ps_hints_t2mask: "
-                   "called with invalid bitcount %d (instead of %d)\n",
-                   bit_count, count1 + count2 ));
-
-        /* simply ignore the operator */
-        return;
-      }
-
-      /* set-up new horizontal and vertical hint mask now */
-      error = ps_dimension_set_mask_bits( &dim[0], bytes, count2, count1,
-                                          end_point, memory );
-      if ( error )
-        goto Fail;
-
-      error = ps_dimension_set_mask_bits( &dim[1], bytes, 0, count2,
-                                          end_point, memory );
-      if ( error )
-        goto Fail;
-    }
-    return;
-
-  Fail:
-    hints->error = error;
-  }
-
-
-  static void
-  ps_hints_t2counter( PS_Hints        hints,
-                      FT_UInt         bit_count,
-                      const FT_Byte*  bytes )
-  {
-    FT_Error  error;
-
-
-    if ( !hints->error )
-    {
-      PS_Dimension  dim    = hints->dimension;
-      FT_Memory     memory = hints->memory;
-      FT_UInt       count1 = dim[0].hints.num_hints;
-      FT_UInt       count2 = dim[1].hints.num_hints;
-
-
-      /* check bit count, must be equal to current total hint count */
-      if ( bit_count !=  count1 + count2 )
-      {
-        FT_ERROR(( "ps_hints_t2counter: "
-                   "called with invalid bitcount %d (instead of %d)\n",
-                   bit_count, count1 + count2 ));
-
-        /* simply ignore the operator */
-        return;
-      }
-
-      /* set-up new horizontal and vertical hint mask now */
-      error = ps_dimension_set_mask_bits( &dim[0], bytes, 0, count1,
-                                          0, memory );
-      if ( error )
-        goto Fail;
-
-      error = ps_dimension_set_mask_bits( &dim[1], bytes, count1, count2,
-                                          0, memory );
-      if ( error )
-        goto Fail;
-    }
-    return;
-
-  Fail:
-    hints->error = error;
-  }
-
-
-  /* end recording session */
-  static FT_Error
-  ps_hints_close( PS_Hints  hints,
-                  FT_UInt   end_point )
-  {
-    FT_Error  error;
-
-
-    error = hints->error;
-    if ( !error )
-    {
-      FT_Memory     memory = hints->memory;
-      PS_Dimension  dim    = hints->dimension;
-
-
-      error = ps_dimension_end( &dim[0], end_point, memory );
-      if ( !error )
-      {
-        error = ps_dimension_end( &dim[1], end_point, memory );
-      }
-    }
-
-#ifdef DEBUG_HINTER
-    if ( !error )
-      ps_debug_hints = hints;
-#endif
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                TYPE 1 HINTS RECORDING INTERFACE               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  t1_hints_open( T1_Hints  hints )
-  {
-    ps_hints_open( (PS_Hints)hints, PS_HINT_TYPE_1 );
-  }
-
-  static void
-  t1_hints_stem( T1_Hints  hints,
-                 FT_Int    dimension,
-                 FT_Long*  coords )
-  {
-    ps_hints_stem( (PS_Hints)hints, dimension, 1, coords );
-  }
-
-
-  FT_LOCAL_DEF( void )
-  t1_hints_funcs_init( T1_Hints_FuncsRec*  funcs )
-  {
-    FT_MEM_ZERO( (char*)funcs, sizeof ( *funcs ) );
-
-    funcs->open  = (T1_Hints_OpenFunc)    t1_hints_open;
-    funcs->close = (T1_Hints_CloseFunc)   ps_hints_close;
-    funcs->stem  = (T1_Hints_SetStemFunc) t1_hints_stem;
-    funcs->stem3 = (T1_Hints_SetStem3Func)ps_hints_t1stem3;
-    funcs->reset = (T1_Hints_ResetFunc)   ps_hints_t1reset;
-    funcs->apply = (T1_Hints_ApplyFunc)   ps_hints_apply;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                TYPE 2 HINTS RECORDING INTERFACE               *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static void
-  t2_hints_open( T2_Hints  hints )
-  {
-    ps_hints_open( (PS_Hints)hints, PS_HINT_TYPE_2 );
-  }
-
-
-  static void
-  t2_hints_stems( T2_Hints   hints,
-                  FT_Int     dimension,
-                  FT_Int     count,
-                  FT_Fixed*  coords )
-  {
-    FT_Pos  stems[32], y, n;
-    FT_Int  total = count;
-
-
-    y = 0;
-    while ( total > 0 )
-    {
-      /* determine number of stems to write */
-      count = total;
-      if ( count > 16 )
-        count = 16;
-
-      /* compute integer stem positions in font units */
-      for ( n = 0; n < count * 2; n++ )
-      {
-        y       += coords[n];
-        stems[n] = ( y + 0x8000L ) >> 16;
-      }
-
-      /* compute lengths */
-      for ( n = 0; n < count * 2; n += 2 )
-        stems[n + 1] = stems[n + 1] - stems[n];
-
-      /* add them to the current dimension */
-      ps_hints_stem( (PS_Hints)hints, dimension, count, stems );
-
-      total -= count;
-    }
-  }
-
-
-  FT_LOCAL_DEF( void )
-  t2_hints_funcs_init( T2_Hints_FuncsRec*  funcs )
-  {
-    FT_MEM_ZERO( funcs, sizeof ( *funcs ) );
-
-    funcs->open    = (T2_Hints_OpenFunc)   t2_hints_open;
-    funcs->close   = (T2_Hints_CloseFunc)  ps_hints_close;
-    funcs->stems   = (T2_Hints_StemsFunc)  t2_hints_stems;
-    funcs->hintmask= (T2_Hints_MaskFunc)   ps_hints_t2mask;
-    funcs->counter = (T2_Hints_CounterFunc)ps_hints_t2counter;
-    funcs->apply   = (T2_Hints_ApplyFunc)  ps_hints_apply;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/pshrec.h b/nx-X11/extras/freetype2/src/pshinter/pshrec.h
deleted file mode 100644
index 0159e9cd5..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/pshrec.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pshrec.h                                                               */
-/*                                                                         */
-/*    Postscript (Type1/Type2) hints recorder (specification).             */
-/*                                                                         */
-/*  Copyright 2001, 2002, 2003 by                                          */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /**************************************************************************/
-  /*                                                                        */
-  /*  The functions defined here are called from the Type 1, CID and CFF    */
-  /*  font drivers to record the hints of a given character/glyph.          */
-  /*                                                                        */
-  /*  The hints are recorded in a unified format, and are later processed   */
-  /*  by the "optimizer" and "fitter" to adjust the outlines to the pixel   */
-  /*  grid.                                                                 */
-  /*                                                                        */
-  /**************************************************************************/
-
-
-#ifndef __PSHREC_H__
-#define __PSHREC_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-#include "pshglob.h"
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                 GLYPH HINTS RECORDER INTERNALS                *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* handle to hint record */
-  typedef struct PS_HintRec_*  PS_Hint;
-
-  /* hint types */
-  typedef enum
-  {
-    PS_HINT_TYPE_1 = 1,
-    PS_HINT_TYPE_2 = 2
-
-  } PS_Hint_Type;
-
-
-  /* hint flags */
-  typedef enum
-  {
-    PS_HINT_FLAG_GHOST  = 1,
-    PS_HINT_FLAG_BOTTOM = 2
-
-  } PS_Hint_Flags;
-
-
-  /* hint descriptor */
-  typedef struct  PS_HintRec_
-  {
-    FT_Int   pos;
-    FT_Int   len;
-    FT_UInt  flags;
-
-  } PS_HintRec;
-
-
-#define ps_hint_is_active( x )  ( (x)->flags & PS_HINT_FLAG_ACTIVE )
-#define ps_hint_is_ghost( x )   ( (x)->flags & PS_HINT_FLAG_GHOST  )
-#define ps_hint_is_bottom( x )  ( (x)->flags & PS_HINT_FLAG_BOTTOM )
-
-
-  /* hints table descriptor */
-  typedef struct  PS_Hint_TableRec_
-  {
-    FT_UInt  num_hints;
-    FT_UInt  max_hints;
-    PS_Hint  hints;
-
-  } PS_Hint_TableRec, *PS_Hint_Table;
-
-
-  /* hint and counter mask descriptor */
-  typedef struct  PS_MaskRec_
-  {
-    FT_UInt   num_bits;
-    FT_UInt   max_bits;
-    FT_Byte*  bytes;
-    FT_UInt   end_point;
-
-  } PS_MaskRec, *PS_Mask;
-
-
-  /* masks and counters table descriptor */
-  typedef struct  PS_Mask_TableRec_
-  {
-    FT_UInt  num_masks;
-    FT_UInt  max_masks;
-    PS_Mask  masks;
-
-  } PS_Mask_TableRec, *PS_Mask_Table;
-
-
- /* dimension-specific hints descriptor */
-  typedef struct  PS_DimensionRec_
-  {
-    PS_Hint_TableRec  hints;
-    PS_Mask_TableRec  masks;
-    PS_Mask_TableRec  counters;
-
-  } PS_DimensionRec, *PS_Dimension;
-
-
-  /* glyph hints descriptor                                */
-  /* dimension 0 => X coordinates + vertical hints/stems   */
-  /* dimension 1 => Y coordinates + horizontal hints/stems */
-  typedef struct  PS_HintsRec_
-  {
-    FT_Memory        memory;
-    FT_Error         error;
-    FT_UInt32        magic;
-    PS_Hint_Type     hint_type;
-    PS_DimensionRec  dimension[2];
-
-  } PS_HintsRec, *PS_Hints;
-
-  /* */
-
-  /* initialize hints recorder */
-  FT_LOCAL( FT_Error )
-  ps_hints_init( PS_Hints   hints,
-                 FT_Memory  memory );
-
-  /* finalize hints recorder */
-  FT_LOCAL( void )
-  ps_hints_done( PS_Hints  hints );
-
-  /* initialize Type1 hints recorder interface */
-  FT_LOCAL( void )
-  t1_hints_funcs_init( T1_Hints_FuncsRec*  funcs );
-
-  /* initialize Type2 hints recorder interface */
-  FT_LOCAL( void )
-  t2_hints_funcs_init( T2_Hints_FuncsRec*  funcs );
-
-
-#ifdef DEBUG_HINTER
-  extern PS_Hints  ps_debug_hints;
-  extern  int      ps_debug_no_horz_hints;
-  extern  int      ps_debug_no_vert_hints;
-#endif
-
- /* */
-
-
-FT_END_HEADER
-
-
-#endif /* __PS_HINTER_RECORD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/pshinter/rules.mk b/nx-X11/extras/freetype2/src/pshinter/rules.mk
deleted file mode 100644
index 57773394a..000000000
--- a/nx-X11/extras/freetype2/src/pshinter/rules.mk
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# FreeType 2 PSHinter driver configuration rules
-#
-
-
-# Copyright 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# PSHINTER driver directory
-#
-PSHINTER_DIR := $(SRC_DIR)/pshinter
-
-
-# compilation flags for the driver
-#
-PSHINTER_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PSHINTER_DIR))
-
-
-# PSHINTER driver sources (i.e., C files)
-#
-PSHINTER_DRV_SRC := $(PSHINTER_DIR)/pshrec.c  \
-                    $(PSHINTER_DIR)/pshglob.c \
-                    $(PSHINTER_DIR)/pshmod.c  \
-                    $(PSHINTER_DIR)/pshalgo.c
-
-
-# PSHINTER driver headers
-#
-PSHINTER_DRV_H := $(PSHINTER_DRV_SRC:%c=%h) \
-                  $(PSHINTER_DIR)/pshnterr.h
-
-
-# PSHINTER driver object(s)
-#
-#   PSHINTER_DRV_OBJ_M is used during `multi' builds.
-#   PSHINTER_DRV_OBJ_S is used during `single' builds.
-#
-PSHINTER_DRV_OBJ_M := $(PSHINTER_DRV_SRC:$(PSHINTER_DIR)/%.c=$(OBJ_DIR)/%.$O)
-PSHINTER_DRV_OBJ_S := $(OBJ_DIR)/pshinter.$O
-
-# PSHINTER driver source file for single build
-#
-PSHINTER_DRV_SRC_S := $(PSHINTER_DIR)/pshinter.c
-
-
-# PSHINTER driver - single object
-#
-$(PSHINTER_DRV_OBJ_S): $(PSHINTER_DRV_SRC_S) $(PSHINTER_DRV_SRC) \
-                       $(FREETYPE_H) $(PSHINTER_DRV_H)
-	$(PSHINTER_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(PSHINTER_DRV_SRC_S))
-
-
-# PSHINTER driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(PSHINTER_DIR)/%.c $(FREETYPE_H) $(PSHINTER_DRV_H)
-	$(PSHINTER_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(PSHINTER_DRV_OBJ_S)
-DRV_OBJS_M += $(PSHINTER_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psnames/Jamfile b/nx-X11/extras/freetype2/src/psnames/Jamfile
deleted file mode 100644
index e75ae1e7a..000000000
--- a/nx-X11/extras/freetype2/src/psnames/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/psnames Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) psnames ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = psmodule ;
-  }
-  else
-  {
-    _sources = psnames ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/psnames Jamfile
diff --git a/nx-X11/extras/freetype2/src/psnames/descrip.mms b/nx-X11/extras/freetype2/src/psnames/descrip.mms
deleted file mode 100644
index 6a66b9fa3..000000000
--- a/nx-X11/extras/freetype2/src/psnames/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 PSNames driver compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.psnames])
-
-OBJS=psnames.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psnames/module.mk b/nx-X11/extras/freetype2/src/psnames/module.mk
deleted file mode 100644
index e1e59c46b..000000000
--- a/nx-X11/extras/freetype2/src/psnames/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 PSnames module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_psnames_module
-
-add_psnames_module:
-	$(OPEN_DRIVER)psnames_module_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)psnames   $(ECHO_DRIVER_DESC)Postscript & Unicode Glyph name handling$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/psnames/psmodule.c b/nx-X11/extras/freetype2/src/psnames/psmodule.c
deleted file mode 100644
index f6d6ae328..000000000
--- a/nx-X11/extras/freetype2/src/psnames/psmodule.c
+++ /dev/null
@@ -1,408 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psmodule.c                                                             */
-/*                                                                         */
-/*    PSNames module implementation (body).                                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-
-#include "psmodule.h"
-#include "pstables.h"
-
-#include "psnamerr.h"
-
-
-#ifndef FT_CONFIG_OPTION_NO_POSTSCRIPT_NAMES
-
-
-#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-
-  /* return the Unicode value corresponding to a given glyph.  Note that */
-  /* we do deal with glyph variants by detecting a non-initial dot in    */
-  /* the name, as in `A.swash' or `e.final', etc.                        */
-  /*                                                                     */
-  static FT_UInt32
-  ps_unicode_value( const char*  glyph_name )
-  {
-    FT_Int  n;
-    char    first = glyph_name[0];
-    char    temp[64];
-
-
-    /* If the name begins with `uni', then the glyph name may be a */
-    /* hard-coded unicode character code.                          */
-    if ( glyph_name[0] == 'u' &&
-         glyph_name[1] == 'n' &&
-         glyph_name[2] == 'i' )
-    {
-      /* determine whether the next four characters following are */
-      /* hexadecimal.                                             */
-
-      /* XXX: Add code to deal with ligatures, i.e. glyph names like */
-      /*      `uniXXXXYYYYZZZZ'...                                   */
-
-      FT_Int       count;
-      FT_ULong     value = 0;
-      const char*  p     = glyph_name + 3;
-
-
-      for ( count = 4; count > 0; count--, p++ )
-      {
-        char          c = *p;
-        unsigned int  d;
-
-
-        d = (unsigned char)c - '0';
-        if ( d >= 10 )
-        {
-          d = (unsigned char)c - 'A';
-          if ( d >= 6 )
-            d = 16;
-          else
-            d += 10;
-        }
-
-        /* exit if a non-uppercase hexadecimal character was found */
-        if ( d >= 16 )
-          break;
-
-        value = ( value << 4 ) + d;
-      }
-
-      /* there must be exactly four hex digits */
-      if ( ( *p == '\0' || *p == '.' ) && count == 0 )
-        return value;
-    }
-
-    /* If the name begins with `u', followed by four to six uppercase */
-    /* hexadicimal digits, it is a hard-coded unicode character code. */
-    if ( glyph_name[0] == 'u' )
-    {
-      FT_Int       count;
-      FT_ULong     value = 0;
-      const char*  p     = glyph_name + 1;
-
-
-      for ( count = 6; count > 0; count--, p++ )
-      {
-        char          c = *p;
-        unsigned int  d;
-
-
-        d = (unsigned char)c - '0';
-        if ( d >= 10 )
-        {
-          d = (unsigned char)c - 'A';
-          if ( d >= 6 )
-            d = 16;
-          else
-            d += 10;
-        }
-
-        if ( d >= 16 )
-          break;
-
-        value = ( value << 4 ) + d;
-      }
-
-      if ( ( *p == '\0' || *p == '.' ) && count <= 2 )
-        return value;
-    }
-
-    /* look for a non-initial dot in the glyph name in order to */
-    /* sort-out variants like `A.swash', `e.final', etc.        */
-    {
-      const char*  p;
-      int          len;
-
-
-      p = glyph_name;
-
-      while ( *p && *p != '.' )
-        p++;
-
-      len = (int)( p - glyph_name );
-
-      if ( *p && len < 64 )
-      {
-        ft_strncpy( temp, glyph_name, len );
-        temp[len]  = 0;
-        glyph_name = temp;
-      }
-    }
-
-    /* now, look up the glyph in the Adobe Glyph List */
-    for ( n = 0; n < NUM_ADOBE_GLYPHS; n++ )
-    {
-      const char*  name = sid_standard_names[n];
-
-
-      if ( first == name[0] && ft_strcmp( glyph_name, name ) == 0 )
-        return ps_names_to_unicode[n];
-    }
-
-    /* not found, there is probably no Unicode value for this glyph name */
-    return 0;
-  }
-
-
-  /* ft_qsort callback to sort the unicode map */
-  FT_CALLBACK_DEF( int )
-  compare_uni_maps( const void*  a,
-                    const void*  b )
-  {
-    PS_UniMap*  map1 = (PS_UniMap*)a;
-    PS_UniMap*  map2 = (PS_UniMap*)b;
-
-
-    return ( map1->unicode - map2->unicode );
-  }
-
-
-  /* Builds a table that maps Unicode values to glyph indices */
-  static FT_Error
-  ps_unicodes_init( FT_Memory     memory,
-                    FT_UInt       num_glyphs,
-                    const char**  glyph_names,
-                    PS_Unicodes*  table )
-  {
-    FT_Error  error;
-
-
-    /* we first allocate the table */
-    table->num_maps = 0;
-    table->maps     = 0;
-
-    if ( !FT_NEW_ARRAY( table->maps, num_glyphs ) )
-    {
-      FT_UInt     n;
-      FT_UInt     count;
-      PS_UniMap*  map;
-      FT_UInt32   uni_char;
-
-
-      map = table->maps;
-
-      for ( n = 0; n < num_glyphs; n++ )
-      {
-        const char*  gname = glyph_names[n];
-
-
-        if ( gname )
-        {
-          uni_char = ps_unicode_value( gname );
-
-          if ( uni_char != 0 && uni_char != 0xFFFFL )
-          {
-            map->unicode     = (FT_UInt)uni_char;
-            map->glyph_index = n;
-            map++;
-          }
-        }
-      }
-
-      /* now, compress the table a bit */
-      count = (FT_UInt)( map - table->maps );
-
-      if ( count > 0 && FT_REALLOC( table->maps,
-                                    num_glyphs * sizeof ( PS_UniMap ),
-                                    count * sizeof ( PS_UniMap ) ) )
-        count = 0;
-
-      if ( count == 0 )
-      {
-        FT_FREE( table->maps );
-        if ( !error )
-          error = PSnames_Err_Invalid_Argument;  /* no unicode chars here! */
-      }
-      else
-        /* sort the table in increasing order of unicode values */
-        ft_qsort( table->maps, count, sizeof ( PS_UniMap ), compare_uni_maps );
-
-      table->num_maps = count;
-    }
-
-    return error;
-  }
-
-
-  static FT_UInt
-  ps_unicodes_char_index( PS_Unicodes*  table,
-                          FT_ULong      unicode )
-  {
-    PS_UniMap  *min, *max, *mid;
-
-
-    /* perform a binary search on the table */
-
-    min = table->maps;
-    max = min + table->num_maps - 1;
-
-    while ( min <= max )
-    {
-      mid = min + ( max - min ) / 2;
-      if ( mid->unicode == unicode )
-        return mid->glyph_index;
-
-      if ( min == max )
-        break;
-
-      if ( mid->unicode < unicode )
-        min = mid + 1;
-      else
-        max = mid - 1;
-    }
-
-    return 0xFFFFU;
-  }
-
-
-  static FT_ULong
-  ps_unicodes_char_next( PS_Unicodes*  table,
-                         FT_ULong      unicode )
-  {
-    PS_UniMap  *min, *max, *mid;
-
-
-    unicode++;
-    /* perform a binary search on the table */
-
-    min = table->maps;
-    max = min + table->num_maps - 1;
-
-    while ( min <= max )
-    {
-      mid = min + ( max - min ) / 2;
-      if ( mid->unicode == unicode )
-        return unicode;
-
-      if ( min == max )
-        break;
-
-      if ( mid->unicode < unicode )
-        min = mid + 1;
-      else
-        max = mid - 1;
-    }
-
-    if ( max < table->maps )
-      max = table->maps;
-
-    while ( max < table->maps + table->num_maps )
-    {
-      if ( unicode < max->unicode )
-        return max->unicode;
-      max++;
-    }
-
-    return 0;
-  }
-
-
-#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
-
-
-  static const char*
-  ps_get_macintosh_name( FT_UInt  name_index )
-  {
-    if ( name_index >= 258 )
-      name_index = 0;
-
-    return ps_glyph_names[mac_standard_names[name_index]];
-  }
-
-
-  static const char*
-  ps_get_standard_strings( FT_UInt  sid )
-  {
-    return ( sid < NUM_SID_GLYPHS ? sid_standard_names[sid] : 0 );
-  }
-
-
-  static
-  const FT_Service_PsCMapsRec  pscmaps_interface =
-  {
-#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-    (PS_Unicode_ValueFunc)     ps_unicode_value,
-    (PS_Unicodes_InitFunc)     ps_unicodes_init,
-    (PS_Unicodes_CharIndexFunc)ps_unicodes_char_index,
-    (PS_Unicodes_CharNextFunc) ps_unicodes_char_next,
-
-#else
-
-    0,
-    0,
-    0,
-    0,
-
-#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
-
-    (PS_Macintosh_Name_Func)   ps_get_macintosh_name,
-    (PS_Adobe_Std_Strings_Func)ps_get_standard_strings,
-
-    t1_standard_encoding,
-    t1_expert_encoding
-  };
-
-
-  static const FT_ServiceDescRec  pscmaps_services[] =
-  {
-    { FT_SERVICE_ID_POSTSCRIPT_CMAPS, &pscmaps_interface },
-    { NULL, NULL }
-  };
-
-
-  static FT_Pointer
-  psnames_get_service( FT_Module    module,
-                       const char*  service_id )
-  {
-    FT_UNUSED( module );
-
-    return ft_service_list_lookup( pscmaps_services, service_id );
-  }
-
-#endif /* !FT_CONFIG_OPTION_NO_POSTSCRIPT_NAMES */
-
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Module_Class  psnames_module_class =
-  {
-    0,  /* this is not a font driver, nor a renderer */
-    sizeof ( FT_ModuleRec ),
-
-    "psnames",  /* driver name                         */
-    0x10000L,   /* driver version                      */
-    0x20000L,   /* driver requires FreeType 2 or above */
-
-#ifdef FT_CONFIG_OPTION_NO_POSTSCRIPT_NAMES
-    0,
-    (FT_Module_Constructor)0,
-    (FT_Module_Destructor) 0,
-    (FT_Module_Requester)  0
-#else
-    (void*)&pscmaps_interface,   /* module specific interface */
-    (FT_Module_Constructor)0,
-    (FT_Module_Destructor) 0,
-    (FT_Module_Requester)  psnames_get_service
-#endif
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psnames/psmodule.h b/nx-X11/extras/freetype2/src/psnames/psmodule.h
deleted file mode 100644
index 232fdfb9a..000000000
--- a/nx-X11/extras/freetype2/src/psnames/psmodule.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psmodule.h                                                             */
-/*                                                                         */
-/*    High-level PSNames module interface (specification).                 */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __PSMODULE_H__
-#define __PSMODULE_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Module_Class )  psnames_module_class;
-
-
-FT_END_HEADER
-
-#endif /* __PSMODULE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psnames/psnamerr.h b/nx-X11/extras/freetype2/src/psnames/psnamerr.h
deleted file mode 100644
index ae1541d96..000000000
--- a/nx-X11/extras/freetype2/src/psnames/psnamerr.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psnamerr.h                                                             */
-/*                                                                         */
-/*    PS names module error codes (specification only).                    */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the PS names module error enumeration     */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __PSNAMERR_H__
-#define __PSNAMERR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  PSnames_Err_
-#define FT_ERR_BASE    FT_Mod_Err_PSnames
-
-#include FT_ERRORS_H
-
-#endif /* __PSNAMERR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psnames/psnames.c b/nx-X11/extras/freetype2/src/psnames/psnames.c
deleted file mode 100644
index d6ed998bf..000000000
--- a/nx-X11/extras/freetype2/src/psnames/psnames.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  psnames.c                                                              */
-/*                                                                         */
-/*    FreeType PSNames module component (body only).                       */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "psmodule.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psnames/pstables.h b/nx-X11/extras/freetype2/src/psnames/pstables.h
deleted file mode 100644
index 7c0739375..000000000
--- a/nx-X11/extras/freetype2/src/psnames/pstables.h
+++ /dev/null
@@ -1,9437 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  pstables.h.new                                                         */
-/*                                                                         */
-/*    PostScript glyph names (specification only).                         */
-/*                                                                         */
-/*  Copyright 2000-2001, 2003 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /* this file has been generated automatically -- do not edit! */
-
-
-  static const char* const  ps_glyph_names[] =
-  {
-    ".null",
-    "nonmarkingreturn",
-    ".notdef",
-    "space",
-    "exclam",
-    "quotedbl",
-    "numbersign",
-    "dollar",
-    "percent",
-    "ampersand",
-    "quoteright",
-    "parenleft",
-    "parenright",
-    "asterisk",
-    "plus",
-    "comma",
-    "hyphen",
-    "period",
-    "slash",
-    "zero",
-    "one",
-    "two",
-    "three",
-    "four",
-    "five",
-    "six",
-    "seven",
-    "eight",
-    "nine",
-    "colon",
-    "semicolon",
-    "less",
-    "equal",
-    "greater",
-    "question",
-    "at",
-    "A",
-    "B",
-    "C",
-    "D",
-    "E",
-    "F",
-    "G",
-    "H",
-    "I",
-    "J",
-    "K",
-    "L",
-    "M",
-    "N",
-    "O",
-    "P",
-    "Q",
-    "R",
-    "S",
-    "T",
-    "U",
-    "V",
-    "W",
-    "X",
-    "Y",
-    "Z",
-    "bracketleft",
-    "backslash",
-    "bracketright",
-    "asciicircum",
-    "underscore",
-    "quoteleft",
-    "a",
-    "b",
-    "c",
-    "d",
-    "e",
-    "f",
-    "g",
-    "h",
-    "i",
-    "j",
-    "k",
-    "l",
-    "m",
-    "n",
-    "o",
-    "p",
-    "q",
-    "r",
-    "s",
-    "t",
-    "u",
-    "v",
-    "w",
-    "x",
-    "y",
-    "z",
-    "braceleft",
-    "bar",
-    "braceright",
-    "asciitilde",
-    "exclamdown",
-    "cent",
-    "sterling",
-    "fraction",
-    "yen",
-    "florin",
-    "section",
-    "currency",
-    "quotesingle",
-    "quotedblleft",
-    "guillemotleft",
-    "guilsinglleft",
-    "guilsinglright",
-    "fi",
-    "fl",
-    "endash",
-    "dagger",
-    "daggerdbl",
-    "periodcentered",
-    "paragraph",
-    "bullet",
-    "quotesinglbase",
-    "quotedblbase",
-    "quotedblright",
-    "guillemotright",
-    "ellipsis",
-    "perthousand",
-    "questiondown",
-    "grave",
-    "acute",
-    "circumflex",
-    "tilde",
-    "macron",
-    "breve",
-    "dotaccent",
-    "dieresis",
-    "ring",
-    "cedilla",
-    "hungarumlaut",
-    "ogonek",
-    "caron",
-    "emdash",
-    "AE",
-    "ordfeminine",
-    "Lslash",
-    "Oslash",
-    "OE",
-    "ordmasculine",
-    "ae",
-    "dotlessi",
-    "lslash",
-    "oslash",
-    "oe",
-    "germandbls",
-    "onesuperior",
-    "logicalnot",
-    "mu",
-    "trademark",
-    "Eth",
-    "onehalf",
-    "plusminus",
-    "Thorn",
-    "onequarter",
-    "divide",
-    "brokenbar",
-    "degree",
-    "thorn",
-    "threequarters",
-    "twosuperior",
-    "registered",
-    "minus",
-    "eth",
-    "multiply",
-    "threesuperior",
-    "copyright",
-    "Aacute",
-    "Acircumflex",
-    "Adieresis",
-    "Agrave",
-    "Aring",
-    "Atilde",
-    "Ccedilla",
-    "Eacute",
-    "Ecircumflex",
-    "Edieresis",
-    "Egrave",
-    "Iacute",
-    "Icircumflex",
-    "Idieresis",
-    "Igrave",
-    "Ntilde",
-    "Oacute",
-    "Ocircumflex",
-    "Odieresis",
-    "Ograve",
-    "Otilde",
-    "Scaron",
-    "Uacute",
-    "Ucircumflex",
-    "Udieresis",
-    "Ugrave",
-    "Yacute",
-    "Ydieresis",
-    "Zcaron",
-    "aacute",
-    "acircumflex",
-    "adieresis",
-    "agrave",
-    "aring",
-    "atilde",
-    "ccedilla",
-    "eacute",
-    "ecircumflex",
-    "edieresis",
-    "egrave",
-    "iacute",
-    "icircumflex",
-    "idieresis",
-    "igrave",
-    "ntilde",
-    "oacute",
-    "ocircumflex",
-    "odieresis",
-    "ograve",
-    "otilde",
-    "scaron",
-    "uacute",
-    "ucircumflex",
-    "udieresis",
-    "ugrave",
-    "yacute",
-    "ydieresis",
-    "zcaron",
-    "exclamsmall",
-    "Hungarumlautsmall",
-    "dollaroldstyle",
-    "dollarsuperior",
-    "ampersandsmall",
-    "Acutesmall",
-    "parenleftsuperior",
-    "parenrightsuperior",
-    "twodotenleader",
-    "onedotenleader",
-    "zerooldstyle",
-    "oneoldstyle",
-    "twooldstyle",
-    "threeoldstyle",
-    "fouroldstyle",
-    "fiveoldstyle",
-    "sixoldstyle",
-    "sevenoldstyle",
-    "eightoldstyle",
-    "nineoldstyle",
-    "commasuperior",
-    "threequartersemdash",
-    "periodsuperior",
-    "questionsmall",
-    "asuperior",
-    "bsuperior",
-    "centsuperior",
-    "dsuperior",
-    "esuperior",
-    "isuperior",
-    "lsuperior",
-    "msuperior",
-    "nsuperior",
-    "osuperior",
-    "rsuperior",
-    "ssuperior",
-    "tsuperior",
-    "ff",
-    "ffi",
-    "ffl",
-    "parenleftinferior",
-    "parenrightinferior",
-    "Circumflexsmall",
-    "hyphensuperior",
-    "Gravesmall",
-    "Asmall",
-    "Bsmall",
-    "Csmall",
-    "Dsmall",
-    "Esmall",
-    "Fsmall",
-    "Gsmall",
-    "Hsmall",
-    "Ismall",
-    "Jsmall",
-    "Ksmall",
-    "Lsmall",
-    "Msmall",
-    "Nsmall",
-    "Osmall",
-    "Psmall",
-    "Qsmall",
-    "Rsmall",
-    "Ssmall",
-    "Tsmall",
-    "Usmall",
-    "Vsmall",
-    "Wsmall",
-    "Xsmall",
-    "Ysmall",
-    "Zsmall",
-    "colonmonetary",
-    "onefitted",
-    "rupiah",
-    "Tildesmall",
-    "exclamdownsmall",
-    "centoldstyle",
-    "Lslashsmall",
-    "Scaronsmall",
-    "Zcaronsmall",
-    "Dieresissmall",
-    "Brevesmall",
-    "Caronsmall",
-    "Dotaccentsmall",
-    "Macronsmall",
-    "figuredash",
-    "hypheninferior",
-    "Ogoneksmall",
-    "Ringsmall",
-    "Cedillasmall",
-    "questiondownsmall",
-    "oneeighth",
-    "threeeighths",
-    "fiveeighths",
-    "seveneighths",
-    "onethird",
-    "twothirds",
-    "zerosuperior",
-    "foursuperior",
-    "fivesuperior",
-    "sixsuperior",
-    "sevensuperior",
-    "eightsuperior",
-    "ninesuperior",
-    "zeroinferior",
-    "oneinferior",
-    "twoinferior",
-    "threeinferior",
-    "fourinferior",
-    "fiveinferior",
-    "sixinferior",
-    "seveninferior",
-    "eightinferior",
-    "nineinferior",
-    "centinferior",
-    "dollarinferior",
-    "periodinferior",
-    "commainferior",
-    "Agravesmall",
-    "Aacutesmall",
-    "Acircumflexsmall",
-    "Atildesmall",
-    "Adieresissmall",
-    "Aringsmall",
-    "AEsmall",
-    "Ccedillasmall",
-    "Egravesmall",
-    "Eacutesmall",
-    "Ecircumflexsmall",
-    "Edieresissmall",
-    "Igravesmall",
-    "Iacutesmall",
-    "Icircumflexsmall",
-    "Idieresissmall",
-    "Ethsmall",
-    "Ntildesmall",
-    "Ogravesmall",
-    "Oacutesmall",
-    "Ocircumflexsmall",
-    "Otildesmall",
-    "Odieresissmall",
-    "OEsmall",
-    "Oslashsmall",
-    "Ugravesmall",
-    "Uacutesmall",
-    "Ucircumflexsmall",
-    "Udieresissmall",
-    "Yacutesmall",
-    "Thornsmall",
-    "Ydieresissmall",
-    "001.000",
-    "001.001",
-    "001.002",
-    "001.003",
-    "Black",
-    "Bold",
-    "Book",
-    "Light",
-    "Medium",
-    "Regular",
-    "Roman",
-    "Semibold",
-
-#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-    "AEacute",
-    "AEmacron",
-    "Abreve",
-    "Abreveacute",
-    "Abrevecyrillic",
-    "Abrevedotbelow",
-    "Abrevegrave",
-    "Abrevehookabove",
-    "Abrevetilde",
-    "Acaron",
-    "Acircle",
-    "Acircumflexacute",
-    "Acircumflexdotbelow",
-    "Acircumflexgrave",
-    "Acircumflexhookabove",
-    "Acircumflextilde",
-    "Acute",
-    "Acyrillic",
-    "Adblgrave",
-    "Adieresiscyrillic",
-    "Adieresismacron",
-    "Adotbelow",
-    "Adotmacron",
-    "Ahookabove",
-    "Aiecyrillic",
-    "Ainvertedbreve",
-    "Alpha",
-    "Alphatonos",
-    "Amacron",
-    "Amonospace",
-    "Aogonek",
-    "Aringacute",
-    "Aringbelow",
-    "Aybarmenian",
-    "Bcircle",
-    "Bdotaccent",
-    "Bdotbelow",
-    "Becyrillic",
-    "Benarmenian",
-    "Beta",
-    "Bhook",
-    "Blinebelow",
-    "Bmonospace",
-    "Btopbar",
-    "Caarmenian",
-    "Cacute",
-    "Caron",
-    "Ccaron",
-    "Ccedillaacute",
-    "Ccircle",
-    "Ccircumflex",
-    "Cdot",
-    "Cdotaccent",
-    "Chaarmenian",
-    "Cheabkhasiancyrillic",
-    "Checyrillic",
-    "Chedescenderabkhasiancyrillic",
-    "Chedescendercyrillic",
-    "Chedieresiscyrillic",
-    "Cheharmenian",
-    "Chekhakassiancyrillic",
-    "Cheverticalstrokecyrillic",
-    "Chi",
-    "Chook",
-    "Cmonospace",
-    "Coarmenian",
-    "DZ",
-    "DZcaron",
-    "Daarmenian",
-    "Dafrican",
-    "Dcaron",
-    "Dcedilla",
-    "Dcircle",
-    "Dcircumflexbelow",
-    "Dcroat",
-    "Ddotaccent",
-    "Ddotbelow",
-    "Decyrillic",
-    "Deicoptic",
-    "Delta",
-    "Deltagreek",
-    "Dhook",
-    "Dieresis",
-    "DieresisAcute",
-    "DieresisGrave",
-    "Digammagreek",
-    "Djecyrillic",
-    "Dlinebelow",
-    "Dmonospace",
-    "Dslash",
-    "Dtopbar",
-    "Dz",
-    "Dzcaron",
-    "Dzeabkhasiancyrillic",
-    "Dzecyrillic",
-    "Dzhecyrillic",
-    "Ebreve",
-    "Ecaron",
-    "Ecedillabreve",
-    "Echarmenian",
-    "Ecircle",
-    "Ecircumflexacute",
-    "Ecircumflexbelow",
-    "Ecircumflexdotbelow",
-    "Ecircumflexgrave",
-    "Ecircumflexhookabove",
-    "Ecircumflextilde",
-    "Ecyrillic",
-    "Edblgrave",
-    "Edot",
-    "Edotaccent",
-    "Edotbelow",
-    "Efcyrillic",
-    "Eharmenian",
-    "Ehookabove",
-    "Eightroman",
-    "Einvertedbreve",
-    "Eiotifiedcyrillic",
-    "Elcyrillic",
-    "Elevenroman",
-    "Emacron",
-    "Emacronacute",
-    "Emacrongrave",
-    "Emcyrillic",
-    "Emonospace",
-    "Encyrillic",
-    "Endescendercyrillic",
-    "Eng",
-    "Enghecyrillic",
-    "Enhookcyrillic",
-    "Eogonek",
-    "Eopen",
-    "Epsilon",
-    "Epsilontonos",
-    "Ercyrillic",
-    "Ereversed",
-    "Ereversedcyrillic",
-    "Escyrillic",
-    "Esdescendercyrillic",
-    "Esh",
-    "Eta",
-    "Etarmenian",
-    "Etatonos",
-    "Etilde",
-    "Etildebelow",
-    "Euro",
-    "Ezh",
-    "Ezhcaron",
-    "Ezhreversed",
-    "Fcircle",
-    "Fdotaccent",
-    "Feharmenian",
-    "Feicoptic",
-    "Fhook",
-    "Fitacyrillic",
-    "Fiveroman",
-    "Fmonospace",
-    "Fourroman",
-    "GBsquare",
-    "Gacute",
-    "Gamma",
-    "Gammaafrican",
-    "Gangiacoptic",
-    "Gbreve",
-    "Gcaron",
-    "Gcedilla",
-    "Gcircle",
-    "Gcircumflex",
-    "Gcommaaccent",
-    "Gdot",
-    "Gdotaccent",
-    "Gecyrillic",
-    "Ghadarmenian",
-    "Ghemiddlehookcyrillic",
-    "Ghestrokecyrillic",
-    "Gheupturncyrillic",
-    "Ghook",
-    "Gimarmenian",
-    "Gjecyrillic",
-    "Gmacron",
-    "Gmonospace",
-    "Grave",
-    "Gsmallhook",
-    "Gstroke",
-    "H18533",
-    "H18543",
-    "H18551",
-    "H22073",
-    "HPsquare",
-    "Haabkhasiancyrillic",
-    "Hadescendercyrillic",
-    "Hardsigncyrillic",
-    "Hbar",
-    "Hbrevebelow",
-    "Hcedilla",
-    "Hcircle",
-    "Hcircumflex",
-    "Hdieresis",
-    "Hdotaccent",
-    "Hdotbelow",
-    "Hmonospace",
-    "Hoarmenian",
-    "Horicoptic",
-    "Hungarumlaut",
-    "Hzsquare",
-    "IAcyrillic",
-    "IJ",
-    "IUcyrillic",
-    "Ibreve",
-    "Icaron",
-    "Icircle",
-    "Icyrillic",
-    "Idblgrave",
-    "Idieresisacute",
-    "Idieresiscyrillic",
-    "Idot",
-    "Idotaccent",
-    "Idotbelow",
-    "Iebrevecyrillic",
-    "Iecyrillic",
-    "Ifraktur",
-    "Ihookabove",
-    "Iicyrillic",
-    "Iinvertedbreve",
-    "Iishortcyrillic",
-    "Imacron",
-    "Imacroncyrillic",
-    "Imonospace",
-    "Iniarmenian",
-    "Iocyrillic",
-    "Iogonek",
-    "Iota",
-    "Iotaafrican",
-    "Iotadieresis",
-    "Iotatonos",
-    "Istroke",
-    "Itilde",
-    "Itildebelow",
-    "Izhitsacyrillic",
-    "Izhitsadblgravecyrillic",
-    "Jaarmenian",
-    "Jcircle",
-    "Jcircumflex",
-    "Jecyrillic",
-    "Jheharmenian",
-    "Jmonospace",
-    "KBsquare",
-    "KKsquare",
-    "Kabashkircyrillic",
-    "Kacute",
-    "Kacyrillic",
-    "Kadescendercyrillic",
-    "Kahookcyrillic",
-    "Kappa",
-    "Kastrokecyrillic",
-    "Kaverticalstrokecyrillic",
-    "Kcaron",
-    "Kcedilla",
-    "Kcircle",
-    "Kcommaaccent",
-    "Kdotbelow",
-    "Keharmenian",
-    "Kenarmenian",
-    "Khacyrillic",
-    "Kheicoptic",
-    "Khook",
-    "Kjecyrillic",
-    "Klinebelow",
-    "Kmonospace",
-    "Koppacyrillic",
-    "Koppagreek",
-    "Ksicyrillic",
-    "LJ",
-    "LL",
-    "Lacute",
-    "Lambda",
-    "Lcaron",
-    "Lcedilla",
-    "Lcircle",
-    "Lcircumflexbelow",
-    "Lcommaaccent",
-    "Ldot",
-    "Ldotaccent",
-    "Ldotbelow",
-    "Ldotbelowmacron",
-    "Liwnarmenian",
-    "Lj",
-    "Ljecyrillic",
-    "Llinebelow",
-    "Lmonospace",
-    "MBsquare",
-    "Macron",
-    "Macute",
-    "Mcircle",
-    "Mdotaccent",
-    "Mdotbelow",
-    "Menarmenian",
-    "Mmonospace",
-    "Mturned",
-    "Mu",
-    "NJ",
-    "Nacute",
-    "Ncaron",
-    "Ncedilla",
-    "Ncircle",
-    "Ncircumflexbelow",
-    "Ncommaaccent",
-    "Ndotaccent",
-    "Ndotbelow",
-    "Nhookleft",
-    "Nineroman",
-    "Nj",
-    "Njecyrillic",
-    "Nlinebelow",
-    "Nmonospace",
-    "Nowarmenian",
-    "Nu",
-    "Obarredcyrillic",
-    "Obarreddieresiscyrillic",
-    "Obreve",
-    "Ocaron",
-    "Ocenteredtilde",
-    "Ocircle",
-    "Ocircumflexacute",
-    "Ocircumflexdotbelow",
-    "Ocircumflexgrave",
-    "Ocircumflexhookabove",
-    "Ocircumflextilde",
-    "Ocyrillic",
-    "Odblacute",
-    "Odblgrave",
-    "Odieresiscyrillic",
-    "Odotbelow",
-    "Oharmenian",
-    "Ohm",
-    "Ohookabove",
-    "Ohorn",
-    "Ohornacute",
-    "Ohorndotbelow",
-    "Ohorngrave",
-    "Ohornhookabove",
-    "Ohorntilde",
-    "Ohungarumlaut",
-    "Oi",
-    "Oinvertedbreve",
-    "Omacron",
-    "Omacronacute",
-    "Omacrongrave",
-    "Omega",
-    "Omegacyrillic",
-    "Omegagreek",
-    "Omegaroundcyrillic",
-    "Omegatitlocyrillic",
-    "Omegatonos",
-    "Omicron",
-    "Omicrontonos",
-    "Omonospace",
-    "Oneroman",
-    "Oogonek",
-    "Oogonekmacron",
-    "Oopen",
-    "Oslashacute",
-    "Ostrokeacute",
-    "Otcyrillic",
-    "Otildeacute",
-    "Otildedieresis",
-    "Pacute",
-    "Pcircle",
-    "Pdotaccent",
-    "Pecyrillic",
-    "Peharmenian",
-    "Pemiddlehookcyrillic",
-    "Phi",
-    "Phook",
-    "Pi",
-    "Piwrarmenian",
-    "Pmonospace",
-    "Psi",
-    "Psicyrillic",
-    "Qcircle",
-    "Qmonospace",
-    "Raarmenian",
-    "Racute",
-    "Rcaron",
-    "Rcedilla",
-    "Rcircle",
-    "Rcommaaccent",
-    "Rdblgrave",
-    "Rdotaccent",
-    "Rdotbelow",
-    "Rdotbelowmacron",
-    "Reharmenian",
-    "Rfraktur",
-    "Rho",
-    "Rinvertedbreve",
-    "Rlinebelow",
-    "Rmonospace",
-    "Rsmallinverted",
-    "Rsmallinvertedsuperior",
-    "SF010000",
-    "SF020000",
-    "SF030000",
-    "SF040000",
-    "SF050000",
-    "SF060000",
-    "SF070000",
-    "SF080000",
-    "SF090000",
-    "SF100000",
-    "SF110000",
-    "SF190000",
-    "SF200000",
-    "SF210000",
-    "SF220000",
-    "SF230000",
-    "SF240000",
-    "SF250000",
-    "SF260000",
-    "SF270000",
-    "SF280000",
-    "SF360000",
-    "SF370000",
-    "SF380000",
-    "SF390000",
-    "SF400000",
-    "SF410000",
-    "SF420000",
-    "SF430000",
-    "SF440000",
-    "SF450000",
-    "SF460000",
-    "SF470000",
-    "SF480000",
-    "SF490000",
-    "SF500000",
-    "SF510000",
-    "SF520000",
-    "SF530000",
-    "SF540000",
-    "Sacute",
-    "Sacutedotaccent",
-    "Sampigreek",
-    "Scarondotaccent",
-    "Scedilla",
-    "Schwa",
-    "Schwacyrillic",
-    "Schwadieresiscyrillic",
-    "Scircle",
-    "Scircumflex",
-    "Scommaaccent",
-    "Sdotaccent",
-    "Sdotbelow",
-    "Sdotbelowdotaccent",
-    "Seharmenian",
-    "Sevenroman",
-    "Shaarmenian",
-    "Shacyrillic",
-    "Shchacyrillic",
-    "Sheicoptic",
-    "Shhacyrillic",
-    "Shimacoptic",
-    "Sigma",
-    "Sixroman",
-    "Smonospace",
-    "Softsigncyrillic",
-    "Stigmagreek",
-    "Tau",
-    "Tbar",
-    "Tcaron",
-    "Tcedilla",
-    "Tcircle",
-    "Tcircumflexbelow",
-    "Tcommaaccent",
-    "Tdotaccent",
-    "Tdotbelow",
-    "Tecyrillic",
-    "Tedescendercyrillic",
-    "Tenroman",
-    "Tetsecyrillic",
-    "Theta",
-    "Thook",
-    "Threeroman",
-    "Tiwnarmenian",
-    "Tlinebelow",
-    "Tmonospace",
-    "Toarmenian",
-    "Tonefive",
-    "Tonesix",
-    "Tonetwo",
-    "Tretroflexhook",
-    "Tsecyrillic",
-    "Tshecyrillic",
-    "Twelveroman",
-    "Tworoman",
-    "Ubreve",
-    "Ucaron",
-    "Ucircle",
-    "Ucircumflexbelow",
-    "Ucyrillic",
-    "Udblacute",
-    "Udblgrave",
-    "Udieresisacute",
-    "Udieresisbelow",
-    "Udieresiscaron",
-    "Udieresiscyrillic",
-    "Udieresisgrave",
-    "Udieresismacron",
-    "Udotbelow",
-    "Uhookabove",
-    "Uhorn",
-    "Uhornacute",
-    "Uhorndotbelow",
-    "Uhorngrave",
-    "Uhornhookabove",
-    "Uhorntilde",
-    "Uhungarumlaut",
-    "Uhungarumlautcyrillic",
-    "Uinvertedbreve",
-    "Ukcyrillic",
-    "Umacron",
-    "Umacroncyrillic",
-    "Umacrondieresis",
-    "Umonospace",
-    "Uogonek",
-    "Upsilon",
-    "Upsilon1",
-    "Upsilonacutehooksymbolgreek",
-    "Upsilonafrican",
-    "Upsilondieresis",
-    "Upsilondieresishooksymbolgreek",
-    "Upsilonhooksymbol",
-    "Upsilontonos",
-    "Uring",
-    "Ushortcyrillic",
-    "Ustraightcyrillic",
-    "Ustraightstrokecyrillic",
-    "Utilde",
-    "Utildeacute",
-    "Utildebelow",
-    "Vcircle",
-    "Vdotbelow",
-    "Vecyrillic",
-    "Vewarmenian",
-    "Vhook",
-    "Vmonospace",
-    "Voarmenian",
-    "Vtilde",
-    "Wacute",
-    "Wcircle",
-    "Wcircumflex",
-    "Wdieresis",
-    "Wdotaccent",
-    "Wdotbelow",
-    "Wgrave",
-    "Wmonospace",
-    "Xcircle",
-    "Xdieresis",
-    "Xdotaccent",
-    "Xeharmenian",
-    "Xi",
-    "Xmonospace",
-    "Yatcyrillic",
-    "Ycircle",
-    "Ycircumflex",
-    "Ydotaccent",
-    "Ydotbelow",
-    "Yericyrillic",
-    "Yerudieresiscyrillic",
-    "Ygrave",
-    "Yhook",
-    "Yhookabove",
-    "Yiarmenian",
-    "Yicyrillic",
-    "Yiwnarmenian",
-    "Ymonospace",
-    "Ytilde",
-    "Yusbigcyrillic",
-    "Yusbigiotifiedcyrillic",
-    "Yuslittlecyrillic",
-    "Yuslittleiotifiedcyrillic",
-    "Zaarmenian",
-    "Zacute",
-    "Zcircle",
-    "Zcircumflex",
-    "Zdot",
-    "Zdotaccent",
-    "Zdotbelow",
-    "Zecyrillic",
-    "Zedescendercyrillic",
-    "Zedieresiscyrillic",
-    "Zeta",
-    "Zhearmenian",
-    "Zhebrevecyrillic",
-    "Zhecyrillic",
-    "Zhedescendercyrillic",
-    "Zhedieresiscyrillic",
-    "Zlinebelow",
-    "Zmonospace",
-    "Zstroke",
-    "aabengali",
-    "aadeva",
-    "aagujarati",
-    "aagurmukhi",
-    "aamatragurmukhi",
-    "aarusquare",
-    "aavowelsignbengali",
-    "aavowelsigndeva",
-    "aavowelsigngujarati",
-    "abbreviationmarkarmenian",
-    "abbreviationsigndeva",
-    "abengali",
-    "abopomofo",
-    "abreve",
-    "abreveacute",
-    "abrevecyrillic",
-    "abrevedotbelow",
-    "abrevegrave",
-    "abrevehookabove",
-    "abrevetilde",
-    "acaron",
-    "acircle",
-    "acircumflexacute",
-    "acircumflexdotbelow",
-    "acircumflexgrave",
-    "acircumflexhookabove",
-    "acircumflextilde",
-    "acutebelowcmb",
-    "acutecmb",
-    "acutecomb",
-    "acutedeva",
-    "acutelowmod",
-    "acutetonecmb",
-    "acyrillic",
-    "adblgrave",
-    "addakgurmukhi",
-    "adeva",
-    "adieresiscyrillic",
-    "adieresismacron",
-    "adotbelow",
-    "adotmacron",
-    "aeacute",
-    "aekorean",
-    "aemacron",
-    "afii00208",
-    "afii08941",
-    "afii10017",
-    "afii10018",
-    "afii10019",
-    "afii10020",
-    "afii10021",
-    "afii10022",
-    "afii10023",
-    "afii10024",
-    "afii10025",
-    "afii10026",
-    "afii10027",
-    "afii10028",
-    "afii10029",
-    "afii10030",
-    "afii10031",
-    "afii10032",
-    "afii10033",
-    "afii10034",
-    "afii10035",
-    "afii10036",
-    "afii10037",
-    "afii10038",
-    "afii10039",
-    "afii10040",
-    "afii10041",
-    "afii10042",
-    "afii10043",
-    "afii10044",
-    "afii10045",
-    "afii10046",
-    "afii10047",
-    "afii10048",
-    "afii10049",
-    "afii10050",
-    "afii10051",
-    "afii10052",
-    "afii10053",
-    "afii10054",
-    "afii10055",
-    "afii10056",
-    "afii10057",
-    "afii10058",
-    "afii10059",
-    "afii10060",
-    "afii10061",
-    "afii10062",
-    "afii10063",
-    "afii10064",
-    "afii10065",
-    "afii10066",
-    "afii10067",
-    "afii10068",
-    "afii10069",
-    "afii10070",
-    "afii10071",
-    "afii10072",
-    "afii10073",
-    "afii10074",
-    "afii10075",
-    "afii10076",
-    "afii10077",
-    "afii10078",
-    "afii10079",
-    "afii10080",
-    "afii10081",
-    "afii10082",
-    "afii10083",
-    "afii10084",
-    "afii10085",
-    "afii10086",
-    "afii10087",
-    "afii10088",
-    "afii10089",
-    "afii10090",
-    "afii10091",
-    "afii10092",
-    "afii10093",
-    "afii10094",
-    "afii10095",
-    "afii10096",
-    "afii10097",
-    "afii10098",
-    "afii10099",
-    "afii10100",
-    "afii10101",
-    "afii10102",
-    "afii10103",
-    "afii10104",
-    "afii10105",
-    "afii10106",
-    "afii10107",
-    "afii10108",
-    "afii10109",
-    "afii10110",
-    "afii10145",
-    "afii10146",
-    "afii10147",
-    "afii10148",
-    "afii10192",
-    "afii10193",
-    "afii10194",
-    "afii10195",
-    "afii10196",
-    "afii10831",
-    "afii10832",
-    "afii10846",
-    "afii299",
-    "afii300",
-    "afii301",
-    "afii57381",
-    "afii57388",
-    "afii57392",
-    "afii57393",
-    "afii57394",
-    "afii57395",
-    "afii57396",
-    "afii57397",
-    "afii57398",
-    "afii57399",
-    "afii57400",
-    "afii57401",
-    "afii57403",
-    "afii57407",
-    "afii57409",
-    "afii57410",
-    "afii57411",
-    "afii57412",
-    "afii57413",
-    "afii57414",
-    "afii57415",
-    "afii57416",
-    "afii57417",
-    "afii57418",
-    "afii57419",
-    "afii57420",
-    "afii57421",
-    "afii57422",
-    "afii57423",
-    "afii57424",
-    "afii57425",
-    "afii57426",
-    "afii57427",
-    "afii57428",
-    "afii57429",
-    "afii57430",
-    "afii57431",
-    "afii57432",
-    "afii57433",
-    "afii57434",
-    "afii57440",
-    "afii57441",
-    "afii57442",
-    "afii57443",
-    "afii57444",
-    "afii57445",
-    "afii57446",
-    "afii57448",
-    "afii57449",
-    "afii57450",
-    "afii57451",
-    "afii57452",
-    "afii57453",
-    "afii57454",
-    "afii57455",
-    "afii57456",
-    "afii57457",
-    "afii57458",
-    "afii57470",
-    "afii57505",
-    "afii57506",
-    "afii57507",
-    "afii57508",
-    "afii57509",
-    "afii57511",
-    "afii57512",
-    "afii57513",
-    "afii57514",
-    "afii57519",
-    "afii57534",
-    "afii57636",
-    "afii57645",
-    "afii57658",
-    "afii57664",
-    "afii57665",
-    "afii57666",
-    "afii57667",
-    "afii57668",
-    "afii57669",
-    "afii57670",
-    "afii57671",
-    "afii57672",
-    "afii57673",
-    "afii57674",
-    "afii57675",
-    "afii57676",
-    "afii57677",
-    "afii57678",
-    "afii57679",
-    "afii57680",
-    "afii57681",
-    "afii57682",
-    "afii57683",
-    "afii57684",
-    "afii57685",
-    "afii57686",
-    "afii57687",
-    "afii57688",
-    "afii57689",
-    "afii57690",
-    "afii57694",
-    "afii57695",
-    "afii57700",
-    "afii57705",
-    "afii57716",
-    "afii57717",
-    "afii57718",
-    "afii57723",
-    "afii57793",
-    "afii57794",
-    "afii57795",
-    "afii57796",
-    "afii57797",
-    "afii57798",
-    "afii57799",
-    "afii57800",
-    "afii57801",
-    "afii57802",
-    "afii57803",
-    "afii57804",
-    "afii57806",
-    "afii57807",
-    "afii57839",
-    "afii57841",
-    "afii57842",
-    "afii57929",
-    "afii61248",
-    "afii61289",
-    "afii61352",
-    "afii61573",
-    "afii61574",
-    "afii61575",
-    "afii61664",
-    "afii63167",
-    "afii64937",
-    "agujarati",
-    "agurmukhi",
-    "ahiragana",
-    "ahookabove",
-    "aibengali",
-    "aibopomofo",
-    "aideva",
-    "aiecyrillic",
-    "aigujarati",
-    "aigurmukhi",
-    "aimatragurmukhi",
-    "ainarabic",
-    "ainfinalarabic",
-    "aininitialarabic",
-    "ainmedialarabic",
-    "ainvertedbreve",
-    "aivowelsignbengali",
-    "aivowelsigndeva",
-    "aivowelsigngujarati",
-    "akatakana",
-    "akatakanahalfwidth",
-    "akorean",
-    "alef",
-    "alefarabic",
-    "alefdageshhebrew",
-    "aleffinalarabic",
-    "alefhamzaabovearabic",
-    "alefhamzaabovefinalarabic",
-    "alefhamzabelowarabic",
-    "alefhamzabelowfinalarabic",
-    "alefhebrew",
-    "aleflamedhebrew",
-    "alefmaddaabovearabic",
-    "alefmaddaabovefinalarabic",
-    "alefmaksuraarabic",
-    "alefmaksurafinalarabic",
-    "alefmaksurainitialarabic",
-    "alefmaksuramedialarabic",
-    "alefpatahhebrew",
-    "alefqamatshebrew",
-    "aleph",
-    "allequal",
-    "alpha",
-    "alphatonos",
-    "amacron",
-    "amonospace",
-    "ampersandmonospace",
-    "amsquare",
-    "anbopomofo",
-    "angbopomofo",
-    "angkhankhuthai",
-    "angle",
-    "anglebracketleft",
-    "anglebracketleftvertical",
-    "anglebracketright",
-    "anglebracketrightvertical",
-    "angleleft",
-    "angleright",
-    "angstrom",
-    "anoteleia",
-    "anudattadeva",
-    "anusvarabengali",
-    "anusvaradeva",
-    "anusvaragujarati",
-    "aogonek",
-    "apaatosquare",
-    "aparen",
-    "apostrophearmenian",
-    "apostrophemod",
-    "apple",
-    "approaches",
-    "approxequal",
-    "approxequalorimage",
-    "approximatelyequal",
-    "araeaekorean",
-    "araeakorean",
-    "arc",
-    "arighthalfring",
-    "aringacute",
-    "aringbelow",
-    "arrowboth",
-    "arrowdashdown",
-    "arrowdashleft",
-    "arrowdashright",
-    "arrowdashup",
-    "arrowdblboth",
-    "arrowdbldown",
-    "arrowdblleft",
-    "arrowdblright",
-    "arrowdblup",
-    "arrowdown",
-    "arrowdownleft",
-    "arrowdownright",
-    "arrowdownwhite",
-    "arrowheaddownmod",
-    "arrowheadleftmod",
-    "arrowheadrightmod",
-    "arrowheadupmod",
-    "arrowhorizex",
-    "arrowleft",
-    "arrowleftdbl",
-    "arrowleftdblstroke",
-    "arrowleftoverright",
-    "arrowleftwhite",
-    "arrowright",
-    "arrowrightdblstroke",
-    "arrowrightheavy",
-    "arrowrightoverleft",
-    "arrowrightwhite",
-    "arrowtableft",
-    "arrowtabright",
-    "arrowup",
-    "arrowupdn",
-    "arrowupdnbse",
-    "arrowupdownbase",
-    "arrowupleft",
-    "arrowupleftofdown",
-    "arrowupright",
-    "arrowupwhite",
-    "arrowvertex",
-    "asciicircummonospace",
-    "asciitildemonospace",
-    "ascript",
-    "ascriptturned",
-    "asmallhiragana",
-    "asmallkatakana",
-    "asmallkatakanahalfwidth",
-    "asteriskaltonearabic",
-    "asteriskarabic",
-    "asteriskmath",
-    "asteriskmonospace",
-    "asterisksmall",
-    "asterism",
-    "asymptoticallyequal",
-    "atmonospace",
-    "atsmall",
-    "aturned",
-    "aubengali",
-    "aubopomofo",
-    "audeva",
-    "augujarati",
-    "augurmukhi",
-    "aulengthmarkbengali",
-    "aumatragurmukhi",
-    "auvowelsignbengali",
-    "auvowelsigndeva",
-    "auvowelsigngujarati",
-    "avagrahadeva",
-    "aybarmenian",
-    "ayin",
-    "ayinaltonehebrew",
-    "ayinhebrew",
-    "babengali",
-    "backslashmonospace",
-    "badeva",
-    "bagujarati",
-    "bagurmukhi",
-    "bahiragana",
-    "bahtthai",
-    "bakatakana",
-    "barmonospace",
-    "bbopomofo",
-    "bcircle",
-    "bdotaccent",
-    "bdotbelow",
-    "beamedsixteenthnotes",
-    "because",
-    "becyrillic",
-    "beharabic",
-    "behfinalarabic",
-    "behinitialarabic",
-    "behiragana",
-    "behmedialarabic",
-    "behmeeminitialarabic",
-    "behmeemisolatedarabic",
-    "behnoonfinalarabic",
-    "bekatakana",
-    "benarmenian",
-    "bet",
-    "beta",
-    "betasymbolgreek",
-    "betdagesh",
-    "betdageshhebrew",
-    "bethebrew",
-    "betrafehebrew",
-    "bhabengali",
-    "bhadeva",
-    "bhagujarati",
-    "bhagurmukhi",
-    "bhook",
-    "bihiragana",
-    "bikatakana",
-    "bilabialclick",
-    "bindigurmukhi",
-    "birusquare",
-    "blackcircle",
-    "blackdiamond",
-    "blackdownpointingtriangle",
-    "blackleftpointingpointer",
-    "blackleftpointingtriangle",
-    "blacklenticularbracketleft",
-    "blacklenticularbracketleftvertical",
-    "blacklenticularbracketright",
-    "blacklenticularbracketrightvertical",
-    "blacklowerlefttriangle",
-    "blacklowerrighttriangle",
-    "blackrectangle",
-    "blackrightpointingpointer",
-    "blackrightpointingtriangle",
-    "blacksmallsquare",
-    "blacksmilingface",
-    "blacksquare",
-    "blackstar",
-    "blackupperlefttriangle",
-    "blackupperrighttriangle",
-    "blackuppointingsmalltriangle",
-    "blackuppointingtriangle",
-    "blank",
-    "blinebelow",
-    "block",
-    "bmonospace",
-    "bobaimaithai",
-    "bohiragana",
-    "bokatakana",
-    "bparen",
-    "bqsquare",
-    "braceex",
-    "braceleftbt",
-    "braceleftmid",
-    "braceleftmonospace",
-    "braceleftsmall",
-    "bracelefttp",
-    "braceleftvertical",
-    "bracerightbt",
-    "bracerightmid",
-    "bracerightmonospace",
-    "bracerightsmall",
-    "bracerighttp",
-    "bracerightvertical",
-    "bracketleftbt",
-    "bracketleftex",
-    "bracketleftmonospace",
-    "bracketlefttp",
-    "bracketrightbt",
-    "bracketrightex",
-    "bracketrightmonospace",
-    "bracketrighttp",
-    "brevebelowcmb",
-    "brevecmb",
-    "breveinvertedbelowcmb",
-    "breveinvertedcmb",
-    "breveinverteddoublecmb",
-    "bridgebelowcmb",
-    "bridgeinvertedbelowcmb",
-    "bstroke",
-    "btopbar",
-    "buhiragana",
-    "bukatakana",
-    "bulletinverse",
-    "bulletoperator",
-    "bullseye",
-    "caarmenian",
-    "cabengali",
-    "cacute",
-    "cadeva",
-    "cagujarati",
-    "cagurmukhi",
-    "calsquare",
-    "candrabindubengali",
-    "candrabinducmb",
-    "candrabindudeva",
-    "candrabindugujarati",
-    "capslock",
-    "careof",
-    "caronbelowcmb",
-    "caroncmb",
-    "carriagereturn",
-    "cbopomofo",
-    "ccaron",
-    "ccedillaacute",
-    "ccircle",
-    "ccircumflex",
-    "ccurl",
-    "cdot",
-    "cdotaccent",
-    "cdsquare",
-    "cedillacmb",
-    "centigrade",
-    "centmonospace",
-    "chaarmenian",
-    "chabengali",
-    "chadeva",
-    "chagujarati",
-    "chagurmukhi",
-    "chbopomofo",
-    "cheabkhasiancyrillic",
-    "checkmark",
-    "checyrillic",
-    "chedescenderabkhasiancyrillic",
-    "chedescendercyrillic",
-    "chedieresiscyrillic",
-    "cheharmenian",
-    "chekhakassiancyrillic",
-    "cheverticalstrokecyrillic",
-    "chi",
-    "chieuchacirclekorean",
-    "chieuchaparenkorean",
-    "chieuchcirclekorean",
-    "chieuchkorean",
-    "chieuchparenkorean",
-    "chochangthai",
-    "chochanthai",
-    "chochingthai",
-    "chochoethai",
-    "chook",
-    "cieucacirclekorean",
-    "cieucaparenkorean",
-    "cieuccirclekorean",
-    "cieuckorean",
-    "cieucparenkorean",
-    "cieucuparenkorean",
-    "circle",
-    "circlemultiply",
-    "circleot",
-    "circleplus",
-    "circlepostalmark",
-    "circlewithlefthalfblack",
-    "circlewithrighthalfblack",
-    "circumflexbelowcmb",
-    "circumflexcmb",
-    "clear",
-    "clickalveolar",
-    "clickdental",
-    "clicklateral",
-    "clickretroflex",
-    "club",
-    "clubsuitblack",
-    "clubsuitwhite",
-    "cmcubedsquare",
-    "cmonospace",
-    "cmsquaredsquare",
-    "coarmenian",
-    "colonmonospace",
-    "colonsign",
-    "colonsmall",
-    "colontriangularhalfmod",
-    "colontriangularmod",
-    "commaabovecmb",
-    "commaaboverightcmb",
-    "commaaccent",
-    "commaarabic",
-    "commaarmenian",
-    "commamonospace",
-    "commareversedabovecmb",
-    "commareversedmod",
-    "commasmall",
-    "commaturnedabovecmb",
-    "commaturnedmod",
-    "compass",
-    "congruent",
-    "contourintegral",
-    "control",
-    "controlACK",
-    "controlBEL",
-    "controlBS",
-    "controlCAN",
-    "controlCR",
-    "controlDC1",
-    "controlDC2",
-    "controlDC3",
-    "controlDC4",
-    "controlDEL",
-    "controlDLE",
-    "controlEM",
-    "controlENQ",
-    "controlEOT",
-    "controlESC",
-    "controlETB",
-    "controlETX",
-    "controlFF",
-    "controlFS",
-    "controlGS",
-    "controlHT",
-    "controlLF",
-    "controlNAK",
-    "controlRS",
-    "controlSI",
-    "controlSO",
-    "controlSOT",
-    "controlSTX",
-    "controlSUB",
-    "controlSYN",
-    "controlUS",
-    "controlVT",
-    "copyrightsans",
-    "copyrightserif",
-    "cornerbracketleft",
-    "cornerbracketlefthalfwidth",
-    "cornerbracketleftvertical",
-    "cornerbracketright",
-    "cornerbracketrighthalfwidth",
-    "cornerbracketrightvertical",
-    "corporationsquare",
-    "cosquare",
-    "coverkgsquare",
-    "cparen",
-    "cruzeiro",
-    "cstretched",
-    "curlyand",
-    "curlyor",
-    "cyrBreve",
-    "cyrFlex",
-    "cyrbreve",
-    "cyrflex",
-    "daarmenian",
-    "dabengali",
-    "dadarabic",
-    "dadeva",
-    "dadfinalarabic",
-    "dadinitialarabic",
-    "dadmedialarabic",
-    "dagesh",
-    "dageshhebrew",
-    "dagujarati",
-    "dagurmukhi",
-    "dahiragana",
-    "dakatakana",
-    "dalarabic",
-    "dalet",
-    "daletdagesh",
-    "daletdageshhebrew",
-    "dalethatafpatah",
-    "dalethatafpatahhebrew",
-    "dalethatafsegol",
-    "dalethatafsegolhebrew",
-    "dalethebrew",
-    "dalethiriq",
-    "dalethiriqhebrew",
-    "daletholam",
-    "daletholamhebrew",
-    "daletpatah",
-    "daletpatahhebrew",
-    "daletqamats",
-    "daletqamatshebrew",
-    "daletqubuts",
-    "daletqubutshebrew",
-    "daletsegol",
-    "daletsegolhebrew",
-    "daletsheva",
-    "daletshevahebrew",
-    "dalettsere",
-    "dalettserehebrew",
-    "dalfinalarabic",
-    "dammaarabic",
-    "dammalowarabic",
-    "dammatanaltonearabic",
-    "dammatanarabic",
-    "danda",
-    "dargahebrew",
-    "dargalefthebrew",
-    "dasiapneumatacyrilliccmb",
-    "dblGrave",
-    "dblanglebracketleft",
-    "dblanglebracketleftvertical",
-    "dblanglebracketright",
-    "dblanglebracketrightvertical",
-    "dblarchinvertedbelowcmb",
-    "dblarrowleft",
-    "dblarrowright",
-    "dbldanda",
-    "dblgrave",
-    "dblgravecmb",
-    "dblintegral",
-    "dbllowline",
-    "dbllowlinecmb",
-    "dbloverlinecmb",
-    "dblprimemod",
-    "dblverticalbar",
-    "dblverticallineabovecmb",
-    "dbopomofo",
-    "dbsquare",
-    "dcaron",
-    "dcedilla",
-    "dcircle",
-    "dcircumflexbelow",
-    "dcroat",
-    "ddabengali",
-    "ddadeva",
-    "ddagujarati",
-    "ddagurmukhi",
-    "ddalarabic",
-    "ddalfinalarabic",
-    "dddhadeva",
-    "ddhabengali",
-    "ddhadeva",
-    "ddhagujarati",
-    "ddhagurmukhi",
-    "ddotaccent",
-    "ddotbelow",
-    "decimalseparatorarabic",
-    "decimalseparatorpersian",
-    "decyrillic",
-    "dehihebrew",
-    "dehiragana",
-    "deicoptic",
-    "dekatakana",
-    "deleteleft",
-    "deleteright",
-    "delta",
-    "deltaturned",
-    "denominatorminusonenumeratorbengali",
-    "dezh",
-    "dhabengali",
-    "dhadeva",
-    "dhagujarati",
-    "dhagurmukhi",
-    "dhook",
-    "dialytikatonos",
-    "dialytikatonoscmb",
-    "diamond",
-    "diamondsuitwhite",
-    "dieresisacute",
-    "dieresisbelowcmb",
-    "dieresiscmb",
-    "dieresisgrave",
-    "dieresistonos",
-    "dihiragana",
-    "dikatakana",
-    "dittomark",
-    "divides",
-    "divisionslash",
-    "djecyrillic",
-    "dkshade",
-    "dlinebelow",
-    "dlsquare",
-    "dmacron",
-    "dmonospace",
-    "dnblock",
-    "dochadathai",
-    "dodekthai",
-    "dohiragana",
-    "dokatakana",
-    "dollarmonospace",
-    "dollarsmall",
-    "dong",
-    "dorusquare",
-    "dotaccentcmb",
-    "dotbelowcmb",
-    "dotbelowcomb",
-    "dotkatakana",
-    "dotlessj",
-    "dotlessjstrokehook",
-    "dotmath",
-    "dottedcircle",
-    "doubleyodpatah",
-    "doubleyodpatahhebrew",
-    "downtackbelowcmb",
-    "downtackmod",
-    "dparen",
-    "dtail",
-    "dtopbar",
-    "duhiragana",
-    "dukatakana",
-    "dz",
-    "dzaltone",
-    "dzcaron",
-    "dzcurl",
-    "dzeabkhasiancyrillic",
-    "dzecyrillic",
-    "dzhecyrillic",
-    "earth",
-    "ebengali",
-    "ebopomofo",
-    "ebreve",
-    "ecandradeva",
-    "ecandragujarati",
-    "ecandravowelsigndeva",
-    "ecandravowelsigngujarati",
-    "ecaron",
-    "ecedillabreve",
-    "echarmenian",
-    "echyiwnarmenian",
-    "ecircle",
-    "ecircumflexacute",
-    "ecircumflexbelow",
-    "ecircumflexdotbelow",
-    "ecircumflexgrave",
-    "ecircumflexhookabove",
-    "ecircumflextilde",
-    "ecyrillic",
-    "edblgrave",
-    "edeva",
-    "edot",
-    "edotaccent",
-    "edotbelow",
-    "eegurmukhi",
-    "eematragurmukhi",
-    "efcyrillic",
-    "egujarati",
-    "eharmenian",
-    "ehbopomofo",
-    "ehiragana",
-    "ehookabove",
-    "eibopomofo",
-    "eightarabic",
-    "eightbengali",
-    "eightcircle",
-    "eightcircleinversesansserif",
-    "eightdeva",
-    "eighteencircle",
-    "eighteenparen",
-    "eighteenperiod",
-    "eightgujarati",
-    "eightgurmukhi",
-    "eighthackarabic",
-    "eighthangzhou",
-    "eighthnotebeamed",
-    "eightideographicparen",
-    "eightmonospace",
-    "eightparen",
-    "eightperiod",
-    "eightpersian",
-    "eightroman",
-    "eightthai",
-    "einvertedbreve",
-    "eiotifiedcyrillic",
-    "ekatakana",
-    "ekatakanahalfwidth",
-    "ekonkargurmukhi",
-    "ekorean",
-    "elcyrillic",
-    "element",
-    "elevencircle",
-    "elevenparen",
-    "elevenperiod",
-    "elevenroman",
-    "ellipsisvertical",
-    "emacron",
-    "emacronacute",
-    "emacrongrave",
-    "emcyrillic",
-    "emdashvertical",
-    "emonospace",
-    "emphasismarkarmenian",
-    "emptyset",
-    "enbopomofo",
-    "encyrillic",
-    "endashvertical",
-    "endescendercyrillic",
-    "eng",
-    "engbopomofo",
-    "enghecyrillic",
-    "enhookcyrillic",
-    "enspace",
-    "eogonek",
-    "eokorean",
-    "eopen",
-    "eopenclosed",
-    "eopenreversed",
-    "eopenreversedclosed",
-    "eopenreversedhook",
-    "eparen",
-    "epsilon",
-    "epsilontonos",
-    "equalmonospace",
-    "equalsmall",
-    "equalsuperior",
-    "equivalence",
-    "erbopomofo",
-    "ercyrillic",
-    "ereversed",
-    "ereversedcyrillic",
-    "escyrillic",
-    "esdescendercyrillic",
-    "esh",
-    "eshcurl",
-    "eshortdeva",
-    "eshortvowelsigndeva",
-    "eshreversedloop",
-    "eshsquatreversed",
-    "esmallhiragana",
-    "esmallkatakana",
-    "esmallkatakanahalfwidth",
-    "estimated",
-    "eta",
-    "etarmenian",
-    "etatonos",
-    "etilde",
-    "etildebelow",
-    "etnahtafoukhhebrew",
-    "etnahtafoukhlefthebrew",
-    "etnahtahebrew",
-    "etnahtalefthebrew",
-    "eturned",
-    "eukorean",
-    "euro",
-    "evowelsignbengali",
-    "evowelsigndeva",
-    "evowelsigngujarati",
-    "exclamarmenian",
-    "exclamdbl",
-    "exclammonospace",
-    "existential",
-    "ezh",
-    "ezhcaron",
-    "ezhcurl",
-    "ezhreversed",
-    "ezhtail",
-    "fadeva",
-    "fagurmukhi",
-    "fahrenheit",
-    "fathaarabic",
-    "fathalowarabic",
-    "fathatanarabic",
-    "fbopomofo",
-    "fcircle",
-    "fdotaccent",
-    "feharabic",
-    "feharmenian",
-    "fehfinalarabic",
-    "fehinitialarabic",
-    "fehmedialarabic",
-    "feicoptic",
-    "female",
-    "fifteencircle",
-    "fifteenparen",
-    "fifteenperiod",
-    "filledbox",
-    "filledrect",
-    "finalkaf",
-    "finalkafdagesh",
-    "finalkafdageshhebrew",
-    "finalkafhebrew",
-    "finalkafqamats",
-    "finalkafqamatshebrew",
-    "finalkafsheva",
-    "finalkafshevahebrew",
-    "finalmem",
-    "finalmemhebrew",
-    "finalnun",
-    "finalnunhebrew",
-    "finalpe",
-    "finalpehebrew",
-    "finaltsadi",
-    "finaltsadihebrew",
-    "firsttonechinese",
-    "fisheye",
-    "fitacyrillic",
-    "fivearabic",
-    "fivebengali",
-    "fivecircle",
-    "fivecircleinversesansserif",
-    "fivedeva",
-    "fivegujarati",
-    "fivegurmukhi",
-    "fivehackarabic",
-    "fivehangzhou",
-    "fiveideographicparen",
-    "fivemonospace",
-    "fiveparen",
-    "fiveperiod",
-    "fivepersian",
-    "fiveroman",
-    "fivethai",
-    "fmonospace",
-    "fmsquare",
-    "fofanthai",
-    "fofathai",
-    "fongmanthai",
-    "forall",
-    "fourarabic",
-    "fourbengali",
-    "fourcircle",
-    "fourcircleinversesansserif",
-    "fourdeva",
-    "fourgujarati",
-    "fourgurmukhi",
-    "fourhackarabic",
-    "fourhangzhou",
-    "fourideographicparen",
-    "fourmonospace",
-    "fournumeratorbengali",
-    "fourparen",
-    "fourperiod",
-    "fourpersian",
-    "fourroman",
-    "fourteencircle",
-    "fourteenparen",
-    "fourteenperiod",
-    "fourthai",
-    "fourthtonechinese",
-    "fparen",
-    "franc",
-    "gabengali",
-    "gacute",
-    "gadeva",
-    "gafarabic",
-    "gaffinalarabic",
-    "gafinitialarabic",
-    "gafmedialarabic",
-    "gagujarati",
-    "gagurmukhi",
-    "gahiragana",
-    "gakatakana",
-    "gamma",
-    "gammalatinsmall",
-    "gammasuperior",
-    "gangiacoptic",
-    "gbopomofo",
-    "gbreve",
-    "gcaron",
-    "gcedilla",
-    "gcircle",
-    "gcircumflex",
-    "gcommaaccent",
-    "gdot",
-    "gdotaccent",
-    "gecyrillic",
-    "gehiragana",
-    "gekatakana",
-    "geometricallyequal",
-    "gereshaccenthebrew",
-    "gereshhebrew",
-    "gereshmuqdamhebrew",
-    "gershayimaccenthebrew",
-    "gershayimhebrew",
-    "getamark",
-    "ghabengali",
-    "ghadarmenian",
-    "ghadeva",
-    "ghagujarati",
-    "ghagurmukhi",
-    "ghainarabic",
-    "ghainfinalarabic",
-    "ghaininitialarabic",
-    "ghainmedialarabic",
-    "ghemiddlehookcyrillic",
-    "ghestrokecyrillic",
-    "gheupturncyrillic",
-    "ghhadeva",
-    "ghhagurmukhi",
-    "ghook",
-    "ghzsquare",
-    "gihiragana",
-    "gikatakana",
-    "gimarmenian",
-    "gimel",
-    "gimeldagesh",
-    "gimeldageshhebrew",
-    "gimelhebrew",
-    "gjecyrillic",
-    "glottalinvertedstroke",
-    "glottalstop",
-    "glottalstopinverted",
-    "glottalstopmod",
-    "glottalstopreversed",
-    "glottalstopreversedmod",
-    "glottalstopreversedsuperior",
-    "glottalstopstroke",
-    "glottalstopstrokereversed",
-    "gmacron",
-    "gmonospace",
-    "gohiragana",
-    "gokatakana",
-    "gparen",
-    "gpasquare",
-    "gradient",
-    "gravebelowcmb",
-    "gravecmb",
-    "gravecomb",
-    "gravedeva",
-    "gravelowmod",
-    "gravemonospace",
-    "gravetonecmb",
-    "greaterequal",
-    "greaterequalorless",
-    "greatermonospace",
-    "greaterorequivalent",
-    "greaterorless",
-    "greateroverequal",
-    "greatersmall",
-    "gscript",
-    "gstroke",
-    "guhiragana",
-    "gukatakana",
-    "guramusquare",
-    "gysquare",
-    "haabkhasiancyrillic",
-    "haaltonearabic",
-    "habengali",
-    "hadescendercyrillic",
-    "hadeva",
-    "hagujarati",
-    "hagurmukhi",
-    "haharabic",
-    "hahfinalarabic",
-    "hahinitialarabic",
-    "hahiragana",
-    "hahmedialarabic",
-    "haitusquare",
-    "hakatakana",
-    "hakatakanahalfwidth",
-    "halantgurmukhi",
-    "hamzaarabic",
-    "hamzadammaarabic",
-    "hamzadammatanarabic",
-    "hamzafathaarabic",
-    "hamzafathatanarabic",
-    "hamzalowarabic",
-    "hamzalowkasraarabic",
-    "hamzalowkasratanarabic",
-    "hamzasukunarabic",
-    "hangulfiller",
-    "hardsigncyrillic",
-    "harpoonleftbarbup",
-    "harpoonrightbarbup",
-    "hasquare",
-    "hatafpatah",
-    "hatafpatah16",
-    "hatafpatah23",
-    "hatafpatah2f",
-    "hatafpatahhebrew",
-    "hatafpatahnarrowhebrew",
-    "hatafpatahquarterhebrew",
-    "hatafpatahwidehebrew",
-    "hatafqamats",
-    "hatafqamats1b",
-    "hatafqamats28",
-    "hatafqamats34",
-    "hatafqamatshebrew",
-    "hatafqamatsnarrowhebrew",
-    "hatafqamatsquarterhebrew",
-    "hatafqamatswidehebrew",
-    "hatafsegol",
-    "hatafsegol17",
-    "hatafsegol24",
-    "hatafsegol30",
-    "hatafsegolhebrew",
-    "hatafsegolnarrowhebrew",
-    "hatafsegolquarterhebrew",
-    "hatafsegolwidehebrew",
-    "hbar",
-    "hbopomofo",
-    "hbrevebelow",
-    "hcedilla",
-    "hcircle",
-    "hcircumflex",
-    "hdieresis",
-    "hdotaccent",
-    "hdotbelow",
-    "he",
-    "heart",
-    "heartsuitblack",
-    "heartsuitwhite",
-    "hedagesh",
-    "hedageshhebrew",
-    "hehaltonearabic",
-    "heharabic",
-    "hehebrew",
-    "hehfinalaltonearabic",
-    "hehfinalalttwoarabic",
-    "hehfinalarabic",
-    "hehhamzaabovefinalarabic",
-    "hehhamzaaboveisolatedarabic",
-    "hehinitialaltonearabic",
-    "hehinitialarabic",
-    "hehiragana",
-    "hehmedialaltonearabic",
-    "hehmedialarabic",
-    "heiseierasquare",
-    "hekatakana",
-    "hekatakanahalfwidth",
-    "hekutaarusquare",
-    "henghook",
-    "herutusquare",
-    "het",
-    "hethebrew",
-    "hhook",
-    "hhooksuperior",
-    "hieuhacirclekorean",
-    "hieuhaparenkorean",
-    "hieuhcirclekorean",
-    "hieuhkorean",
-    "hieuhparenkorean",
-    "hihiragana",
-    "hikatakana",
-    "hikatakanahalfwidth",
-    "hiriq",
-    "hiriq14",
-    "hiriq21",
-    "hiriq2d",
-    "hiriqhebrew",
-    "hiriqnarrowhebrew",
-    "hiriqquarterhebrew",
-    "hiriqwidehebrew",
-    "hlinebelow",
-    "hmonospace",
-    "hoarmenian",
-    "hohipthai",
-    "hohiragana",
-    "hokatakana",
-    "hokatakanahalfwidth",
-    "holam",
-    "holam19",
-    "holam26",
-    "holam32",
-    "holamhebrew",
-    "holamnarrowhebrew",
-    "holamquarterhebrew",
-    "holamwidehebrew",
-    "honokhukthai",
-    "hookabovecomb",
-    "hookcmb",
-    "hookpalatalizedbelowcmb",
-    "hookretroflexbelowcmb",
-    "hoonsquare",
-    "horicoptic",
-    "horizontalbar",
-    "horncmb",
-    "hotsprings",
-    "house",
-    "hparen",
-    "hsuperior",
-    "hturned",
-    "huhiragana",
-    "huiitosquare",
-    "hukatakana",
-    "hukatakanahalfwidth",
-    "hungarumlautcmb",
-    "hv",
-    "hyphenmonospace",
-    "hyphensmall",
-    "hyphentwo",
-    "iacyrillic",
-    "ibengali",
-    "ibopomofo",
-    "ibreve",
-    "icaron",
-    "icircle",
-    "icyrillic",
-    "idblgrave",
-    "ideographearthcircle",
-    "ideographfirecircle",
-    "ideographicallianceparen",
-    "ideographiccallparen",
-    "ideographiccentrecircle",
-    "ideographicclose",
-    "ideographiccomma",
-    "ideographiccommaleft",
-    "ideographiccongratulationparen",
-    "ideographiccorrectcircle",
-    "ideographicearthparen",
-    "ideographicenterpriseparen",
-    "ideographicexcellentcircle",
-    "ideographicfestivalparen",
-    "ideographicfinancialcircle",
-    "ideographicfinancialparen",
-    "ideographicfireparen",
-    "ideographichaveparen",
-    "ideographichighcircle",
-    "ideographiciterationmark",
-    "ideographiclaborcircle",
-    "ideographiclaborparen",
-    "ideographicleftcircle",
-    "ideographiclowcircle",
-    "ideographicmedicinecircle",
-    "ideographicmetalparen",
-    "ideographicmoonparen",
-    "ideographicnameparen",
-    "ideographicperiod",
-    "ideographicprintcircle",
-    "ideographicreachparen",
-    "ideographicrepresentparen",
-    "ideographicresourceparen",
-    "ideographicrightcircle",
-    "ideographicsecretcircle",
-    "ideographicselfparen",
-    "ideographicsocietyparen",
-    "ideographicspace",
-    "ideographicspecialparen",
-    "ideographicstockparen",
-    "ideographicstudyparen",
-    "ideographicsunparen",
-    "ideographicsuperviseparen",
-    "ideographicwaterparen",
-    "ideographicwoodparen",
-    "ideographiczero",
-    "ideographmetalcircle",
-    "ideographmooncircle",
-    "ideographnamecircle",
-    "ideographsuncircle",
-    "ideographwatercircle",
-    "ideographwoodcircle",
-    "ideva",
-    "idieresisacute",
-    "idieresiscyrillic",
-    "idotbelow",
-    "iebrevecyrillic",
-    "iecyrillic",
-    "ieungacirclekorean",
-    "ieungaparenkorean",
-    "ieungcirclekorean",
-    "ieungkorean",
-    "ieungparenkorean",
-    "igujarati",
-    "igurmukhi",
-    "ihiragana",
-    "ihookabove",
-    "iibengali",
-    "iicyrillic",
-    "iideva",
-    "iigujarati",
-    "iigurmukhi",
-    "iimatragurmukhi",
-    "iinvertedbreve",
-    "iishortcyrillic",
-    "iivowelsignbengali",
-    "iivowelsigndeva",
-    "iivowelsigngujarati",
-    "ij",
-    "ikatakana",
-    "ikatakanahalfwidth",
-    "ikorean",
-    "ilde",
-    "iluyhebrew",
-    "imacron",
-    "imacroncyrillic",
-    "imageorapproximatelyequal",
-    "imatragurmukhi",
-    "imonospace",
-    "increment",
-    "infinity",
-    "iniarmenian",
-    "integral",
-    "integralbottom",
-    "integralbt",
-    "integralex",
-    "integraltop",
-    "integraltp",
-    "intersection",
-    "intisquare",
-    "invbullet",
-    "invcircle",
-    "invsmileface",
-    "iocyrillic",
-    "iogonek",
-    "iota",
-    "iotadieresis",
-    "iotadieresistonos",
-    "iotalatin",
-    "iotatonos",
-    "iparen",
-    "irigurmukhi",
-    "ismallhiragana",
-    "ismallkatakana",
-    "ismallkatakanahalfwidth",
-    "issharbengali",
-    "istroke",
-    "iterationhiragana",
-    "iterationkatakana",
-    "itilde",
-    "itildebelow",
-    "iubopomofo",
-    "iucyrillic",
-    "ivowelsignbengali",
-    "ivowelsigndeva",
-    "ivowelsigngujarati",
-    "izhitsacyrillic",
-    "izhitsadblgravecyrillic",
-    "jaarmenian",
-    "jabengali",
-    "jadeva",
-    "jagujarati",
-    "jagurmukhi",
-    "jbopomofo",
-    "jcaron",
-    "jcircle",
-    "jcircumflex",
-    "jcrossedtail",
-    "jdotlessstroke",
-    "jecyrillic",
-    "jeemarabic",
-    "jeemfinalarabic",
-    "jeeminitialarabic",
-    "jeemmedialarabic",
-    "jeharabic",
-    "jehfinalarabic",
-    "jhabengali",
-    "jhadeva",
-    "jhagujarati",
-    "jhagurmukhi",
-    "jheharmenian",
-    "jis",
-    "jmonospace",
-    "jparen",
-    "jsuperior",
-    "kabashkircyrillic",
-    "kabengali",
-    "kacute",
-    "kacyrillic",
-    "kadescendercyrillic",
-    "kadeva",
-    "kaf",
-    "kafarabic",
-    "kafdagesh",
-    "kafdageshhebrew",
-    "kaffinalarabic",
-    "kafhebrew",
-    "kafinitialarabic",
-    "kafmedialarabic",
-    "kafrafehebrew",
-    "kagujarati",
-    "kagurmukhi",
-    "kahiragana",
-    "kahookcyrillic",
-    "kakatakana",
-    "kakatakanahalfwidth",
-    "kappa",
-    "kappasymbolgreek",
-    "kapyeounmieumkorean",
-    "kapyeounphieuphkorean",
-    "kapyeounpieupkorean",
-    "kapyeounssangpieupkorean",
-    "karoriisquare",
-    "kashidaautoarabic",
-    "kashidaautonosidebearingarabic",
-    "kasmallkatakana",
-    "kasquare",
-    "kasraarabic",
-    "kasratanarabic",
-    "kastrokecyrillic",
-    "katahiraprolongmarkhalfwidth",
-    "kaverticalstrokecyrillic",
-    "kbopomofo",
-    "kcalsquare",
-    "kcaron",
-    "kcedilla",
-    "kcircle",
-    "kcommaaccent",
-    "kdotbelow",
-    "keharmenian",
-    "kehiragana",
-    "kekatakana",
-    "kekatakanahalfwidth",
-    "kenarmenian",
-    "kesmallkatakana",
-    "kgreenlandic",
-    "khabengali",
-    "khacyrillic",
-    "khadeva",
-    "khagujarati",
-    "khagurmukhi",
-    "khaharabic",
-    "khahfinalarabic",
-    "khahinitialarabic",
-    "khahmedialarabic",
-    "kheicoptic",
-    "khhadeva",
-    "khhagurmukhi",
-    "khieukhacirclekorean",
-    "khieukhaparenkorean",
-    "khieukhcirclekorean",
-    "khieukhkorean",
-    "khieukhparenkorean",
-    "khokhaithai",
-    "khokhonthai",
-    "khokhuatthai",
-    "khokhwaithai",
-    "khomutthai",
-    "khook",
-    "khorakhangthai",
-    "khzsquare",
-    "kihiragana",
-    "kikatakana",
-    "kikatakanahalfwidth",
-    "kiroguramusquare",
-    "kiromeetorusquare",
-    "kirosquare",
-    "kiyeokacirclekorean",
-    "kiyeokaparenkorean",
-    "kiyeokcirclekorean",
-    "kiyeokkorean",
-    "kiyeokparenkorean",
-    "kiyeoksioskorean",
-    "kjecyrillic",
-    "klinebelow",
-    "klsquare",
-    "kmcubedsquare",
-    "kmonospace",
-    "kmsquaredsquare",
-    "kohiragana",
-    "kohmsquare",
-    "kokaithai",
-    "kokatakana",
-    "kokatakanahalfwidth",
-    "kooposquare",
-    "koppacyrillic",
-    "koreanstandardsymbol",
-    "koroniscmb",
-    "kparen",
-    "kpasquare",
-    "ksicyrillic",
-    "ktsquare",
-    "kturned",
-    "kuhiragana",
-    "kukatakana",
-    "kukatakanahalfwidth",
-    "kvsquare",
-    "kwsquare",
-    "labengali",
-    "lacute",
-    "ladeva",
-    "lagujarati",
-    "lagurmukhi",
-    "lakkhangyaothai",
-    "lamaleffinalarabic",
-    "lamalefhamzaabovefinalarabic",
-    "lamalefhamzaaboveisolatedarabic",
-    "lamalefhamzabelowfinalarabic",
-    "lamalefhamzabelowisolatedarabic",
-    "lamalefisolatedarabic",
-    "lamalefmaddaabovefinalarabic",
-    "lamalefmaddaaboveisolatedarabic",
-    "lamarabic",
-    "lambda",
-    "lambdastroke",
-    "lamed",
-    "lameddagesh",
-    "lameddageshhebrew",
-    "lamedhebrew",
-    "lamedholam",
-    "lamedholamdagesh",
-    "lamedholamdageshhebrew",
-    "lamedholamhebrew",
-    "lamfinalarabic",
-    "lamhahinitialarabic",
-    "laminitialarabic",
-    "lamjeeminitialarabic",
-    "lamkhahinitialarabic",
-    "lamlamhehisolatedarabic",
-    "lammedialarabic",
-    "lammeemhahinitialarabic",
-    "lammeeminitialarabic",
-    "lammeemjeeminitialarabic",
-    "lammeemkhahinitialarabic",
-    "largecircle",
-    "lbar",
-    "lbelt",
-    "lbopomofo",
-    "lcaron",
-    "lcedilla",
-    "lcircle",
-    "lcircumflexbelow",
-    "lcommaaccent",
-    "ldot",
-    "ldotaccent",
-    "ldotbelow",
-    "ldotbelowmacron",
-    "leftangleabovecmb",
-    "lefttackbelowcmb",
-    "lessequal",
-    "lessequalorgreater",
-    "lessmonospace",
-    "lessorequivalent",
-    "lessorgreater",
-    "lessoverequal",
-    "lesssmall",
-    "lezh",
-    "lfblock",
-    "lhookretroflex",
-    "lira",
-    "liwnarmenian",
-    "lj",
-    "ljecyrillic",
-    "ll",
-    "lladeva",
-    "llagujarati",
-    "llinebelow",
-    "llladeva",
-    "llvocalicbengali",
-    "llvocalicdeva",
-    "llvocalicvowelsignbengali",
-    "llvocalicvowelsigndeva",
-    "lmiddletilde",
-    "lmonospace",
-    "lmsquare",
-    "lochulathai",
-    "logicaland",
-    "logicalnotreversed",
-    "logicalor",
-    "lolingthai",
-    "longs",
-    "lowlinecenterline",
-    "lowlinecmb",
-    "lowlinedashed",
-    "lozenge",
-    "lparen",
-    "lsquare",
-    "ltshade",
-    "luthai",
-    "lvocalicbengali",
-    "lvocalicdeva",
-    "lvocalicvowelsignbengali",
-    "lvocalicvowelsigndeva",
-    "lxsquare",
-    "mabengali",
-    "macronbelowcmb",
-    "macroncmb",
-    "macronlowmod",
-    "macronmonospace",
-    "macute",
-    "madeva",
-    "magujarati",
-    "magurmukhi",
-    "mahapakhhebrew",
-    "mahapakhlefthebrew",
-    "mahiragana",
-    "maichattawalowleftthai",
-    "maichattawalowrightthai",
-    "maichattawathai",
-    "maichattawaupperleftthai",
-    "maieklowleftthai",
-    "maieklowrightthai",
-    "maiekthai",
-    "maiekupperleftthai",
-    "maihanakatleftthai",
-    "maihanakatthai",
-    "maitaikhuleftthai",
-    "maitaikhuthai",
-    "maitholowleftthai",
-    "maitholowrightthai",
-    "maithothai",
-    "maithoupperleftthai",
-    "maitrilowleftthai",
-    "maitrilowrightthai",
-    "maitrithai",
-    "maitriupperleftthai",
-    "maiyamokthai",
-    "makatakana",
-    "makatakanahalfwidth",
-    "male",
-    "mansyonsquare",
-    "maqafhebrew",
-    "mars",
-    "masoracirclehebrew",
-    "masquare",
-    "mbopomofo",
-    "mbsquare",
-    "mcircle",
-    "mcubedsquare",
-    "mdotaccent",
-    "mdotbelow",
-    "meemarabic",
-    "meemfinalarabic",
-    "meeminitialarabic",
-    "meemmedialarabic",
-    "meemmeeminitialarabic",
-    "meemmeemisolatedarabic",
-    "meetorusquare",
-    "mehiragana",
-    "meizierasquare",
-    "mekatakana",
-    "mekatakanahalfwidth",
-    "mem",
-    "memdagesh",
-    "memdageshhebrew",
-    "memhebrew",
-    "menarmenian",
-    "merkhahebrew",
-    "merkhakefulahebrew",
-    "merkhakefulalefthebrew",
-    "merkhalefthebrew",
-    "mhook",
-    "mhzsquare",
-    "middledotkatakanahalfwidth",
-    "middot",
-    "mieumacirclekorean",
-    "mieumaparenkorean",
-    "mieumcirclekorean",
-    "mieumkorean",
-    "mieumpansioskorean",
-    "mieumparenkorean",
-    "mieumpieupkorean",
-    "mieumsioskorean",
-    "mihiragana",
-    "mikatakana",
-    "mikatakanahalfwidth",
-    "minusbelowcmb",
-    "minuscircle",
-    "minusmod",
-    "minusplus",
-    "minute",
-    "miribaarusquare",
-    "mirisquare",
-    "mlonglegturned",
-    "mlsquare",
-    "mmcubedsquare",
-    "mmonospace",
-    "mmsquaredsquare",
-    "mohiragana",
-    "mohmsquare",
-    "mokatakana",
-    "mokatakanahalfwidth",
-    "molsquare",
-    "momathai",
-    "moverssquare",
-    "moverssquaredsquare",
-    "mparen",
-    "mpasquare",
-    "mssquare",
-    "mturned",
-    "mu1",
-    "muasquare",
-    "muchgreater",
-    "muchless",
-    "mufsquare",
-    "mugreek",
-    "mugsquare",
-    "muhiragana",
-    "mukatakana",
-    "mukatakanahalfwidth",
-    "mulsquare",
-    "mumsquare",
-    "munahhebrew",
-    "munahlefthebrew",
-    "musicalnote",
-    "musicalnotedbl",
-    "musicflatsign",
-    "musicsharpsign",
-    "mussquare",
-    "muvsquare",
-    "muwsquare",
-    "mvmegasquare",
-    "mvsquare",
-    "mwmegasquare",
-    "mwsquare",
-    "nabengali",
-    "nabla",
-    "nacute",
-    "nadeva",
-    "nagujarati",
-    "nagurmukhi",
-    "nahiragana",
-    "nakatakana",
-    "nakatakanahalfwidth",
-    "napostrophe",
-    "nasquare",
-    "nbopomofo",
-    "nbspace",
-    "ncaron",
-    "ncedilla",
-    "ncircle",
-    "ncircumflexbelow",
-    "ncommaaccent",
-    "ndotaccent",
-    "ndotbelow",
-    "nehiragana",
-    "nekatakana",
-    "nekatakanahalfwidth",
-    "newsheqelsign",
-    "nfsquare",
-    "ngabengali",
-    "ngadeva",
-    "ngagujarati",
-    "ngagurmukhi",
-    "ngonguthai",
-    "nhiragana",
-    "nhookleft",
-    "nhookretroflex",
-    "nieunacirclekorean",
-    "nieunaparenkorean",
-    "nieuncieuckorean",
-    "nieuncirclekorean",
-    "nieunhieuhkorean",
-    "nieunkorean",
-    "nieunpansioskorean",
-    "nieunparenkorean",
-    "nieunsioskorean",
-    "nieuntikeutkorean",
-    "nihiragana",
-    "nikatakana",
-    "nikatakanahalfwidth",
-    "nikhahitleftthai",
-    "nikhahitthai",
-    "ninearabic",
-    "ninebengali",
-    "ninecircle",
-    "ninecircleinversesansserif",
-    "ninedeva",
-    "ninegujarati",
-    "ninegurmukhi",
-    "ninehackarabic",
-    "ninehangzhou",
-    "nineideographicparen",
-    "ninemonospace",
-    "nineparen",
-    "nineperiod",
-    "ninepersian",
-    "nineroman",
-    "nineteencircle",
-    "nineteenparen",
-    "nineteenperiod",
-    "ninethai",
-    "nj",
-    "njecyrillic",
-    "nkatakana",
-    "nkatakanahalfwidth",
-    "nlegrightlong",
-    "nlinebelow",
-    "nmonospace",
-    "nmsquare",
-    "nnabengali",
-    "nnadeva",
-    "nnagujarati",
-    "nnagurmukhi",
-    "nnnadeva",
-    "nohiragana",
-    "nokatakana",
-    "nokatakanahalfwidth",
-    "nonbreakingspace",
-    "nonenthai",
-    "nonuthai",
-    "noonarabic",
-    "noonfinalarabic",
-    "noonghunnaarabic",
-    "noonghunnafinalarabic",
-    "noonhehinitialarabic",
-    "nooninitialarabic",
-    "noonjeeminitialarabic",
-    "noonjeemisolatedarabic",
-    "noonmedialarabic",
-    "noonmeeminitialarabic",
-    "noonmeemisolatedarabic",
-    "noonnoonfinalarabic",
-    "notcontains",
-    "notelement",
-    "notelementof",
-    "notequal",
-    "notgreater",
-    "notgreaternorequal",
-    "notgreaternorless",
-    "notidentical",
-    "notless",
-    "notlessnorequal",
-    "notparallel",
-    "notprecedes",
-    "notsubset",
-    "notsucceeds",
-    "notsuperset",
-    "nowarmenian",
-    "nparen",
-    "nssquare",
-    "nu",
-    "nuhiragana",
-    "nukatakana",
-    "nukatakanahalfwidth",
-    "nuktabengali",
-    "nuktadeva",
-    "nuktagujarati",
-    "nuktagurmukhi",
-    "numbersignmonospace",
-    "numbersignsmall",
-    "numeralsigngreek",
-    "numeralsignlowergreek",
-    "numero",
-    "nun",
-    "nundagesh",
-    "nundageshhebrew",
-    "nunhebrew",
-    "nvsquare",
-    "nwsquare",
-    "nyabengali",
-    "nyadeva",
-    "nyagujarati",
-    "nyagurmukhi",
-    "oangthai",
-    "obarred",
-    "obarredcyrillic",
-    "obarreddieresiscyrillic",
-    "obengali",
-    "obopomofo",
-    "obreve",
-    "ocandradeva",
-    "ocandragujarati",
-    "ocandravowelsigndeva",
-    "ocandravowelsigngujarati",
-    "ocaron",
-    "ocircle",
-    "ocircumflexacute",
-    "ocircumflexdotbelow",
-    "ocircumflexgrave",
-    "ocircumflexhookabove",
-    "ocircumflextilde",
-    "ocyrillic",
-    "odblacute",
-    "odblgrave",
-    "odeva",
-    "odieresiscyrillic",
-    "odotbelow",
-    "oekorean",
-    "ogonekcmb",
-    "ogujarati",
-    "oharmenian",
-    "ohiragana",
-    "ohookabove",
-    "ohorn",
-    "ohornacute",
-    "ohorndotbelow",
-    "ohorngrave",
-    "ohornhookabove",
-    "ohorntilde",
-    "ohungarumlaut",
-    "oi",
-    "oinvertedbreve",
-    "okatakana",
-    "okatakanahalfwidth",
-    "okorean",
-    "olehebrew",
-    "omacron",
-    "omacronacute",
-    "omacrongrave",
-    "omdeva",
-    "omega",
-    "omega1",
-    "omegacyrillic",
-    "omegalatinclosed",
-    "omegaroundcyrillic",
-    "omegatitlocyrillic",
-    "omegatonos",
-    "omgujarati",
-    "omicron",
-    "omicrontonos",
-    "omonospace",
-    "onearabic",
-    "onebengali",
-    "onecircle",
-    "onecircleinversesansserif",
-    "onedeva",
-    "onegujarati",
-    "onegurmukhi",
-    "onehackarabic",
-    "onehangzhou",
-    "oneideographicparen",
-    "onemonospace",
-    "onenumeratorbengali",
-    "oneparen",
-    "oneperiod",
-    "onepersian",
-    "oneroman",
-    "onethai",
-    "oogonek",
-    "oogonekmacron",
-    "oogurmukhi",
-    "oomatragurmukhi",
-    "oopen",
-    "oparen",
-    "openbullet",
-    "option",
-    "orthogonal",
-    "oshortdeva",
-    "oshortvowelsigndeva",
-    "oslashacute",
-    "osmallhiragana",
-    "osmallkatakana",
-    "osmallkatakanahalfwidth",
-    "ostrokeacute",
-    "otcyrillic",
-    "otildeacute",
-    "otildedieresis",
-    "oubopomofo",
-    "overline",
-    "overlinecenterline",
-    "overlinecmb",
-    "overlinedashed",
-    "overlinedblwavy",
-    "overlinewavy",
-    "overscore",
-    "ovowelsignbengali",
-    "ovowelsigndeva",
-    "ovowelsigngujarati",
-    "paampssquare",
-    "paasentosquare",
-    "pabengali",
-    "pacute",
-    "padeva",
-    "pagedown",
-    "pageup",
-    "pagujarati",
-    "pagurmukhi",
-    "pahiragana",
-    "paiyannoithai",
-    "pakatakana",
-    "palatalizationcyrilliccmb",
-    "palochkacyrillic",
-    "pansioskorean",
-    "parallel",
-    "parenleftaltonearabic",
-    "parenleftbt",
-    "parenleftex",
-    "parenleftmonospace",
-    "parenleftsmall",
-    "parenlefttp",
-    "parenleftvertical",
-    "parenrightaltonearabic",
-    "parenrightbt",
-    "parenrightex",
-    "parenrightmonospace",
-    "parenrightsmall",
-    "parenrighttp",
-    "parenrightvertical",
-    "partialdiff",
-    "paseqhebrew",
-    "pashtahebrew",
-    "pasquare",
-    "patah",
-    "patah11",
-    "patah1d",
-    "patah2a",
-    "patahhebrew",
-    "patahnarrowhebrew",
-    "patahquarterhebrew",
-    "patahwidehebrew",
-    "pazerhebrew",
-    "pbopomofo",
-    "pcircle",
-    "pdotaccent",
-    "pe",
-    "pecyrillic",
-    "pedagesh",
-    "pedageshhebrew",
-    "peezisquare",
-    "pefinaldageshhebrew",
-    "peharabic",
-    "peharmenian",
-    "pehebrew",
-    "pehfinalarabic",
-    "pehinitialarabic",
-    "pehiragana",
-    "pehmedialarabic",
-    "pekatakana",
-    "pemiddlehookcyrillic",
-    "perafehebrew",
-    "percentarabic",
-    "percentmonospace",
-    "percentsmall",
-    "periodarmenian",
-    "periodhalfwidth",
-    "periodmonospace",
-    "periodsmall",
-    "perispomenigreekcmb",
-    "perpendicular",
-    "peseta",
-    "pfsquare",
-    "phabengali",
-    "phadeva",
-    "phagujarati",
-    "phagurmukhi",
-    "phi",
-    "phi1",
-    "phieuphacirclekorean",
-    "phieuphaparenkorean",
-    "phieuphcirclekorean",
-    "phieuphkorean",
-    "phieuphparenkorean",
-    "philatin",
-    "phinthuthai",
-    "phisymbolgreek",
-    "phook",
-    "phophanthai",
-    "phophungthai",
-    "phosamphaothai",
-    "pi",
-    "pieupacirclekorean",
-    "pieupaparenkorean",
-    "pieupcieuckorean",
-    "pieupcirclekorean",
-    "pieupkiyeokkorean",
-    "pieupkorean",
-    "pieupparenkorean",
-    "pieupsioskiyeokkorean",
-    "pieupsioskorean",
-    "pieupsiostikeutkorean",
-    "pieupthieuthkorean",
-    "pieuptikeutkorean",
-    "pihiragana",
-    "pikatakana",
-    "pisymbolgreek",
-    "piwrarmenian",
-    "plusbelowcmb",
-    "pluscircle",
-    "plusmod",
-    "plusmonospace",
-    "plussmall",
-    "plussuperior",
-    "pmonospace",
-    "pmsquare",
-    "pohiragana",
-    "pointingindexdownwhite",
-    "pointingindexleftwhite",
-    "pointingindexrightwhite",
-    "pointingindexupwhite",
-    "pokatakana",
-    "poplathai",
-    "postalmark",
-    "postalmarkface",
-    "pparen",
-    "precedes",
-    "prescription",
-    "primemod",
-    "primereversed",
-    "product",
-    "projective",
-    "prolongedkana",
-    "propellor",
-    "propersubset",
-    "propersuperset",
-    "proportion",
-    "proportional",
-    "psi",
-    "psicyrillic",
-    "psilipneumatacyrilliccmb",
-    "pssquare",
-    "puhiragana",
-    "pukatakana",
-    "pvsquare",
-    "pwsquare",
-    "qadeva",
-    "qadmahebrew",
-    "qafarabic",
-    "qaffinalarabic",
-    "qafinitialarabic",
-    "qafmedialarabic",
-    "qamats",
-    "qamats10",
-    "qamats1a",
-    "qamats1c",
-    "qamats27",
-    "qamats29",
-    "qamats33",
-    "qamatsde",
-    "qamatshebrew",
-    "qamatsnarrowhebrew",
-    "qamatsqatanhebrew",
-    "qamatsqatannarrowhebrew",
-    "qamatsqatanquarterhebrew",
-    "qamatsqatanwidehebrew",
-    "qamatsquarterhebrew",
-    "qamatswidehebrew",
-    "qarneyparahebrew",
-    "qbopomofo",
-    "qcircle",
-    "qhook",
-    "qmonospace",
-    "qof",
-    "qofdagesh",
-    "qofdageshhebrew",
-    "qofhatafpatah",
-    "qofhatafpatahhebrew",
-    "qofhatafsegol",
-    "qofhatafsegolhebrew",
-    "qofhebrew",
-    "qofhiriq",
-    "qofhiriqhebrew",
-    "qofholam",
-    "qofholamhebrew",
-    "qofpatah",
-    "qofpatahhebrew",
-    "qofqamats",
-    "qofqamatshebrew",
-    "qofqubuts",
-    "qofqubutshebrew",
-    "qofsegol",
-    "qofsegolhebrew",
-    "qofsheva",
-    "qofshevahebrew",
-    "qoftsere",
-    "qoftserehebrew",
-    "qparen",
-    "quarternote",
-    "qubuts",
-    "qubuts18",
-    "qubuts25",
-    "qubuts31",
-    "qubutshebrew",
-    "qubutsnarrowhebrew",
-    "qubutsquarterhebrew",
-    "qubutswidehebrew",
-    "questionarabic",
-    "questionarmenian",
-    "questiongreek",
-    "questionmonospace",
-    "quotedblmonospace",
-    "quotedblprime",
-    "quotedblprimereversed",
-    "quoteleftreversed",
-    "quotereversed",
-    "quoterightn",
-    "quotesinglemonospace",
-    "raarmenian",
-    "rabengali",
-    "racute",
-    "radeva",
-    "radical",
-    "radicalex",
-    "radoverssquare",
-    "radoverssquaredsquare",
-    "radsquare",
-    "rafe",
-    "rafehebrew",
-    "ragujarati",
-    "ragurmukhi",
-    "rahiragana",
-    "rakatakana",
-    "rakatakanahalfwidth",
-    "ralowerdiagonalbengali",
-    "ramiddlediagonalbengali",
-    "ramshorn",
-    "ratio",
-    "rbopomofo",
-    "rcaron",
-    "rcedilla",
-    "rcircle",
-    "rcommaaccent",
-    "rdblgrave",
-    "rdotaccent",
-    "rdotbelow",
-    "rdotbelowmacron",
-    "referencemark",
-    "reflexsubset",
-    "reflexsuperset",
-    "registersans",
-    "registerserif",
-    "reharabic",
-    "reharmenian",
-    "rehfinalarabic",
-    "rehiragana",
-    "rehyehaleflamarabic",
-    "rekatakana",
-    "rekatakanahalfwidth",
-    "resh",
-    "reshdageshhebrew",
-    "reshhatafpatah",
-    "reshhatafpatahhebrew",
-    "reshhatafsegol",
-    "reshhatafsegolhebrew",
-    "reshhebrew",
-    "reshhiriq",
-    "reshhiriqhebrew",
-    "reshholam",
-    "reshholamhebrew",
-    "reshpatah",
-    "reshpatahhebrew",
-    "reshqamats",
-    "reshqamatshebrew",
-    "reshqubuts",
-    "reshqubutshebrew",
-    "reshsegol",
-    "reshsegolhebrew",
-    "reshsheva",
-    "reshshevahebrew",
-    "reshtsere",
-    "reshtserehebrew",
-    "reversedtilde",
-    "reviahebrew",
-    "reviamugrashhebrew",
-    "revlogicalnot",
-    "rfishhook",
-    "rfishhookreversed",
-    "rhabengali",
-    "rhadeva",
-    "rho",
-    "rhook",
-    "rhookturned",
-    "rhookturnedsuperior",
-    "rhosymbolgreek",
-    "rhotichookmod",
-    "rieulacirclekorean",
-    "rieulaparenkorean",
-    "rieulcirclekorean",
-    "rieulhieuhkorean",
-    "rieulkiyeokkorean",
-    "rieulkiyeoksioskorean",
-    "rieulkorean",
-    "rieulmieumkorean",
-    "rieulpansioskorean",
-    "rieulparenkorean",
-    "rieulphieuphkorean",
-    "rieulpieupkorean",
-    "rieulpieupsioskorean",
-    "rieulsioskorean",
-    "rieulthieuthkorean",
-    "rieultikeutkorean",
-    "rieulyeorinhieuhkorean",
-    "rightangle",
-    "righttackbelowcmb",
-    "righttriangle",
-    "rihiragana",
-    "rikatakana",
-    "rikatakanahalfwidth",
-    "ringbelowcmb",
-    "ringcmb",
-    "ringhalfleft",
-    "ringhalfleftarmenian",
-    "ringhalfleftbelowcmb",
-    "ringhalfleftcentered",
-    "ringhalfright",
-    "ringhalfrightbelowcmb",
-    "ringhalfrightcentered",
-    "rinvertedbreve",
-    "rittorusquare",
-    "rlinebelow",
-    "rlongleg",
-    "rlonglegturned",
-    "rmonospace",
-    "rohiragana",
-    "rokatakana",
-    "rokatakanahalfwidth",
-    "roruathai",
-    "rparen",
-    "rrabengali",
-    "rradeva",
-    "rragurmukhi",
-    "rreharabic",
-    "rrehfinalarabic",
-    "rrvocalicbengali",
-    "rrvocalicdeva",
-    "rrvocalicgujarati",
-    "rrvocalicvowelsignbengali",
-    "rrvocalicvowelsigndeva",
-    "rrvocalicvowelsigngujarati",
-    "rtblock",
-    "rturned",
-    "rturnedsuperior",
-    "ruhiragana",
-    "rukatakana",
-    "rukatakanahalfwidth",
-    "rupeemarkbengali",
-    "rupeesignbengali",
-    "ruthai",
-    "rvocalicbengali",
-    "rvocalicdeva",
-    "rvocalicgujarati",
-    "rvocalicvowelsignbengali",
-    "rvocalicvowelsigndeva",
-    "rvocalicvowelsigngujarati",
-    "sabengali",
-    "sacute",
-    "sacutedotaccent",
-    "sadarabic",
-    "sadeva",
-    "sadfinalarabic",
-    "sadinitialarabic",
-    "sadmedialarabic",
-    "sagujarati",
-    "sagurmukhi",
-    "sahiragana",
-    "sakatakana",
-    "sakatakanahalfwidth",
-    "sallallahoualayhewasallamarabic",
-    "samekh",
-    "samekhdagesh",
-    "samekhdageshhebrew",
-    "samekhhebrew",
-    "saraaathai",
-    "saraaethai",
-    "saraaimaimalaithai",
-    "saraaimaimuanthai",
-    "saraamthai",
-    "saraathai",
-    "saraethai",
-    "saraiileftthai",
-    "saraiithai",
-    "saraileftthai",
-    "saraithai",
-    "saraothai",
-    "saraueeleftthai",
-    "saraueethai",
-    "saraueleftthai",
-    "sarauethai",
-    "sarauthai",
-    "sarauuthai",
-    "sbopomofo",
-    "scarondotaccent",
-    "scedilla",
-    "schwa",
-    "schwacyrillic",
-    "schwadieresiscyrillic",
-    "schwahook",
-    "scircle",
-    "scircumflex",
-    "scommaaccent",
-    "sdotaccent",
-    "sdotbelow",
-    "sdotbelowdotaccent",
-    "seagullbelowcmb",
-    "second",
-    "secondtonechinese",
-    "seenarabic",
-    "seenfinalarabic",
-    "seeninitialarabic",
-    "seenmedialarabic",
-    "segol",
-    "segol13",
-    "segol1f",
-    "segol2c",
-    "segolhebrew",
-    "segolnarrowhebrew",
-    "segolquarterhebrew",
-    "segoltahebrew",
-    "segolwidehebrew",
-    "seharmenian",
-    "sehiragana",
-    "sekatakana",
-    "sekatakanahalfwidth",
-    "semicolonarabic",
-    "semicolonmonospace",
-    "semicolonsmall",
-    "semivoicedmarkkana",
-    "semivoicedmarkkanahalfwidth",
-    "sentisquare",
-    "sentosquare",
-    "sevenarabic",
-    "sevenbengali",
-    "sevencircle",
-    "sevencircleinversesansserif",
-    "sevendeva",
-    "sevengujarati",
-    "sevengurmukhi",
-    "sevenhackarabic",
-    "sevenhangzhou",
-    "sevenideographicparen",
-    "sevenmonospace",
-    "sevenparen",
-    "sevenperiod",
-    "sevenpersian",
-    "sevenroman",
-    "seventeencircle",
-    "seventeenparen",
-    "seventeenperiod",
-    "seventhai",
-    "sfthyphen",
-    "shaarmenian",
-    "shabengali",
-    "shacyrillic",
-    "shaddaarabic",
-    "shaddadammaarabic",
-    "shaddadammatanarabic",
-    "shaddafathaarabic",
-    "shaddafathatanarabic",
-    "shaddakasraarabic",
-    "shaddakasratanarabic",
-    "shade",
-    "shadedark",
-    "shadelight",
-    "shademedium",
-    "shadeva",
-    "shagujarati",
-    "shagurmukhi",
-    "shalshelethebrew",
-    "shbopomofo",
-    "shchacyrillic",
-    "sheenarabic",
-    "sheenfinalarabic",
-    "sheeninitialarabic",
-    "sheenmedialarabic",
-    "sheicoptic",
-    "sheqel",
-    "sheqelhebrew",
-    "sheva",
-    "sheva115",
-    "sheva15",
-    "sheva22",
-    "sheva2e",
-    "shevahebrew",
-    "shevanarrowhebrew",
-    "shevaquarterhebrew",
-    "shevawidehebrew",
-    "shhacyrillic",
-    "shimacoptic",
-    "shin",
-    "shindagesh",
-    "shindageshhebrew",
-    "shindageshshindot",
-    "shindageshshindothebrew",
-    "shindageshsindot",
-    "shindageshsindothebrew",
-    "shindothebrew",
-    "shinhebrew",
-    "shinshindot",
-    "shinshindothebrew",
-    "shinsindot",
-    "shinsindothebrew",
-    "shook",
-    "sigma",
-    "sigma1",
-    "sigmafinal",
-    "sigmalunatesymbolgreek",
-    "sihiragana",
-    "sikatakana",
-    "sikatakanahalfwidth",
-    "siluqhebrew",
-    "siluqlefthebrew",
-    "similar",
-    "sindothebrew",
-    "siosacirclekorean",
-    "siosaparenkorean",
-    "sioscieuckorean",
-    "sioscirclekorean",
-    "sioskiyeokkorean",
-    "sioskorean",
-    "siosnieunkorean",
-    "siosparenkorean",
-    "siospieupkorean",
-    "siostikeutkorean",
-    "sixarabic",
-    "sixbengali",
-    "sixcircle",
-    "sixcircleinversesansserif",
-    "sixdeva",
-    "sixgujarati",
-    "sixgurmukhi",
-    "sixhackarabic",
-    "sixhangzhou",
-    "sixideographicparen",
-    "sixmonospace",
-    "sixparen",
-    "sixperiod",
-    "sixpersian",
-    "sixroman",
-    "sixteencircle",
-    "sixteencurrencydenominatorbengali",
-    "sixteenparen",
-    "sixteenperiod",
-    "sixthai",
-    "slashmonospace",
-    "slong",
-    "slongdotaccent",
-    "smileface",
-    "smonospace",
-    "sofpasuqhebrew",
-    "softhyphen",
-    "softsigncyrillic",
-    "sohiragana",
-    "sokatakana",
-    "sokatakanahalfwidth",
-    "soliduslongoverlaycmb",
-    "solidusshortoverlaycmb",
-    "sorusithai",
-    "sosalathai",
-    "sosothai",
-    "sosuathai",
-    "spacehackarabic",
-    "spade",
-    "spadesuitblack",
-    "spadesuitwhite",
-    "sparen",
-    "squarebelowcmb",
-    "squarecc",
-    "squarecm",
-    "squarediagonalcrosshatchfill",
-    "squarehorizontalfill",
-    "squarekg",
-    "squarekm",
-    "squarekmcapital",
-    "squareln",
-    "squarelog",
-    "squaremg",
-    "squaremil",
-    "squaremm",
-    "squaremsquared",
-    "squareorthogonalcrosshatchfill",
-    "squareupperlefttolowerrightfill",
-    "squareupperrighttolowerleftfill",
-    "squareverticalfill",
-    "squarewhitewithsmallblack",
-    "srsquare",
-    "ssabengali",
-    "ssadeva",
-    "ssagujarati",
-    "ssangcieuckorean",
-    "ssanghieuhkorean",
-    "ssangieungkorean",
-    "ssangkiyeokkorean",
-    "ssangnieunkorean",
-    "ssangpieupkorean",
-    "ssangsioskorean",
-    "ssangtikeutkorean",
-    "sterlingmonospace",
-    "strokelongoverlaycmb",
-    "strokeshortoverlaycmb",
-    "subset",
-    "subsetnotequal",
-    "subsetorequal",
-    "succeeds",
-    "suchthat",
-    "suhiragana",
-    "sukatakana",
-    "sukatakanahalfwidth",
-    "sukunarabic",
-    "summation",
-    "sun",
-    "superset",
-    "supersetnotequal",
-    "supersetorequal",
-    "svsquare",
-    "syouwaerasquare",
-    "tabengali",
-    "tackdown",
-    "tackleft",
-    "tadeva",
-    "tagujarati",
-    "tagurmukhi",
-    "taharabic",
-    "tahfinalarabic",
-    "tahinitialarabic",
-    "tahiragana",
-    "tahmedialarabic",
-    "taisyouerasquare",
-    "takatakana",
-    "takatakanahalfwidth",
-    "tatweelarabic",
-    "tau",
-    "tav",
-    "tavdages",
-    "tavdagesh",
-    "tavdageshhebrew",
-    "tavhebrew",
-    "tbar",
-    "tbopomofo",
-    "tcaron",
-    "tccurl",
-    "tcedilla",
-    "tcheharabic",
-    "tchehfinalarabic",
-    "tchehinitialarabic",
-    "tchehmedialarabic",
-    "tchehmeeminitialarabic",
-    "tcircle",
-    "tcircumflexbelow",
-    "tcommaaccent",
-    "tdieresis",
-    "tdotaccent",
-    "tdotbelow",
-    "tecyrillic",
-    "tedescendercyrillic",
-    "teharabic",
-    "tehfinalarabic",
-    "tehhahinitialarabic",
-    "tehhahisolatedarabic",
-    "tehinitialarabic",
-    "tehiragana",
-    "tehjeeminitialarabic",
-    "tehjeemisolatedarabic",
-    "tehmarbutaarabic",
-    "tehmarbutafinalarabic",
-    "tehmedialarabic",
-    "tehmeeminitialarabic",
-    "tehmeemisolatedarabic",
-    "tehnoonfinalarabic",
-    "tekatakana",
-    "tekatakanahalfwidth",
-    "telephone",
-    "telephoneblack",
-    "telishagedolahebrew",
-    "telishaqetanahebrew",
-    "tencircle",
-    "tenideographicparen",
-    "tenparen",
-    "tenperiod",
-    "tenroman",
-    "tesh",
-    "tet",
-    "tetdagesh",
-    "tetdageshhebrew",
-    "tethebrew",
-    "tetsecyrillic",
-    "tevirhebrew",
-    "tevirlefthebrew",
-    "thabengali",
-    "thadeva",
-    "thagujarati",
-    "thagurmukhi",
-    "thalarabic",
-    "thalfinalarabic",
-    "thanthakhatlowleftthai",
-    "thanthakhatlowrightthai",
-    "thanthakhatthai",
-    "thanthakhatupperleftthai",
-    "theharabic",
-    "thehfinalarabic",
-    "thehinitialarabic",
-    "thehmedialarabic",
-    "thereexists",
-    "therefore",
-    "theta",
-    "theta1",
-    "thetasymbolgreek",
-    "thieuthacirclekorean",
-    "thieuthaparenkorean",
-    "thieuthcirclekorean",
-    "thieuthkorean",
-    "thieuthparenkorean",
-    "thirteencircle",
-    "thirteenparen",
-    "thirteenperiod",
-    "thonangmonthothai",
-    "thook",
-    "thophuthaothai",
-    "thothahanthai",
-    "thothanthai",
-    "thothongthai",
-    "thothungthai",
-    "thousandcyrillic",
-    "thousandsseparatorarabic",
-    "thousandsseparatorpersian",
-    "threearabic",
-    "threebengali",
-    "threecircle",
-    "threecircleinversesansserif",
-    "threedeva",
-    "threegujarati",
-    "threegurmukhi",
-    "threehackarabic",
-    "threehangzhou",
-    "threeideographicparen",
-    "threemonospace",
-    "threenumeratorbengali",
-    "threeparen",
-    "threeperiod",
-    "threepersian",
-    "threeroman",
-    "threethai",
-    "thzsquare",
-    "tihiragana",
-    "tikatakana",
-    "tikatakanahalfwidth",
-    "tikeutacirclekorean",
-    "tikeutaparenkorean",
-    "tikeutcirclekorean",
-    "tikeutkorean",
-    "tikeutparenkorean",
-    "tildebelowcmb",
-    "tildecmb",
-    "tildecomb",
-    "tildedoublecmb",
-    "tildeoperator",
-    "tildeoverlaycmb",
-    "tildeverticalcmb",
-    "timescircle",
-    "tipehahebrew",
-    "tipehalefthebrew",
-    "tippigurmukhi",
-    "titlocyrilliccmb",
-    "tiwnarmenian",
-    "tlinebelow",
-    "tmonospace",
-    "toarmenian",
-    "tohiragana",
-    "tokatakana",
-    "tokatakanahalfwidth",
-    "tonebarextrahighmod",
-    "tonebarextralowmod",
-    "tonebarhighmod",
-    "tonebarlowmod",
-    "tonebarmidmod",
-    "tonefive",
-    "tonesix",
-    "tonetwo",
-    "tonos",
-    "tonsquare",
-    "topatakthai",
-    "tortoiseshellbracketleft",
-    "tortoiseshellbracketleftsmall",
-    "tortoiseshellbracketleftvertical",
-    "tortoiseshellbracketright",
-    "tortoiseshellbracketrightsmall",
-    "tortoiseshellbracketrightvertical",
-    "totaothai",
-    "tpalatalhook",
-    "tparen",
-    "trademarksans",
-    "trademarkserif",
-    "tretroflexhook",
-    "triagdn",
-    "triaglf",
-    "triagrt",
-    "triagup",
-    "ts",
-    "tsadi",
-    "tsadidagesh",
-    "tsadidageshhebrew",
-    "tsadihebrew",
-    "tsecyrillic",
-    "tsere",
-    "tsere12",
-    "tsere1e",
-    "tsere2b",
-    "tserehebrew",
-    "tserenarrowhebrew",
-    "tserequarterhebrew",
-    "tserewidehebrew",
-    "tshecyrillic",
-    "ttabengali",
-    "ttadeva",
-    "ttagujarati",
-    "ttagurmukhi",
-    "tteharabic",
-    "ttehfinalarabic",
-    "ttehinitialarabic",
-    "ttehmedialarabic",
-    "tthabengali",
-    "tthadeva",
-    "tthagujarati",
-    "tthagurmukhi",
-    "tturned",
-    "tuhiragana",
-    "tukatakana",
-    "tukatakanahalfwidth",
-    "tusmallhiragana",
-    "tusmallkatakana",
-    "tusmallkatakanahalfwidth",
-    "twelvecircle",
-    "twelveparen",
-    "twelveperiod",
-    "twelveroman",
-    "twentycircle",
-    "twentyhangzhou",
-    "twentyparen",
-    "twentyperiod",
-    "twoarabic",
-    "twobengali",
-    "twocircle",
-    "twocircleinversesansserif",
-    "twodeva",
-    "twodotleader",
-    "twodotleadervertical",
-    "twogujarati",
-    "twogurmukhi",
-    "twohackarabic",
-    "twohangzhou",
-    "twoideographicparen",
-    "twomonospace",
-    "twonumeratorbengali",
-    "twoparen",
-    "twoperiod",
-    "twopersian",
-    "tworoman",
-    "twostroke",
-    "twothai",
-    "ubar",
-    "ubengali",
-    "ubopomofo",
-    "ubreve",
-    "ucaron",
-    "ucircle",
-    "ucircumflexbelow",
-    "ucyrillic",
-    "udattadeva",
-    "udblacute",
-    "udblgrave",
-    "udeva",
-    "udieresisacute",
-    "udieresisbelow",
-    "udieresiscaron",
-    "udieresiscyrillic",
-    "udieresisgrave",
-    "udieresismacron",
-    "udotbelow",
-    "ugujarati",
-    "ugurmukhi",
-    "uhiragana",
-    "uhookabove",
-    "uhorn",
-    "uhornacute",
-    "uhorndotbelow",
-    "uhorngrave",
-    "uhornhookabove",
-    "uhorntilde",
-    "uhungarumlaut",
-    "uhungarumlautcyrillic",
-    "uinvertedbreve",
-    "ukatakana",
-    "ukatakanahalfwidth",
-    "ukcyrillic",
-    "ukorean",
-    "umacron",
-    "umacroncyrillic",
-    "umacrondieresis",
-    "umatragurmukhi",
-    "umonospace",
-    "underscoredbl",
-    "underscoremonospace",
-    "underscorevertical",
-    "underscorewavy",
-    "union",
-    "universal",
-    "uogonek",
-    "uparen",
-    "upblock",
-    "upperdothebrew",
-    "upsilon",
-    "upsilondieresis",
-    "upsilondieresistonos",
-    "upsilonlatin",
-    "upsilontonos",
-    "uptackbelowcmb",
-    "uptackmod",
-    "uragurmukhi",
-    "uring",
-    "ushortcyrillic",
-    "usmallhiragana",
-    "usmallkatakana",
-    "usmallkatakanahalfwidth",
-    "ustraightcyrillic",
-    "ustraightstrokecyrillic",
-    "utilde",
-    "utildeacute",
-    "utildebelow",
-    "uubengali",
-    "uudeva",
-    "uugujarati",
-    "uugurmukhi",
-    "uumatragurmukhi",
-    "uuvowelsignbengali",
-    "uuvowelsigndeva",
-    "uuvowelsigngujarati",
-    "uvowelsignbengali",
-    "uvowelsigndeva",
-    "uvowelsigngujarati",
-    "vadeva",
-    "vagujarati",
-    "vagurmukhi",
-    "vakatakana",
-    "vav",
-    "vavdagesh",
-    "vavdagesh65",
-    "vavdageshhebrew",
-    "vavhebrew",
-    "vavholam",
-    "vavholamhebrew",
-    "vavvavhebrew",
-    "vavyodhebrew",
-    "vcircle",
-    "vdotbelow",
-    "vecyrillic",
-    "veharabic",
-    "vehfinalarabic",
-    "vehinitialarabic",
-    "vehmedialarabic",
-    "vekatakana",
-    "venus",
-    "verticalbar",
-    "verticallineabovecmb",
-    "verticallinebelowcmb",
-    "verticallinelowmod",
-    "verticallinemod",
-    "vewarmenian",
-    "vhook",
-    "vikatakana",
-    "viramabengali",
-    "viramadeva",
-    "viramagujarati",
-    "visargabengali",
-    "visargadeva",
-    "visargagujarati",
-    "vmonospace",
-    "voarmenian",
-    "voicediterationhiragana",
-    "voicediterationkatakana",
-    "voicedmarkkana",
-    "voicedmarkkanahalfwidth",
-    "vokatakana",
-    "vparen",
-    "vtilde",
-    "vturned",
-    "vuhiragana",
-    "vukatakana",
-    "wacute",
-    "waekorean",
-    "wahiragana",
-    "wakatakana",
-    "wakatakanahalfwidth",
-    "wakorean",
-    "wasmallhiragana",
-    "wasmallkatakana",
-    "wattosquare",
-    "wavedash",
-    "wavyunderscorevertical",
-    "wawarabic",
-    "wawfinalarabic",
-    "wawhamzaabovearabic",
-    "wawhamzaabovefinalarabic",
-    "wbsquare",
-    "wcircle",
-    "wcircumflex",
-    "wdieresis",
-    "wdotaccent",
-    "wdotbelow",
-    "wehiragana",
-    "weierstrass",
-    "wekatakana",
-    "wekorean",
-    "weokorean",
-    "wgrave",
-    "whitebullet",
-    "whitecircle",
-    "whitecircleinverse",
-    "whitecornerbracketleft",
-    "whitecornerbracketleftvertical",
-    "whitecornerbracketright",
-    "whitecornerbracketrightvertical",
-    "whitediamond",
-    "whitediamondcontainingblacksmalldiamond",
-    "whitedownpointingsmalltriangle",
-    "whitedownpointingtriangle",
-    "whiteleftpointingsmalltriangle",
-    "whiteleftpointingtriangle",
-    "whitelenticularbracketleft",
-    "whitelenticularbracketright",
-    "whiterightpointingsmalltriangle",
-    "whiterightpointingtriangle",
-    "whitesmallsquare",
-    "whitesmilingface",
-    "whitesquare",
-    "whitestar",
-    "whitetelephone",
-    "whitetortoiseshellbracketleft",
-    "whitetortoiseshellbracketright",
-    "whiteuppointingsmalltriangle",
-    "whiteuppointingtriangle",
-    "wihiragana",
-    "wikatakana",
-    "wikorean",
-    "wmonospace",
-    "wohiragana",
-    "wokatakana",
-    "wokatakanahalfwidth",
-    "won",
-    "wonmonospace",
-    "wowaenthai",
-    "wparen",
-    "wring",
-    "wsuperior",
-    "wturned",
-    "wynn",
-    "xabovecmb",
-    "xbopomofo",
-    "xcircle",
-    "xdieresis",
-    "xdotaccent",
-    "xeharmenian",
-    "xi",
-    "xmonospace",
-    "xparen",
-    "xsuperior",
-    "yaadosquare",
-    "yabengali",
-    "yadeva",
-    "yaekorean",
-    "yagujarati",
-    "yagurmukhi",
-    "yahiragana",
-    "yakatakana",
-    "yakatakanahalfwidth",
-    "yakorean",
-    "yamakkanthai",
-    "yasmallhiragana",
-    "yasmallkatakana",
-    "yasmallkatakanahalfwidth",
-    "yatcyrillic",
-    "ycircle",
-    "ycircumflex",
-    "ydotaccent",
-    "ydotbelow",
-    "yeharabic",
-    "yehbarreearabic",
-    "yehbarreefinalarabic",
-    "yehfinalarabic",
-    "yehhamzaabovearabic",
-    "yehhamzaabovefinalarabic",
-    "yehhamzaaboveinitialarabic",
-    "yehhamzaabovemedialarabic",
-    "yehinitialarabic",
-    "yehmedialarabic",
-    "yehmeeminitialarabic",
-    "yehmeemisolatedarabic",
-    "yehnoonfinalarabic",
-    "yehthreedotsbelowarabic",
-    "yekorean",
-    "yenmonospace",
-    "yeokorean",
-    "yeorinhieuhkorean",
-    "yerahbenyomohebrew",
-    "yerahbenyomolefthebrew",
-    "yericyrillic",
-    "yerudieresiscyrillic",
-    "yesieungkorean",
-    "yesieungpansioskorean",
-    "yesieungsioskorean",
-    "yetivhebrew",
-    "ygrave",
-    "yhook",
-    "yhookabove",
-    "yiarmenian",
-    "yicyrillic",
-    "yikorean",
-    "yinyang",
-    "yiwnarmenian",
-    "ymonospace",
-    "yod",
-    "yoddagesh",
-    "yoddageshhebrew",
-    "yodhebrew",
-    "yodyodhebrew",
-    "yodyodpatahhebrew",
-    "yohiragana",
-    "yoikorean",
-    "yokatakana",
-    "yokatakanahalfwidth",
-    "yokorean",
-    "yosmallhiragana",
-    "yosmallkatakana",
-    "yosmallkatakanahalfwidth",
-    "yotgreek",
-    "yoyaekorean",
-    "yoyakorean",
-    "yoyakthai",
-    "yoyingthai",
-    "yparen",
-    "ypogegrammeni",
-    "ypogegrammenigreekcmb",
-    "yr",
-    "yring",
-    "ysuperior",
-    "ytilde",
-    "yturned",
-    "yuhiragana",
-    "yuikorean",
-    "yukatakana",
-    "yukatakanahalfwidth",
-    "yukorean",
-    "yusbigcyrillic",
-    "yusbigiotifiedcyrillic",
-    "yuslittlecyrillic",
-    "yuslittleiotifiedcyrillic",
-    "yusmallhiragana",
-    "yusmallkatakana",
-    "yusmallkatakanahalfwidth",
-    "yuyekorean",
-    "yuyeokorean",
-    "yyabengali",
-    "yyadeva",
-    "zaarmenian",
-    "zacute",
-    "zadeva",
-    "zagurmukhi",
-    "zaharabic",
-    "zahfinalarabic",
-    "zahinitialarabic",
-    "zahiragana",
-    "zahmedialarabic",
-    "zainarabic",
-    "zainfinalarabic",
-    "zakatakana",
-    "zaqefgadolhebrew",
-    "zaqefqatanhebrew",
-    "zarqahebrew",
-    "zayin",
-    "zayindagesh",
-    "zayindageshhebrew",
-    "zayinhebrew",
-    "zbopomofo",
-    "zcircle",
-    "zcircumflex",
-    "zcurl",
-    "zdot",
-    "zdotaccent",
-    "zdotbelow",
-    "zecyrillic",
-    "zedescendercyrillic",
-    "zedieresiscyrillic",
-    "zehiragana",
-    "zekatakana",
-    "zeroarabic",
-    "zerobengali",
-    "zerodeva",
-    "zerogujarati",
-    "zerogurmukhi",
-    "zerohackarabic",
-    "zeromonospace",
-    "zeropersian",
-    "zerothai",
-    "zerowidthjoiner",
-    "zerowidthnonjoiner",
-    "zerowidthspace",
-    "zeta",
-    "zhbopomofo",
-    "zhearmenian",
-    "zhebrevecyrillic",
-    "zhecyrillic",
-    "zhedescendercyrillic",
-    "zhedieresiscyrillic",
-    "zihiragana",
-    "zikatakana",
-    "zinorhebrew",
-    "zlinebelow",
-    "zmonospace",
-    "zohiragana",
-    "zokatakana",
-    "zparen",
-    "zretroflexhook",
-    "zstroke",
-    "zuhiragana",
-    "zukatakana",
-
-#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
-
-    NULL
-  };
-
-
-  static const char* const * const  sid_standard_names = ps_glyph_names + 2;
-
-
-#define NUM_SID_GLYPHS 391
-
-#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-#define NUM_ADOBE_GLYPHS 4294
-#else
-#define NUM_ADOBE_GLYPHS 391
-#endif
-
-
-  static const unsigned short  mac_standard_names[259] =
-  {
-    2,
-    0,
-    1,
-    3,
-    4,
-    5,
-    6,
-    7,
-    8,
-    9,
-    106,
-    11,
-    12,
-    13,
-    14,
-    15,
-    16,
-    17,
-    18,
-    19,
-    20,
-    21,
-    22,
-    23,
-    24,
-    25,
-    26,
-    27,
-    28,
-    29,
-    30,
-    31,
-    32,
-    33,
-    34,
-    35,
-    36,
-    37,
-    38,
-    39,
-    40,
-    41,
-    42,
-    43,
-    44,
-    45,
-    46,
-    47,
-    48,
-    49,
-    50,
-    51,
-    52,
-    53,
-    54,
-    55,
-    56,
-    57,
-    58,
-    59,
-    60,
-    61,
-    62,
-    63,
-    64,
-    65,
-    66,
-    126,
-    68,
-    69,
-    70,
-    71,
-    72,
-    73,
-    74,
-    75,
-    76,
-    77,
-    78,
-    79,
-    80,
-    81,
-    82,
-    83,
-    84,
-    85,
-    86,
-    87,
-    88,
-    89,
-    90,
-    91,
-    92,
-    93,
-    94,
-    95,
-    96,
-    97,
-    175,
-    177,
-    179,
-    180,
-    188,
-    191,
-    197,
-    202,
-    205,
-    203,
-    204,
-    207,
-    206,
-    208,
-    209,
-    212,
-    210,
-    211,
-    213,
-    216,
-    214,
-    215,
-    217,
-    218,
-    221,
-    219,
-    220,
-    222,
-    224,
-    227,
-    225,
-    226,
-    114,
-    163,
-    99,
-    100,
-    104,
-    118,
-    117,
-    151,
-    167,
-    172,
-    155,
-    127,
-    133,
-    2919,
-    140,
-    143,
-    2413,
-    158,
-    2642,
-    2156,
-    102,
-    154,
-    3092,
-    3681,
-    3192,
-    3153,
-    2415,
-    141,
-    145,
-    741,
-    146,
-    149,
-    125,
-    98,
-    153,
-    3284,
-    103,
-    1353,
-    472,
-    108,
-    122,
-    123,
-    2901,
-    176,
-    178,
-    193,
-    144,
-    150,
-    113,
-    139,
-    107,
-    121,
-    67,
-    10,
-    161,
-    2677,
-    229,
-    200,
-    101,
-    105,
-    109,
-    110,
-    111,
-    112,
-    115,
-    116,
-    119,
-    120,
-    124,
-    174,
-    181,
-    173,
-    182,
-    183,
-    184,
-    185,
-    186,
-    187,
-    189,
-    190,
-    1351,
-    192,
-    195,
-    196,
-    198,
-    147,
-    128,
-    129,
-    130,
-    131,
-    132,
-    134,
-    135,
-    136,
-    137,
-    138,
-    142,
-    148,
-    194,
-    223,
-    201,
-    230,
-    162,
-    156,
-    169,
-    199,
-    228,
-    159,
-    164,
-    168,
-    170,
-    152,
-    166,
-    171,
-    157,
-    160,
-    165,
-    2074,
-    556,
-    2091,
-    609,
-    836,
-    3465,
-    438,
-    1545,
-    440,
-    1560,
-    1767,
-    0
-  };
-
-
-
-  static const unsigned short  ps_names_to_unicode[4295] =
-  {
-    0,
-    0x0020U,
-    0x0021U,
-    0x0022U,
-    0x0023U,
-    0x0024U,
-    0x0025U,
-    0x0026U,
-    0x2019U,
-    0x0028U,
-    0x0029U,
-    0x002AU,
-    0x002BU,
-    0x002CU,
-    0x002DU,
-    0x002EU,
-    0x002FU,
-    0x0030U,
-    0x0031U,
-    0x0032U,
-    0x0033U,
-    0x0034U,
-    0x0035U,
-    0x0036U,
-    0x0037U,
-    0x0038U,
-    0x0039U,
-    0x003AU,
-    0x003BU,
-    0x003CU,
-    0x003DU,
-    0x003EU,
-    0x003FU,
-    0x0040U,
-    0x0041U,
-    0x0042U,
-    0x0043U,
-    0x0044U,
-    0x0045U,
-    0x0046U,
-    0x0047U,
-    0x0048U,
-    0x0049U,
-    0x004AU,
-    0x004BU,
-    0x004CU,
-    0x004DU,
-    0x004EU,
-    0x004FU,
-    0x0050U,
-    0x0051U,
-    0x0052U,
-    0x0053U,
-    0x0054U,
-    0x0055U,
-    0x0056U,
-    0x0057U,
-    0x0058U,
-    0x0059U,
-    0x005AU,
-    0x005BU,
-    0x005CU,
-    0x005DU,
-    0x005EU,
-    0x005FU,
-    0x2018U,
-    0x0061U,
-    0x0062U,
-    0x0063U,
-    0x0064U,
-    0x0065U,
-    0x0066U,
-    0x0067U,
-    0x0068U,
-    0x0069U,
-    0x006AU,
-    0x006BU,
-    0x006CU,
-    0x006DU,
-    0x006EU,
-    0x006FU,
-    0x0070U,
-    0x0071U,
-    0x0072U,
-    0x0073U,
-    0x0074U,
-    0x0075U,
-    0x0076U,
-    0x0077U,
-    0x0078U,
-    0x0079U,
-    0x007AU,
-    0x007BU,
-    0x007CU,
-    0x007DU,
-    0x007EU,
-    0x00A1U,
-    0x00A2U,
-    0x00A3U,
-    0x2044U,
-    0x00A5U,
-    0x0192U,
-    0x00A7U,
-    0x00A4U,
-    0x0027U,
-    0x201CU,
-    0x00ABU,
-    0x2039U,
-    0x203AU,
-    0xFB01U,
-    0xFB02U,
-    0x2013U,
-    0x2020U,
-    0x2021U,
-    0x00B7U,
-    0x00B6U,
-    0x2022U,
-    0x201AU,
-    0x201EU,
-    0x201DU,
-    0x00BBU,
-    0x2026U,
-    0x2030U,
-    0x00BFU,
-    0x0060U,
-    0x00B4U,
-    0x02C6U,
-    0x02DCU,
-    0x00AFU,
-    0x02D8U,
-    0x02D9U,
-    0x00A8U,
-    0x02DAU,
-    0x00B8U,
-    0x02DDU,
-    0x02DBU,
-    0x02C7U,
-    0x2014U,
-    0x00C6U,
-    0x00AAU,
-    0x0141U,
-    0x00D8U,
-    0x0152U,
-    0x00BAU,
-    0x00E6U,
-    0x0131U,
-    0x0142U,
-    0x00F8U,
-    0x0153U,
-    0x00DFU,
-    0x00B9U,
-    0x00ACU,
-    0x00B5U,
-    0x2122U,
-    0x00D0U,
-    0x00BDU,
-    0x00B1U,
-    0x00DEU,
-    0x00BCU,
-    0x00F7U,
-    0x00A6U,
-    0x00B0U,
-    0x00FEU,
-    0x00BEU,
-    0x00B2U,
-    0x00AEU,
-    0x2212U,
-    0x00F0U,
-    0x00D7U,
-    0x00B3U,
-    0x00A9U,
-    0x00C1U,
-    0x00C2U,
-    0x00C4U,
-    0x00C0U,
-    0x00C5U,
-    0x00C3U,
-    0x00C7U,
-    0x00C9U,
-    0x00CAU,
-    0x00CBU,
-    0x00C8U,
-    0x00CDU,
-    0x00CEU,
-    0x00CFU,
-    0x00CCU,
-    0x00D1U,
-    0x00D3U,
-    0x00D4U,
-    0x00D6U,
-    0x00D2U,
-    0x00D5U,
-    0x0160U,
-    0x00DAU,
-    0x00DBU,
-    0x00DCU,
-    0x00D9U,
-    0x00DDU,
-    0x0178U,
-    0x017DU,
-    0x00E1U,
-    0x00E2U,
-    0x00E4U,
-    0x00E0U,
-    0x00E5U,
-    0x00E3U,
-    0x00E7U,
-    0x00E9U,
-    0x00EAU,
-    0x00EBU,
-    0x00E8U,
-    0x00EDU,
-    0x00EEU,
-    0x00EFU,
-    0x00ECU,
-    0x00F1U,
-    0x00F3U,
-    0x00F4U,
-    0x00F6U,
-    0x00F2U,
-    0x00F5U,
-    0x0161U,
-    0x00FAU,
-    0x00FBU,
-    0x00FCU,
-    0x00F9U,
-    0x00FDU,
-    0x00FFU,
-    0x017EU,
-    0xF721U,
-    0xF6F8U,
-    0xF724U,
-    0xF6E4U,
-    0xF726U,
-    0xF7B4U,
-    0x207DU,
-    0x207EU,
-    0x2025U,
-    0x2024U,
-    0xF730U,
-    0xF731U,
-    0xF732U,
-    0xF733U,
-    0xF734U,
-    0xF735U,
-    0xF736U,
-    0xF737U,
-    0xF738U,
-    0xF739U,
-    0xF6E2U,
-    0xF6DEU,
-    0xF6E8U,
-    0xF73FU,
-    0xF6E9U,
-    0xF6EAU,
-    0xF6E0U,
-    0xF6EBU,
-    0xF6ECU,
-    0xF6EDU,
-    0xF6EEU,
-    0xF6EFU,
-    0x207FU,
-    0xF6F0U,
-    0xF6F1U,
-    0xF6F2U,
-    0xF6F3U,
-    0xFB00U,
-    0xFB03U,
-    0xFB04U,
-    0x208DU,
-    0x208EU,
-    0xF6F6U,
-    0xF6E6U,
-    0xF760U,
-    0xF761U,
-    0xF762U,
-    0xF763U,
-    0xF764U,
-    0xF765U,
-    0xF766U,
-    0xF767U,
-    0xF768U,
-    0xF769U,
-    0xF76AU,
-    0xF76BU,
-    0xF76CU,
-    0xF76DU,
-    0xF76EU,
-    0xF76FU,
-    0xF770U,
-    0xF771U,
-    0xF772U,
-    0xF773U,
-    0xF774U,
-    0xF775U,
-    0xF776U,
-    0xF777U,
-    0xF778U,
-    0xF779U,
-    0xF77AU,
-    0x20A1U,
-    0xF6DCU,
-    0xF6DDU,
-    0xF6FEU,
-    0xF7A1U,
-    0xF7A2U,
-    0xF6F9U,
-    0xF6FDU,
-    0xF6FFU,
-    0xF7A8U,
-    0xF6F4U,
-    0xF6F5U,
-    0xF6F7U,
-    0xF7AFU,
-    0x2012U,
-    0xF6E5U,
-    0xF6FBU,
-    0xF6FCU,
-    0xF7B8U,
-    0xF7BFU,
-    0x215BU,
-    0x215CU,
-    0x215DU,
-    0x215EU,
-    0x2153U,
-    0x2154U,
-    0x2070U,
-    0x2074U,
-    0x2075U,
-    0x2076U,
-    0x2077U,
-    0x2078U,
-    0x2079U,
-    0x2080U,
-    0x2081U,
-    0x2082U,
-    0x2083U,
-    0x2084U,
-    0x2085U,
-    0x2086U,
-    0x2087U,
-    0x2088U,
-    0x2089U,
-    0xF6DFU,
-    0xF6E3U,
-    0xF6E7U,
-    0xF6E1U,
-    0xF7E0U,
-    0xF7E1U,
-    0xF7E2U,
-    0xF7E3U,
-    0xF7E4U,
-    0xF7E5U,
-    0xF7E6U,
-    0xF7E7U,
-    0xF7E8U,
-    0xF7E9U,
-    0xF7EAU,
-    0xF7EBU,
-    0xF7ECU,
-    0xF7EDU,
-    0xF7EEU,
-    0xF7EFU,
-    0xF7F0U,
-    0xF7F1U,
-    0xF7F2U,
-    0xF7F3U,
-    0xF7F4U,
-    0xF7F5U,
-    0xF7F6U,
-    0xF6FAU,
-    0xF7F8U,
-    0xF7F9U,
-    0xF7FAU,
-    0xF7FBU,
-    0xF7FCU,
-    0xF7FDU,
-    0xF7FEU,
-    0xF7FFU,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-
-#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
-
-    0x01FCU,
-    0x01E2U,
-    0x0102U,
-    0x1EAEU,
-    0x04D0U,
-    0x1EB6U,
-    0x1EB0U,
-    0x1EB2U,
-    0x1EB4U,
-    0x01CDU,
-    0x24B6U,
-    0x1EA4U,
-    0x1EACU,
-    0x1EA6U,
-    0x1EA8U,
-    0x1EAAU,
-    0xF6C9U,
-    0x0410U,
-    0x0200U,
-    0x04D2U,
-    0x01DEU,
-    0x1EA0U,
-    0x01E0U,
-    0x1EA2U,
-    0x04D4U,
-    0x0202U,
-    0x0391U,
-    0x0386U,
-    0x0100U,
-    0xFF21U,
-    0x0104U,
-    0x01FAU,
-    0x1E00U,
-    0x0531U,
-    0x24B7U,
-    0x1E02U,
-    0x1E04U,
-    0x0411U,
-    0x0532U,
-    0x0392U,
-    0x0181U,
-    0x1E06U,
-    0xFF22U,
-    0x0182U,
-    0x053EU,
-    0x0106U,
-    0xF6CAU,
-    0x010CU,
-    0x1E08U,
-    0x24B8U,
-    0x0108U,
-    0x010AU,
-    0x010AU,
-    0x0549U,
-    0x04BCU,
-    0x0427U,
-    0x04BEU,
-    0x04B6U,
-    0x04F4U,
-    0x0543U,
-    0x04CBU,
-    0x04B8U,
-    0x03A7U,
-    0x0187U,
-    0xFF23U,
-    0x0551U,
-    0x01F1U,
-    0x01C4U,
-    0x0534U,
-    0x0189U,
-    0x010EU,
-    0x1E10U,
-    0x24B9U,
-    0x1E12U,
-    0x0110U,
-    0x1E0AU,
-    0x1E0CU,
-    0x0414U,
-    0x03EEU,
-    0x2206U,
-    0x0394U,
-    0x018AU,
-    0xF6CBU,
-    0xF6CCU,
-    0xF6CDU,
-    0x03DCU,
-    0x0402U,
-    0x1E0EU,
-    0xFF24U,
-    0x0110U,
-    0x018BU,
-    0x01F2U,
-    0x01C5U,
-    0x04E0U,
-    0x0405U,
-    0x040FU,
-    0x0114U,
-    0x011AU,
-    0x1E1CU,
-    0x0535U,
-    0x24BAU,
-    0x1EBEU,
-    0x1E18U,
-    0x1EC6U,
-    0x1EC0U,
-    0x1EC2U,
-    0x1EC4U,
-    0x0404U,
-    0x0204U,
-    0x0116U,
-    0x0116U,
-    0x1EB8U,
-    0x0424U,
-    0x0537U,
-    0x1EBAU,
-    0x2167U,
-    0x0206U,
-    0x0464U,
-    0x041BU,
-    0x216AU,
-    0x0112U,
-    0x1E16U,
-    0x1E14U,
-    0x041CU,
-    0xFF25U,
-    0x041DU,
-    0x04A2U,
-    0x014AU,
-    0x04A4U,
-    0x04C7U,
-    0x0118U,
-    0x0190U,
-    0x0395U,
-    0x0388U,
-    0x0420U,
-    0x018EU,
-    0x042DU,
-    0x0421U,
-    0x04AAU,
-    0x01A9U,
-    0x0397U,
-    0x0538U,
-    0x0389U,
-    0x1EBCU,
-    0x1E1AU,
-    0x20ACU,
-    0x01B7U,
-    0x01EEU,
-    0x01B8U,
-    0x24BBU,
-    0x1E1EU,
-    0x0556U,
-    0x03E4U,
-    0x0191U,
-    0x0472U,
-    0x2164U,
-    0xFF26U,
-    0x2163U,
-    0x3387U,
-    0x01F4U,
-    0x0393U,
-    0x0194U,
-    0x03EAU,
-    0x011EU,
-    0x01E6U,
-    0x0122U,
-    0x24BCU,
-    0x011CU,
-    0x0122U,
-    0x0120U,
-    0x0120U,
-    0x0413U,
-    0x0542U,
-    0x0494U,
-    0x0492U,
-    0x0490U,
-    0x0193U,
-    0x0533U,
-    0x0403U,
-    0x1E20U,
-    0xFF27U,
-    0xF6CEU,
-    0x029BU,
-    0x01E4U,
-    0x25CFU,
-    0x25AAU,
-    0x25ABU,
-    0x25A1U,
-    0x33CBU,
-    0x04A8U,
-    0x04B2U,
-    0x042AU,
-    0x0126U,
-    0x1E2AU,
-    0x1E28U,
-    0x24BDU,
-    0x0124U,
-    0x1E26U,
-    0x1E22U,
-    0x1E24U,
-    0xFF28U,
-    0x0540U,
-    0x03E8U,
-    0xF6CFU,
-    0x3390U,
-    0x042FU,
-    0x0132U,
-    0x042EU,
-    0x012CU,
-    0x01CFU,
-    0x24BEU,
-    0x0406U,
-    0x0208U,
-    0x1E2EU,
-    0x04E4U,
-    0x0130U,
-    0x0130U,
-    0x1ECAU,
-    0x04D6U,
-    0x0415U,
-    0x2111U,
-    0x1EC8U,
-    0x0418U,
-    0x020AU,
-    0x0419U,
-    0x012AU,
-    0x04E2U,
-    0xFF29U,
-    0x053BU,
-    0x0401U,
-    0x012EU,
-    0x0399U,
-    0x0196U,
-    0x03AAU,
-    0x038AU,
-    0x0197U,
-    0x0128U,
-    0x1E2CU,
-    0x0474U,
-    0x0476U,
-    0x0541U,
-    0x24BFU,
-    0x0134U,
-    0x0408U,
-    0x054BU,
-    0xFF2AU,
-    0x3385U,
-    0x33CDU,
-    0x04A0U,
-    0x1E30U,
-    0x041AU,
-    0x049AU,
-    0x04C3U,
-    0x039AU,
-    0x049EU,
-    0x049CU,
-    0x01E8U,
-    0x0136U,
-    0x24C0U,
-    0x0136U,
-    0x1E32U,
-    0x0554U,
-    0x053FU,
-    0x0425U,
-    0x03E6U,
-    0x0198U,
-    0x040CU,
-    0x1E34U,
-    0xFF2BU,
-    0x0480U,
-    0x03DEU,
-    0x046EU,
-    0x01C7U,
-    0xF6BFU,
-    0x0139U,
-    0x039BU,
-    0x013DU,
-    0x013BU,
-    0x24C1U,
-    0x1E3CU,
-    0x013BU,
-    0x013FU,
-    0x013FU,
-    0x1E36U,
-    0x1E38U,
-    0x053CU,
-    0x01C8U,
-    0x0409U,
-    0x1E3AU,
-    0xFF2CU,
-    0x3386U,
-    0xF6D0U,
-    0x1E3EU,
-    0x24C2U,
-    0x1E40U,
-    0x1E42U,
-    0x0544U,
-    0xFF2DU,
-    0x019CU,
-    0x039CU,
-    0x01CAU,
-    0x0143U,
-    0x0147U,
-    0x0145U,
-    0x24C3U,
-    0x1E4AU,
-    0x0145U,
-    0x1E44U,
-    0x1E46U,
-    0x019DU,
-    0x2168U,
-    0x01CBU,
-    0x040AU,
-    0x1E48U,
-    0xFF2EU,
-    0x0546U,
-    0x039DU,
-    0x04E8U,
-    0x04EAU,
-    0x014EU,
-    0x01D1U,
-    0x019FU,
-    0x24C4U,
-    0x1ED0U,
-    0x1ED8U,
-    0x1ED2U,
-    0x1ED4U,
-    0x1ED6U,
-    0x041EU,
-    0x0150U,
-    0x020CU,
-    0x04E6U,
-    0x1ECCU,
-    0x0555U,
-    0x2126U,
-    0x1ECEU,
-    0x01A0U,
-    0x1EDAU,
-    0x1EE2U,
-    0x1EDCU,
-    0x1EDEU,
-    0x1EE0U,
-    0x0150U,
-    0x01A2U,
-    0x020EU,
-    0x014CU,
-    0x1E52U,
-    0x1E50U,
-    0x2126U,
-    0x0460U,
-    0x03A9U,
-    0x047AU,
-    0x047CU,
-    0x038FU,
-    0x039FU,
-    0x038CU,
-    0xFF2FU,
-    0x2160U,
-    0x01EAU,
-    0x01ECU,
-    0x0186U,
-    0x01FEU,
-    0x01FEU,
-    0x047EU,
-    0x1E4CU,
-    0x1E4EU,
-    0x1E54U,
-    0x24C5U,
-    0x1E56U,
-    0x041FU,
-    0x054AU,
-    0x04A6U,
-    0x03A6U,
-    0x01A4U,
-    0x03A0U,
-    0x0553U,
-    0xFF30U,
-    0x03A8U,
-    0x0470U,
-    0x24C6U,
-    0xFF31U,
-    0x054CU,
-    0x0154U,
-    0x0158U,
-    0x0156U,
-    0x24C7U,
-    0x0156U,
-    0x0210U,
-    0x1E58U,
-    0x1E5AU,
-    0x1E5CU,
-    0x0550U,
-    0x211CU,
-    0x03A1U,
-    0x0212U,
-    0x1E5EU,
-    0xFF32U,
-    0x0281U,
-    0x02B6U,
-    0x250CU,
-    0x2514U,
-    0x2510U,
-    0x2518U,
-    0x253CU,
-    0x252CU,
-    0x2534U,
-    0x251CU,
-    0x2524U,
-    0x2500U,
-    0x2502U,
-    0x2561U,
-    0x2562U,
-    0x2556U,
-    0x2555U,
-    0x2563U,
-    0x2551U,
-    0x2557U,
-    0x255DU,
-    0x255CU,
-    0x255BU,
-    0x255EU,
-    0x255FU,
-    0x255AU,
-    0x2554U,
-    0x2569U,
-    0x2566U,
-    0x2560U,
-    0x2550U,
-    0x256CU,
-    0x2567U,
-    0x2568U,
-    0x2564U,
-    0x2565U,
-    0x2559U,
-    0x2558U,
-    0x2552U,
-    0x2553U,
-    0x256BU,
-    0x256AU,
-    0x015AU,
-    0x1E64U,
-    0x03E0U,
-    0x1E66U,
-    0x015EU,
-    0x018FU,
-    0x04D8U,
-    0x04DAU,
-    0x24C8U,
-    0x015CU,
-    0x0218U,
-    0x1E60U,
-    0x1E62U,
-    0x1E68U,
-    0x054DU,
-    0x2166U,
-    0x0547U,
-    0x0428U,
-    0x0429U,
-    0x03E2U,
-    0x04BAU,
-    0x03ECU,
-    0x03A3U,
-    0x2165U,
-    0xFF33U,
-    0x042CU,
-    0x03DAU,
-    0x03A4U,
-    0x0166U,
-    0x0164U,
-    0x0162U,
-    0x24C9U,
-    0x1E70U,
-    0x0162U,
-    0x1E6AU,
-    0x1E6CU,
-    0x0422U,
-    0x04ACU,
-    0x2169U,
-    0x04B4U,
-    0x0398U,
-    0x01ACU,
-    0x2162U,
-    0x054FU,
-    0x1E6EU,
-    0xFF34U,
-    0x0539U,
-    0x01BCU,
-    0x0184U,
-    0x01A7U,
-    0x01AEU,
-    0x0426U,
-    0x040BU,
-    0x216BU,
-    0x2161U,
-    0x016CU,
-    0x01D3U,
-    0x24CAU,
-    0x1E76U,
-    0x0423U,
-    0x0170U,
-    0x0214U,
-    0x01D7U,
-    0x1E72U,
-    0x01D9U,
-    0x04F0U,
-    0x01DBU,
-    0x01D5U,
-    0x1EE4U,
-    0x1EE6U,
-    0x01AFU,
-    0x1EE8U,
-    0x1EF0U,
-    0x1EEAU,
-    0x1EECU,
-    0x1EEEU,
-    0x0170U,
-    0x04F2U,
-    0x0216U,
-    0x0478U,
-    0x016AU,
-    0x04EEU,
-    0x1E7AU,
-    0xFF35U,
-    0x0172U,
-    0x03A5U,
-    0x03D2U,
-    0x03D3U,
-    0x01B1U,
-    0x03ABU,
-    0x03D4U,
-    0x03D2U,
-    0x038EU,
-    0x016EU,
-    0x040EU,
-    0x04AEU,
-    0x04B0U,
-    0x0168U,
-    0x1E78U,
-    0x1E74U,
-    0x24CBU,
-    0x1E7EU,
-    0x0412U,
-    0x054EU,
-    0x01B2U,
-    0xFF36U,
-    0x0548U,
-    0x1E7CU,
-    0x1E82U,
-    0x24CCU,
-    0x0174U,
-    0x1E84U,
-    0x1E86U,
-    0x1E88U,
-    0x1E80U,
-    0xFF37U,
-    0x24CDU,
-    0x1E8CU,
-    0x1E8AU,
-    0x053DU,
-    0x039EU,
-    0xFF38U,
-    0x0462U,
-    0x24CEU,
-    0x0176U,
-    0x1E8EU,
-    0x1EF4U,
-    0x042BU,
-    0x04F8U,
-    0x1EF2U,
-    0x01B3U,
-    0x1EF6U,
-    0x0545U,
-    0x0407U,
-    0x0552U,
-    0xFF39U,
-    0x1EF8U,
-    0x046AU,
-    0x046CU,
-    0x0466U,
-    0x0468U,
-    0x0536U,
-    0x0179U,
-    0x24CFU,
-    0x1E90U,
-    0x017BU,
-    0x017BU,
-    0x1E92U,
-    0x0417U,
-    0x0498U,
-    0x04DEU,
-    0x0396U,
-    0x053AU,
-    0x04C1U,
-    0x0416U,
-    0x0496U,
-    0x04DCU,
-    0x1E94U,
-    0xFF3AU,
-    0x01B5U,
-    0x0986U,
-    0x0906U,
-    0x0A86U,
-    0x0A06U,
-    0x0A3EU,
-    0x3303U,
-    0x09BEU,
-    0x093EU,
-    0x0ABEU,
-    0x055FU,
-    0x0970U,
-    0x0985U,
-    0x311AU,
-    0x0103U,
-    0x1EAFU,
-    0x04D1U,
-    0x1EB7U,
-    0x1EB1U,
-    0x1EB3U,
-    0x1EB5U,
-    0x01CEU,
-    0x24D0U,
-    0x1EA5U,
-    0x1EADU,
-    0x1EA7U,
-    0x1EA9U,
-    0x1EABU,
-    0x0317U,
-    0x0301U,
-    0x0301U,
-    0x0954U,
-    0x02CFU,
-    0x0341U,
-    0x0430U,
-    0x0201U,
-    0x0A71U,
-    0x0905U,
-    0x04D3U,
-    0x01DFU,
-    0x1EA1U,
-    0x01E1U,
-    0x01FDU,
-    0x3150U,
-    0x01E3U,
-    0x2015U,
-    0x20A4U,
-    0x0410U,
-    0x0411U,
-    0x0412U,
-    0x0413U,
-    0x0414U,
-    0x0415U,
-    0x0401U,
-    0x0416U,
-    0x0417U,
-    0x0418U,
-    0x0419U,
-    0x041AU,
-    0x041BU,
-    0x041CU,
-    0x041DU,
-    0x041EU,
-    0x041FU,
-    0x0420U,
-    0x0421U,
-    0x0422U,
-    0x0423U,
-    0x0424U,
-    0x0425U,
-    0x0426U,
-    0x0427U,
-    0x0428U,
-    0x0429U,
-    0x042AU,
-    0x042BU,
-    0x042CU,
-    0x042DU,
-    0x042EU,
-    0x042FU,
-    0x0490U,
-    0x0402U,
-    0x0403U,
-    0x0404U,
-    0x0405U,
-    0x0406U,
-    0x0407U,
-    0x0408U,
-    0x0409U,
-    0x040AU,
-    0x040BU,
-    0x040CU,
-    0x040EU,
-    0xF6C4U,
-    0xF6C5U,
-    0x0430U,
-    0x0431U,
-    0x0432U,
-    0x0433U,
-    0x0434U,
-    0x0435U,
-    0x0451U,
-    0x0436U,
-    0x0437U,
-    0x0438U,
-    0x0439U,
-    0x043AU,
-    0x043BU,
-    0x043CU,
-    0x043DU,
-    0x043EU,
-    0x043FU,
-    0x0440U,
-    0x0441U,
-    0x0442U,
-    0x0443U,
-    0x0444U,
-    0x0445U,
-    0x0446U,
-    0x0447U,
-    0x0448U,
-    0x0449U,
-    0x044AU,
-    0x044BU,
-    0x044CU,
-    0x044DU,
-    0x044EU,
-    0x044FU,
-    0x0491U,
-    0x0452U,
-    0x0453U,
-    0x0454U,
-    0x0455U,
-    0x0456U,
-    0x0457U,
-    0x0458U,
-    0x0459U,
-    0x045AU,
-    0x045BU,
-    0x045CU,
-    0x045EU,
-    0x040FU,
-    0x0462U,
-    0x0472U,
-    0x0474U,
-    0xF6C6U,
-    0x045FU,
-    0x0463U,
-    0x0473U,
-    0x0475U,
-    0xF6C7U,
-    0xF6C8U,
-    0x04D9U,
-    0x200EU,
-    0x200FU,
-    0x200DU,
-    0x066AU,
-    0x060CU,
-    0x0660U,
-    0x0661U,
-    0x0662U,
-    0x0663U,
-    0x0664U,
-    0x0665U,
-    0x0666U,
-    0x0667U,
-    0x0668U,
-    0x0669U,
-    0x061BU,
-    0x061FU,
-    0x0621U,
-    0x0622U,
-    0x0623U,
-    0x0624U,
-    0x0625U,
-    0x0626U,
-    0x0627U,
-    0x0628U,
-    0x0629U,
-    0x062AU,
-    0x062BU,
-    0x062CU,
-    0x062DU,
-    0x062EU,
-    0x062FU,
-    0x0630U,
-    0x0631U,
-    0x0632U,
-    0x0633U,
-    0x0634U,
-    0x0635U,
-    0x0636U,
-    0x0637U,
-    0x0638U,
-    0x0639U,
-    0x063AU,
-    0x0640U,
-    0x0641U,
-    0x0642U,
-    0x0643U,
-    0x0644U,
-    0x0645U,
-    0x0646U,
-    0x0648U,
-    0x0649U,
-    0x064AU,
-    0x064BU,
-    0x064CU,
-    0x064DU,
-    0x064EU,
-    0x064FU,
-    0x0650U,
-    0x0651U,
-    0x0652U,
-    0x0647U,
-    0x06A4U,
-    0x067EU,
-    0x0686U,
-    0x0698U,
-    0x06AFU,
-    0x0679U,
-    0x0688U,
-    0x0691U,
-    0x06BAU,
-    0x06D2U,
-    0x06D5U,
-    0x20AAU,
-    0x05BEU,
-    0x05C3U,
-    0x05D0U,
-    0x05D1U,
-    0x05D2U,
-    0x05D3U,
-    0x05D4U,
-    0x05D5U,
-    0x05D6U,
-    0x05D7U,
-    0x05D8U,
-    0x05D9U,
-    0x05DAU,
-    0x05DBU,
-    0x05DCU,
-    0x05DDU,
-    0x05DEU,
-    0x05DFU,
-    0x05E0U,
-    0x05E1U,
-    0x05E2U,
-    0x05E3U,
-    0x05E4U,
-    0x05E5U,
-    0x05E6U,
-    0x05E7U,
-    0x05E8U,
-    0x05E9U,
-    0x05EAU,
-    0xFB2AU,
-    0xFB2BU,
-    0xFB4BU,
-    0xFB1FU,
-    0x05F0U,
-    0x05F1U,
-    0x05F2U,
-    0xFB35U,
-    0x05B4U,
-    0x05B5U,
-    0x05B6U,
-    0x05BBU,
-    0x05B8U,
-    0x05B7U,
-    0x05B0U,
-    0x05B2U,
-    0x05B1U,
-    0x05B3U,
-    0x05C2U,
-    0x05C1U,
-    0x05B9U,
-    0x05BCU,
-    0x05BDU,
-    0x05BFU,
-    0x05C0U,
-    0x02BCU,
-    0x2105U,
-    0x2113U,
-    0x2116U,
-    0x202CU,
-    0x202DU,
-    0x202EU,
-    0x200CU,
-    0x066DU,
-    0x02BDU,
-    0x0A85U,
-    0x0A05U,
-    0x3042U,
-    0x1EA3U,
-    0x0990U,
-    0x311EU,
-    0x0910U,
-    0x04D5U,
-    0x0A90U,
-    0x0A10U,
-    0x0A48U,
-    0x0639U,
-    0xFECAU,
-    0xFECBU,
-    0xFECCU,
-    0x0203U,
-    0x09C8U,
-    0x0948U,
-    0x0AC8U,
-    0x30A2U,
-    0xFF71U,
-    0x314FU,
-    0x05D0U,
-    0x0627U,
-    0xFB30U,
-    0xFE8EU,
-    0x0623U,
-    0xFE84U,
-    0x0625U,
-    0xFE88U,
-    0x05D0U,
-    0xFB4FU,
-    0x0622U,
-    0xFE82U,
-    0x0649U,
-    0xFEF0U,
-    0xFEF3U,
-    0xFEF4U,
-    0xFB2EU,
-    0xFB2FU,
-    0x2135U,
-    0x224CU,
-    0x03B1U,
-    0x03ACU,
-    0x0101U,
-    0xFF41U,
-    0xFF06U,
-    0x33C2U,
-    0x3122U,
-    0x3124U,
-    0x0E5AU,
-    0x2220U,
-    0x3008U,
-    0xFE3FU,
-    0x3009U,
-    0xFE40U,
-    0x2329U,
-    0x232AU,
-    0x212BU,
-    0x0387U,
-    0x0952U,
-    0x0982U,
-    0x0902U,
-    0x0A82U,
-    0x0105U,
-    0x3300U,
-    0x249CU,
-    0x055AU,
-    0x02BCU,
-    0xF8FFU,
-    0x2250U,
-    0x2248U,
-    0x2252U,
-    0x2245U,
-    0x318EU,
-    0x318DU,
-    0x2312U,
-    0x1E9AU,
-    0x01FBU,
-    0x1E01U,
-    0x2194U,
-    0x21E3U,
-    0x21E0U,
-    0x21E2U,
-    0x21E1U,
-    0x21D4U,
-    0x21D3U,
-    0x21D0U,
-    0x21D2U,
-    0x21D1U,
-    0x2193U,
-    0x2199U,
-    0x2198U,
-    0x21E9U,
-    0x02C5U,
-    0x02C2U,
-    0x02C3U,
-    0x02C4U,
-    0xF8E7U,
-    0x2190U,
-    0x21D0U,
-    0x21CDU,
-    0x21C6U,
-    0x21E6U,
-    0x2192U,
-    0x21CFU,
-    0x279EU,
-    0x21C4U,
-    0x21E8U,
-    0x21E4U,
-    0x21E5U,
-    0x2191U,
-    0x2195U,
-    0x21A8U,
-    0x21A8U,
-    0x2196U,
-    0x21C5U,
-    0x2197U,
-    0x21E7U,
-    0xF8E6U,
-    0xFF3EU,
-    0xFF5EU,
-    0x0251U,
-    0x0252U,
-    0x3041U,
-    0x30A1U,
-    0xFF67U,
-    0x066DU,
-    0x066DU,
-    0x2217U,
-    0xFF0AU,
-    0xFE61U,
-    0x2042U,
-    0x2243U,
-    0xFF20U,
-    0xFE6BU,
-    0x0250U,
-    0x0994U,
-    0x3120U,
-    0x0914U,
-    0x0A94U,
-    0x0A14U,
-    0x09D7U,
-    0x0A4CU,
-    0x09CCU,
-    0x094CU,
-    0x0ACCU,
-    0x093DU,
-    0x0561U,
-    0x05E2U,
-    0xFB20U,
-    0x05E2U,
-    0x09ACU,
-    0xFF3CU,
-    0x092CU,
-    0x0AACU,
-    0x0A2CU,
-    0x3070U,
-    0x0E3FU,
-    0x30D0U,
-    0xFF5CU,
-    0x3105U,
-    0x24D1U,
-    0x1E03U,
-    0x1E05U,
-    0x266CU,
-    0x2235U,
-    0x0431U,
-    0x0628U,
-    0xFE90U,
-    0xFE91U,
-    0x3079U,
-    0xFE92U,
-    0xFC9FU,
-    0xFC08U,
-    0xFC6DU,
-    0x30D9U,
-    0x0562U,
-    0x05D1U,
-    0x03B2U,
-    0x03D0U,
-    0xFB31U,
-    0xFB31U,
-    0x05D1U,
-    0xFB4CU,
-    0x09ADU,
-    0x092DU,
-    0x0AADU,
-    0x0A2DU,
-    0x0253U,
-    0x3073U,
-    0x30D3U,
-    0x0298U,
-    0x0A02U,
-    0x3331U,
-    0x25CFU,
-    0x25C6U,
-    0x25BCU,
-    0x25C4U,
-    0x25C0U,
-    0x3010U,
-    0xFE3BU,
-    0x3011U,
-    0xFE3CU,
-    0x25E3U,
-    0x25E2U,
-    0x25ACU,
-    0x25BAU,
-    0x25B6U,
-    0x25AAU,
-    0x263BU,
-    0x25A0U,
-    0x2605U,
-    0x25E4U,
-    0x25E5U,
-    0x25B4U,
-    0x25B2U,
-    0x2423U,
-    0x1E07U,
-    0x2588U,
-    0xFF42U,
-    0x0E1AU,
-    0x307CU,
-    0x30DCU,
-    0x249DU,
-    0x33C3U,
-    0xF8F4U,
-    0xF8F3U,
-    0xF8F2U,
-    0xFF5BU,
-    0xFE5BU,
-    0xF8F1U,
-    0xFE37U,
-    0xF8FEU,
-    0xF8FDU,
-    0xFF5DU,
-    0xFE5CU,
-    0xF8FCU,
-    0xFE38U,
-    0xF8F0U,
-    0xF8EFU,
-    0xFF3BU,
-    0xF8EEU,
-    0xF8FBU,
-    0xF8FAU,
-    0xFF3DU,
-    0xF8F9U,
-    0x032EU,
-    0x0306U,
-    0x032FU,
-    0x0311U,
-    0x0361U,
-    0x032AU,
-    0x033AU,
-    0x0180U,
-    0x0183U,
-    0x3076U,
-    0x30D6U,
-    0x25D8U,
-    0x2219U,
-    0x25CEU,
-    0x056EU,
-    0x099AU,
-    0x0107U,
-    0x091AU,
-    0x0A9AU,
-    0x0A1AU,
-    0x3388U,
-    0x0981U,
-    0x0310U,
-    0x0901U,
-    0x0A81U,
-    0x21EAU,
-    0x2105U,
-    0x032CU,
-    0x030CU,
-    0x21B5U,
-    0x3118U,
-    0x010DU,
-    0x1E09U,
-    0x24D2U,
-    0x0109U,
-    0x0255U,
-    0x010BU,
-    0x010BU,
-    0x33C5U,
-    0x0327U,
-    0x2103U,
-    0xFFE0U,
-    0x0579U,
-    0x099BU,
-    0x091BU,
-    0x0A9BU,
-    0x0A1BU,
-    0x3114U,
-    0x04BDU,
-    0x2713U,
-    0x0447U,
-    0x04BFU,
-    0x04B7U,
-    0x04F5U,
-    0x0573U,
-    0x04CCU,
-    0x04B9U,
-    0x03C7U,
-    0x3277U,
-    0x3217U,
-    0x3269U,
-    0x314AU,
-    0x3209U,
-    0x0E0AU,
-    0x0E08U,
-    0x0E09U,
-    0x0E0CU,
-    0x0188U,
-    0x3276U,
-    0x3216U,
-    0x3268U,
-    0x3148U,
-    0x3208U,
-    0x321CU,
-    0x25CBU,
-    0x2297U,
-    0x2299U,
-    0x2295U,
-    0x3036U,
-    0x25D0U,
-    0x25D1U,
-    0x032DU,
-    0x0302U,
-    0x2327U,
-    0x01C2U,
-    0x01C0U,
-    0x01C1U,
-    0x01C3U,
-    0x2663U,
-    0x2663U,
-    0x2667U,
-    0x33A4U,
-    0xFF43U,
-    0x33A0U,
-    0x0581U,
-    0xFF1AU,
-    0x20A1U,
-    0xFE55U,
-    0x02D1U,
-    0x02D0U,
-    0x0313U,
-    0x0315U,
-    0xF6C3U,
-    0x060CU,
-    0x055DU,
-    0xFF0CU,
-    0x0314U,
-    0x02BDU,
-    0xFE50U,
-    0x0312U,
-    0x02BBU,
-    0x263CU,
-    0x2245U,
-    0x222EU,
-    0x2303U,
-    0x0006U,
-    0x0007U,
-    0x0008U,
-    0x0018U,
-    0x000DU,
-    0x0011U,
-    0x0012U,
-    0x0013U,
-    0x0014U,
-    0x007FU,
-    0x0010U,
-    0x0019U,
-    0x0005U,
-    0x0004U,
-    0x001BU,
-    0x0017U,
-    0x0003U,
-    0x000CU,
-    0x001CU,
-    0x001DU,
-    0x0009U,
-    0x000AU,
-    0x0015U,
-    0x001EU,
-    0x000FU,
-    0x000EU,
-    0x0002U,
-    0x0001U,
-    0x001AU,
-    0x0016U,
-    0x001FU,
-    0x000BU,
-    0xF8E9U,
-    0xF6D9U,
-    0x300CU,
-    0xFF62U,
-    0xFE41U,
-    0x300DU,
-    0xFF63U,
-    0xFE42U,
-    0x337FU,
-    0x33C7U,
-    0x33C6U,
-    0x249EU,
-    0x20A2U,
-    0x0297U,
-    0x22CFU,
-    0x22CEU,
-    0xF6D1U,
-    0xF6D2U,
-    0xF6D4U,
-    0xF6D5U,
-    0x0564U,
-    0x09A6U,
-    0x0636U,
-    0x0926U,
-    0xFEBEU,
-    0xFEBFU,
-    0xFEC0U,
-    0x05BCU,
-    0x05BCU,
-    0x0AA6U,
-    0x0A26U,
-    0x3060U,
-    0x30C0U,
-    0x062FU,
-    0x05D3U,
-    0xFB33U,
-    0xFB33U,
-    0,
-    0,
-    0,
-    0,
-    0x05D3U,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0xFEAAU,
-    0x064FU,
-    0x064FU,
-    0x064CU,
-    0x064CU,
-    0x0964U,
-    0x05A7U,
-    0x05A7U,
-    0x0485U,
-    0xF6D3U,
-    0x300AU,
-    0xFE3DU,
-    0x300BU,
-    0xFE3EU,
-    0x032BU,
-    0x21D4U,
-    0x21D2U,
-    0x0965U,
-    0xF6D6U,
-    0x030FU,
-    0x222CU,
-    0x2017U,
-    0x0333U,
-    0x033FU,
-    0x02BAU,
-    0x2016U,
-    0x030EU,
-    0x3109U,
-    0x33C8U,
-    0x010FU,
-    0x1E11U,
-    0x24D3U,
-    0x1E13U,
-    0x0111U,
-    0x09A1U,
-    0x0921U,
-    0x0AA1U,
-    0x0A21U,
-    0x0688U,
-    0xFB89U,
-    0x095CU,
-    0x09A2U,
-    0x0922U,
-    0x0AA2U,
-    0x0A22U,
-    0x1E0BU,
-    0x1E0DU,
-    0x066BU,
-    0x066BU,
-    0x0434U,
-    0x05ADU,
-    0x3067U,
-    0x03EFU,
-    0x30C7U,
-    0x232BU,
-    0x2326U,
-    0x03B4U,
-    0x018DU,
-    0x09F8U,
-    0x02A4U,
-    0x09A7U,
-    0x0927U,
-    0x0AA7U,
-    0x0A27U,
-    0x0257U,
-    0x0385U,
-    0x0344U,
-    0x2666U,
-    0x2662U,
-    0xF6D7U,
-    0x0324U,
-    0x0308U,
-    0xF6D8U,
-    0x0385U,
-    0x3062U,
-    0x30C2U,
-    0x3003U,
-    0x2223U,
-    0x2215U,
-    0x0452U,
-    0x2593U,
-    0x1E0FU,
-    0x3397U,
-    0x0111U,
-    0xFF44U,
-    0x2584U,
-    0x0E0EU,
-    0x0E14U,
-    0x3069U,
-    0x30C9U,
-    0xFF04U,
-    0xFE69U,
-    0x20ABU,
-    0x3326U,
-    0x0307U,
-    0x0323U,
-    0x0323U,
-    0x30FBU,
-    0xF6BEU,
-    0x0284U,
-    0x22C5U,
-    0x25CCU,
-    0xFB1FU,
-    0xFB1FU,
-    0x031EU,
-    0x02D5U,
-    0x249FU,
-    0x0256U,
-    0x018CU,
-    0x3065U,
-    0x30C5U,
-    0x01F3U,
-    0x02A3U,
-    0x01C6U,
-    0x02A5U,
-    0x04E1U,
-    0x0455U,
-    0x045FU,
-    0x2641U,
-    0x098FU,
-    0x311CU,
-    0x0115U,
-    0x090DU,
-    0x0A8DU,
-    0x0945U,
-    0x0AC5U,
-    0x011BU,
-    0x1E1DU,
-    0x0565U,
-    0x0587U,
-    0x24D4U,
-    0x1EBFU,
-    0x1E19U,
-    0x1EC7U,
-    0x1EC1U,
-    0x1EC3U,
-    0x1EC5U,
-    0x0454U,
-    0x0205U,
-    0x090FU,
-    0x0117U,
-    0x0117U,
-    0x1EB9U,
-    0x0A0FU,
-    0x0A47U,
-    0x0444U,
-    0x0A8FU,
-    0x0567U,
-    0x311DU,
-    0x3048U,
-    0x1EBBU,
-    0x311FU,
-    0x0668U,
-    0x09EEU,
-    0x2467U,
-    0x2791U,
-    0x096EU,
-    0x2471U,
-    0x2485U,
-    0x2499U,
-    0x0AEEU,
-    0x0A6EU,
-    0x0668U,
-    0x3028U,
-    0x266BU,
-    0x3227U,
-    0xFF18U,
-    0x247BU,
-    0x248FU,
-    0x06F8U,
-    0x2177U,
-    0x0E58U,
-    0x0207U,
-    0x0465U,
-    0x30A8U,
-    0xFF74U,
-    0x0A74U,
-    0x3154U,
-    0x043BU,
-    0x2208U,
-    0x246AU,
-    0x247EU,
-    0x2492U,
-    0x217AU,
-    0x22EEU,
-    0x0113U,
-    0x1E17U,
-    0x1E15U,
-    0x043CU,
-    0xFE31U,
-    0xFF45U,
-    0x055BU,
-    0x2205U,
-    0x3123U,
-    0x043DU,
-    0xFE32U,
-    0x04A3U,
-    0x014BU,
-    0x3125U,
-    0x04A5U,
-    0x04C8U,
-    0x2002U,
-    0x0119U,
-    0x3153U,
-    0x025BU,
-    0x029AU,
-    0x025CU,
-    0x025EU,
-    0x025DU,
-    0x24A0U,
-    0x03B5U,
-    0x03ADU,
-    0xFF1DU,
-    0xFE66U,
-    0x207CU,
-    0x2261U,
-    0x3126U,
-    0x0440U,
-    0x0258U,
-    0x044DU,
-    0x0441U,
-    0x04ABU,
-    0x0283U,
-    0x0286U,
-    0x090EU,
-    0x0946U,
-    0x01AAU,
-    0x0285U,
-    0x3047U,
-    0x30A7U,
-    0xFF6AU,
-    0x212EU,
-    0x03B7U,
-    0x0568U,
-    0x03AEU,
-    0x1EBDU,
-    0x1E1BU,
-    0x0591U,
-    0x0591U,
-    0x0591U,
-    0x0591U,
-    0x01DDU,
-    0x3161U,
-    0x20ACU,
-    0x09C7U,
-    0x0947U,
-    0x0AC7U,
-    0x055CU,
-    0x203CU,
-    0xFF01U,
-    0x2203U,
-    0x0292U,
-    0x01EFU,
-    0x0293U,
-    0x01B9U,
-    0x01BAU,
-    0x095EU,
-    0x0A5EU,
-    0x2109U,
-    0x064EU,
-    0x064EU,
-    0x064BU,
-    0x3108U,
-    0x24D5U,
-    0x1E1FU,
-    0x0641U,
-    0x0586U,
-    0xFED2U,
-    0xFED3U,
-    0xFED4U,
-    0x03E5U,
-    0x2640U,
-    0x246EU,
-    0x2482U,
-    0x2496U,
-    0x25A0U,
-    0x25ACU,
-    0x05DAU,
-    0xFB3AU,
-    0xFB3AU,
-    0x05DAU,
-    0,
-    0,
-    0,
-    0,
-    0x05DDU,
-    0x05DDU,
-    0x05DFU,
-    0x05DFU,
-    0x05E3U,
-    0x05E3U,
-    0x05E5U,
-    0x05E5U,
-    0x02C9U,
-    0x25C9U,
-    0x0473U,
-    0x0665U,
-    0x09EBU,
-    0x2464U,
-    0x278EU,
-    0x096BU,
-    0x0AEBU,
-    0x0A6BU,
-    0x0665U,
-    0x3025U,
-    0x3224U,
-    0xFF15U,
-    0x2478U,
-    0x248CU,
-    0x06F5U,
-    0x2174U,
-    0x0E55U,
-    0xFF46U,
-    0x3399U,
-    0x0E1FU,
-    0x0E1DU,
-    0x0E4FU,
-    0x2200U,
-    0x0664U,
-    0x09EAU,
-    0x2463U,
-    0x278DU,
-    0x096AU,
-    0x0AEAU,
-    0x0A6AU,
-    0x0664U,
-    0x3024U,
-    0x3223U,
-    0xFF14U,
-    0x09F7U,
-    0x2477U,
-    0x248BU,
-    0x06F4U,
-    0x2173U,
-    0x246DU,
-    0x2481U,
-    0x2495U,
-    0x0E54U,
-    0x02CBU,
-    0x24A1U,
-    0x20A3U,
-    0x0997U,
-    0x01F5U,
-    0x0917U,
-    0x06AFU,
-    0xFB93U,
-    0xFB94U,
-    0xFB95U,
-    0x0A97U,
-    0x0A17U,
-    0x304CU,
-    0x30ACU,
-    0x03B3U,
-    0x0263U,
-    0x02E0U,
-    0x03EBU,
-    0x310DU,
-    0x011FU,
-    0x01E7U,
-    0x0123U,
-    0x24D6U,
-    0x011DU,
-    0x0123U,
-    0x0121U,
-    0x0121U,
-    0x0433U,
-    0x3052U,
-    0x30B2U,
-    0x2251U,
-    0x059CU,
-    0x05F3U,
-    0x059DU,
-    0x059EU,
-    0x05F4U,
-    0x3013U,
-    0x0998U,
-    0x0572U,
-    0x0918U,
-    0x0A98U,
-    0x0A18U,
-    0x063AU,
-    0xFECEU,
-    0xFECFU,
-    0xFED0U,
-    0x0495U,
-    0x0493U,
-    0x0491U,
-    0x095AU,
-    0x0A5AU,
-    0x0260U,
-    0x3393U,
-    0x304EU,
-    0x30AEU,
-    0x0563U,
-    0x05D2U,
-    0xFB32U,
-    0xFB32U,
-    0x05D2U,
-    0x0453U,
-    0x01BEU,
-    0x0294U,
-    0x0296U,
-    0x02C0U,
-    0x0295U,
-    0x02C1U,
-    0x02E4U,
-    0x02A1U,
-    0x02A2U,
-    0x1E21U,
-    0xFF47U,
-    0x3054U,
-    0x30B4U,
-    0x24A2U,
-    0x33ACU,
-    0x2207U,
-    0x0316U,
-    0x0300U,
-    0x0300U,
-    0x0953U,
-    0x02CEU,
-    0xFF40U,
-    0x0340U,
-    0x2265U,
-    0x22DBU,
-    0xFF1EU,
-    0x2273U,
-    0x2277U,
-    0x2267U,
-    0xFE65U,
-    0x0261U,
-    0x01E5U,
-    0x3050U,
-    0x30B0U,
-    0x3318U,
-    0x33C9U,
-    0x04A9U,
-    0x06C1U,
-    0x09B9U,
-    0x04B3U,
-    0x0939U,
-    0x0AB9U,
-    0x0A39U,
-    0x062DU,
-    0xFEA2U,
-    0xFEA3U,
-    0x306FU,
-    0xFEA4U,
-    0x332AU,
-    0x30CFU,
-    0xFF8AU,
-    0x0A4DU,
-    0x0621U,
-    0,
-    0,
-    0,
-    0,
-    0x0621U,
-    0,
-    0,
-    0,
-    0x3164U,
-    0x044AU,
-    0x21BCU,
-    0x21C0U,
-    0x33CAU,
-    0x05B2U,
-    0x05B2U,
-    0x05B2U,
-    0x05B2U,
-    0x05B2U,
-    0x05B2U,
-    0x05B2U,
-    0x05B2U,
-    0x05B3U,
-    0x05B3U,
-    0x05B3U,
-    0x05B3U,
-    0x05B3U,
-    0x05B3U,
-    0x05B3U,
-    0x05B3U,
-    0x05B1U,
-    0x05B1U,
-    0x05B1U,
-    0x05B1U,
-    0x05B1U,
-    0x05B1U,
-    0x05B1U,
-    0x05B1U,
-    0x0127U,
-    0x310FU,
-    0x1E2BU,
-    0x1E29U,
-    0x24D7U,
-    0x0125U,
-    0x1E27U,
-    0x1E23U,
-    0x1E25U,
-    0x05D4U,
-    0x2665U,
-    0x2665U,
-    0x2661U,
-    0xFB34U,
-    0xFB34U,
-    0x06C1U,
-    0x0647U,
-    0x05D4U,
-    0xFBA7U,
-    0xFEEAU,
-    0xFEEAU,
-    0xFBA5U,
-    0xFBA4U,
-    0xFBA8U,
-    0xFEEBU,
-    0x3078U,
-    0xFBA9U,
-    0xFEECU,
-    0x337BU,
-    0x30D8U,
-    0xFF8DU,
-    0x3336U,
-    0x0267U,
-    0x3339U,
-    0x05D7U,
-    0x05D7U,
-    0x0266U,
-    0x02B1U,
-    0x327BU,
-    0x321BU,
-    0x326DU,
-    0x314EU,
-    0x320DU,
-    0x3072U,
-    0x30D2U,
-    0xFF8BU,
-    0x05B4U,
-    0x05B4U,
-    0x05B4U,
-    0x05B4U,
-    0x05B4U,
-    0x05B4U,
-    0x05B4U,
-    0x05B4U,
-    0x1E96U,
-    0xFF48U,
-    0x0570U,
-    0x0E2BU,
-    0x307BU,
-    0x30DBU,
-    0xFF8EU,
-    0x05B9U,
-    0x05B9U,
-    0x05B9U,
-    0x05B9U,
-    0x05B9U,
-    0x05B9U,
-    0x05B9U,
-    0x05B9U,
-    0x0E2EU,
-    0x0309U,
-    0x0309U,
-    0x0321U,
-    0x0322U,
-    0x3342U,
-    0x03E9U,
-    0x2015U,
-    0x031BU,
-    0x2668U,
-    0x2302U,
-    0x24A3U,
-    0x02B0U,
-    0x0265U,
-    0x3075U,
-    0x3333U,
-    0x30D5U,
-    0xFF8CU,
-    0x030BU,
-    0x0195U,
-    0xFF0DU,
-    0xFE63U,
-    0x2010U,
-    0x044FU,
-    0x0987U,
-    0x3127U,
-    0x012DU,
-    0x01D0U,
-    0x24D8U,
-    0x0456U,
-    0x0209U,
-    0x328FU,
-    0x328BU,
-    0x323FU,
-    0x323AU,
-    0x32A5U,
-    0x3006U,
-    0x3001U,
-    0xFF64U,
-    0x3237U,
-    0x32A3U,
-    0x322FU,
-    0x323DU,
-    0x329DU,
-    0x3240U,
-    0x3296U,
-    0x3236U,
-    0x322BU,
-    0x3232U,
-    0x32A4U,
-    0x3005U,
-    0x3298U,
-    0x3238U,
-    0x32A7U,
-    0x32A6U,
-    0x32A9U,
-    0x322EU,
-    0x322AU,
-    0x3234U,
-    0x3002U,
-    0x329EU,
-    0x3243U,
-    0x3239U,
-    0x323EU,
-    0x32A8U,
-    0x3299U,
-    0x3242U,
-    0x3233U,
-    0x3000U,
-    0x3235U,
-    0x3231U,
-    0x323BU,
-    0x3230U,
-    0x323CU,
-    0x322CU,
-    0x322DU,
-    0x3007U,
-    0x328EU,
-    0x328AU,
-    0x3294U,
-    0x3290U,
-    0x328CU,
-    0x328DU,
-    0x0907U,
-    0x1E2FU,
-    0x04E5U,
-    0x1ECBU,
-    0x04D7U,
-    0x0435U,
-    0x3275U,
-    0x3215U,
-    0x3267U,
-    0x3147U,
-    0x3207U,
-    0x0A87U,
-    0x0A07U,
-    0x3044U,
-    0x1EC9U,
-    0x0988U,
-    0x0438U,
-    0x0908U,
-    0x0A88U,
-    0x0A08U,
-    0x0A40U,
-    0x020BU,
-    0x0439U,
-    0x09C0U,
-    0x0940U,
-    0x0AC0U,
-    0x0133U,
-    0x30A4U,
-    0xFF72U,
-    0x3163U,
-    0x02DCU,
-    0x05ACU,
-    0x012BU,
-    0x04E3U,
-    0x2253U,
-    0x0A3FU,
-    0xFF49U,
-    0x2206U,
-    0x221EU,
-    0x056BU,
-    0x222BU,
-    0x2321U,
-    0x2321U,
-    0xF8F5U,
-    0x2320U,
-    0x2320U,
-    0x2229U,
-    0x3305U,
-    0x25D8U,
-    0x25D9U,
-    0x263BU,
-    0x0451U,
-    0x012FU,
-    0x03B9U,
-    0x03CAU,
-    0x0390U,
-    0x0269U,
-    0x03AFU,
-    0x24A4U,
-    0x0A72U,
-    0x3043U,
-    0x30A3U,
-    0xFF68U,
-    0x09FAU,
-    0x0268U,
-    0x309DU,
-    0x30FDU,
-    0x0129U,
-    0x1E2DU,
-    0x3129U,
-    0x044EU,
-    0x09BFU,
-    0x093FU,
-    0x0ABFU,
-    0x0475U,
-    0x0477U,
-    0x0571U,
-    0x099CU,
-    0x091CU,
-    0x0A9CU,
-    0x0A1CU,
-    0x3110U,
-    0x01F0U,
-    0x24D9U,
-    0x0135U,
-    0x029DU,
-    0x025FU,
-    0x0458U,
-    0x062CU,
-    0xFE9EU,
-    0xFE9FU,
-    0xFEA0U,
-    0x0698U,
-    0xFB8BU,
-    0x099DU,
-    0x091DU,
-    0x0A9DU,
-    0x0A1DU,
-    0x057BU,
-    0x3004U,
-    0xFF4AU,
-    0x24A5U,
-    0x02B2U,
-    0x04A1U,
-    0x0995U,
-    0x1E31U,
-    0x043AU,
-    0x049BU,
-    0x0915U,
-    0x05DBU,
-    0x0643U,
-    0xFB3BU,
-    0xFB3BU,
-    0xFEDAU,
-    0x05DBU,
-    0xFEDBU,
-    0xFEDCU,
-    0xFB4DU,
-    0x0A95U,
-    0x0A15U,
-    0x304BU,
-    0x04C4U,
-    0x30ABU,
-    0xFF76U,
-    0x03BAU,
-    0x03F0U,
-    0x3171U,
-    0x3184U,
-    0x3178U,
-    0x3179U,
-    0x330DU,
-    0x0640U,
-    0x0640U,
-    0x30F5U,
-    0x3384U,
-    0x0650U,
-    0x064DU,
-    0x049FU,
-    0xFF70U,
-    0x049DU,
-    0x310EU,
-    0x3389U,
-    0x01E9U,
-    0x0137U,
-    0x24DAU,
-    0x0137U,
-    0x1E33U,
-    0x0584U,
-    0x3051U,
-    0x30B1U,
-    0xFF79U,
-    0x056FU,
-    0x30F6U,
-    0x0138U,
-    0x0996U,
-    0x0445U,
-    0x0916U,
-    0x0A96U,
-    0x0A16U,
-    0x062EU,
-    0xFEA6U,
-    0xFEA7U,
-    0xFEA8U,
-    0x03E7U,
-    0x0959U,
-    0x0A59U,
-    0x3278U,
-    0x3218U,
-    0x326AU,
-    0x314BU,
-    0x320AU,
-    0x0E02U,
-    0x0E05U,
-    0x0E03U,
-    0x0E04U,
-    0x0E5BU,
-    0x0199U,
-    0x0E06U,
-    0x3391U,
-    0x304DU,
-    0x30ADU,
-    0xFF77U,
-    0x3315U,
-    0x3316U,
-    0x3314U,
-    0x326EU,
-    0x320EU,
-    0x3260U,
-    0x3131U,
-    0x3200U,
-    0x3133U,
-    0x045CU,
-    0x1E35U,
-    0x3398U,
-    0x33A6U,
-    0xFF4BU,
-    0x33A2U,
-    0x3053U,
-    0x33C0U,
-    0x0E01U,
-    0x30B3U,
-    0xFF7AU,
-    0x331EU,
-    0x0481U,
-    0x327FU,
-    0x0343U,
-    0x24A6U,
-    0x33AAU,
-    0x046FU,
-    0x33CFU,
-    0x029EU,
-    0x304FU,
-    0x30AFU,
-    0xFF78U,
-    0x33B8U,
-    0x33BEU,
-    0x09B2U,
-    0x013AU,
-    0x0932U,
-    0x0AB2U,
-    0x0A32U,
-    0x0E45U,
-    0xFEFCU,
-    0xFEF8U,
-    0xFEF7U,
-    0xFEFAU,
-    0xFEF9U,
-    0xFEFBU,
-    0xFEF6U,
-    0xFEF5U,
-    0x0644U,
-    0x03BBU,
-    0x019BU,
-    0x05DCU,
-    0xFB3CU,
-    0xFB3CU,
-    0x05DCU,
-    0,
-    0,
-    0,
-    0,
-    0xFEDEU,
-    0xFCCAU,
-    0xFEDFU,
-    0xFCC9U,
-    0xFCCBU,
-    0xFDF2U,
-    0xFEE0U,
-    0xFD88U,
-    0xFCCCU,
-    0,
-    0,
-    0x25EFU,
-    0x019AU,
-    0x026CU,
-    0x310CU,
-    0x013EU,
-    0x013CU,
-    0x24DBU,
-    0x1E3DU,
-    0x013CU,
-    0x0140U,
-    0x0140U,
-    0x1E37U,
-    0x1E39U,
-    0x031AU,
-    0x0318U,
-    0x2264U,
-    0x22DAU,
-    0xFF1CU,
-    0x2272U,
-    0x2276U,
-    0x2266U,
-    0xFE64U,
-    0x026EU,
-    0x258CU,
-    0x026DU,
-    0x20A4U,
-    0x056CU,
-    0x01C9U,
-    0x0459U,
-    0xF6C0U,
-    0x0933U,
-    0x0AB3U,
-    0x1E3BU,
-    0x0934U,
-    0x09E1U,
-    0x0961U,
-    0x09E3U,
-    0x0963U,
-    0x026BU,
-    0xFF4CU,
-    0x33D0U,
-    0x0E2CU,
-    0x2227U,
-    0x2310U,
-    0x2228U,
-    0x0E25U,
-    0x017FU,
-    0xFE4EU,
-    0x0332U,
-    0xFE4DU,
-    0x25CAU,
-    0x24A7U,
-    0x2113U,
-    0x2591U,
-    0x0E26U,
-    0x098CU,
-    0x090CU,
-    0x09E2U,
-    0x0962U,
-    0x33D3U,
-    0x09AEU,
-    0x0331U,
-    0x0304U,
-    0x02CDU,
-    0xFFE3U,
-    0x1E3FU,
-    0x092EU,
-    0x0AAEU,
-    0x0A2EU,
-    0x05A4U,
-    0x05A4U,
-    0x307EU,
-    0xF895U,
-    0xF894U,
-    0x0E4BU,
-    0xF893U,
-    0xF88CU,
-    0xF88BU,
-    0x0E48U,
-    0xF88AU,
-    0xF884U,
-    0x0E31U,
-    0xF889U,
-    0x0E47U,
-    0xF88FU,
-    0xF88EU,
-    0x0E49U,
-    0xF88DU,
-    0xF892U,
-    0xF891U,
-    0x0E4AU,
-    0xF890U,
-    0x0E46U,
-    0x30DEU,
-    0xFF8FU,
-    0x2642U,
-    0x3347U,
-    0x05BEU,
-    0x2642U,
-    0x05AFU,
-    0x3383U,
-    0x3107U,
-    0x33D4U,
-    0x24DCU,
-    0x33A5U,
-    0x1E41U,
-    0x1E43U,
-    0x0645U,
-    0xFEE2U,
-    0xFEE3U,
-    0xFEE4U,
-    0xFCD1U,
-    0xFC48U,
-    0x334DU,
-    0x3081U,
-    0x337EU,
-    0x30E1U,
-    0xFF92U,
-    0x05DEU,
-    0xFB3EU,
-    0xFB3EU,
-    0x05DEU,
-    0x0574U,
-    0x05A5U,
-    0x05A6U,
-    0x05A6U,
-    0x05A5U,
-    0x0271U,
-    0x3392U,
-    0xFF65U,
-    0x00B7U,
-    0x3272U,
-    0x3212U,
-    0x3264U,
-    0x3141U,
-    0x3170U,
-    0x3204U,
-    0x316EU,
-    0x316FU,
-    0x307FU,
-    0x30DFU,
-    0xFF90U,
-    0x0320U,
-    0x2296U,
-    0x02D7U,
-    0x2213U,
-    0x2032U,
-    0x334AU,
-    0x3349U,
-    0x0270U,
-    0x3396U,
-    0x33A3U,
-    0xFF4DU,
-    0x339FU,
-    0x3082U,
-    0x33C1U,
-    0x30E2U,
-    0xFF93U,
-    0x33D6U,
-    0x0E21U,
-    0x33A7U,
-    0x33A8U,
-    0x24A8U,
-    0x33ABU,
-    0x33B3U,
-    0x026FU,
-    0x00B5U,
-    0x3382U,
-    0x226BU,
-    0x226AU,
-    0x338CU,
-    0x03BCU,
-    0x338DU,
-    0x3080U,
-    0x30E0U,
-    0xFF91U,
-    0x3395U,
-    0x339BU,
-    0x05A3U,
-    0x05A3U,
-    0x266AU,
-    0x266BU,
-    0x266DU,
-    0x266FU,
-    0x33B2U,
-    0x33B6U,
-    0x33BCU,
-    0x33B9U,
-    0x33B7U,
-    0x33BFU,
-    0x33BDU,
-    0x09A8U,
-    0x2207U,
-    0x0144U,
-    0x0928U,
-    0x0AA8U,
-    0x0A28U,
-    0x306AU,
-    0x30CAU,
-    0xFF85U,
-    0x0149U,
-    0x3381U,
-    0x310BU,
-    0x00A0U,
-    0x0148U,
-    0x0146U,
-    0x24DDU,
-    0x1E4BU,
-    0x0146U,
-    0x1E45U,
-    0x1E47U,
-    0x306DU,
-    0x30CDU,
-    0xFF88U,
-    0x20AAU,
-    0x338BU,
-    0x0999U,
-    0x0919U,
-    0x0A99U,
-    0x0A19U,
-    0x0E07U,
-    0x3093U,
-    0x0272U,
-    0x0273U,
-    0x326FU,
-    0x320FU,
-    0x3135U,
-    0x3261U,
-    0x3136U,
-    0x3134U,
-    0x3168U,
-    0x3201U,
-    0x3167U,
-    0x3166U,
-    0x306BU,
-    0x30CBU,
-    0xFF86U,
-    0xF899U,
-    0x0E4DU,
-    0x0669U,
-    0x09EFU,
-    0x2468U,
-    0x2792U,
-    0x096FU,
-    0x0AEFU,
-    0x0A6FU,
-    0x0669U,
-    0x3029U,
-    0x3228U,
-    0xFF19U,
-    0x247CU,
-    0x2490U,
-    0x06F9U,
-    0x2178U,
-    0x2472U,
-    0x2486U,
-    0x249AU,
-    0x0E59U,
-    0x01CCU,
-    0x045AU,
-    0x30F3U,
-    0xFF9DU,
-    0x019EU,
-    0x1E49U,
-    0xFF4EU,
-    0x339AU,
-    0x09A3U,
-    0x0923U,
-    0x0AA3U,
-    0x0A23U,
-    0x0929U,
-    0x306EU,
-    0x30CEU,
-    0xFF89U,
-    0x00A0U,
-    0x0E13U,
-    0x0E19U,
-    0x0646U,
-    0xFEE6U,
-    0x06BAU,
-    0xFB9FU,
-    0,
-    0xFEE7U,
-    0xFCD2U,
-    0xFC4BU,
-    0xFEE8U,
-    0xFCD5U,
-    0xFC4EU,
-    0xFC8DU,
-    0x220CU,
-    0x2209U,
-    0x2209U,
-    0x2260U,
-    0x226FU,
-    0x2271U,
-    0x2279U,
-    0x2262U,
-    0x226EU,
-    0x2270U,
-    0x2226U,
-    0x2280U,
-    0x2284U,
-    0x2281U,
-    0x2285U,
-    0x0576U,
-    0x24A9U,
-    0x33B1U,
-    0x03BDU,
-    0x306CU,
-    0x30CCU,
-    0xFF87U,
-    0x09BCU,
-    0x093CU,
-    0x0ABCU,
-    0x0A3CU,
-    0xFF03U,
-    0xFE5FU,
-    0x0374U,
-    0x0375U,
-    0x2116U,
-    0x05E0U,
-    0xFB40U,
-    0xFB40U,
-    0x05E0U,
-    0x33B5U,
-    0x33BBU,
-    0x099EU,
-    0x091EU,
-    0x0A9EU,
-    0x0A1EU,
-    0x0E2DU,
-    0x0275U,
-    0x04E9U,
-    0x04EBU,
-    0x0993U,
-    0x311BU,
-    0x014FU,
-    0x0911U,
-    0x0A91U,
-    0x0949U,
-    0x0AC9U,
-    0x01D2U,
-    0x24DEU,
-    0x1ED1U,
-    0x1ED9U,
-    0x1ED3U,
-    0x1ED5U,
-    0x1ED7U,
-    0x043EU,
-    0x0151U,
-    0x020DU,
-    0x0913U,
-    0x04E7U,
-    0x1ECDU,
-    0x315AU,
-    0x0328U,
-    0x0A93U,
-    0x0585U,
-    0x304AU,
-    0x1ECFU,
-    0x01A1U,
-    0x1EDBU,
-    0x1EE3U,
-    0x1EDDU,
-    0x1EDFU,
-    0x1EE1U,
-    0x0151U,
-    0x01A3U,
-    0x020FU,
-    0x30AAU,
-    0xFF75U,
-    0x3157U,
-    0x05ABU,
-    0x014DU,
-    0x1E53U,
-    0x1E51U,
-    0x0950U,
-    0x03C9U,
-    0x03D6U,
-    0x0461U,
-    0x0277U,
-    0x047BU,
-    0x047DU,
-    0x03CEU,
-    0x0AD0U,
-    0x03BFU,
-    0x03CCU,
-    0xFF4FU,
-    0x0661U,
-    0x09E7U,
-    0x2460U,
-    0x278AU,
-    0x0967U,
-    0x0AE7U,
-    0x0A67U,
-    0x0661U,
-    0x3021U,
-    0x3220U,
-    0xFF11U,
-    0x09F4U,
-    0x2474U,
-    0x2488U,
-    0x06F1U,
-    0x2170U,
-    0x0E51U,
-    0x01EBU,
-    0x01EDU,
-    0x0A13U,
-    0x0A4BU,
-    0x0254U,
-    0x24AAU,
-    0x25E6U,
-    0x2325U,
-    0x221FU,
-    0x0912U,
-    0x094AU,
-    0x01FFU,
-    0x3049U,
-    0x30A9U,
-    0xFF6BU,
-    0x01FFU,
-    0x047FU,
-    0x1E4DU,
-    0x1E4FU,
-    0x3121U,
-    0x203EU,
-    0xFE4AU,
-    0x0305U,
-    0xFE49U,
-    0xFE4CU,
-    0xFE4BU,
-    0x00AFU,
-    0x09CBU,
-    0x094BU,
-    0x0ACBU,
-    0x3380U,
-    0x332BU,
-    0x09AAU,
-    0x1E55U,
-    0x092AU,
-    0x21DFU,
-    0x21DEU,
-    0x0AAAU,
-    0x0A2AU,
-    0x3071U,
-    0x0E2FU,
-    0x30D1U,
-    0x0484U,
-    0x04C0U,
-    0x317FU,
-    0x2225U,
-    0xFD3EU,
-    0xF8EDU,
-    0xF8ECU,
-    0xFF08U,
-    0xFE59U,
-    0xF8EBU,
-    0xFE35U,
-    0xFD3FU,
-    0xF8F8U,
-    0xF8F7U,
-    0xFF09U,
-    0xFE5AU,
-    0xF8F6U,
-    0xFE36U,
-    0x2202U,
-    0x05C0U,
-    0x0599U,
-    0x33A9U,
-    0x05B7U,
-    0x05B7U,
-    0x05B7U,
-    0x05B7U,
-    0x05B7U,
-    0x05B7U,
-    0x05B7U,
-    0x05B7U,
-    0x05A1U,
-    0x3106U,
-    0x24DFU,
-    0x1E57U,
-    0x05E4U,
-    0x043FU,
-    0xFB44U,
-    0xFB44U,
-    0x333BU,
-    0xFB43U,
-    0x067EU,
-    0x057AU,
-    0x05E4U,
-    0xFB57U,
-    0xFB58U,
-    0x307AU,
-    0xFB59U,
-    0x30DAU,
-    0x04A7U,
-    0xFB4EU,
-    0x066AU,
-    0xFF05U,
-    0xFE6AU,
-    0x0589U,
-    0xFF61U,
-    0xFF0EU,
-    0xFE52U,
-    0x0342U,
-    0x22A5U,
-    0x20A7U,
-    0x338AU,
-    0x09ABU,
-    0x092BU,
-    0x0AABU,
-    0x0A2BU,
-    0x03C6U,
-    0x03D5U,
-    0x327AU,
-    0x321AU,
-    0x326CU,
-    0x314DU,
-    0x320CU,
-    0x0278U,
-    0x0E3AU,
-    0x03D5U,
-    0x01A5U,
-    0x0E1EU,
-    0x0E1CU,
-    0x0E20U,
-    0x03C0U,
-    0x3273U,
-    0x3213U,
-    0x3176U,
-    0x3265U,
-    0x3172U,
-    0x3142U,
-    0x3205U,
-    0x3174U,
-    0x3144U,
-    0x3175U,
-    0x3177U,
-    0x3173U,
-    0x3074U,
-    0x30D4U,
-    0x03D6U,
-    0x0583U,
-    0x031FU,
-    0x2295U,
-    0x02D6U,
-    0xFF0BU,
-    0xFE62U,
-    0x207AU,
-    0xFF50U,
-    0x33D8U,
-    0x307DU,
-    0x261FU,
-    0x261CU,
-    0x261EU,
-    0x261DU,
-    0x30DDU,
-    0x0E1BU,
-    0x3012U,
-    0x3020U,
-    0x24ABU,
-    0x227AU,
-    0x211EU,
-    0x02B9U,
-    0x2035U,
-    0x220FU,
-    0x2305U,
-    0x30FCU,
-    0x2318U,
-    0x2282U,
-    0x2283U,
-    0x2237U,
-    0x221DU,
-    0x03C8U,
-    0x0471U,
-    0x0486U,
-    0x33B0U,
-    0x3077U,
-    0x30D7U,
-    0x33B4U,
-    0x33BAU,
-    0x0958U,
-    0x05A8U,
-    0x0642U,
-    0xFED6U,
-    0xFED7U,
-    0xFED8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x05B8U,
-    0x059FU,
-    0x3111U,
-    0x24E0U,
-    0x02A0U,
-    0xFF51U,
-    0x05E7U,
-    0xFB47U,
-    0xFB47U,
-    0,
-    0,
-    0,
-    0,
-    0x05E7U,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0x24ACU,
-    0x2669U,
-    0x05BBU,
-    0x05BBU,
-    0x05BBU,
-    0x05BBU,
-    0x05BBU,
-    0x05BBU,
-    0x05BBU,
-    0x05BBU,
-    0x061FU,
-    0x055EU,
-    0x037EU,
-    0xFF1FU,
-    0xFF02U,
-    0x301EU,
-    0x301DU,
-    0x201BU,
-    0x201BU,
-    0x0149U,
-    0xFF07U,
-    0x057CU,
-    0x09B0U,
-    0x0155U,
-    0x0930U,
-    0x221AU,
-    0xF8E5U,
-    0x33AEU,
-    0x33AFU,
-    0x33ADU,
-    0x05BFU,
-    0x05BFU,
-    0x0AB0U,
-    0x0A30U,
-    0x3089U,
-    0x30E9U,
-    0xFF97U,
-    0x09F1U,
-    0x09F0U,
-    0x0264U,
-    0x2236U,
-    0x3116U,
-    0x0159U,
-    0x0157U,
-    0x24E1U,
-    0x0157U,
-    0x0211U,
-    0x1E59U,
-    0x1E5BU,
-    0x1E5DU,
-    0x203BU,
-    0x2286U,
-    0x2287U,
-    0xF8E8U,
-    0xF6DAU,
-    0x0631U,
-    0x0580U,
-    0xFEAEU,
-    0x308CU,
-    0,
-    0x30ECU,
-    0xFF9AU,
-    0x05E8U,
-    0xFB48U,
-    0,
-    0,
-    0,
-    0,
-    0x05E8U,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0x223DU,
-    0x0597U,
-    0x0597U,
-    0x2310U,
-    0x027EU,
-    0x027FU,
-    0x09DDU,
-    0x095DU,
-    0x03C1U,
-    0x027DU,
-    0x027BU,
-    0x02B5U,
-    0x03F1U,
-    0x02DEU,
-    0x3271U,
-    0x3211U,
-    0x3263U,
-    0x3140U,
-    0x313AU,
-    0x3169U,
-    0x3139U,
-    0x313BU,
-    0x316CU,
-    0x3203U,
-    0x313FU,
-    0x313CU,
-    0x316BU,
-    0x313DU,
-    0x313EU,
-    0x316AU,
-    0x316DU,
-    0x221FU,
-    0x0319U,
-    0x22BFU,
-    0x308AU,
-    0x30EAU,
-    0xFF98U,
-    0x0325U,
-    0x030AU,
-    0x02BFU,
-    0x0559U,
-    0x031CU,
-    0x02D3U,
-    0x02BEU,
-    0x0339U,
-    0x02D2U,
-    0x0213U,
-    0x3351U,
-    0x1E5FU,
-    0x027CU,
-    0x027AU,
-    0xFF52U,
-    0x308DU,
-    0x30EDU,
-    0xFF9BU,
-    0x0E23U,
-    0x24ADU,
-    0x09DCU,
-    0x0931U,
-    0x0A5CU,
-    0x0691U,
-    0xFB8DU,
-    0x09E0U,
-    0x0960U,
-    0x0AE0U,
-    0x09C4U,
-    0x0944U,
-    0x0AC4U,
-    0x2590U,
-    0x0279U,
-    0x02B4U,
-    0x308BU,
-    0x30EBU,
-    0xFF99U,
-    0x09F2U,
-    0x09F3U,
-    0x0E24U,
-    0x098BU,
-    0x090BU,
-    0x0A8BU,
-    0x09C3U,
-    0x0943U,
-    0x0AC3U,
-    0x09B8U,
-    0x015BU,
-    0x1E65U,
-    0x0635U,
-    0x0938U,
-    0xFEBAU,
-    0xFEBBU,
-    0xFEBCU,
-    0x0AB8U,
-    0x0A38U,
-    0x3055U,
-    0x30B5U,
-    0xFF7BU,
-    0xFDFAU,
-    0x05E1U,
-    0xFB41U,
-    0xFB41U,
-    0x05E1U,
-    0x0E32U,
-    0x0E41U,
-    0x0E44U,
-    0x0E43U,
-    0x0E33U,
-    0x0E30U,
-    0x0E40U,
-    0xF886U,
-    0x0E35U,
-    0xF885U,
-    0x0E34U,
-    0x0E42U,
-    0xF888U,
-    0x0E37U,
-    0xF887U,
-    0x0E36U,
-    0x0E38U,
-    0x0E39U,
-    0x3119U,
-    0x1E67U,
-    0x015FU,
-    0x0259U,
-    0x04D9U,
-    0x04DBU,
-    0x025AU,
-    0x24E2U,
-    0x015DU,
-    0x0219U,
-    0x1E61U,
-    0x1E63U,
-    0x1E69U,
-    0x033CU,
-    0x2033U,
-    0x02CAU,
-    0x0633U,
-    0xFEB2U,
-    0xFEB3U,
-    0xFEB4U,
-    0x05B6U,
-    0x05B6U,
-    0x05B6U,
-    0x05B6U,
-    0x05B6U,
-    0x05B6U,
-    0x05B6U,
-    0x0592U,
-    0x05B6U,
-    0x057DU,
-    0x305BU,
-    0x30BBU,
-    0xFF7EU,
-    0x061BU,
-    0xFF1BU,
-    0xFE54U,
-    0x309CU,
-    0xFF9FU,
-    0x3322U,
-    0x3323U,
-    0x0667U,
-    0x09EDU,
-    0x2466U,
-    0x2790U,
-    0x096DU,
-    0x0AEDU,
-    0x0A6DU,
-    0x0667U,
-    0x3027U,
-    0x3226U,
-    0xFF17U,
-    0x247AU,
-    0x248EU,
-    0x06F7U,
-    0x2176U,
-    0x2470U,
-    0x2484U,
-    0x2498U,
-    0x0E57U,
-    0x00ADU,
-    0x0577U,
-    0x09B6U,
-    0x0448U,
-    0x0651U,
-    0xFC61U,
-    0xFC5EU,
-    0xFC60U,
-    0,
-    0xFC62U,
-    0xFC5FU,
-    0x2592U,
-    0x2593U,
-    0x2591U,
-    0x2592U,
-    0x0936U,
-    0x0AB6U,
-    0x0A36U,
-    0x0593U,
-    0x3115U,
-    0x0449U,
-    0x0634U,
-    0xFEB6U,
-    0xFEB7U,
-    0xFEB8U,
-    0x03E3U,
-    0x20AAU,
-    0x20AAU,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x05B0U,
-    0x04BBU,
-    0x03EDU,
-    0x05E9U,
-    0xFB49U,
-    0xFB49U,
-    0xFB2CU,
-    0xFB2CU,
-    0xFB2DU,
-    0xFB2DU,
-    0x05C1U,
-    0x05E9U,
-    0xFB2AU,
-    0xFB2AU,
-    0xFB2BU,
-    0xFB2BU,
-    0x0282U,
-    0x03C3U,
-    0x03C2U,
-    0x03C2U,
-    0x03F2U,
-    0x3057U,
-    0x30B7U,
-    0xFF7CU,
-    0x05BDU,
-    0x05BDU,
-    0x223CU,
-    0x05C2U,
-    0x3274U,
-    0x3214U,
-    0x317EU,
-    0x3266U,
-    0x317AU,
-    0x3145U,
-    0x317BU,
-    0x3206U,
-    0x317DU,
-    0x317CU,
-    0x0666U,
-    0x09ECU,
-    0x2465U,
-    0x278FU,
-    0x096CU,
-    0x0AECU,
-    0x0A6CU,
-    0x0666U,
-    0x3026U,
-    0x3225U,
-    0xFF16U,
-    0x2479U,
-    0x248DU,
-    0x06F6U,
-    0x2175U,
-    0x246FU,
-    0x09F9U,
-    0x2483U,
-    0x2497U,
-    0x0E56U,
-    0xFF0FU,
-    0x017FU,
-    0x1E9BU,
-    0x263AU,
-    0xFF53U,
-    0x05C3U,
-    0x00ADU,
-    0x044CU,
-    0x305DU,
-    0x30BDU,
-    0xFF7FU,
-    0x0338U,
-    0x0337U,
-    0x0E29U,
-    0x0E28U,
-    0x0E0BU,
-    0x0E2AU,
-    0x0020U,
-    0x2660U,
-    0x2660U,
-    0x2664U,
-    0x24AEU,
-    0x033BU,
-    0x33C4U,
-    0x339DU,
-    0x25A9U,
-    0x25A4U,
-    0x338FU,
-    0x339EU,
-    0x33CEU,
-    0x33D1U,
-    0x33D2U,
-    0x338EU,
-    0x33D5U,
-    0x339CU,
-    0x33A1U,
-    0x25A6U,
-    0x25A7U,
-    0x25A8U,
-    0x25A5U,
-    0x25A3U,
-    0x33DBU,
-    0x09B7U,
-    0x0937U,
-    0x0AB7U,
-    0x3149U,
-    0x3185U,
-    0x3180U,
-    0x3132U,
-    0x3165U,
-    0x3143U,
-    0x3146U,
-    0x3138U,
-    0xFFE1U,
-    0x0336U,
-    0x0335U,
-    0x2282U,
-    0x228AU,
-    0x2286U,
-    0x227BU,
-    0x220BU,
-    0x3059U,
-    0x30B9U,
-    0xFF7DU,
-    0x0652U,
-    0x2211U,
-    0x263CU,
-    0x2283U,
-    0x228BU,
-    0x2287U,
-    0x33DCU,
-    0x337CU,
-    0x09A4U,
-    0x22A4U,
-    0x22A3U,
-    0x0924U,
-    0x0AA4U,
-    0x0A24U,
-    0x0637U,
-    0xFEC2U,
-    0xFEC3U,
-    0x305FU,
-    0xFEC4U,
-    0x337DU,
-    0x30BFU,
-    0xFF80U,
-    0x0640U,
-    0x03C4U,
-    0x05EAU,
-    0xFB4AU,
-    0xFB4AU,
-    0xFB4AU,
-    0x05EAU,
-    0x0167U,
-    0x310AU,
-    0x0165U,
-    0x02A8U,
-    0x0163U,
-    0x0686U,
-    0xFB7BU,
-    0xFB7CU,
-    0xFB7DU,
-    0,
-    0x24E3U,
-    0x1E71U,
-    0x0163U,
-    0x1E97U,
-    0x1E6BU,
-    0x1E6DU,
-    0x0442U,
-    0x04ADU,
-    0x062AU,
-    0xFE96U,
-    0xFCA2U,
-    0xFC0CU,
-    0xFE97U,
-    0x3066U,
-    0xFCA1U,
-    0xFC0BU,
-    0x0629U,
-    0xFE94U,
-    0xFE98U,
-    0xFCA4U,
-    0xFC0EU,
-    0xFC73U,
-    0x30C6U,
-    0xFF83U,
-    0x2121U,
-    0x260EU,
-    0x05A0U,
-    0x05A9U,
-    0x2469U,
-    0x3229U,
-    0x247DU,
-    0x2491U,
-    0x2179U,
-    0x02A7U,
-    0x05D8U,
-    0xFB38U,
-    0xFB38U,
-    0x05D8U,
-    0x04B5U,
-    0x059BU,
-    0x059BU,
-    0x09A5U,
-    0x0925U,
-    0x0AA5U,
-    0x0A25U,
-    0x0630U,
-    0xFEACU,
-    0xF898U,
-    0xF897U,
-    0x0E4CU,
-    0xF896U,
-    0x062BU,
-    0xFE9AU,
-    0xFE9BU,
-    0xFE9CU,
-    0x2203U,
-    0x2234U,
-    0x03B8U,
-    0x03D1U,
-    0x03D1U,
-    0x3279U,
-    0x3219U,
-    0x326BU,
-    0x314CU,
-    0x320BU,
-    0x246CU,
-    0x2480U,
-    0x2494U,
-    0x0E11U,
-    0x01ADU,
-    0x0E12U,
-    0x0E17U,
-    0x0E10U,
-    0x0E18U,
-    0x0E16U,
-    0x0482U,
-    0x066CU,
-    0x066CU,
-    0x0663U,
-    0x09E9U,
-    0x2462U,
-    0x278CU,
-    0x0969U,
-    0x0AE9U,
-    0x0A69U,
-    0x0663U,
-    0x3023U,
-    0x3222U,
-    0xFF13U,
-    0x09F6U,
-    0x2476U,
-    0x248AU,
-    0x06F3U,
-    0x2172U,
-    0x0E53U,
-    0x3394U,
-    0x3061U,
-    0x30C1U,
-    0xFF81U,
-    0x3270U,
-    0x3210U,
-    0x3262U,
-    0x3137U,
-    0x3202U,
-    0x0330U,
-    0x0303U,
-    0x0303U,
-    0x0360U,
-    0x223CU,
-    0x0334U,
-    0x033EU,
-    0x2297U,
-    0x0596U,
-    0x0596U,
-    0x0A70U,
-    0x0483U,
-    0x057FU,
-    0x1E6FU,
-    0xFF54U,
-    0x0569U,
-    0x3068U,
-    0x30C8U,
-    0xFF84U,
-    0x02E5U,
-    0x02E9U,
-    0x02E6U,
-    0x02E8U,
-    0x02E7U,
-    0x01BDU,
-    0x0185U,
-    0x01A8U,
-    0x0384U,
-    0x3327U,
-    0x0E0FU,
-    0x3014U,
-    0xFE5DU,
-    0xFE39U,
-    0x3015U,
-    0xFE5EU,
-    0xFE3AU,
-    0x0E15U,
-    0x01ABU,
-    0x24AFU,
-    0xF8EAU,
-    0xF6DBU,
-    0x0288U,
-    0x25BCU,
-    0x25C4U,
-    0x25BAU,
-    0x25B2U,
-    0x02A6U,
-    0x05E6U,
-    0xFB46U,
-    0xFB46U,
-    0x05E6U,
-    0x0446U,
-    0x05B5U,
-    0x05B5U,
-    0x05B5U,
-    0x05B5U,
-    0x05B5U,
-    0x05B5U,
-    0x05B5U,
-    0x05B5U,
-    0x045BU,
-    0x099FU,
-    0x091FU,
-    0x0A9FU,
-    0x0A1FU,
-    0x0679U,
-    0xFB67U,
-    0xFB68U,
-    0xFB69U,
-    0x09A0U,
-    0x0920U,
-    0x0AA0U,
-    0x0A20U,
-    0x0287U,
-    0x3064U,
-    0x30C4U,
-    0xFF82U,
-    0x3063U,
-    0x30C3U,
-    0xFF6FU,
-    0x246BU,
-    0x247FU,
-    0x2493U,
-    0x217BU,
-    0x2473U,
-    0x5344U,
-    0x2487U,
-    0x249BU,
-    0x0662U,
-    0x09E8U,
-    0x2461U,
-    0x278BU,
-    0x0968U,
-    0x2025U,
-    0xFE30U,
-    0x0AE8U,
-    0x0A68U,
-    0x0662U,
-    0x3022U,
-    0x3221U,
-    0xFF12U,
-    0x09F5U,
-    0x2475U,
-    0x2489U,
-    0x06F2U,
-    0x2171U,
-    0x01BBU,
-    0x0E52U,
-    0x0289U,
-    0x0989U,
-    0x3128U,
-    0x016DU,
-    0x01D4U,
-    0x24E4U,
-    0x1E77U,
-    0x0443U,
-    0x0951U,
-    0x0171U,
-    0x0215U,
-    0x0909U,
-    0x01D8U,
-    0x1E73U,
-    0x01DAU,
-    0x04F1U,
-    0x01DCU,
-    0x01D6U,
-    0x1EE5U,
-    0x0A89U,
-    0x0A09U,
-    0x3046U,
-    0x1EE7U,
-    0x01B0U,
-    0x1EE9U,
-    0x1EF1U,
-    0x1EEBU,
-    0x1EEDU,
-    0x1EEFU,
-    0x0171U,
-    0x04F3U,
-    0x0217U,
-    0x30A6U,
-    0xFF73U,
-    0x0479U,
-    0x315CU,
-    0x016BU,
-    0x04EFU,
-    0x1E7BU,
-    0x0A41U,
-    0xFF55U,
-    0x2017U,
-    0xFF3FU,
-    0xFE33U,
-    0xFE4FU,
-    0x222AU,
-    0x2200U,
-    0x0173U,
-    0x24B0U,
-    0x2580U,
-    0x05C4U,
-    0x03C5U,
-    0x03CBU,
-    0x03B0U,
-    0x028AU,
-    0x03CDU,
-    0x031DU,
-    0x02D4U,
-    0x0A73U,
-    0x016FU,
-    0x045EU,
-    0x3045U,
-    0x30A5U,
-    0xFF69U,
-    0x04AFU,
-    0x04B1U,
-    0x0169U,
-    0x1E79U,
-    0x1E75U,
-    0x098AU,
-    0x090AU,
-    0x0A8AU,
-    0x0A0AU,
-    0x0A42U,
-    0x09C2U,
-    0x0942U,
-    0x0AC2U,
-    0x09C1U,
-    0x0941U,
-    0x0AC1U,
-    0x0935U,
-    0x0AB5U,
-    0x0A35U,
-    0x30F7U,
-    0x05D5U,
-    0xFB35U,
-    0xFB35U,
-    0xFB35U,
-    0x05D5U,
-    0xFB4BU,
-    0xFB4BU,
-    0x05F0U,
-    0x05F1U,
-    0x24E5U,
-    0x1E7FU,
-    0x0432U,
-    0x06A4U,
-    0xFB6BU,
-    0xFB6CU,
-    0xFB6DU,
-    0x30F9U,
-    0x2640U,
-    0x007CU,
-    0x030DU,
-    0x0329U,
-    0x02CCU,
-    0x02C8U,
-    0x057EU,
-    0x028BU,
-    0x30F8U,
-    0x09CDU,
-    0x094DU,
-    0x0ACDU,
-    0x0983U,
-    0x0903U,
-    0x0A83U,
-    0xFF56U,
-    0x0578U,
-    0x309EU,
-    0x30FEU,
-    0x309BU,
-    0xFF9EU,
-    0x30FAU,
-    0x24B1U,
-    0x1E7DU,
-    0x028CU,
-    0x3094U,
-    0x30F4U,
-    0x1E83U,
-    0x3159U,
-    0x308FU,
-    0x30EFU,
-    0xFF9CU,
-    0x3158U,
-    0x308EU,
-    0x30EEU,
-    0x3357U,
-    0x301CU,
-    0xFE34U,
-    0x0648U,
-    0xFEEEU,
-    0x0624U,
-    0xFE86U,
-    0x33DDU,
-    0x24E6U,
-    0x0175U,
-    0x1E85U,
-    0x1E87U,
-    0x1E89U,
-    0x3091U,
-    0x2118U,
-    0x30F1U,
-    0x315EU,
-    0x315DU,
-    0x1E81U,
-    0x25E6U,
-    0x25CBU,
-    0x25D9U,
-    0x300EU,
-    0xFE43U,
-    0x300FU,
-    0xFE44U,
-    0x25C7U,
-    0x25C8U,
-    0x25BFU,
-    0x25BDU,
-    0x25C3U,
-    0x25C1U,
-    0x3016U,
-    0x3017U,
-    0x25B9U,
-    0x25B7U,
-    0x25ABU,
-    0x263AU,
-    0x25A1U,
-    0x2606U,
-    0x260FU,
-    0x3018U,
-    0x3019U,
-    0x25B5U,
-    0x25B3U,
-    0x3090U,
-    0x30F0U,
-    0x315FU,
-    0xFF57U,
-    0x3092U,
-    0x30F2U,
-    0xFF66U,
-    0x20A9U,
-    0xFFE6U,
-    0x0E27U,
-    0x24B2U,
-    0x1E98U,
-    0x02B7U,
-    0x028DU,
-    0x01BFU,
-    0x033DU,
-    0x3112U,
-    0x24E7U,
-    0x1E8DU,
-    0x1E8BU,
-    0x056DU,
-    0x03BEU,
-    0xFF58U,
-    0x24B3U,
-    0x02E3U,
-    0x334EU,
-    0x09AFU,
-    0x092FU,
-    0x3152U,
-    0x0AAFU,
-    0x0A2FU,
-    0x3084U,
-    0x30E4U,
-    0xFF94U,
-    0x3151U,
-    0x0E4EU,
-    0x3083U,
-    0x30E3U,
-    0xFF6CU,
-    0x0463U,
-    0x24E8U,
-    0x0177U,
-    0x1E8FU,
-    0x1EF5U,
-    0x064AU,
-    0x06D2U,
-    0xFBAFU,
-    0xFEF2U,
-    0x0626U,
-    0xFE8AU,
-    0xFE8BU,
-    0xFE8CU,
-    0xFEF3U,
-    0xFEF4U,
-    0xFCDDU,
-    0xFC58U,
-    0xFC94U,
-    0x06D1U,
-    0x3156U,
-    0xFFE5U,
-    0x3155U,
-    0x3186U,
-    0x05AAU,
-    0x05AAU,
-    0x044BU,
-    0x04F9U,
-    0x3181U,
-    0x3183U,
-    0x3182U,
-    0x059AU,
-    0x1EF3U,
-    0x01B4U,
-    0x1EF7U,
-    0x0575U,
-    0x0457U,
-    0x3162U,
-    0x262FU,
-    0x0582U,
-    0xFF59U,
-    0x05D9U,
-    0xFB39U,
-    0xFB39U,
-    0x05D9U,
-    0x05F2U,
-    0xFB1FU,
-    0x3088U,
-    0x3189U,
-    0x30E8U,
-    0xFF96U,
-    0x315BU,
-    0x3087U,
-    0x30E7U,
-    0xFF6EU,
-    0x03F3U,
-    0x3188U,
-    0x3187U,
-    0x0E22U,
-    0x0E0DU,
-    0x24B4U,
-    0x037AU,
-    0x0345U,
-    0x01A6U,
-    0x1E99U,
-    0x02B8U,
-    0x1EF9U,
-    0x028EU,
-    0x3086U,
-    0x318CU,
-    0x30E6U,
-    0xFF95U,
-    0x3160U,
-    0x046BU,
-    0x046DU,
-    0x0467U,
-    0x0469U,
-    0x3085U,
-    0x30E5U,
-    0xFF6DU,
-    0x318BU,
-    0x318AU,
-    0x09DFU,
-    0x095FU,
-    0x0566U,
-    0x017AU,
-    0x095BU,
-    0x0A5BU,
-    0x0638U,
-    0xFEC6U,
-    0xFEC7U,
-    0x3056U,
-    0xFEC8U,
-    0x0632U,
-    0xFEB0U,
-    0x30B6U,
-    0x0595U,
-    0x0594U,
-    0x0598U,
-    0x05D6U,
-    0xFB36U,
-    0xFB36U,
-    0x05D6U,
-    0x3117U,
-    0x24E9U,
-    0x1E91U,
-    0x0291U,
-    0x017CU,
-    0x017CU,
-    0x1E93U,
-    0x0437U,
-    0x0499U,
-    0x04DFU,
-    0x305CU,
-    0x30BCU,
-    0x0660U,
-    0x09E6U,
-    0x0966U,
-    0x0AE6U,
-    0x0A66U,
-    0x0660U,
-    0xFF10U,
-    0x06F0U,
-    0x0E50U,
-    0xFEFFU,
-    0x200CU,
-    0x200BU,
-    0x03B6U,
-    0x3113U,
-    0x056AU,
-    0x04C2U,
-    0x0436U,
-    0x0497U,
-    0x04DDU,
-    0x3058U,
-    0x30B8U,
-    0x05AEU,
-    0x1E95U,
-    0xFF5AU,
-    0x305EU,
-    0x30BEU,
-    0x24B5U,
-    0x0290U,
-    0x01B6U,
-    0x305AU,
-    0x30BAU,
-
-#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */
-    0
-  };
-
-
-
-  static const unsigned short  t1_standard_encoding[257] =
-  {
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    1,
-    2,
-    3,
-    4,
-    5,
-    6,
-    7,
-    8,
-    9,
-    10,
-    11,
-    12,
-    13,
-    14,
-    15,
-    16,
-    17,
-    18,
-    19,
-    20,
-    21,
-    22,
-    23,
-    24,
-    25,
-    26,
-    27,
-    28,
-    29,
-    30,
-    31,
-    32,
-    33,
-    34,
-    35,
-    36,
-    37,
-    38,
-    39,
-    40,
-    41,
-    42,
-    43,
-    44,
-    45,
-    46,
-    47,
-    48,
-    49,
-    50,
-    51,
-    52,
-    53,
-    54,
-    55,
-    56,
-    57,
-    58,
-    59,
-    60,
-    61,
-    62,
-    63,
-    64,
-    65,
-    66,
-    67,
-    68,
-    69,
-    70,
-    71,
-    72,
-    73,
-    74,
-    75,
-    76,
-    77,
-    78,
-    79,
-    80,
-    81,
-    82,
-    83,
-    84,
-    85,
-    86,
-    87,
-    88,
-    89,
-    90,
-    91,
-    92,
-    93,
-    94,
-    95,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    96,
-    97,
-    98,
-    99,
-    100,
-    101,
-    102,
-    103,
-    104,
-    105,
-    106,
-    107,
-    108,
-    109,
-    110,
-    0,
-    111,
-    112,
-    113,
-    114,
-    0,
-    115,
-    116,
-    117,
-    118,
-    119,
-    120,
-    121,
-    122,
-    0,
-    123,
-    0,
-    124,
-    125,
-    126,
-    127,
-    128,
-    129,
-    130,
-    131,
-    0,
-    132,
-    133,
-    0,
-    134,
-    135,
-    136,
-    137,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    138,
-    0,
-    139,
-    0,
-    0,
-    0,
-    0,
-    140,
-    141,
-    142,
-    143,
-    0,
-    0,
-    0,
-    0,
-    0,
-    144,
-    0,
-    0,
-    0,
-    145,
-    0,
-    0,
-    146,
-    147,
-    148,
-    149,
-    0,
-    0,
-    0,
-    0,
-    0
-  };
-
-
-  static const unsigned short  t1_expert_encoding[257] =
-  {
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    1,
-    229,
-    230,
-    0,
-    231,
-    232,
-    233,
-    234,
-    235,
-    236,
-    237,
-    238,
-    13,
-    14,
-    15,
-    99,
-    239,
-    240,
-    241,
-    242,
-    243,
-    244,
-    245,
-    246,
-    247,
-    248,
-    27,
-    28,
-    249,
-    250,
-    251,
-    252,
-    0,
-    253,
-    254,
-    255,
-    256,
-    257,
-    0,
-    0,
-    0,
-    258,
-    0,
-    0,
-    259,
-    260,
-    261,
-    262,
-    0,
-    0,
-    263,
-    264,
-    265,
-    0,
-    266,
-    109,
-    110,
-    267,
-    268,
-    269,
-    0,
-    270,
-    271,
-    272,
-    273,
-    274,
-    275,
-    276,
-    277,
-    278,
-    279,
-    280,
-    281,
-    282,
-    283,
-    284,
-    285,
-    286,
-    287,
-    288,
-    289,
-    290,
-    291,
-    292,
-    293,
-    294,
-    295,
-    296,
-    297,
-    298,
-    299,
-    300,
-    301,
-    302,
-    303,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    304,
-    305,
-    306,
-    0,
-    0,
-    307,
-    308,
-    309,
-    310,
-    311,
-    0,
-    312,
-    0,
-    0,
-    313,
-    0,
-    0,
-    314,
-    315,
-    0,
-    0,
-    316,
-    317,
-    318,
-    0,
-    0,
-    0,
-    158,
-    155,
-    163,
-    319,
-    320,
-    321,
-    322,
-    323,
-    324,
-    325,
-    0,
-    0,
-    326,
-    150,
-    164,
-    169,
-    327,
-    328,
-    329,
-    330,
-    331,
-    332,
-    333,
-    334,
-    335,
-    336,
-    337,
-    338,
-    339,
-    340,
-    341,
-    342,
-    343,
-    344,
-    345,
-    346,
-    347,
-    348,
-    349,
-    350,
-    351,
-    352,
-    353,
-    354,
-    355,
-    356,
-    357,
-    358,
-    359,
-    360,
-    361,
-    362,
-    363,
-    364,
-    365,
-    366,
-    367,
-    368,
-    369,
-    370,
-    371,
-    372,
-    373,
-    374,
-    375,
-    376,
-    377,
-    378,
-    0
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/psnames/rules.mk b/nx-X11/extras/freetype2/src/psnames/rules.mk
deleted file mode 100644
index 06bd161e3..000000000
--- a/nx-X11/extras/freetype2/src/psnames/rules.mk
+++ /dev/null
@@ -1,70 +0,0 @@
-#
-# FreeType 2 PSNames driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# PSNames driver directory
-#
-PSNAMES_DIR := $(SRC_DIR)/psnames
-
-
-# compilation flags for the driver
-#
-PSNAMES_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(PSNAMES_DIR))
-
-
-# PSNames driver sources (i.e., C files)
-#
-PSNAMES_DRV_SRC := $(PSNAMES_DIR)/psmodule.c
-
-
-# PSNames driver headers
-#
-PSNAMES_DRV_H := $(PSNAMES_DRV_SRC:%.c=%.h) \
-                 $(PSNAMES_DIR)/pstables.h  \
-                 $(PSNAMES_DIR)/psnamerr.h
-
-
-# PSNames driver object(s)
-#
-#   PSNAMES_DRV_OBJ_M is used during `multi' builds
-#   PSNAMES_DRV_OBJ_S is used during `single' builds
-#
-PSNAMES_DRV_OBJ_M := $(PSNAMES_DRV_SRC:$(PSNAMES_DIR)/%.c=$(OBJ_DIR)/%.$O)
-PSNAMES_DRV_OBJ_S := $(OBJ_DIR)/psnames.$O
-
-# PSNames driver source file for single build
-#
-PSNAMES_DRV_SRC_S := $(PSNAMES_DIR)/psmodule.c
-
-
-# PSNames driver - single object
-#
-$(PSNAMES_DRV_OBJ_S): $(PSNAMES_DRV_SRC_S) $(PSNAMES_DRV_SRC) \
-                      $(FREETYPE_H) $(PSNAMES_DRV_H)
-	$(PSNAMES_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(PSNAMES_DRV_SRC_S))
-
-
-# PSNames driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(PSNAMES_DIR)/%.c $(FREETYPE_H) $(PSNAMES_DRV_H)
-	$(PSNAMES_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(PSNAMES_DRV_OBJ_S)
-DRV_OBJS_M += $(PSNAMES_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/raster/Jamfile b/nx-X11/extras/freetype2/src/raster/Jamfile
deleted file mode 100644
index 01b5c0db0..000000000
--- a/nx-X11/extras/freetype2/src/raster/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/raster Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) raster ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = ftraster ftrend1 ;
-  }
-  else
-  {
-    _sources = raster ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/raster Jamfile
diff --git a/nx-X11/extras/freetype2/src/raster/descrip.mms b/nx-X11/extras/freetype2/src/raster/descrip.mms
deleted file mode 100644
index d0650ebbf..000000000
--- a/nx-X11/extras/freetype2/src/raster/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 renderer module compilation rules for VMS
-#
-
-
-# Copyright 2001 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.raster])
-
-OBJS=raster.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/raster/ftraster.c b/nx-X11/extras/freetype2/src/raster/ftraster.c
deleted file mode 100644
index 0ba27e828..000000000
--- a/nx-X11/extras/freetype2/src/raster/ftraster.c
+++ /dev/null
@@ -1,3298 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftraster.c                                                             */
-/*                                                                         */
-/*    The FreeType glyph rasterizer (body).                                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This is a rewrite of the FreeType 1.x scan-line converter             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include "ftraster.h"
-#include FT_INTERNAL_CALC_H   /* for FT_MulDiv only */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A simple technical note on how the raster works                       */
-  /* -----------------------------------------------                       */
-  /*                                                                       */
-  /*   Converting an outline into a bitmap is achieved in several steps:   */
-  /*                                                                       */
-  /*   1 - Decomposing the outline into successive `profiles'.  Each       */
-  /*       profile is simply an array of scanline intersections on a given */
-  /*       dimension.  A profile's main attributes are                     */
-  /*                                                                       */
-  /*       o its scanline position boundaries, i.e. `Ymin' and `Ymax'.     */
-  /*                                                                       */
-  /*       o an array of intersection coordinates for each scanline        */
-  /*         between `Ymin' and `Ymax'.                                    */
-  /*                                                                       */
-  /*       o a direction, indicating whether it was built going `up' or    */
-  /*         `down', as this is very important for filling rules.          */
-  /*                                                                       */
-  /*   2 - Sweeping the target map's scanlines in order to compute segment */
-  /*       `spans' which are then filled.  Additionally, this pass         */
-  /*       performs drop-out control.                                      */
-  /*                                                                       */
-  /*   The outline data is parsed during step 1 only.  The profiles are    */
-  /*   built from the bottom of the render pool, used as a stack.  The     */
-  /*   following graphics shows the profile list under construction:       */
-  /*                                                                       */
-  /*     ____________________________________________________________ _ _  */
-  /*    |         |                   |         |                 |        */
-  /*    | profile | coordinates for   | profile | coordinates for |-->     */
-  /*    |    1    |  profile 1        |    2    |  profile 2      |-->     */
-  /*    |_________|___________________|_________|_________________|__ _ _  */
-  /*                                                                       */
-  /*    ^                                                         ^        */
-  /*    |                                                         |        */
-  /*  start of render pool                                       top       */
-  /*                                                                       */
-  /*   The top of the profile stack is kept in the `top' variable.         */
-  /*                                                                       */
-  /*   As you can see, a profile record is pushed on top of the render     */
-  /*   pool, which is then followed by its coordinates/intersections.  If  */
-  /*   a change of direction is detected in the outline, a new profile is  */
-  /*   generated until the end of the outline.                             */
-  /*                                                                       */
-  /*   Note that when all profiles have been generated, the function       */
-  /*   Finalize_Profile_Table() is used to record, for each profile, its   */
-  /*   bottom-most scanline as well as the scanline above its upmost       */
-  /*   boundary.  These positions are called `y-turns' because they (sort  */
-  /*   of) correspond to local extrema.  They are stored in a sorted list  */
-  /*   built from the top of the render pool as a downwards stack:         */
-  /*                                                                       */
-  /*      _ _ _______________________________________                      */
-  /*                            |                    |                     */
-  /*                         <--| sorted list of     |                     */
-  /*                         <--|  extrema scanlines |                     */
-  /*      _ _ __________________|____________________|                     */
-  /*                                                                       */
-  /*                            ^                    ^                     */
-  /*                            |                    |                     */
-  /*                         maxBuff           sizeBuff = end of pool      */
-  /*                                                                       */
-  /*   This list is later used during the sweep phase in order to          */
-  /*   optimize performance (see technical note on the sweep below).       */
-  /*                                                                       */
-  /*   Of course, the raster detects whether the two stacks collide and    */
-  /*   handles the situation propertly.                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /**                                                                     **/
-  /**  CONFIGURATION MACROS                                               **/
-  /**                                                                     **/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /* define DEBUG_RASTER if you want to compile a debugging version */
-#define xxxDEBUG_RASTER
-
-  /* The default render pool size in bytes */
-#define RASTER_RENDER_POOL  8192
-
-  /* undefine FT_RASTER_OPTION_ANTI_ALIASING if you do not want to support */
-  /* 5-levels anti-aliasing                                                */
-#ifdef FT_CONFIG_OPTION_5_GRAY_LEVELS
-#define FT_RASTER_OPTION_ANTI_ALIASING
-#endif
-
-  /* The size of the two-lines intermediate bitmap used */
-  /* for anti-aliasing, in bytes.                       */
-#define RASTER_GRAY_LINES  2048
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /**                                                                     **/
-  /**  OTHER MACROS (do not change)                                       **/
-  /**                                                                     **/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_raster
-
-
-#ifdef _STANDALONE_
-
-
-  /* This macro is used to indicate that a function parameter is unused. */
-  /* Its purpose is simply to reduce compiler warnings.  Note also that  */
-  /* simply defining it as `(void)x' doesn't avoid warnings with certain */
-  /* ANSI compilers (e.g. LCC).                                          */
-#define FT_UNUSED( x )  (x) = (x)
-
-  /* Disable the tracing mechanism for simplicity -- developers can      */
-  /* activate it easily by redefining these two macros.                  */
-#ifndef FT_ERROR
-#define FT_ERROR( x )  do ; while ( 0 )     /* nothing */
-#endif
-
-#ifndef FT_TRACE
-#define FT_TRACE( x )  do ; while ( 0 )     /* nothing */
-#endif
-
-#define Raster_Err_None          0
-#define Raster_Err_Not_Ini      -1
-#define Raster_Err_Overflow     -2
-#define Raster_Err_Neg_Height   -3
-#define Raster_Err_Invalid      -4
-#define Raster_Err_Unsupported  -5
-
-
-#else /* _STANDALONE_ */
-
-
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H        /* for FT_TRACE() and FT_ERROR() */
-
-#include "rasterrs.h"
-
-#define Raster_Err_None         Raster_Err_Ok
-#define Raster_Err_Not_Ini      Raster_Err_Raster_Uninitialized
-#define Raster_Err_Overflow     Raster_Err_Raster_Overflow
-#define Raster_Err_Neg_Height   Raster_Err_Raster_Negative_Height
-#define Raster_Err_Invalid      Raster_Err_Invalid_Outline
-#define Raster_Err_Unsupported  Raster_Err_Cannot_Render_Glyph
-
-
-#endif /* _STANDALONE_ */
-
-
-#ifndef FT_MEM_SET
-#define FT_MEM_SET( d, s, c )  ft_memset( d, s, c )
-#endif
-
-
-  /* FMulDiv means `Fast MulDiv'; it is used in case where `b' is       */
-  /* typically a small value and the result of a*b is known to fit into */
-  /* 32 bits.                                                           */
-#define FMulDiv( a, b, c )  ( (a) * (b) / (c) )
-
-  /* On the other hand, SMulDiv means `Slow MulDiv', and is used typically */
-  /* for clipping computations.  It simply uses the FT_MulDiv() function   */
-  /* defined in `ftcalc.h'.                                                */
-#define SMulDiv  FT_MulDiv
-
-  /* The rasterizer is a very general purpose component; please leave */
-  /* the following redefinitions there (you never know your target    */
-  /* environment).                                                    */
-
-#ifndef TRUE
-#define TRUE   1
-#endif
-
-#ifndef FALSE
-#define FALSE  0
-#endif
-
-#ifndef NULL
-#define NULL  (void*)0
-#endif
-
-#ifndef SUCCESS
-#define SUCCESS  0
-#endif
-
-#ifndef FAILURE
-#define FAILURE  1
-#endif
-
-
-#define MaxBezier  32   /* The maximum number of stacked Bezier curves. */
-                        /* Setting this constant to more than 32 is a   */
-                        /* pure waste of space.                         */
-
-#define Pixel_Bits  6   /* fractional bits of *input* coordinates */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /**                                                                     **/
-  /**  SIMPLE TYPE DECLARATIONS                                           **/
-  /**                                                                     **/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  typedef int             Int;
-  typedef unsigned int    UInt;
-  typedef short           Short;
-  typedef unsigned short  UShort, *PUShort;
-  typedef long            Long, *PLong;
-  typedef unsigned long   ULong;
-
-  typedef unsigned char   Byte, *PByte;
-  typedef char            Bool;
-
-
-  typedef union  Alignment_
-  {
-    long    l;
-    void*   p;
-    void  (*f)(void);
-
-  } Alignment, *PAlignment;
-
-
-  typedef struct  TPoint_
-  {
-    Long  x;
-    Long  y;
-
-  } TPoint;
-
-
-  typedef enum  TFlow_
-  {
-    Flow_None = 0,
-    Flow_Up   = 1,
-    Flow_Down = -1
-
-  } TFlow;
-
-
-  /* States of each line, arc, and profile */
-  typedef enum  TStates_
-  {
-    Unknown_State,
-    Ascending_State,
-    Descending_State,
-    Flat_State
-
-  } TStates;
-
-
-  typedef struct TProfile_  TProfile;
-  typedef TProfile*         PProfile;
-
-  struct  TProfile_
-  {
-    FT_F26Dot6  X;           /* current coordinate during sweep        */
-    PProfile    link;        /* link to next profile - various purpose */
-    PLong       offset;      /* start of profile's data in render pool */
-    int         flow;        /* Profile orientation: Asc/Descending    */
-    long        height;      /* profile's height in scanlines          */
-    long        start;       /* profile's starting scanline            */
-
-    unsigned    countL;      /* number of lines to step before this    */
-                             /* profile becomes drawable               */
-
-    PProfile    next;        /* next profile in same contour, used     */
-                             /* during drop-out control                */
-  };
-
-  typedef PProfile   TProfileList;
-  typedef PProfile*  PProfileList;
-
-
-  /* Simple record used to implement a stack of bands, required */
-  /* by the sub-banding mechanism                               */
-  typedef struct  TBand_
-  {
-    Short  y_min;   /* band's minimum */
-    Short  y_max;   /* band's maximum */
-
-  } TBand;
-
-
-#define AlignProfileSize \
-  ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( long ) )
-
-
-#ifdef TT_STATIC_RASTER
-
-
-#define RAS_ARGS       /* void */
-#define RAS_ARG        /* void */
-
-#define RAS_VARS       /* void */
-#define RAS_VAR        /* void */
-
-#define FT_UNUSED_RASTER  do ; while ( 0 )
-
-
-#else /* TT_STATIC_RASTER */
-
-
-#define RAS_ARGS       TRaster_Instance*  raster,
-#define RAS_ARG        TRaster_Instance*  raster
-
-#define RAS_VARS       raster,
-#define RAS_VAR        raster
-
-#define FT_UNUSED_RASTER  FT_UNUSED( raster )
-
-
-#endif /* TT_STATIC_RASTER */
-
-
-  typedef struct TRaster_Instance_  TRaster_Instance;
-
-
-  /* prototypes used for sweep function dispatch */
-  typedef void
-  Function_Sweep_Init( RAS_ARGS Short*  min,
-                                Short*  max );
-
-  typedef void
-  Function_Sweep_Span( RAS_ARGS Short       y,
-                                FT_F26Dot6  x1,
-                                FT_F26Dot6  x2,
-                                PProfile    left,
-                                PProfile    right );
-
-  typedef void
-  Function_Sweep_Step( RAS_ARG );
-
-
-  /* NOTE: These operations are only valid on 2's complement processors */
-
-#define FLOOR( x )    ( (x) & -ras.precision )
-#define CEILING( x )  ( ( (x) + ras.precision - 1 ) & -ras.precision )
-#define TRUNC( x )    ( (signed long)(x) >> ras.precision_bits )
-#define FRAC( x )     ( (x) & ( ras.precision - 1 ) )
-#define SCALED( x )   ( ( (x) << ras.scale_shift ) - ras.precision_half )
-
-  /* Note that I have moved the location of some fields in the */
-  /* structure to ensure that the most used variables are used */
-  /* at the top.  Thus, their offset can be coded with less    */
-  /* opcodes, and it results in a smaller executable.          */
-
-  struct  TRaster_Instance_
-  {
-    Int       precision_bits;       /* precision related variables         */
-    Int       precision;
-    Int       precision_half;
-    Long      precision_mask;
-    Int       precision_shift;
-    Int       precision_step;
-    Int       precision_jitter;
-
-    Int       scale_shift;          /* == precision_shift   for bitmaps    */
-                                    /* == precision_shift+1 for pixmaps    */
-
-    PLong     buff;                 /* The profiles buffer                 */
-    PLong     sizeBuff;             /* Render pool size                    */
-    PLong     maxBuff;              /* Profiles buffer size                */
-    PLong     top;                  /* Current cursor in buffer            */
-
-    FT_Error  error;
-
-    Int       numTurns;             /* number of Y-turns in outline        */
-
-    TPoint*   arc;                  /* current Bezier arc pointer          */
-
-    UShort    bWidth;               /* target bitmap width                 */
-    PByte     bTarget;              /* target bitmap buffer                */
-    PByte     gTarget;              /* target pixmap buffer                */
-
-    Long      lastX, lastY, minY, maxY;
-
-    UShort    num_Profs;            /* current number of profiles          */
-
-    Bool      fresh;                /* signals a fresh new profile which   */
-                                    /* 'start' field must be completed     */
-    Bool      joint;                /* signals that the last arc ended     */
-                                    /* exactly on a scanline.  Allows      */
-                                    /* removal of doublets                 */
-    PProfile  cProfile;             /* current profile                     */
-    PProfile  fProfile;             /* head of linked list of profiles     */
-    PProfile  gProfile;             /* contour's first profile in case     */
-                                    /* of impact                           */
-
-    TStates   state;                /* rendering state                     */
-
-    FT_Bitmap   target;             /* description of target bit/pixmap    */
-    FT_Outline  outline;
-
-    Long      traceOfs;             /* current offset in target bitmap     */
-    Long      traceG;               /* current offset in target pixmap     */
-
-    Short     traceIncr;            /* sweep's increment in target bitmap  */
-
-    Short     gray_min_x;           /* current min x during gray rendering */
-    Short     gray_max_x;           /* current max x during gray rendering */
-
-    /* dispatch variables */
-
-    Function_Sweep_Init*  Proc_Sweep_Init;
-    Function_Sweep_Span*  Proc_Sweep_Span;
-    Function_Sweep_Span*  Proc_Sweep_Drop;
-    Function_Sweep_Step*  Proc_Sweep_Step;
-
-    Byte      dropOutControl;       /* current drop_out control method     */
-
-    Bool      second_pass;          /* indicates wether a horizontal pass  */
-                                    /* should be performed to control      */
-                                    /* drop-out accurately when calling    */
-                                    /* Render_Glyph.  Note that there is   */
-                                    /* no horizontal pass during gray      */
-                                    /* rendering.                          */
-
-    TPoint    arcs[3 * MaxBezier + 1]; /* The Bezier stack                 */
-
-    TBand     band_stack[16];       /* band stack used for sub-banding     */
-    Int       band_top;             /* band stack top                      */
-
-    Int       count_table[256];     /* Look-up table used to quickly count */
-                                    /* set bits in a gray 2x2 cell         */
-
-    void*     memory;
-
-#ifdef FT_RASTER_OPTION_ANTI_ALIASING
-
-    Byte      grays[5];             /* Palette of gray levels used for     */
-                                    /* render.                             */
-
-    Byte      gray_lines[RASTER_GRAY_LINES];
-                                /* Intermediate table used to render the   */
-                                /* graylevels pixmaps.                     */
-                                /* gray_lines is a buffer holding two      */
-                                /* monochrome scanlines                    */
-
-    Short     gray_width;       /* width in bytes of one monochrome        */
-                                /* intermediate scanline of gray_lines.    */
-                                /* Each gray pixel takes 2 bits long there */
-
-                       /* The gray_lines must hold 2 lines, thus with size */
-                       /* in bytes of at least `gray_width*2'.             */
-
-#endif /* FT_RASTER_ANTI_ALIASING */
-
-#if 0
-    PByte       flags;              /* current flags table                 */
-    PUShort     outs;               /* current outlines table              */
-    FT_Vector*  coords;
-
-    UShort      nPoints;            /* number of points in current glyph   */
-    Short       nContours;          /* number of contours in current glyph */
-#endif
-
-  };
-
-
-#ifdef FT_CONFIG_OPTION_STATIC_RASTER
-
-  static TRaster_Instance  cur_ras;
-#define ras  cur_ras
-
-#else
-
-#define ras  (*raster)
-
-#endif /* FT_CONFIG_OPTION_STATIC_RASTER */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /**                                                                     **/
-  /**  PROFILES COMPUTATION                                               **/
-  /**                                                                     **/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Set_High_Precision                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets precision variables according to param flag.                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    High :: Set to True for high precision (typically for ppem < 18),  */
-  /*            false otherwise.                                           */
-  /*                                                                       */
-  static void
-  Set_High_Precision( RAS_ARGS Int  High )
-  {
-    if ( High )
-    {
-      ras.precision_bits   = 10;
-      ras.precision_step   = 128;
-      ras.precision_jitter = 24;
-    }
-    else
-    {
-      ras.precision_bits   = 6;
-      ras.precision_step   = 32;
-      ras.precision_jitter = 2;
-    }
-
-    FT_TRACE6(( "Set_High_Precision(%s)\n", High ? "true" : "false" ));
-
-    ras.precision       = 1 << ras.precision_bits;
-    ras.precision_half  = ras.precision / 2;
-    ras.precision_shift = ras.precision_bits - Pixel_Bits;
-    ras.precision_mask  = -ras.precision;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    New_Profile                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a new profile in the render pool.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    aState :: The state/orientation of the new profile.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*   SUCCESS on success.  FAILURE in case of overflow or of incoherent   */
-  /*   profile.                                                            */
-  /*                                                                       */
-  static Bool
-  New_Profile( RAS_ARGS TStates  aState )
-  {
-    if ( !ras.fProfile )
-    {
-      ras.cProfile  = (PProfile)ras.top;
-      ras.fProfile  = ras.cProfile;
-      ras.top      += AlignProfileSize;
-    }
-
-    if ( ras.top >= ras.maxBuff )
-    {
-      ras.error = Raster_Err_Overflow;
-      return FAILURE;
-    }
-
-    switch ( aState )
-    {
-    case Ascending_State:
-      ras.cProfile->flow = Flow_Up;
-      FT_TRACE6(( "New ascending profile = %lx\n", (long)ras.cProfile ));
-      break;
-
-    case Descending_State:
-      ras.cProfile->flow = Flow_Down;
-      FT_TRACE6(( "New descending profile = %lx\n", (long)ras.cProfile ));
-      break;
-
-    default:
-      FT_ERROR(( "New_Profile: invalid profile direction!\n" ));
-      ras.error = Raster_Err_Invalid;
-      return FAILURE;
-    }
-
-    ras.cProfile->start  = 0;
-    ras.cProfile->height = 0;
-    ras.cProfile->offset = ras.top;
-    ras.cProfile->link   = (PProfile)0;
-    ras.cProfile->next   = (PProfile)0;
-
-    if ( !ras.gProfile )
-      ras.gProfile = ras.cProfile;
-
-    ras.state = aState;
-    ras.fresh = TRUE;
-    ras.joint = FALSE;
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    End_Profile                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes the current profile.                                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success.  FAILURE in case of overflow or incoherency.   */
-  /*                                                                       */
-  static Bool
-  End_Profile( RAS_ARG )
-  {
-    Long      h;
-    PProfile  oldProfile;
-
-
-    h = (Long)( ras.top - ras.cProfile->offset );
-
-    if ( h < 0 )
-    {
-      FT_ERROR(( "End_Profile: negative height encountered!\n" ));
-      ras.error = Raster_Err_Neg_Height;
-      return FAILURE;
-    }
-
-    if ( h > 0 )
-    {
-      FT_TRACE6(( "Ending profile %lx, start = %ld, height = %ld\n",
-                  (long)ras.cProfile, ras.cProfile->start, h ));
-
-      oldProfile           = ras.cProfile;
-      ras.cProfile->height = h;
-      ras.cProfile         = (PProfile)ras.top;
-
-      ras.top             += AlignProfileSize;
-
-      ras.cProfile->height = 0;
-      ras.cProfile->offset = ras.top;
-      oldProfile->next     = ras.cProfile;
-      ras.num_Profs++;
-    }
-
-    if ( ras.top >= ras.maxBuff )
-    {
-      FT_TRACE1(( "overflow in End_Profile\n" ));
-      ras.error = Raster_Err_Overflow;
-      return FAILURE;
-    }
-
-    ras.joint = FALSE;
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Insert_Y_Turn                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Inserts a salient into the sorted list placed on top of the render */
-  /*    pool.                                                              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    New y scanline position.                                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success.  FAILURE in case of overflow.                  */
-  /*                                                                       */
-  static Bool
-  Insert_Y_Turn( RAS_ARGS Int  y )
-  {
-    PLong  y_turns;
-    Int    y2, n;
-
-
-    n       = ras.numTurns - 1;
-    y_turns = ras.sizeBuff - ras.numTurns;
-
-    /* look for first y value that is <= */
-    while ( n >= 0 && y < y_turns[n] )
-      n--;
-
-    /* if it is <, simply insert it, ignore if == */
-    if ( n >= 0 && y > y_turns[n] )
-      while ( n >= 0 )
-      {
-        y2 = (Int)y_turns[n];
-        y_turns[n] = y;
-        y = y2;
-        n--;
-      }
-
-    if ( n < 0 )
-    {
-      ras.maxBuff--;
-      if ( ras.maxBuff <= ras.top )
-      {
-        ras.error = Raster_Err_Overflow;
-        return FAILURE;
-      }
-      ras.numTurns++;
-      ras.sizeBuff[-ras.numTurns] = y;
-    }
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Finalize_Profile_Table                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Adjusts all links in the profiles list.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success.  FAILURE in case of overflow.                  */
-  /*                                                                       */
-  static Bool
-  Finalize_Profile_Table( RAS_ARG )
-  {
-    Int       bottom, top;
-    UShort    n;
-    PProfile  p;
-
-
-    n = ras.num_Profs;
-
-    if ( n > 1 )
-    {
-      p = ras.fProfile;
-      while ( n > 0 )
-      {
-        if ( n > 1 )
-          p->link = (PProfile)( p->offset + p->height );
-        else
-          p->link = NULL;
-
-        switch ( p->flow )
-        {
-        case Flow_Down:
-          bottom     = (Int)( p->start - p->height + 1 );
-          top        = (Int)p->start;
-          p->start   = bottom;
-          p->offset += p->height - 1;
-          break;
-
-        case Flow_Up:
-        default:
-          bottom = (Int)p->start;
-          top    = (Int)( p->start + p->height - 1 );
-        }
-
-        if ( Insert_Y_Turn( RAS_VARS bottom )   ||
-             Insert_Y_Turn( RAS_VARS top + 1 )  )
-          return FAILURE;
-
-        p = p->link;
-        n--;
-      }
-    }
-    else
-      ras.fProfile = NULL;
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Split_Conic                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Subdivides one conic Bezier into two joint sub-arcs in the Bezier  */
-  /*    stack.                                                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    None (subdivided Bezier is taken from the top of the stack).       */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This routine is the `beef' of this component.  It is  _the_ inner  */
-  /*    loop that should be optimized to hell to get the best performance. */
-  /*                                                                       */
-  static void
-  Split_Conic( TPoint*  base )
-  {
-    Long  a, b;
-
-
-    base[4].x = base[2].x;
-    b = base[1].x;
-    a = base[3].x = ( base[2].x + b ) / 2;
-    b = base[1].x = ( base[0].x + b ) / 2;
-    base[2].x = ( a + b ) / 2;
-
-    base[4].y = base[2].y;
-    b = base[1].y;
-    a = base[3].y = ( base[2].y + b ) / 2;
-    b = base[1].y = ( base[0].y + b ) / 2;
-    base[2].y = ( a + b ) / 2;
-
-    /* hand optimized.  gcc doesn't seem to be too good at common      */
-    /* expression substitution and instruction scheduling ;-)          */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Split_Cubic                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Subdivides a third-order Bezier arc into two joint sub-arcs in the */
-  /*    Bezier stack.                                                      */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This routine is the `beef' of the component.  It is one of _the_   */
-  /*    inner loops that should be optimized like hell to get the best     */
-  /*    performance.                                                       */
-  /*                                                                       */
-  static void
-  Split_Cubic( TPoint*  base )
-  {
-    Long  a, b, c, d;
-
-
-    base[6].x = base[3].x;
-    c = base[1].x;
-    d = base[2].x;
-    base[1].x = a = ( base[0].x + c + 1 ) >> 1;
-    base[5].x = b = ( base[3].x + d + 1 ) >> 1;
-    c = ( c + d + 1 ) >> 1;
-    base[2].x = a = ( a + c + 1 ) >> 1;
-    base[4].x = b = ( b + c + 1 ) >> 1;
-    base[3].x = ( a + b + 1 ) >> 1;
-
-    base[6].y = base[3].y;
-    c = base[1].y;
-    d = base[2].y;
-    base[1].y = a = ( base[0].y + c + 1 ) >> 1;
-    base[5].y = b = ( base[3].y + d + 1 ) >> 1;
-    c = ( c + d + 1 ) >> 1;
-    base[2].y = a = ( a + c + 1 ) >> 1;
-    base[4].y = b = ( b + c + 1 ) >> 1;
-    base[3].y = ( a + b + 1 ) >> 1;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Line_Up                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the x-coordinates of an ascending line segment and stores */
-  /*    them in the render pool.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x1   :: The x-coordinate of the segment's start point.             */
-  /*                                                                       */
-  /*    y1   :: The y-coordinate of the segment's start point.             */
-  /*                                                                       */
-  /*    x2   :: The x-coordinate of the segment's end point.               */
-  /*                                                                       */
-  /*    y2   :: The y-coordinate of the segment's end point.               */
-  /*                                                                       */
-  /*    miny :: A lower vertical clipping bound value.                     */
-  /*                                                                       */
-  /*    maxy :: An upper vertical clipping bound value.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success, FAILURE on render pool overflow.               */
-  /*                                                                       */
-  static Bool
-  Line_Up( RAS_ARGS Long  x1,
-                    Long  y1,
-                    Long  x2,
-                    Long  y2,
-                    Long  miny,
-                    Long  maxy )
-  {
-    Long   Dx, Dy;
-    Int    e1, e2, f1, f2, size;     /* XXX: is `Short' sufficient? */
-    Long   Ix, Rx, Ax;
-
-    PLong  top;
-
-
-    Dx = x2 - x1;
-    Dy = y2 - y1;
-
-    if ( Dy <= 0 || y2 < miny || y1 > maxy )
-      return SUCCESS;
-
-    if ( y1 < miny )
-    {
-      /* Take care: miny-y1 can be a very large value; we use     */
-      /*            a slow MulDiv function to avoid clipping bugs */
-      x1 += SMulDiv( Dx, miny - y1, Dy );
-      e1  = (Int)TRUNC( miny );
-      f1  = 0;
-    }
-    else
-    {
-      e1 = (Int)TRUNC( y1 );
-      f1 = (Int)FRAC( y1 );
-    }
-
-    if ( y2 > maxy )
-    {
-      /* x2 += FMulDiv( Dx, maxy - y2, Dy );  UNNECESSARY */
-      e2  = (Int)TRUNC( maxy );
-      f2  = 0;
-    }
-    else
-    {
-      e2 = (Int)TRUNC( y2 );
-      f2 = (Int)FRAC( y2 );
-    }
-
-    if ( f1 > 0 )
-    {
-      if ( e1 == e2 )
-        return SUCCESS;
-      else
-      {
-        x1 += FMulDiv( Dx, ras.precision - f1, Dy );
-        e1 += 1;
-      }
-    }
-    else
-      if ( ras.joint )
-      {
-        ras.top--;
-        ras.joint = FALSE;
-      }
-
-    ras.joint = (char)( f2 == 0 );
-
-    if ( ras.fresh )
-    {
-      ras.cProfile->start = e1;
-      ras.fresh           = FALSE;
-    }
-
-    size = e2 - e1 + 1;
-    if ( ras.top + size >= ras.maxBuff )
-    {
-      ras.error = Raster_Err_Overflow;
-      return FAILURE;
-    }
-
-    if ( Dx > 0 )
-    {
-      Ix = ( ras.precision * Dx ) / Dy;
-      Rx = ( ras.precision * Dx ) % Dy;
-      Dx = 1;
-    }
-    else
-    {
-      Ix = -( ( ras.precision * -Dx ) / Dy );
-      Rx =    ( ras.precision * -Dx ) % Dy;
-      Dx = -1;
-    }
-
-    Ax  = -Dy;
-    top = ras.top;
-
-    while ( size > 0 )
-    {
-      *top++ = x1;
-
-      x1 += Ix;
-      Ax += Rx;
-      if ( Ax >= 0 )
-      {
-        Ax -= Dy;
-        x1 += Dx;
-      }
-      size--;
-    }
-
-    ras.top = top;
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Line_Down                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the x-coordinates of an descending line segment and       */
-  /*    stores them in the render pool.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    x1   :: The x-coordinate of the segment's start point.             */
-  /*                                                                       */
-  /*    y1   :: The y-coordinate of the segment's start point.             */
-  /*                                                                       */
-  /*    x2   :: The x-coordinate of the segment's end point.               */
-  /*                                                                       */
-  /*    y2   :: The y-coordinate of the segment's end point.               */
-  /*                                                                       */
-  /*    miny :: A lower vertical clipping bound value.                     */
-  /*                                                                       */
-  /*    maxy :: An upper vertical clipping bound value.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success, FAILURE on render pool overflow.               */
-  /*                                                                       */
-  static Bool
-  Line_Down( RAS_ARGS Long  x1,
-                      Long  y1,
-                      Long  x2,
-                      Long  y2,
-                      Long  miny,
-                      Long  maxy )
-  {
-    Bool  result, fresh;
-
-
-    fresh  = ras.fresh;
-
-    result = Line_Up( RAS_VARS x1, -y1, x2, -y2, -maxy, -miny );
-
-    if ( fresh && !ras.fresh )
-      ras.cProfile->start = -ras.cProfile->start;
-
-    return result;
-  }
-
-
-  /* A function type describing the functions used to split Bezier arcs */
-  typedef void  (*TSplitter)( TPoint*  base );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Bezier_Up                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the x-coordinates of an ascending Bezier arc and stores   */
-  /*    them in the render pool.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    degree   :: The degree of the Bezier arc (either 2 or 3).          */
-  /*                                                                       */
-  /*    splitter :: The function to split Bezier arcs.                     */
-  /*                                                                       */
-  /*    miny     :: A lower vertical clipping bound value.                 */
-  /*                                                                       */
-  /*    maxy     :: An upper vertical clipping bound value.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success, FAILURE on render pool overflow.               */
-  /*                                                                       */
-  static Bool
-  Bezier_Up( RAS_ARGS Int        degree,
-                      TSplitter  splitter,
-                      Long       miny,
-                      Long       maxy )
-  {
-    Long   y1, y2, e, e2, e0;
-    Short  f1;
-
-    TPoint*  arc;
-    TPoint*  start_arc;
-
-    PLong top;
-
-
-    arc = ras.arc;
-    y1  = arc[degree].y;
-    y2  = arc[0].y;
-    top = ras.top;
-
-    if ( y2 < miny || y1 > maxy )
-      goto Fin;
-
-    e2 = FLOOR( y2 );
-
-    if ( e2 > maxy )
-      e2 = maxy;
-
-    e0 = miny;
-
-    if ( y1 < miny )
-      e = miny;
-    else
-    {
-      e  = CEILING( y1 );
-      f1 = (Short)( FRAC( y1 ) );
-      e0 = e;
-
-      if ( f1 == 0 )
-      {
-        if ( ras.joint )
-        {
-          top--;
-          ras.joint = FALSE;
-        }
-
-        *top++ = arc[degree].x;
-
-        e += ras.precision;
-      }
-    }
-
-    if ( ras.fresh )
-    {
-      ras.cProfile->start = TRUNC( e0 );
-      ras.fresh = FALSE;
-    }
-
-    if ( e2 < e )
-      goto Fin;
-
-    if ( ( top + TRUNC( e2 - e ) + 1 ) >= ras.maxBuff )
-    {
-      ras.top   = top;
-      ras.error = Raster_Err_Overflow;
-      return FAILURE;
-    }
-
-    start_arc = arc;
-
-    while ( arc >= start_arc && e <= e2 )
-    {
-      ras.joint = FALSE;
-
-      y2 = arc[0].y;
-
-      if ( y2 > e )
-      {
-        y1 = arc[degree].y;
-        if ( y2 - y1 >= ras.precision_step )
-        {
-          splitter( arc );
-          arc += degree;
-        }
-        else
-        {
-          *top++ = arc[degree].x + FMulDiv( arc[0].x-arc[degree].x,
-                                            e - y1, y2 - y1 );
-          arc -= degree;
-          e   += ras.precision;
-        }
-      }
-      else
-      {
-        if ( y2 == e )
-        {
-          ras.joint  = TRUE;
-          *top++     = arc[0].x;
-
-          e += ras.precision;
-        }
-        arc -= degree;
-      }
-    }
-
-  Fin:
-    ras.top  = top;
-    ras.arc -= degree;
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Bezier_Down                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the x-coordinates of an descending Bezier arc and stores  */
-  /*    them in the render pool.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    degree   :: The degree of the Bezier arc (either 2 or 3).          */
-  /*                                                                       */
-  /*    splitter :: The function to split Bezier arcs.                     */
-  /*                                                                       */
-  /*    miny     :: A lower vertical clipping bound value.                 */
-  /*                                                                       */
-  /*    maxy     :: An upper vertical clipping bound value.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success, FAILURE on render pool overflow.               */
-  /*                                                                       */
-  static Bool
-  Bezier_Down( RAS_ARGS Int        degree,
-                        TSplitter  splitter,
-                        Long       miny,
-                        Long       maxy )
-  {
-    TPoint*  arc = ras.arc;
-    Bool     result, fresh;
-
-
-    arc[0].y = -arc[0].y;
-    arc[1].y = -arc[1].y;
-    arc[2].y = -arc[2].y;
-    if ( degree > 2 )
-      arc[3].y = -arc[3].y;
-
-    fresh = ras.fresh;
-
-    result = Bezier_Up( RAS_VARS degree, splitter, -maxy, -miny );
-
-    if ( fresh && !ras.fresh )
-      ras.cProfile->start = -ras.cProfile->start;
-
-    arc[0].y = -arc[0].y;
-    return result;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Line_To                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Injects a new line segment and adjusts Profiles list.              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*   x :: The x-coordinate of the segment's end point (its start point   */
-  /*        is stored in `LastX').                                         */
-  /*                                                                       */
-  /*   y :: The y-coordinate of the segment's end point (its start point   */
-  /*        is stored in `LastY').                                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*   SUCCESS on success, FAILURE on render pool overflow or incorrect    */
-  /*   profile.                                                            */
-  /*                                                                       */
-  static Bool
-  Line_To( RAS_ARGS Long  x,
-                    Long  y )
-  {
-    /* First, detect a change of direction */
-
-    switch ( ras.state )
-    {
-    case Unknown_State:
-      if ( y > ras.lastY )
-      {
-        if ( New_Profile( RAS_VARS Ascending_State ) )
-          return FAILURE;
-      }
-      else
-      {
-        if ( y < ras.lastY )
-          if ( New_Profile( RAS_VARS Descending_State ) )
-            return FAILURE;
-      }
-      break;
-
-    case Ascending_State:
-      if ( y < ras.lastY )
-      {
-        if ( End_Profile( RAS_VAR )                   ||
-             New_Profile( RAS_VARS Descending_State ) )
-          return FAILURE;
-      }
-      break;
-
-    case Descending_State:
-      if ( y > ras.lastY )
-      {
-        if ( End_Profile( RAS_VAR )                  ||
-             New_Profile( RAS_VARS Ascending_State ) )
-          return FAILURE;
-      }
-      break;
-
-    default:
-      ;
-    }
-
-    /* Then compute the lines */
-
-    switch ( ras.state )
-    {
-    case Ascending_State:
-      if ( Line_Up( RAS_VARS ras.lastX, ras.lastY,
-                    x, y, ras.minY, ras.maxY ) )
-        return FAILURE;
-      break;
-
-    case Descending_State:
-      if ( Line_Down( RAS_VARS ras.lastX, ras.lastY,
-                      x, y, ras.minY, ras.maxY ) )
-        return FAILURE;
-      break;
-
-    default:
-      ;
-    }
-
-    ras.lastX = x;
-    ras.lastY = y;
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Conic_To                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Injects a new conic arc and adjusts the profile list.              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*   cx :: The x-coordinate of the arc's new control point.              */
-  /*                                                                       */
-  /*   cy :: The y-coordinate of the arc's new control point.              */
-  /*                                                                       */
-  /*   x  :: The x-coordinate of the arc's end point (its start point is   */
-  /*         stored in `LastX').                                           */
-  /*                                                                       */
-  /*   y  :: The y-coordinate of the arc's end point (its start point is   */
-  /*         stored in `LastY').                                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*   SUCCESS on success, FAILURE on render pool overflow or incorrect    */
-  /*   profile.                                                            */
-  /*                                                                       */
-  static Bool
-  Conic_To( RAS_ARGS Long  cx,
-                     Long  cy,
-                     Long  x,
-                     Long  y )
-  {
-    Long     y1, y2, y3, x3, ymin, ymax;
-    TStates  state_bez;
-
-
-    ras.arc      = ras.arcs;
-    ras.arc[2].x = ras.lastX;
-    ras.arc[2].y = ras.lastY;
-    ras.arc[1].x = cx; ras.arc[1].y = cy;
-    ras.arc[0].x = x;  ras.arc[0].y = y;
-
-    do
-    {
-      y1 = ras.arc[2].y;
-      y2 = ras.arc[1].y;
-      y3 = ras.arc[0].y;
-      x3 = ras.arc[0].x;
-
-      /* first, categorize the Bezier arc */
-
-      if ( y1 <= y3 )
-      {
-        ymin = y1;
-        ymax = y3;
-      }
-      else
-      {
-        ymin = y3;
-        ymax = y1;
-      }
-
-      if ( y2 < ymin || y2 > ymax )
-      {
-        /* this arc has no given direction, split it! */
-        Split_Conic( ras.arc );
-        ras.arc += 2;
-      }
-      else if ( y1 == y3 )
-      {
-        /* this arc is flat, ignore it and pop it from the Bezier stack */
-        ras.arc -= 2;
-      }
-      else
-      {
-        /* the arc is y-monotonous, either ascending or descending */
-        /* detect a change of direction                            */
-        state_bez = y1 < y3 ? Ascending_State : Descending_State;
-        if ( ras.state != state_bez )
-        {
-          /* finalize current profile if any */
-          if ( ras.state != Unknown_State   &&
-               End_Profile( RAS_VAR ) )
-            goto Fail;
-
-          /* create a new profile */
-          if ( New_Profile( RAS_VARS state_bez ) )
-            goto Fail;
-        }
-
-        /* now call the appropriate routine */
-        if ( state_bez == Ascending_State )
-        {
-          if ( Bezier_Up( RAS_VARS 2, Split_Conic, ras.minY, ras.maxY ) )
-            goto Fail;
-        }
-        else
-          if ( Bezier_Down( RAS_VARS 2, Split_Conic, ras.minY, ras.maxY ) )
-            goto Fail;
-      }
-
-    } while ( ras.arc >= ras.arcs );
-
-    ras.lastX = x3;
-    ras.lastY = y3;
-
-    return SUCCESS;
-
-  Fail:
-    return FAILURE;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Cubic_To                                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Injects a new cubic arc and adjusts the profile list.              */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*   cx1 :: The x-coordinate of the arc's first new control point.       */
-  /*                                                                       */
-  /*   cy1 :: The y-coordinate of the arc's first new control point.       */
-  /*                                                                       */
-  /*   cx2 :: The x-coordinate of the arc's second new control point.      */
-  /*                                                                       */
-  /*   cy2 :: The y-coordinate of the arc's second new control point.      */
-  /*                                                                       */
-  /*   x   :: The x-coordinate of the arc's end point (its start point is  */
-  /*          stored in `LastX').                                          */
-  /*                                                                       */
-  /*   y   :: The y-coordinate of the arc's end point (its start point is  */
-  /*          stored in `LastY').                                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*   SUCCESS on success, FAILURE on render pool overflow or incorrect    */
-  /*   profile.                                                            */
-  /*                                                                       */
-  static Bool
-  Cubic_To( RAS_ARGS Long  cx1,
-                     Long  cy1,
-                     Long  cx2,
-                     Long  cy2,
-                     Long  x,
-                     Long  y )
-  {
-    Long     y1, y2, y3, y4, x4, ymin1, ymax1, ymin2, ymax2;
-    TStates  state_bez;
-
-
-    ras.arc      = ras.arcs;
-    ras.arc[3].x = ras.lastX;
-    ras.arc[3].y = ras.lastY;
-    ras.arc[2].x = cx1; ras.arc[2].y = cy1;
-    ras.arc[1].x = cx2; ras.arc[1].y = cy2;
-    ras.arc[0].x = x;   ras.arc[0].y = y;
-
-    do
-    {
-      y1 = ras.arc[3].y;
-      y2 = ras.arc[2].y;
-      y3 = ras.arc[1].y;
-      y4 = ras.arc[0].y;
-      x4 = ras.arc[0].x;
-
-      /* first, categorize the Bezier arc */
-
-      if ( y1 <= y4 )
-      {
-        ymin1 = y1;
-        ymax1 = y4;
-      }
-      else
-      {
-        ymin1 = y4;
-        ymax1 = y1;
-      }
-
-      if ( y2 <= y3 )
-      {
-        ymin2 = y2;
-        ymax2 = y3;
-      }
-      else
-      {
-        ymin2 = y3;
-        ymax2 = y2;
-      }
-
-      if ( ymin2 < ymin1 || ymax2 > ymax1 )
-      {
-        /* this arc has no given direction, split it! */
-        Split_Cubic( ras.arc );
-        ras.arc += 3;
-      }
-      else if ( y1 == y4 )
-      {
-        /* this arc is flat, ignore it and pop it from the Bezier stack */
-        ras.arc -= 3;
-      }
-      else
-      {
-        state_bez = ( y1 <= y4 ) ? Ascending_State : Descending_State;
-
-        /* detect a change of direction */
-        if ( ras.state != state_bez )
-        {
-          if ( ras.state != Unknown_State   &&
-               End_Profile( RAS_VAR ) )
-            goto Fail;
-
-          if ( New_Profile( RAS_VARS state_bez ) )
-            goto Fail;
-        }
-
-        /* compute intersections */
-        if ( state_bez == Ascending_State )
-        {
-          if ( Bezier_Up( RAS_VARS 3, Split_Cubic, ras.minY, ras.maxY ) )
-            goto Fail;
-        }
-        else
-          if ( Bezier_Down( RAS_VARS 3, Split_Cubic, ras.minY, ras.maxY ) )
-            goto Fail;
-      }
-
-    } while ( ras.arc >= ras.arcs );
-
-    ras.lastX = x4;
-    ras.lastY = y4;
-
-    return SUCCESS;
-
-  Fail:
-    return FAILURE;
-  }
-
-
-#undef  SWAP_
-#define SWAP_( x, y )  do                \
-                       {                 \
-                         Long  swap = x; \
-                                         \
-                                         \
-                         x = y;          \
-                         y = swap;       \
-                       } while ( 0 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Decompose_Curve                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Scans the outline arays in order to emit individual segments and   */
-  /*    Beziers by calling Line_To() and Bezier_To().  It handles all      */
-  /*    weird cases, like when the first point is off the curve, or when   */
-  /*    there are simply no `on' points in the contour!                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    first   :: The index of the first point in the contour.            */
-  /*                                                                       */
-  /*    last    :: The index of the last point in the contour.             */
-  /*                                                                       */
-  /*    flipped :: If set, flip the direction of the curve.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success, FAILURE on error.                              */
-  /*                                                                       */
-  static Bool
-  Decompose_Curve( RAS_ARGS UShort  first,
-                            UShort  last,
-                            int     flipped )
-  {
-    FT_Vector   v_last;
-    FT_Vector   v_control;
-    FT_Vector   v_start;
-
-    FT_Vector*  points;
-    FT_Vector*  point;
-    FT_Vector*  limit;
-    char*       tags;
-
-    unsigned    tag;       /* current point's state           */
-
-
-    points = ras.outline.points;
-    limit  = points + last;
-
-    v_start.x = SCALED( points[first].x );
-    v_start.y = SCALED( points[first].y );
-    v_last.x  = SCALED( points[last].x );
-    v_last.y  = SCALED( points[last].y );
-
-    if ( flipped )
-    {
-      SWAP_( v_start.x, v_start.y );
-      SWAP_( v_last.x, v_last.y );
-    }
-
-    v_control = v_start;
-
-    point = points + first;
-    tags  = ras.outline.tags  + first;
-    tag   = FT_CURVE_TAG( tags[0] );
-
-    /* A contour cannot start with a cubic control point! */
-    if ( tag == FT_CURVE_TAG_CUBIC )
-      goto Invalid_Outline;
-
-    /* check first point to determine origin */
-    if ( tag == FT_CURVE_TAG_CONIC )
-    {
-      /* first point is conic control.  Yes, this happens. */
-      if ( FT_CURVE_TAG( ras.outline.tags[last] ) == FT_CURVE_TAG_ON )
-      {
-        /* start at last point if it is on the curve */
-        v_start = v_last;
-        limit--;
-      }
-      else
-      {
-        /* if both first and last points are conic,         */
-        /* start at their middle and record its position    */
-        /* for closure                                      */
-        v_start.x = ( v_start.x + v_last.x ) / 2;
-        v_start.y = ( v_start.y + v_last.y ) / 2;
-
-        v_last = v_start;
-      }
-      point--;
-      tags--;
-    }
-
-    ras.lastX = v_start.x;
-    ras.lastY = v_start.y;
-
-    while ( point < limit )
-    {
-      point++;
-      tags++;
-
-      tag = FT_CURVE_TAG( tags[0] );
-
-      switch ( tag )
-      {
-      case FT_CURVE_TAG_ON:  /* emit a single line_to */
-        {
-          Long  x, y;
-
-
-          x = SCALED( point->x );
-          y = SCALED( point->y );
-          if ( flipped )
-            SWAP_( x, y );
-
-          if ( Line_To( RAS_VARS x, y ) )
-            goto Fail;
-          continue;
-        }
-
-      case FT_CURVE_TAG_CONIC:  /* consume conic arcs */
-        v_control.x = SCALED( point[0].x );
-        v_control.y = SCALED( point[0].y );
-
-        if ( flipped )
-          SWAP_( v_control.x, v_control.y );
-
-      Do_Conic:
-        if ( point < limit )
-        {
-          FT_Vector  v_middle;
-          Long       x, y;
-
-
-          point++;
-          tags++;
-          tag = FT_CURVE_TAG( tags[0] );
-
-          x = SCALED( point[0].x );
-          y = SCALED( point[0].y );
-
-          if ( flipped )
-            SWAP_( x, y );
-
-          if ( tag == FT_CURVE_TAG_ON )
-          {
-            if ( Conic_To( RAS_VARS v_control.x, v_control.y, x, y ) )
-              goto Fail;
-            continue;
-          }
-
-          if ( tag != FT_CURVE_TAG_CONIC )
-            goto Invalid_Outline;
-
-          v_middle.x = ( v_control.x + x ) / 2;
-          v_middle.y = ( v_control.y + y ) / 2;
-
-          if ( Conic_To( RAS_VARS v_control.x, v_control.y,
-                                  v_middle.x,  v_middle.y ) )
-            goto Fail;
-
-          v_control.x = x;
-          v_control.y = y;
-
-          goto Do_Conic;
-        }
-
-        if ( Conic_To( RAS_VARS v_control.x, v_control.y,
-                                v_start.x,   v_start.y ) )
-          goto Fail;
-
-        goto Close;
-
-      default:  /* FT_CURVE_TAG_CUBIC */
-        {
-          Long  x1, y1, x2, y2, x3, y3;
-
-
-          if ( point + 1 > limit                             ||
-               FT_CURVE_TAG( tags[1] ) != FT_CURVE_TAG_CUBIC )
-            goto Invalid_Outline;
-
-          point += 2;
-          tags  += 2;
-
-          x1 = SCALED( point[-2].x );
-          y1 = SCALED( point[-2].y );
-          x2 = SCALED( point[-1].x );
-          y2 = SCALED( point[-1].y );
-          x3 = SCALED( point[ 0].x );
-          y3 = SCALED( point[ 0].y );
-
-          if ( flipped )
-          {
-            SWAP_( x1, y1 );
-            SWAP_( x2, y2 );
-            SWAP_( x3, y3 );
-          }
-
-          if ( point <= limit )
-          {
-            if ( Cubic_To( RAS_VARS x1, y1, x2, y2, x3, y3 ) )
-              goto Fail;
-            continue;
-          }
-
-          if ( Cubic_To( RAS_VARS x1, y1, x2, y2, v_start.x, v_start.y ) )
-            goto Fail;
-          goto Close;
-        }
-      }
-    }
-
-    /* close the contour with a line segment */
-    if ( Line_To( RAS_VARS v_start.x, v_start.y ) )
-      goto Fail;
-
-  Close:
-    return SUCCESS;
-
-  Invalid_Outline:
-    ras.error = Raster_Err_Invalid;
-
-  Fail:
-    return FAILURE;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Convert_Glyph                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Converts a glyph into a series of segments and arcs and makes a    */
-  /*    profiles list with them.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    flipped :: If set, flip the direction of curve.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS on success, FAILURE if any error was encountered during    */
-  /*    rendering.                                                         */
-  /*                                                                       */
-  static Bool
-  Convert_Glyph( RAS_ARGS int  flipped )
-  {
-    int       i;
-    unsigned  start;
-
-    PProfile  lastProfile;
-
-
-    ras.fProfile = NULL;
-    ras.joint    = FALSE;
-    ras.fresh    = FALSE;
-
-    ras.maxBuff  = ras.sizeBuff - AlignProfileSize;
-
-    ras.numTurns = 0;
-
-    ras.cProfile         = (PProfile)ras.top;
-    ras.cProfile->offset = ras.top;
-    ras.num_Profs        = 0;
-
-    start = 0;
-
-    for ( i = 0; i < ras.outline.n_contours; i++ )
-    {
-      ras.state    = Unknown_State;
-      ras.gProfile = NULL;
-
-      if ( Decompose_Curve( RAS_VARS (unsigned short)start,
-                            ras.outline.contours[i],
-                            flipped ) )
-        return FAILURE;
-
-      start = ras.outline.contours[i] + 1;
-
-      /* We must now see whether the extreme arcs join or not */
-      if ( FRAC( ras.lastY ) == 0 &&
-           ras.lastY >= ras.minY  &&
-           ras.lastY <= ras.maxY  )
-        if ( ras.gProfile && ras.gProfile->flow == ras.cProfile->flow )
-          ras.top--;
-        /* Note that ras.gProfile can be nil if the contour was too small */
-        /* to be drawn.                                                   */
-
-      lastProfile = ras.cProfile;
-      if ( End_Profile( RAS_VAR ) )
-        return FAILURE;
-
-      /* close the `next profile in contour' linked list */
-      if ( ras.gProfile )
-        lastProfile->next = ras.gProfile;
-    }
-
-    if ( Finalize_Profile_Table( RAS_VAR ) )
-      return FAILURE;
-
-    return (Bool)( ras.top < ras.maxBuff ? SUCCESS : FAILURE );
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /**                                                                     **/
-  /**  SCAN-LINE SWEEPS AND DRAWING                                       **/
-  /**                                                                     **/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Init_Linked                                                          */
-  /*                                                                       */
-  /*    Initializes an empty linked list.                                  */
-  /*                                                                       */
-  static void
-  Init_Linked( TProfileList*  l )
-  {
-    *l = NULL;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  InsNew                                                               */
-  /*                                                                       */
-  /*    Inserts a new profile in a linked list.                            */
-  /*                                                                       */
-  static void
-  InsNew( PProfileList  list,
-          PProfile      profile )
-  {
-    PProfile  *old, current;
-    Long       x;
-
-
-    old     = list;
-    current = *old;
-    x       = profile->X;
-
-    while ( current )
-    {
-      if ( x < current->X )
-        break;
-      old     = &current->link;
-      current = *old;
-    }
-
-    profile->link = current;
-    *old          = profile;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  DelOld                                                               */
-  /*                                                                       */
-  /*    Removes an old profile from a linked list.                         */
-  /*                                                                       */
-  static void
-  DelOld( PProfileList  list,
-          PProfile      profile )
-  {
-    PProfile  *old, current;
-
-
-    old     = list;
-    current = *old;
-
-    while ( current )
-    {
-      if ( current == profile )
-      {
-        *old = current->link;
-        return;
-      }
-
-      old     = &current->link;
-      current = *old;
-    }
-
-    /* we should never get there, unless the profile was not part of */
-    /* the list.                                                     */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Sort                                                                 */
-  /*                                                                       */
-  /*    Sorts a trace list.  In 95%, the list is already sorted.  We need  */
-  /*    an algorithm which is fast in this case.  Bubble sort is enough    */
-  /*    and simple.                                                        */
-  /*                                                                       */
-  static void
-  Sort( PProfileList  list )
-  {
-    PProfile  *old, current, next;
-
-
-    /* First, set the new X coordinate of each profile */
-    current = *list;
-    while ( current )
-    {
-      current->X       = *current->offset;
-      current->offset += current->flow;
-      current->height--;
-      current = current->link;
-    }
-
-    /* Then sort them */
-    old     = list;
-    current = *old;
-
-    if ( !current )
-      return;
-
-    next = current->link;
-
-    while ( next )
-    {
-      if ( current->X <= next->X )
-      {
-        old     = &current->link;
-        current = *old;
-
-        if ( !current )
-          return;
-      }
-      else
-      {
-        *old          = next;
-        current->link = next->link;
-        next->link    = current;
-
-        old     = list;
-        current = *old;
-      }
-
-      next = current->link;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Vertical Sweep Procedure Set                                         */
-  /*                                                                       */
-  /*  These four routines are used during the vertical black/white sweep   */
-  /*  phase by the generic Draw_Sweep() function.                          */
-  /*                                                                       */
-  /*************************************************************************/
-
-  static void
-  Vertical_Sweep_Init( RAS_ARGS Short*  min,
-                                Short*  max )
-  {
-    Long  pitch = ras.target.pitch;
-
-    FT_UNUSED( max );
-
-
-    ras.traceIncr = (Short)-pitch;
-    ras.traceOfs  = -*min * pitch;
-    if ( pitch > 0 )
-      ras.traceOfs += ( ras.target.rows - 1 ) * pitch;
-
-    ras.gray_min_x = 0;
-    ras.gray_max_x = 0;
-  }
-
-
-  static void
-  Vertical_Sweep_Span( RAS_ARGS Short       y,
-                                FT_F26Dot6  x1,
-                                FT_F26Dot6  x2,
-                                PProfile    left,
-                                PProfile    right )
-  {
-    Long   e1, e2;
-    int    c1, c2;
-    Byte   f1, f2;
-    Byte*  target;
-
-    FT_UNUSED( y );
-    FT_UNUSED( left );
-    FT_UNUSED( right );
-
-
-    /* Drop-out control */
-
-    e1 = TRUNC( CEILING( x1 ) );
-
-    if ( x2 - x1 - ras.precision <= ras.precision_jitter )
-      e2 = e1;
-    else
-      e2 = TRUNC( FLOOR( x2 ) );
-
-    if ( e2 >= 0 && e1 < ras.bWidth )
-    {
-      if ( e1 < 0 )
-        e1 = 0;
-      if ( e2 >= ras.bWidth )
-        e2 = ras.bWidth - 1;
-
-      c1 = (Short)( e1 >> 3 );
-      c2 = (Short)( e2 >> 3 );
-
-      f1 = (Byte)  ( 0xFF >> ( e1 & 7 ) );
-      f2 = (Byte) ~( 0x7F >> ( e2 & 7 ) );
-
-      if ( ras.gray_min_x > c1 ) ras.gray_min_x = (short)c1;
-      if ( ras.gray_max_x < c2 ) ras.gray_max_x = (short)c2;
-
-      target = ras.bTarget + ras.traceOfs + c1;
-      c2 -= c1;
-
-      if ( c2 > 0 )
-      {
-        target[0] |= f1;
-
-        /* memset() is slower than the following code on many platforms. */
-        /* This is due to the fact that, in the vast majority of cases,  */
-        /* the span length in bytes is relatively small.                 */
-        c2--;
-        while ( c2 > 0 )
-        {
-          *(++target) = 0xFF;
-          c2--;
-        }
-        target[1] |= f2;
-      }
-      else
-        *target |= ( f1 & f2 );
-    }
-  }
-
-
-  static void
-  Vertical_Sweep_Drop( RAS_ARGS Short       y,
-                                FT_F26Dot6  x1,
-                                FT_F26Dot6  x2,
-                                PProfile    left,
-                                PProfile    right )
-  {
-    Long   e1, e2;
-    Short  c1, f1;
-
-
-    /* Drop-out control */
-
-    e1 = CEILING( x1 );
-    e2 = FLOOR  ( x2 );
-
-    if ( e1 > e2 )
-    {
-      if ( e1 == e2 + ras.precision )
-      {
-        switch ( ras.dropOutControl )
-        {
-        case 1:
-          e1 = e2;
-          break;
-
-        case 4:
-          e1 = CEILING( (x1 + x2 + 1) / 2 );
-          break;
-
-        case 2:
-        case 5:
-          /* Drop-out Control Rule #4 */
-
-          /* The spec is not very clear regarding rule #4.  It      */
-          /* presents a method that is way too costly to implement  */
-          /* while the general idea seems to get rid of `stubs'.    */
-          /*                                                        */
-          /* Here, we only get rid of stubs recognized if:          */
-          /*                                                        */
-          /*  upper stub:                                           */
-          /*                                                        */
-          /*   - P_Left and P_Right are in the same contour         */
-          /*   - P_Right is the successor of P_Left in that contour */
-          /*   - y is the top of P_Left and P_Right                 */
-          /*                                                        */
-          /*  lower stub:                                           */
-          /*                                                        */
-          /*   - P_Left and P_Right are in the same contour         */
-          /*   - P_Left is the successor of P_Right in that contour */
-          /*   - y is the bottom of P_Left                          */
-          /*                                                        */
-
-          /* FIXXXME: uncommenting this line solves the disappearing */
-          /*          bit problem in the `7' of verdana 10pts, but   */
-          /*          makes a new one in the `C' of arial 14pts      */
-
-#if 0
-          if ( x2 - x1 < ras.precision_half )
-#endif
-          {
-            /* upper stub test */
-            if ( left->next == right && left->height <= 0 )
-              return;
-
-            /* lower stub test */
-            if ( right->next == left && left->start == y )
-              return;
-          }
-
-          /* check that the rightmost pixel isn't set */
-
-          e1 = TRUNC( e1 );
-
-          c1 = (Short)( e1 >> 3 );
-          f1 = (Short)( e1 &  7 );
-
-          if ( e1 >= 0 && e1 < ras.bWidth                      &&
-               ras.bTarget[ras.traceOfs + c1] & ( 0x80 >> f1 ) )
-            return;
-
-          if ( ras.dropOutControl == 2 )
-            e1 = e2;
-          else
-            e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
-
-          break;
-
-        default:
-          return;  /* unsupported mode */
-        }
-      }
-      else
-        return;
-    }
-
-    e1 = TRUNC( e1 );
-
-    if ( e1 >= 0 && e1 < ras.bWidth )
-    {
-      c1 = (Short)( e1 >> 3 );
-      f1 = (Short)( e1 & 7 );
-
-      if ( ras.gray_min_x > c1 ) ras.gray_min_x = c1;
-      if ( ras.gray_max_x < c1 ) ras.gray_max_x = c1;
-
-      ras.bTarget[ras.traceOfs + c1] |= (char)( 0x80 >> f1 );
-    }
-  }
-
-
-  static void
-  Vertical_Sweep_Step( RAS_ARG )
-  {
-    ras.traceOfs += ras.traceIncr;
-  }
-
-
-  /***********************************************************************/
-  /*                                                                     */
-  /*  Horizontal Sweep Procedure Set                                     */
-  /*                                                                     */
-  /*  These four routines are used during the horizontal black/white     */
-  /*  sweep phase by the generic Draw_Sweep() function.                  */
-  /*                                                                     */
-  /***********************************************************************/
-
-  static void
-  Horizontal_Sweep_Init( RAS_ARGS Short*  min,
-                                  Short*  max )
-  {
-    /* nothing, really */
-    FT_UNUSED( raster );
-    FT_UNUSED( min );
-    FT_UNUSED( max );
-  }
-
-
-  static void
-  Horizontal_Sweep_Span( RAS_ARGS Short       y,
-                                  FT_F26Dot6  x1,
-                                  FT_F26Dot6  x2,
-                                  PProfile    left,
-                                  PProfile    right )
-  {
-    Long   e1, e2;
-    PByte  bits;
-    Byte   f1;
-
-    FT_UNUSED( left );
-    FT_UNUSED( right );
-
-
-    if ( x2 - x1 < ras.precision )
-    {
-      e1 = CEILING( x1 );
-      e2 = FLOOR  ( x2 );
-
-      if ( e1 == e2 )
-      {
-        bits = ras.bTarget + ( y >> 3 );
-        f1   = (Byte)( 0x80 >> ( y & 7 ) );
-
-        e1 = TRUNC( e1 );
-
-        if ( e1 >= 0 && e1 < ras.target.rows )
-        {
-          PByte  p;
-
-
-          p = bits - e1*ras.target.pitch;
-          if ( ras.target.pitch > 0 )
-            p += ( ras.target.rows - 1 ) * ras.target.pitch;
-
-          p[0] |= f1;
-        }
-      }
-    }
-  }
-
-
-  static void
-  Horizontal_Sweep_Drop( RAS_ARGS Short       y,
-                                  FT_F26Dot6  x1,
-                                  FT_F26Dot6  x2,
-                                  PProfile    left,
-                                  PProfile    right )
-  {
-    Long   e1, e2;
-    PByte  bits;
-    Byte   f1;
-
-
-    /* During the horizontal sweep, we only take care of drop-outs */
-
-    e1 = CEILING( x1 );
-    e2 = FLOOR  ( x2 );
-
-    if ( e1 > e2 )
-    {
-      if ( e1 == e2 + ras.precision )
-      {
-        switch ( ras.dropOutControl )
-        {
-        case 1:
-          e1 = e2;
-          break;
-
-        case 4:
-          e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
-          break;
-
-        case 2:
-        case 5:
-
-          /* Drop-out Control Rule #4 */
-
-          /* The spec is not very clear regarding rule #4.  It      */
-          /* presents a method that is way too costly to implement  */
-          /* while the general idea seems to get rid of `stubs'.    */
-          /*                                                        */
-
-          /* rightmost stub test */
-          if ( left->next == right && left->height <= 0 )
-            return;
-
-          /* leftmost stub test */
-          if ( right->next == left && left->start == y )
-            return;
-
-          /* check that the rightmost pixel isn't set */
-
-          e1 = TRUNC( e1 );
-
-          bits = ras.bTarget + ( y >> 3 );
-          f1   = (Byte)( 0x80 >> ( y & 7 ) );
-
-          bits -= e1 * ras.target.pitch;
-          if ( ras.target.pitch > 0 )
-            bits += ( ras.target.rows - 1 ) * ras.target.pitch;
-
-          if ( e1 >= 0              &&
-               e1 < ras.target.rows &&
-               *bits & f1 )
-            return;
-
-          if ( ras.dropOutControl == 2 )
-            e1 = e2;
-          else
-            e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
-
-          break;
-
-        default:
-          return;  /* unsupported mode */
-        }
-      }
-      else
-        return;
-    }
-
-    bits = ras.bTarget + ( y >> 3 );
-    f1   = (Byte)( 0x80 >> ( y & 7 ) );
-
-    e1 = TRUNC( e1 );
-
-    if ( e1 >= 0 && e1 < ras.target.rows )
-    {
-      bits -= e1 * ras.target.pitch;
-      if ( ras.target.pitch > 0 )
-        bits += ( ras.target.rows - 1 ) * ras.target.pitch;
-
-      bits[0] |= f1;
-    }
-  }
-
-
-  static void
-  Horizontal_Sweep_Step( RAS_ARG )
-  {
-    /* Nothing, really */
-    FT_UNUSED( raster );
-  }
-
-
-#ifdef FT_RASTER_OPTION_ANTI_ALIASING
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Vertical Gray Sweep Procedure Set                                    */
-  /*                                                                       */
-  /*  These two routines are used during the vertical gray-levels sweep    */
-  /*  phase by the generic Draw_Sweep() function.                          */
-  /*                                                                       */
-  /*  NOTES                                                                */
-  /*                                                                       */
-  /*  - The target pixmap's width *must* be a multiple of 4.               */
-  /*                                                                       */
-  /*  - You have to use the function Vertical_Sweep_Span() for the gray    */
-  /*    span call.                                                         */
-  /*                                                                       */
-  /*************************************************************************/
-
-  static void
-  Vertical_Gray_Sweep_Init( RAS_ARGS Short*  min,
-                                     Short*  max )
-  {
-    Long  pitch, byte_len;
-
-
-    *min = *min & -2;
-    *max = ( *max + 3 ) & -2;
-
-    ras.traceOfs  = 0;
-    pitch         = ras.target.pitch;
-    byte_len      = -pitch;
-    ras.traceIncr = (Short)byte_len;
-    ras.traceG    = ( *min / 2 ) * byte_len;
-
-    if ( pitch > 0 )
-    {
-      ras.traceG += ( ras.target.rows - 1 ) * pitch;
-      byte_len    = -byte_len;
-    }
-
-    ras.gray_min_x =  (Short)byte_len;
-    ras.gray_max_x = -(Short)byte_len;
-  }
-
-
-  static void
-  Vertical_Gray_Sweep_Step( RAS_ARG )
-  {
-    Int    c1, c2;
-    PByte  pix, bit, bit2;
-    Int*   count = ras.count_table;
-    Byte*  grays;
-
-
-    ras.traceOfs += ras.gray_width;
-
-    if ( ras.traceOfs > ras.gray_width )
-    {
-      pix   = ras.gTarget + ras.traceG + ras.gray_min_x * 4;
-      grays = ras.grays;
-
-      if ( ras.gray_max_x >= 0 )
-      {
-        Long   last_pixel = ras.target.width - 1;
-        Int    last_cell  = last_pixel >> 2;
-        Int    last_bit   = last_pixel & 3;
-        Bool   over       = 0;
-
-
-        if ( ras.gray_max_x >= last_cell && last_bit != 3 )
-        {
-          ras.gray_max_x = last_cell - 1;
-          over = 1;
-        }
-
-        if ( ras.gray_min_x < 0 )
-          ras.gray_min_x = 0;
-
-        bit   = ras.bTarget + ras.gray_min_x;
-        bit2  = bit + ras.gray_width;
-
-        c1 = ras.gray_max_x - ras.gray_min_x;
-
-        while ( c1 >= 0 )
-        {
-          c2 = count[*bit] + count[*bit2];
-
-          if ( c2 )
-          {
-            pix[0] = grays[(c2 >> 12) & 0x000F];
-            pix[1] = grays[(c2 >> 8 ) & 0x000F];
-            pix[2] = grays[(c2 >> 4 ) & 0x000F];
-            pix[3] = grays[ c2        & 0x000F];
-
-            *bit  = 0;
-            *bit2 = 0;
-          }
-
-          bit++;
-          bit2++;
-          pix += 4;
-          c1--;
-        }
-
-        if ( over )
-        {
-          c2 = count[*bit] + count[*bit2];
-          if ( c2 )
-          {
-            switch ( last_bit )
-            {
-            case 2:
-              pix[2] = grays[(c2 >> 4 ) & 0x000F];
-            case 1:
-              pix[1] = grays[(c2 >> 8 ) & 0x000F];
-            default:
-              pix[0] = grays[(c2 >> 12) & 0x000F];
-            }
-
-            *bit  = 0;
-            *bit2 = 0;
-          }
-        }
-      }
-
-      ras.traceOfs = 0;
-      ras.traceG  += ras.traceIncr;
-
-      ras.gray_min_x =  32000;
-      ras.gray_max_x = -32000;
-    }
-  }
-
-
-  static void
-  Horizontal_Gray_Sweep_Span( RAS_ARGS Short       y,
-                                       FT_F26Dot6  x1,
-                                       FT_F26Dot6  x2,
-                                       PProfile    left,
-                                       PProfile    right )
-  {
-    /* nothing, really */
-    FT_UNUSED( raster );
-    FT_UNUSED( y );
-    FT_UNUSED( x1 );
-    FT_UNUSED( x2 );
-    FT_UNUSED( left );
-    FT_UNUSED( right );
-  }
-
-
-  static void
-  Horizontal_Gray_Sweep_Drop( RAS_ARGS Short       y,
-                                       FT_F26Dot6  x1,
-                                       FT_F26Dot6  x2,
-                                       PProfile    left,
-                                       PProfile    right )
-  {
-    Long   e1, e2;
-    PByte  pixel;
-    Byte   color;
-
-
-    /* During the horizontal sweep, we only take care of drop-outs */
-    e1 = CEILING( x1 );
-    e2 = FLOOR  ( x2 );
-
-    if ( e1 > e2 )
-    {
-      if ( e1 == e2 + ras.precision )
-      {
-        switch ( ras.dropOutControl )
-        {
-        case 1:
-          e1 = e2;
-          break;
-
-        case 4:
-          e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
-          break;
-
-        case 2:
-        case 5:
-
-          /* Drop-out Control Rule #4 */
-
-          /* The spec is not very clear regarding rule #4.  It      */
-          /* presents a method that is way too costly to implement  */
-          /* while the general idea seems to get rid of `stubs'.    */
-          /*                                                        */
-
-          /* rightmost stub test */
-          if ( left->next == right && left->height <= 0 )
-            return;
-
-          /* leftmost stub test */
-          if ( right->next == left && left->start == y )
-            return;
-
-          if ( ras.dropOutControl == 2 )
-            e1 = e2;
-          else
-            e1 = CEILING( ( x1 + x2 + 1 ) / 2 );
-
-          break;
-
-        default:
-          return;  /* unsupported mode */
-        }
-      }
-      else
-        return;
-    }
-
-    if ( e1 >= 0 )
-    {
-      if ( x2 - x1 >= ras.precision_half )
-        color = ras.grays[2];
-      else
-        color = ras.grays[1];
-
-      e1 = TRUNC( e1 ) / 2;
-      if ( e1 < ras.target.rows )
-      {
-        pixel = ras.gTarget - e1 * ras.target.pitch + y / 2;
-        if ( ras.target.pitch > 0 )
-          pixel += ( ras.target.rows - 1 ) * ras.target.pitch;
-
-        if ( pixel[0] == ras.grays[0] )
-          pixel[0] = color;
-      }
-    }
-  }
-
-
-#endif /* FT_RASTER_OPTION_ANTI_ALIASING */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  Generic Sweep Drawing routine                                        */
-  /*                                                                       */
-  /*************************************************************************/
-
-  static Bool
-  Draw_Sweep( RAS_ARG )
-  {
-    Short         y, y_change, y_height;
-
-    PProfile      P, Q, P_Left, P_Right;
-
-    Short         min_Y, max_Y, top, bottom, dropouts;
-
-    Long          x1, x2, xs, e1, e2;
-
-    TProfileList  waiting;
-    TProfileList  draw_left, draw_right;
-
-
-    /* Init empty linked lists */
-
-    Init_Linked( &waiting );
-
-    Init_Linked( &draw_left  );
-    Init_Linked( &draw_right );
-
-    /* first, compute min and max Y */
-
-    P     = ras.fProfile;
-    max_Y = (Short)TRUNC( ras.minY );
-    min_Y = (Short)TRUNC( ras.maxY );
-
-    while ( P )
-    {
-      Q = P->link;
-
-      bottom = (Short)P->start;
-      top    = (Short)( P->start + P->height - 1 );
-
-      if ( min_Y > bottom ) min_Y = bottom;
-      if ( max_Y < top    ) max_Y = top;
-
-      P->X = 0;
-      InsNew( &waiting, P );
-
-      P = Q;
-    }
-
-    /* Check the Y-turns */
-    if ( ras.numTurns == 0 )
-    {
-      ras.error = Raster_Err_Invalid;
-      return FAILURE;
-    }
-
-    /* Now inits the sweep */
-
-    ras.Proc_Sweep_Init( RAS_VARS &min_Y, &max_Y );
-
-    /* Then compute the distance of each profile from min_Y */
-
-    P = waiting;
-
-    while ( P )
-    {
-      P->countL = (UShort)( P->start - min_Y );
-      P = P->link;
-    }
-
-    /* Let's go */
-
-    y        = min_Y;
-    y_height = 0;
-
-    if ( ras.numTurns > 0 &&
-         ras.sizeBuff[-ras.numTurns] == min_Y )
-      ras.numTurns--;
-
-    while ( ras.numTurns > 0 )
-    {
-      /* look in the waiting list for new activations */
-
-      P = waiting;
-
-      while ( P )
-      {
-        Q = P->link;
-        P->countL -= y_height;
-        if ( P->countL == 0 )
-        {
-          DelOld( &waiting, P );
-
-          switch ( P->flow )
-          {
-          case Flow_Up:
-            InsNew( &draw_left,  P );
-            break;
-
-          case Flow_Down:
-            InsNew( &draw_right, P );
-            break;
-          }
-        }
-
-        P = Q;
-      }
-
-      /* Sort the drawing lists */
-
-      Sort( &draw_left );
-      Sort( &draw_right );
-
-      y_change = (Short)ras.sizeBuff[-ras.numTurns--];
-      y_height = (Short)( y_change - y );
-
-      while ( y < y_change )
-      {
-        /* Let's trace */
-
-        dropouts = 0;
-
-        P_Left  = draw_left;
-        P_Right = draw_right;
-
-        while ( P_Left )
-        {
-          x1 = P_Left ->X;
-          x2 = P_Right->X;
-
-          if ( x1 > x2 )
-          {
-            xs = x1;
-            x1 = x2;
-            x2 = xs;
-          }
-
-          if ( x2 - x1 <= ras.precision )
-          {
-            e1 = FLOOR( x1 );
-            e2 = CEILING( x2 );
-
-            if ( ras.dropOutControl != 0                 &&
-                 ( e1 > e2 || e2 == e1 + ras.precision ) )
-            {
-              /* a drop out was detected */
-
-              P_Left ->X = x1;
-              P_Right->X = x2;
-
-              /* mark profile for drop-out processing */
-              P_Left->countL = 1;
-              dropouts++;
-
-              goto Skip_To_Next;
-            }
-          }
-
-          ras.Proc_Sweep_Span( RAS_VARS y, x1, x2, P_Left, P_Right );
-
-        Skip_To_Next:
-
-          P_Left  = P_Left->link;
-          P_Right = P_Right->link;
-        }
-
-        /* now perform the dropouts _after_ the span drawing -- */
-        /* drop-outs processing has been moved out of the loop  */
-        /* for performance tuning                               */
-        if ( dropouts > 0 )
-          goto Scan_DropOuts;
-
-      Next_Line:
-
-        ras.Proc_Sweep_Step( RAS_VAR );
-
-        y++;
-
-        if ( y < y_change )
-        {
-          Sort( &draw_left  );
-          Sort( &draw_right );
-        }
-      }
-
-      /* Now finalize the profiles that needs it */
-
-      P = draw_left;
-      while ( P )
-      {
-        Q = P->link;
-        if ( P->height == 0 )
-          DelOld( &draw_left, P );
-        P = Q;
-      }
-
-      P = draw_right;
-      while ( P )
-      {
-        Q = P->link;
-        if ( P->height == 0 )
-          DelOld( &draw_right, P );
-        P = Q;
-      }
-    }
-
-    /* for gray-scaling, flushes the bitmap scanline cache */
-    while ( y <= max_Y )
-    {
-      ras.Proc_Sweep_Step( RAS_VAR );
-      y++;
-    }
-
-    return SUCCESS;
-
-  Scan_DropOuts:
-
-    P_Left  = draw_left;
-    P_Right = draw_right;
-
-    while ( P_Left )
-    {
-      if ( P_Left->countL )
-      {
-        P_Left->countL = 0;
-#if 0
-        dropouts--;  /* -- this is useful when debugging only */
-#endif
-        ras.Proc_Sweep_Drop( RAS_VARS y,
-                                      P_Left->X,
-                                      P_Right->X,
-                                      P_Left,
-                                      P_Right );
-      }
-
-      P_Left  = P_Left->link;
-      P_Right = P_Right->link;
-    }
-
-    goto Next_Line;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Render_Single_Pass                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Performs one sweep with sub-banding.                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    flipped :: If set, flip the direction of the outline.              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Renderer error code.                                               */
-  /*                                                                       */
-  static int
-  Render_Single_Pass( RAS_ARGS Bool  flipped )
-  {
-    Short  i, j, k;
-
-
-    while ( ras.band_top >= 0 )
-    {
-      ras.maxY = (Long)ras.band_stack[ras.band_top].y_max * ras.precision;
-      ras.minY = (Long)ras.band_stack[ras.band_top].y_min * ras.precision;
-
-      ras.top = ras.buff;
-
-      ras.error = Raster_Err_None;
-
-      if ( Convert_Glyph( RAS_VARS flipped ) )
-      {
-        if ( ras.error != Raster_Err_Overflow )
-          return FAILURE;
-
-        ras.error = Raster_Err_None;
-
-        /* sub-banding */
-
-#ifdef DEBUG_RASTER
-        ClearBand( RAS_VARS TRUNC( ras.minY ), TRUNC( ras.maxY ) );
-#endif
-
-        i = ras.band_stack[ras.band_top].y_min;
-        j = ras.band_stack[ras.band_top].y_max;
-
-        k = (Short)( ( i + j ) / 2 );
-
-        if ( ras.band_top >= 7 || k < i )
-        {
-          ras.band_top = 0;
-          ras.error    = Raster_Err_Invalid;
-
-          return ras.error;
-        }
-
-        ras.band_stack[ras.band_top + 1].y_min = k;
-        ras.band_stack[ras.band_top + 1].y_max = j;
-
-        ras.band_stack[ras.band_top].y_max = (Short)( k - 1 );
-
-        ras.band_top++;
-      }
-      else
-      {
-        if ( ras.fProfile )
-          if ( Draw_Sweep( RAS_VAR ) )
-             return ras.error;
-        ras.band_top--;
-      }
-    }
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Render_Glyph                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Renders a glyph in a bitmap.  Sub-banding if needed.               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  Render_Glyph( RAS_ARG )
-  {
-    FT_Error  error;
-
-
-    Set_High_Precision( RAS_VARS ras.outline.flags &
-                        FT_OUTLINE_HIGH_PRECISION );
-    ras.scale_shift    = ras.precision_shift;
-    ras.dropOutControl = 2;
-    ras.second_pass    = (FT_Byte)( !( ras.outline.flags &
-                                       FT_OUTLINE_SINGLE_PASS ) );
-
-    /* Vertical Sweep */
-    ras.Proc_Sweep_Init = Vertical_Sweep_Init;
-    ras.Proc_Sweep_Span = Vertical_Sweep_Span;
-    ras.Proc_Sweep_Drop = Vertical_Sweep_Drop;
-    ras.Proc_Sweep_Step = Vertical_Sweep_Step;
-
-    ras.band_top            = 0;
-    ras.band_stack[0].y_min = 0;
-    ras.band_stack[0].y_max = (short)( ras.target.rows - 1 );
-
-    ras.bWidth  = (unsigned short)ras.target.width;
-    ras.bTarget = (Byte*)ras.target.buffer;
-
-    if ( ( error = Render_Single_Pass( RAS_VARS 0 ) ) != 0 )
-      return error;
-
-    /* Horizontal Sweep */
-    if ( ras.second_pass && ras.dropOutControl != 0 )
-    {
-      ras.Proc_Sweep_Init = Horizontal_Sweep_Init;
-      ras.Proc_Sweep_Span = Horizontal_Sweep_Span;
-      ras.Proc_Sweep_Drop = Horizontal_Sweep_Drop;
-      ras.Proc_Sweep_Step = Horizontal_Sweep_Step;
-
-      ras.band_top            = 0;
-      ras.band_stack[0].y_min = 0;
-      ras.band_stack[0].y_max = (short)( ras.target.width - 1 );
-
-      if ( ( error = Render_Single_Pass( RAS_VARS 1 ) ) != 0 )
-        return error;
-    }
-
-    return Raster_Err_Ok;
-  }
-
-
-#ifdef FT_RASTER_OPTION_ANTI_ALIASING
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Render_Gray_Glyph                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Renders a glyph with grayscaling.  Sub-banding if needed.          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  Render_Gray_Glyph( RAS_ARG )
-  {
-    Long      pixel_width;
-    FT_Error  error;
-
-
-    Set_High_Precision( RAS_VARS ras.outline.flags &
-                        FT_OUTLINE_HIGH_PRECISION );
-    ras.scale_shift    = ras.precision_shift + 1;
-    ras.dropOutControl = 2;
-    ras.second_pass    = !( ras.outline.flags & FT_OUTLINE_SINGLE_PASS );
-
-    /* Vertical Sweep */
-
-    ras.band_top            = 0;
-    ras.band_stack[0].y_min = 0;
-    ras.band_stack[0].y_max = 2 * ras.target.rows - 1;
-
-    ras.bWidth  = ras.gray_width;
-    pixel_width = 2 * ( ( ras.target.width + 3 ) >> 2 );
-
-    if ( ras.bWidth > pixel_width )
-      ras.bWidth = pixel_width;
-
-    ras.bWidth  = ras.bWidth * 8;
-    ras.bTarget = (Byte*)ras.gray_lines;
-    ras.gTarget = (Byte*)ras.target.buffer;
-
-    ras.Proc_Sweep_Init = Vertical_Gray_Sweep_Init;
-    ras.Proc_Sweep_Span = Vertical_Sweep_Span;
-    ras.Proc_Sweep_Drop = Vertical_Sweep_Drop;
-    ras.Proc_Sweep_Step = Vertical_Gray_Sweep_Step;
-
-    error = Render_Single_Pass( RAS_VARS 0 );
-    if ( error )
-      return error;
-
-    /* Horizontal Sweep */
-    if ( ras.second_pass && ras.dropOutControl != 0 )
-    {
-      ras.Proc_Sweep_Init = Horizontal_Sweep_Init;
-      ras.Proc_Sweep_Span = Horizontal_Gray_Sweep_Span;
-      ras.Proc_Sweep_Drop = Horizontal_Gray_Sweep_Drop;
-      ras.Proc_Sweep_Step = Horizontal_Sweep_Step;
-
-      ras.band_top            = 0;
-      ras.band_stack[0].y_min = 0;
-      ras.band_stack[0].y_max = ras.target.width * 2 - 1;
-
-      error = Render_Single_Pass( RAS_VARS 1 );
-      if ( error )
-        return error;
-    }
-
-    return Raster_Err_Ok;
-  }
-
-#else /* !FT_RASTER_OPTION_ANTI_ALIASING */
-
-  FT_LOCAL_DEF( FT_Error )
-  Render_Gray_Glyph( RAS_ARG )
-  {
-    FT_UNUSED_RASTER;
-
-    return Raster_Err_Cannot_Render_Glyph;
-  }
-
-#endif /* !FT_RASTER_OPTION_ANTI_ALIASING */
-
-
-  static void
-  ft_black_init( TRaster_Instance*  raster )
-  {
-    FT_UInt  n;
-    FT_ULong c;
-
-
-    /* setup count table */
-    for ( n = 0; n < 256; n++ )
-    {
-      c = ( n & 0x55 ) + ( ( n & 0xAA ) >> 1 );
-
-      c = ( ( c << 6 ) & 0x3000 ) |
-          ( ( c << 4 ) & 0x0300 ) |
-          ( ( c << 2 ) & 0x0030 ) |
-                   (c  & 0x0003 );
-
-      raster->count_table[n] = (UInt)c;
-    }
-
-#ifdef FT_RASTER_OPTION_ANTI_ALIASING
-
-    /* set default 5-levels gray palette */
-    for ( n = 0; n < 5; n++ )
-      raster->grays[n] = n * 255 / 4;
-
-    raster->gray_width = RASTER_GRAY_LINES / 2;
-
-#endif
-  }
-
-
-  /**** RASTER OBJECT CREATION: In standalone mode, we simply use *****/
-  /****                         a static object.                  *****/
-
-
-#ifdef _STANDALONE_
-
-
-  static int
-  ft_black_new( void*      memory,
-                FT_Raster  *araster )
-  {
-     static FT_RasterRec_  the_raster;
-
-
-     *araster = &the_raster;
-     FT_MEM_ZERO( &the_raster, sizeof ( the_raster ) );
-     ft_black_init( &the_raster );
-
-     return 0;
-  }
-
-
-  static void
-  ft_black_done( FT_Raster  raster )
-  {
-    /* nothing */
-    raster->init = 0;
-  }
-
-
-#else /* _STANDALONE_ */
-
-
-  static int
-  ft_black_new( FT_Memory           memory,
-                TRaster_Instance**  araster )
-  {
-    FT_Error           error;
-    TRaster_Instance*  raster;
-
-
-    *araster = 0;
-    if ( !FT_NEW( raster ) )
-    {
-      raster->memory = memory;
-      ft_black_init( raster );
-
-      *araster = raster;
-    }
-
-    return error;
-  }
-
-
-  static void
-  ft_black_done( TRaster_Instance*  raster )
-  {
-    FT_Memory  memory = (FT_Memory)raster->memory;
-    FT_FREE( raster );
-  }
-
-
-#endif /* _STANDALONE_ */
-
-
-  static void
-  ft_black_reset( TRaster_Instance*  raster,
-                  const char*        pool_base,
-                  long               pool_size )
-  {
-    if ( raster && pool_base && pool_size >= 4096 )
-    {
-      /* save the pool */
-      raster->buff     = (PLong)pool_base;
-      raster->sizeBuff = raster->buff + pool_size / sizeof ( Long );
-    }
-  }
-
-
-  static void
-  ft_black_set_mode( TRaster_Instance*  raster,
-                     unsigned long      mode,
-                     const char*        palette )
-  {
-#ifdef FT_RASTER_OPTION_ANTI_ALIASING
-
-    if ( mode == FT_MAKE_TAG( 'p', 'a', 'l', '5' ) )
-    {
-      /* set 5-levels gray palette */
-      raster->grays[0] = palette[0];
-      raster->grays[1] = palette[1];
-      raster->grays[2] = palette[2];
-      raster->grays[3] = palette[3];
-      raster->grays[4] = palette[4];
-    }
-
-#else
-
-    FT_UNUSED( raster );
-    FT_UNUSED( mode );
-    FT_UNUSED( palette );
-
-#endif
-  }
-
-
-  static int
-  ft_black_render( TRaster_Instance*  raster,
-                   FT_Raster_Params*  params )
-  {
-    FT_Outline*  outline    = (FT_Outline*)params->source;
-    FT_Bitmap*   target_map = params->target;
-
-
-    if ( !raster || !raster->buff || !raster->sizeBuff )
-      return Raster_Err_Not_Ini;
-
-    /* return immediately if the outline is empty */
-    if ( outline->n_points == 0 || outline->n_contours <= 0 )
-      return Raster_Err_None;
-
-    if ( !outline || !outline->contours || !outline->points )
-      return Raster_Err_Invalid;
-
-    if ( outline->n_points != outline->contours[outline->n_contours - 1] + 1 )
-      return Raster_Err_Invalid;
-
-    /* this version of the raster does not support direct rendering, sorry */
-    if ( params->flags & FT_RASTER_FLAG_DIRECT )
-      return Raster_Err_Unsupported;
-
-    if ( !target_map || !target_map->buffer )
-      return Raster_Err_Invalid;
-
-    ras.outline  = *outline;
-    ras.target   = *target_map;
-
-    return ( ( params->flags & FT_RASTER_FLAG_AA )
-               ? Render_Gray_Glyph( raster )
-               : Render_Glyph( raster ) );
-  }
-
-
-  const FT_Raster_Funcs  ft_standard_raster =
-  {
-    FT_GLYPH_FORMAT_OUTLINE,
-    (FT_Raster_New_Func)     ft_black_new,
-    (FT_Raster_Reset_Func)   ft_black_reset,
-    (FT_Raster_Set_Mode_Func)ft_black_set_mode,
-    (FT_Raster_Render_Func)  ft_black_render,
-    (FT_Raster_Done_Func)    ft_black_done
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/raster/ftraster.h b/nx-X11/extras/freetype2/src/raster/ftraster.h
deleted file mode 100644
index 80fe46deb..000000000
--- a/nx-X11/extras/freetype2/src/raster/ftraster.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftraster.h                                                             */
-/*                                                                         */
-/*    The FreeType glyph rasterizer (specification).                       */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTRASTER_H__
-#define __FTRASTER_H__
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_IMAGE_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Uncomment the following line if you are using ftraster.c as a         */
-  /* standalone module, fully independent of FreeType.                     */
-  /*                                                                       */
-/* #define _STANDALONE_ */
-
-  FT_EXPORT_VAR( const FT_Raster_Funcs )  ft_standard_raster;
-
-
-FT_END_HEADER
-
-#endif /* __FTRASTER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/raster/ftrend1.c b/nx-X11/extras/freetype2/src/raster/ftrend1.c
deleted file mode 100644
index a17ef9b61..000000000
--- a/nx-X11/extras/freetype2/src/raster/ftrend1.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftrend1.c                                                              */
-/*                                                                         */
-/*    The FreeType glyph rasterizer interface (body).                      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_OUTLINE_H
-#include "ftrend1.h"
-#include "ftraster.h"
-
-#include "rasterrs.h"
-
-
-  /* initialize renderer -- init its raster */
-  static FT_Error
-  ft_raster1_init( FT_Renderer  render )
-  {
-    FT_Library  library = FT_MODULE_LIBRARY( render );
-
-
-    render->clazz->raster_class->raster_reset( render->raster,
-                                               library->raster_pool,
-                                               library->raster_pool_size );
-
-    return Raster_Err_Ok;
-  }
-
-
-  /* set render-specific mode */
-  static FT_Error
-  ft_raster1_set_mode( FT_Renderer  render,
-                       FT_ULong     mode_tag,
-                       FT_Pointer   data )
-  {
-    /* we simply pass it to the raster */
-    return render->clazz->raster_class->raster_set_mode( render->raster,
-                                                         mode_tag,
-                                                         data );
-  }
-
-
-  /* transform a given glyph image */
-  static FT_Error
-  ft_raster1_transform( FT_Renderer   render,
-                        FT_GlyphSlot  slot,
-                        FT_Matrix*    matrix,
-                        FT_Vector*    delta )
-  {
-    FT_Error error = Raster_Err_Ok;
-
-
-    if ( slot->format != render->glyph_format )
-    {
-      error = Raster_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    if ( matrix )
-      FT_Outline_Transform( &slot->outline, matrix );
-
-    if ( delta )
-      FT_Outline_Translate( &slot->outline, delta->x, delta->y );
-
-  Exit:
-    return error;
-  }
-
-
-  /* return the glyph's control box */
-  static void
-  ft_raster1_get_cbox( FT_Renderer   render,
-                       FT_GlyphSlot  slot,
-                       FT_BBox*      cbox )
-  {
-    FT_MEM_ZERO( cbox, sizeof ( *cbox ) );
-
-    if ( slot->format == render->glyph_format )
-      FT_Outline_Get_CBox( &slot->outline, cbox );
-  }
-
-
-  /* convert a slot's glyph image into a bitmap */
-  static FT_Error
-  ft_raster1_render( FT_Renderer     render,
-                     FT_GlyphSlot    slot,
-                     FT_Render_Mode  mode,
-                     FT_Vector*      origin )
-  {
-    FT_Error     error;
-    FT_Outline*  outline;
-    FT_BBox      cbox;
-    FT_UInt      width, height, pitch;
-    FT_Bitmap*   bitmap;
-    FT_Memory    memory;
-
-    FT_Raster_Params  params;
-
-
-    /* check glyph image format */
-    if ( slot->format != render->glyph_format )
-    {
-      error = Raster_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* check rendering mode */
-    if ( mode != FT_RENDER_MODE_MONO )
-    {
-      /* raster1 is only capable of producing monochrome bitmaps */
-      if ( render->clazz == &ft_raster1_renderer_class )
-        return Raster_Err_Cannot_Render_Glyph;
-    }
-    else
-    {
-      /* raster5 is only capable of producing 5-gray-levels bitmaps */
-      if ( render->clazz == &ft_raster5_renderer_class )
-        return Raster_Err_Cannot_Render_Glyph;
-    }
-
-    outline = &slot->outline;
-
-    /* translate the outline to the new origin if needed */
-    if ( origin )
-      FT_Outline_Translate( outline, origin->x, origin->y );
-
-    /* compute the control box, and grid fit it */
-    FT_Outline_Get_CBox( outline, &cbox );
-
-    cbox.xMin = FT_PIX_FLOOR( cbox.xMin );
-    cbox.yMin = FT_PIX_FLOOR( cbox.yMin );
-    cbox.xMax = FT_PIX_CEIL( cbox.xMax );
-    cbox.yMax = FT_PIX_CEIL( cbox.yMax );
-
-    width  = (FT_UInt)( ( cbox.xMax - cbox.xMin ) >> 6 );
-    height = (FT_UInt)( ( cbox.yMax - cbox.yMin ) >> 6 );
-    bitmap = &slot->bitmap;
-    memory = render->root.memory;
-
-    /* release old bitmap buffer */
-    if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
-    {
-      FT_FREE( bitmap->buffer );
-      slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
-    }
-
-    /* allocate new one, depends on pixel format */
-    if ( !( mode & FT_RENDER_MODE_MONO ) )
-    {
-      /* we pad to 32 bits, only for backwards compatibility with FT 1.x */
-      pitch = FT_PAD_CEIL( width, 4 );
-      bitmap->pixel_mode = FT_PIXEL_MODE_GRAY;
-      bitmap->num_grays  = 256;
-    }
-    else
-    {
-      pitch = ( ( width + 15 ) >> 4 ) << 1;
-      bitmap->pixel_mode = FT_PIXEL_MODE_MONO;
-    }
-
-    bitmap->width = width;
-    bitmap->rows  = height;
-    bitmap->pitch = pitch;
-
-    if ( FT_ALLOC( bitmap->buffer, (FT_ULong)pitch * height ) )
-      goto Exit;
-
-    slot->internal->flags |= FT_GLYPH_OWN_BITMAP;
-
-    /* translate outline to render it into the bitmap */
-    FT_Outline_Translate( outline, -cbox.xMin, -cbox.yMin );
-
-    /* set up parameters */
-    params.target = bitmap;
-    params.source = outline;
-    params.flags  = 0;
-
-    if ( bitmap->pixel_mode == FT_PIXEL_MODE_GRAY )
-      params.flags |= FT_RASTER_FLAG_AA;
-
-    /* render outline into the bitmap */
-    error = render->raster_render( render->raster, &params );
-
-    FT_Outline_Translate( outline, cbox.xMin, cbox.yMin );
-
-    if ( error )
-      goto Exit;
-
-    slot->format      = FT_GLYPH_FORMAT_BITMAP;
-    slot->bitmap_left = (FT_Int)( cbox.xMin >> 6 );
-    slot->bitmap_top  = (FT_Int)( cbox.yMax >> 6 );
-
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Renderer_Class  ft_raster1_renderer_class =
-  {
-    {
-      FT_MODULE_RENDERER,
-      sizeof( FT_RendererRec ),
-
-      "raster1",
-      0x10000L,
-      0x20000L,
-
-      0,    /* module specific interface */
-
-      (FT_Module_Constructor)ft_raster1_init,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  0
-    },
-
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    (FT_Renderer_RenderFunc)   ft_raster1_render,
-    (FT_Renderer_TransformFunc)ft_raster1_transform,
-    (FT_Renderer_GetCBoxFunc)  ft_raster1_get_cbox,
-    (FT_Renderer_SetModeFunc)  ft_raster1_set_mode,
-
-    (FT_Raster_Funcs*)    &ft_standard_raster
-  };
-
-
-  /* This renderer is _NOT_ part of the default modules; you will need */
-  /* to register it by hand in your application.  It should only be    */
-  /* used for backwards-compatibility with FT 1.x anyway.              */
-  /*                                                                   */
-  FT_CALLBACK_TABLE_DEF
-  const FT_Renderer_Class  ft_raster5_renderer_class =
-  {
-    {
-      FT_MODULE_RENDERER,
-      sizeof( FT_RendererRec ),
-
-      "raster5",
-      0x10000L,
-      0x20000L,
-
-      0,    /* module specific interface */
-
-      (FT_Module_Constructor)ft_raster1_init,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  0
-    },
-
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    (FT_Renderer_RenderFunc)   ft_raster1_render,
-    (FT_Renderer_TransformFunc)ft_raster1_transform,
-    (FT_Renderer_GetCBoxFunc)  ft_raster1_get_cbox,
-    (FT_Renderer_SetModeFunc)  ft_raster1_set_mode,
-
-    (FT_Raster_Funcs*)    &ft_standard_raster
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/raster/ftrend1.h b/nx-X11/extras/freetype2/src/raster/ftrend1.h
deleted file mode 100644
index 76e9a5f58..000000000
--- a/nx-X11/extras/freetype2/src/raster/ftrend1.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftrend1.h                                                              */
-/*                                                                         */
-/*    The FreeType glyph rasterizer interface (specification).             */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTREND1_H__
-#define __FTREND1_H__
-
-
-#include <ft2build.h>
-#include FT_RENDER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_raster1_renderer_class;
-
-  /* this renderer is _NOT_ part of the default modules, you'll need */
-  /* to register it by hand in your application.  It should only be  */
-  /* used for backwards-compatibility with FT 1.x anyway.            */
-  /*                                                                 */
-  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_raster5_renderer_class;
-
-
-FT_END_HEADER
-
-#endif /* __FTREND1_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/raster/module.mk b/nx-X11/extras/freetype2/src/raster/module.mk
deleted file mode 100644
index 8a3136413..000000000
--- a/nx-X11/extras/freetype2/src/raster/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 renderer module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_raster_module
-
-add_raster_module:
-	$(OPEN_DRIVER)ft_raster1_renderer_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)raster    $(ECHO_DRIVER_DESC)monochrome bitmap renderer$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/raster/raster.c b/nx-X11/extras/freetype2/src/raster/raster.c
deleted file mode 100644
index f13a67a20..000000000
--- a/nx-X11/extras/freetype2/src/raster/raster.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  raster.c                                                               */
-/*                                                                         */
-/*    FreeType monochrome rasterer module component (body only).           */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "ftraster.c"
-#include "ftrend1.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/raster/rasterrs.h b/nx-X11/extras/freetype2/src/raster/rasterrs.h
deleted file mode 100644
index 5df9a7ab1..000000000
--- a/nx-X11/extras/freetype2/src/raster/rasterrs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  rasterrs.h                                                             */
-/*                                                                         */
-/*    monochrome renderer error codes (specification only).                */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the monochrome renderer error enumeration */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __RASTERRS_H__
-#define __RASTERRS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  Raster_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Raster
-
-#include FT_ERRORS_H
-
-#endif /* __RASTERRS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/raster/rules.mk b/nx-X11/extras/freetype2/src/raster/rules.mk
deleted file mode 100644
index 0dc8782ea..000000000
--- a/nx-X11/extras/freetype2/src/raster/rules.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# FreeType 2 renderer module build rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# raster driver directory
-#
-RASTER_DIR := $(SRC_DIR)/raster
-
-# compilation flags for the driver
-#
-RASTER_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(RASTER_DIR))
-
-
-# raster driver sources (i.e., C files)
-#
-RASTER_DRV_SRC := $(RASTER_DIR)/ftraster.c \
-                  $(RASTER_DIR)/ftrend1.c
-
-
-# raster driver headers
-#
-RASTER_DRV_H := $(RASTER_DRV_SRC:%.c=%.h) \
-                $(RASTER_DIR)/rasterrs.h
-
-
-# raster driver object(s)
-#
-#   RASTER_DRV_OBJ_M is used during `multi' builds.
-#   RASTER_DRV_OBJ_S is used during `single' builds.
-#
-RASTER_DRV_OBJ_M := $(RASTER_DRV_SRC:$(RASTER_DIR)/%.c=$(OBJ_DIR)/%.$O)
-RASTER_DRV_OBJ_S := $(OBJ_DIR)/raster.$O
-
-# raster driver source file for single build
-#
-RASTER_DRV_SRC_S := $(RASTER_DIR)/raster.c
-
-
-# raster driver - single object
-#
-$(RASTER_DRV_OBJ_S): $(RASTER_DRV_SRC_S) $(RASTER_DRV_SRC) \
-                     $(FREETYPE_H) $(RASTER_DRV_H)
-	$(RASTER_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(RASTER_DRV_SRC_S))
-
-
-# raster driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(RASTER_DIR)/%.c $(FREETYPE_H) $(RASTER_DRV_H)
-	$(RASTER_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(RASTER_DRV_OBJ_S)
-DRV_OBJS_M += $(RASTER_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/sfnt/Jamfile b/nx-X11/extras/freetype2/src/sfnt/Jamfile
deleted file mode 100644
index 257b3442c..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/sfnt Jamfile (c) 2001, 2002, 2004 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) sfnt ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = sfobjs sfdriver ttcmap0 ttpost ttload ttsbit ;
-  }
-  else
-  {
-    _sources = sfnt ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/sfnt Jamfile
diff --git a/nx-X11/extras/freetype2/src/sfnt/descrip.mms b/nx-X11/extras/freetype2/src/sfnt/descrip.mms
deleted file mode 100644
index 811c8b3ee..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 SFNT driver compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.sfnt])
-
-OBJS=sfnt.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/sfnt/module.mk b/nx-X11/extras/freetype2/src/sfnt/module.mk
deleted file mode 100644
index 52607e2af..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 SFNT module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_sfnt_module
-
-add_sfnt_module:
-	$(OPEN_DRIVER)sfnt_module_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)sfnt      $(ECHO_DRIVER_DESC)helper module for TrueType & OpenType formats$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/sfnt/rules.mk b/nx-X11/extras/freetype2/src/sfnt/rules.mk
deleted file mode 100644
index f13238549..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/rules.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# FreeType 2 SFNT driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# SFNT driver directory
-#
-SFNT_DIR := $(SRC_DIR)/sfnt
-
-
-# compilation flags for the driver
-#
-SFNT_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SFNT_DIR))
-
-
-# SFNT driver sources (i.e., C files)
-#
-SFNT_DRV_SRC := $(SFNT_DIR)/ttload.c   \
-                $(SFNT_DIR)/ttcmap0.c  \
-                $(SFNT_DIR)/ttsbit.c   \
-                $(SFNT_DIR)/ttpost.c   \
-                $(SFNT_DIR)/sfobjs.c   \
-                $(SFNT_DIR)/sfdriver.c
-
-# SFNT driver headers
-#
-SFNT_DRV_H := $(SFNT_DRV_SRC:%c=%h) \
-              $(SFNT_DIR)/sferrors.h
-
-
-# SFNT driver object(s)
-#
-#   SFNT_DRV_OBJ_M is used during `multi' builds.
-#   SFNT_DRV_OBJ_S is used during `single' builds.
-#
-SFNT_DRV_OBJ_M := $(SFNT_DRV_SRC:$(SFNT_DIR)/%.c=$(OBJ_DIR)/%.$O)
-SFNT_DRV_OBJ_S := $(OBJ_DIR)/sfnt.$O
-
-# SFNT driver source file for single build
-#
-SFNT_DRV_SRC_S := $(SFNT_DIR)/sfnt.c
-
-
-# SFNT driver - single object
-#
-$(SFNT_DRV_OBJ_S): $(SFNT_DRV_SRC_S) $(SFNT_DRV_SRC) \
-                   $(FREETYPE_H) $(SFNT_DRV_H)
-	$(SFNT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(SFNT_DRV_SRC_S))
-
-
-# SFNT driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(SFNT_DIR)/%.c $(FREETYPE_H) $(SFNT_DRV_H)
-	$(SFNT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(SFNT_DRV_OBJ_S)
-DRV_OBJS_M += $(SFNT_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/sfnt/sfdriver.c b/nx-X11/extras/freetype2/src/sfnt/sfdriver.c
deleted file mode 100644
index 7da53d2f1..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/sfdriver.c
+++ /dev/null
@@ -1,400 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfdriver.c                                                             */
-/*                                                                         */
-/*    High-level SFNT driver interface (body).                             */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_SFNT_H
-#include FT_INTERNAL_OBJECTS_H
-
-#include "sfdriver.h"
-#include "ttload.h"
-#include "sfobjs.h"
-
-#include "sferrors.h"
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-#include "ttsbit.h"
-#endif
-
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-#include "ttpost.h"
-#endif
-
-#include "ttcmap0.h"
-
-#include FT_SERVICE_GLYPH_DICT_H
-#include FT_SERVICE_POSTSCRIPT_NAME_H
-#include FT_SERVICE_SFNT_H
-#include FT_SERVICE_TT_CMAP_H
-
-
- /*
-  *  SFNT TABLE SERVICE
-  *
-  */
-
-  static void*
-  get_sfnt_table( TT_Face      face,
-                  FT_Sfnt_Tag  tag )
-  {
-    void*  table;
-
-
-    switch ( tag )
-    {
-    case ft_sfnt_head:
-      table = &face->header;
-      break;
-
-    case ft_sfnt_hhea:
-      table = &face->horizontal;
-      break;
-
-    case ft_sfnt_vhea:
-      table = face->vertical_info ? &face->vertical : 0;
-      break;
-
-    case ft_sfnt_os2:
-      table = face->os2.version == 0xFFFFU ? 0 : &face->os2;
-      break;
-
-    case ft_sfnt_post:
-      table = &face->postscript;
-      break;
-
-    case ft_sfnt_maxp:
-      table = &face->max_profile;
-      break;
-
-    case ft_sfnt_pclt:
-      table = face->pclt.Version ? &face->pclt : 0;
-      break;
-
-    default:
-      table = 0;
-    }
-
-    return table;
-  }
-
-
-  static const FT_Service_SFNT_TableRec  sfnt_service_sfnt_table =
-  {
-    (FT_SFNT_TableLoadFunc)tt_face_load_any,
-    (FT_SFNT_TableGetFunc) get_sfnt_table
-  };
-
-
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
- /*
-  *  GLYPH DICT SERVICE
-  *
-  */
-
-  static FT_Error
-  sfnt_get_glyph_name( TT_Face     face,
-                       FT_UInt     glyph_index,
-                       FT_Pointer  buffer,
-                       FT_UInt     buffer_max )
-  {
-    FT_String*  gname;
-    FT_Error    error;
-
-
-    error = tt_face_get_ps_name( face, glyph_index, &gname );
-    if ( !error && buffer_max > 0 )
-    {
-      FT_UInt  len = (FT_UInt)( ft_strlen( gname ) );
-
-
-      if ( len >= buffer_max )
-        len = buffer_max - 1;
-
-      FT_MEM_COPY( buffer, gname, len );
-      ((FT_Byte*)buffer)[len] = 0;
-    }
-
-    return error;
-  }
-
-
-  static const FT_Service_GlyphDictRec  sfnt_service_glyph_dict =
-  {
-    (FT_GlyphDict_GetNameFunc)  sfnt_get_glyph_name,
-    (FT_GlyphDict_NameIndexFunc)NULL
-  };
-
-#endif /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES */
-
-
- /*
-  *  POSTSCRIPT NAME SERVICE
-  *
-  */
-
-  static const char*
-  sfnt_get_ps_name( TT_Face  face )
-  {
-    FT_Int       n, found_win, found_apple;
-    const char*  result = NULL;
-
-
-    /* shouldn't happen, but just in case to avoid memory leaks */
-    if ( face->postscript_name )
-      return face->postscript_name;
-
-    /* scan the name table to see whether we have a Postscript name here, */
-    /* either in Macintosh or Windows platform encodings                  */
-    found_win   = -1;
-    found_apple = -1;
-
-    for ( n = 0; n < face->num_names; n++ )
-    {
-      TT_NameEntryRec*  name = face->name_table.names + n;
-
-
-      if ( name->nameID == 6 && name->stringLength > 0 )
-      {
-        if ( name->platformID == 3     &&
-             name->encodingID == 1     &&
-             name->languageID == 0x409 )
-          found_win = n;
-
-        if ( name->platformID == 1 &&
-             name->encodingID == 0 &&
-             name->languageID == 0 )
-          found_apple = n;
-      }
-    }
-
-    if ( found_win != -1 )
-    {
-      FT_Memory         memory = face->root.memory;
-      TT_NameEntryRec*  name   = face->name_table.names + found_win;
-      FT_UInt           len    = name->stringLength / 2;
-      FT_Error          error  = SFNT_Err_Ok;
-
-      FT_UNUSED( error );
-
-
-      if ( !FT_ALLOC( result, name->stringLength + 1 ) )
-      {
-        FT_Stream   stream = face->name_table.stream;
-        FT_String*  r      = (FT_String*)result;
-        FT_Byte*    p      = (FT_Byte*)name->string;
-
-
-        if ( FT_STREAM_SEEK( name->stringOffset ) ||
-             FT_FRAME_ENTER( name->stringLength ) )
-        {
-          FT_FREE( result );
-          name->stringLength = 0;
-          name->stringOffset = 0;
-          FT_FREE( name->string );
-
-          goto Exit;
-        }
-
-        p = (FT_Byte*)stream->cursor;
-
-        for ( ; len > 0; len--, p += 2 )
-        {
-          if ( p[0] == 0 && p[1] >= 32 && p[1] < 128 )
-            *r++ = p[1];
-        }
-        *r = '\0';
-
-        FT_FRAME_EXIT();
-      }
-      goto Exit;
-    }
-
-    if ( found_apple != -1 )
-    {
-      FT_Memory         memory = face->root.memory;
-      TT_NameEntryRec*  name   = face->name_table.names + found_apple;
-      FT_UInt           len    = name->stringLength;
-      FT_Error          error  = SFNT_Err_Ok;
-
-      FT_UNUSED( error );
-
-
-      if ( !FT_ALLOC( result, len + 1 ) )
-      {
-        FT_Stream  stream = face->name_table.stream;
-
-
-        if ( FT_STREAM_SEEK( name->stringOffset ) ||
-             FT_STREAM_READ( result, len )        )
-        {
-          name->stringOffset = 0;
-          name->stringLength = 0;
-          FT_FREE( name->string );
-          FT_FREE( result );
-          goto Exit;
-        }
-        ((char*)result)[len] = '\0';
-      }
-    }
-
-  Exit:
-    face->postscript_name = result;
-    return result;
-  }
-
-  static const FT_Service_PsFontNameRec  sfnt_service_ps_name =
-  {
-    (FT_PsName_GetFunc)sfnt_get_ps_name
-  };
-
-
- /*
-  *  TT CMAP INFO
-  *
-  */
-  static const FT_Service_TTCMapsRec  tt_service_get_cmap_info =
-  {
-    (TT_CMap_Info_GetFunc)tt_get_cmap_info
-  };
-
-
- /*
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  sfnt_services[] =
-  {
-    { FT_SERVICE_ID_SFNT_TABLE,           &sfnt_service_sfnt_table },
-    { FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &sfnt_service_ps_name },
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-    { FT_SERVICE_ID_GLYPH_DICT,           &sfnt_service_glyph_dict },
-#endif
-    { FT_SERVICE_ID_TT_CMAP,              &tt_service_get_cmap_info },
-
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  sfnt_get_interface( FT_Module    module,
-                      const char*  module_interface )
-  {
-    FT_UNUSED( module );
-
-    if ( ft_strcmp( module_interface, "get_sfnt" ) == 0 )
-      return (FT_Module_Interface)get_sfnt_table;
-
-    if ( ft_strcmp( module_interface, "load_sfnt" ) == 0 )
-      return (FT_Module_Interface)tt_face_load_any;
-
-    return ft_service_list_lookup( sfnt_services, module_interface );
-  }
-
-
-  static
-  const SFNT_Interface  sfnt_interface =
-  {
-    tt_face_goto_table,
-
-    sfnt_init_face,
-    sfnt_load_face,
-    sfnt_done_face,
-    sfnt_get_interface,
-
-    tt_face_load_any,
-    tt_face_load_sfnt_header,
-    tt_face_load_directory,
-
-    tt_face_load_header,
-    tt_face_load_metrics_header,
-    tt_face_load_cmap,
-    tt_face_load_max_profile,
-    tt_face_load_os2,
-    tt_face_load_postscript,
-
-    tt_face_load_names,
-    tt_face_free_names,
-
-    tt_face_load_hdmx,
-    tt_face_free_hdmx,
-
-    tt_face_load_kern,
-    tt_face_load_gasp,
-    tt_face_load_pclt,
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    /* see `ttload.h' */
-    tt_face_load_bitmap_header,
-
-    /* see `ttsbit.h' and `sfnt.h' */
-    tt_face_set_sbit_strike,
-    tt_face_load_sbit_strikes,
-    tt_find_sbit_image,
-    tt_load_sbit_metrics,
-    tt_face_load_sbit_image,
-    tt_face_free_sbit_strikes,
-
-#else /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-    0,
-    0,
-    0,
-    0, 
-    0, 
-    0,
-    0,
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-    /* see `ttpost.h' */
-    tt_face_get_ps_name,
-    tt_face_free_ps_names,
-
-#else /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES */
-
-    0,
-    0,
-
-#endif /* TT_CONFIG_OPTION_POSTSCRIPT_NAMES */
-
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Module_Class  sfnt_module_class =
-  {
-    0,  /* not a font driver or renderer */
-    sizeof( FT_ModuleRec ),
-
-    "sfnt",     /* driver name                            */
-    0x10000L,   /* driver version 1.0                     */
-    0x20000L,   /* driver requires FreeType 2.0 or higher */
-
-    (const void*)&sfnt_interface,  /* module specific interface */
-
-    (FT_Module_Constructor)0,
-    (FT_Module_Destructor) 0,
-    (FT_Module_Requester)  sfnt_get_interface
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/sfdriver.h b/nx-X11/extras/freetype2/src/sfnt/sfdriver.h
deleted file mode 100644
index 92db79694..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/sfdriver.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfdriver.h                                                             */
-/*                                                                         */
-/*    High-level SFNT driver interface (specification).                    */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SFDRIVER_H__
-#define __SFDRIVER_H__
-
-
-#include <ft2build.h>
-#include FT_MODULE_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Module_Class )  sfnt_module_class;
-
-
-FT_END_HEADER
-
-#endif /* __SFDRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/sferrors.h b/nx-X11/extras/freetype2/src/sfnt/sferrors.h
deleted file mode 100644
index fd2736b6c..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/sferrors.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sferrors.h                                                             */
-/*                                                                         */
-/*    SFNT error codes (specification only).                               */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the SFNT error enumeration constants.     */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __SFERRORS_H__
-#define __SFERRORS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  SFNT_Err_
-#define FT_ERR_BASE    FT_Mod_Err_SFNT
-
-#include FT_ERRORS_H
-
-#endif /* __SFERRORS_H__ */
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/sfnt.c b/nx-X11/extras/freetype2/src/sfnt/sfnt.c
deleted file mode 100644
index 90c1bee91..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/sfnt.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfnt.c                                                                 */
-/*                                                                         */
-/*    Single object library component.                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "ttload.c"
-#include "ttcmap0.c"
-#include "sfobjs.c"
-#include "sfdriver.c"
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-#include "ttsbit.c"
-#endif
-
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-#include "ttpost.c"
-#endif
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/sfobjs.c b/nx-X11/extras/freetype2/src/sfnt/sfobjs.c
deleted file mode 100644
index aef3f5dfb..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/sfobjs.c
+++ /dev/null
@@ -1,854 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfobjs.c                                                               */
-/*                                                                         */
-/*    SFNT object management (base).                                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "sfobjs.h"
-#include "ttload.h"
-#include "ttcmap0.h"
-#include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_IDS_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include "sferrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_sfobjs
-
-
-
-  /* convert a UTF-16 name entry to ASCII */
-  static FT_String*
-  tt_name_entry_ascii_from_utf16( TT_NameEntry  entry,
-                                  FT_Memory     memory )
-  {
-    FT_String*  string;
-    FT_UInt     len, code, n;
-    FT_Byte*    read = (FT_Byte*)entry->string;
-
-
-    len = (FT_UInt)entry->stringLength / 2;
-
-    if ( FT_MEM_NEW_ARRAY( string, len + 1 ) )
-      return NULL;
-
-    for ( n = 0; n < len; n++ )
-    {
-      code = FT_NEXT_USHORT( read );
-      if ( code < 32 || code > 127 )
-        code = '?';
-
-      string[n] = (char)code;
-    }
-
-    string[len] = 0;
-
-    return string;
-  }
-
-
-  /* convert a UCS-4 name entry to ASCII */
-  static FT_String*
-  tt_name_entry_ascii_from_ucs4( TT_NameEntry  entry,
-                                 FT_Memory     memory )
-  {
-    FT_String*  string;
-    FT_UInt     len, code, n;
-    FT_Byte*    read = (FT_Byte*)entry->string;
-
-
-    len = (FT_UInt)entry->stringLength / 4;
-
-    if ( FT_MEM_NEW_ARRAY( string, len + 1 ) )
-      return NULL;
-
-    for ( n = 0; n < len; n++ )
-    {
-      code = (FT_UInt)FT_NEXT_ULONG( read );
-      if ( code < 32 || code > 127 )
-        code = '?';
-
-      string[n] = (char)code;
-    }
-
-    string[len] = 0;
-
-    return string;
-  }
-
-
-  /* convert an Apple Roman or symbol name entry to ASCII */
-  static FT_String*
-  tt_name_entry_ascii_from_other( TT_NameEntry  entry,
-                                  FT_Memory     memory )
-  {
-    FT_String*  string;
-    FT_UInt     len, code, n;
-    FT_Byte*    read = (FT_Byte*)entry->string;
-
-
-    len = (FT_UInt)entry->stringLength;
-
-    if ( FT_MEM_NEW_ARRAY( string, len + 1 ) )
-      return NULL;
-
-    for ( n = 0; n < len; n++ )
-    {
-      code = *read++;
-      if ( code < 32 || code > 127 )
-        code = '?';
-
-      string[n] = (char)code;
-    }
-
-    string[len] = 0;
-
-    return string;
-  }
-
-
-  typedef FT_String*  (*TT_NameEntry_ConvertFunc)( TT_NameEntry  entry,
-                                                   FT_Memory     memory );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_get_name                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns a given ENGLISH name record in ASCII.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the source face object.                      */
-  /*                                                                       */
-  /*    nameid :: The name id of the name record to return.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Character string.  NULL if no name is present.                     */
-  /*                                                                       */
-  static FT_String*
-  tt_face_get_name( TT_Face    face,
-                    FT_UShort  nameid )
-  {
-    FT_Memory         memory = face->root.memory;
-    FT_String*        result = NULL;
-    FT_UShort         n;
-    TT_NameEntryRec*  rec;
-    FT_Int            found_apple   = -1;
-    FT_Int            found_win     = -1;
-    FT_Int            found_unicode = -1;
-
-    FT_Bool           is_english = 0;
-
-    TT_NameEntry_ConvertFunc  convert;
-
-
-    rec = face->name_table.names;
-    for ( n = 0; n < face->num_names; n++, rec++ )
-    {
-      /* According to the OpenType 1.3 specification, only Microsoft or  */
-      /* Apple platform IDs might be used in the `name' table.  The      */
-      /* `Unicode' platform is reserved for the `cmap' table, and the    */
-      /* `Iso' one is deprecated.                                        */
-      /*                                                                 */
-      /* However, the Apple TrueType specification doesn't say the same  */
-      /* thing and goes to suggest that all Unicode `name' table entries */
-      /* should be coded in UTF-16 (in big-endian format I suppose).     */
-      /*                                                                 */
-      if ( rec->nameID == nameid && rec->stringLength > 0 )
-      {
-        switch ( rec->platformID )
-        {
-        case TT_PLATFORM_APPLE_UNICODE:
-        case TT_PLATFORM_ISO:
-          /* there is `languageID' to check there.  We should use this */
-          /* field only as a last solution when nothing else is        */
-          /* available.                                                */
-          /*                                                           */
-          found_unicode = n;
-          break;
-
-        case TT_PLATFORM_MACINTOSH:
-          if ( rec->languageID == TT_MAC_LANGID_ENGLISH )
-            found_apple = n;
-
-          break;
-
-        case TT_PLATFORM_MICROSOFT:
-          /* we only take a non-English name when there is nothing */
-          /* else available in the font                            */
-          /*                                                       */
-          if ( found_win == -1 || ( rec->languageID & 0x3FF ) == 0x009 )
-          {
-            switch ( rec->encodingID )
-            {
-            case TT_MS_ID_SYMBOL_CS:
-            case TT_MS_ID_UNICODE_CS:
-            case TT_MS_ID_UCS_4:
-              is_english = ( rec->languageID & 0x3FF ) == 0x009;
-              found_win  = n;
-              break;
-
-            default:
-              ;
-            }
-          }
-          break;
-
-        default:
-          ;
-        }
-      }
-    }
-
-    /* some fonts contain invalid Unicode or Macintosh formatted entries; */
-    /* we will thus favor names encoded in Windows formats if available   */
-    /* (provided it is an English name)                                   */
-    /*                                                                    */
-    convert = NULL;
-    if ( found_win >= 0 && !( found_apple >= 0 && !is_english ) )
-    {
-      rec = face->name_table.names + found_win;
-      switch ( rec->encodingID )
-      {
-      case TT_MS_ID_UNICODE_CS:
-      case TT_MS_ID_SYMBOL_CS:
-        convert = tt_name_entry_ascii_from_utf16;
-        break;
-
-      case TT_MS_ID_UCS_4:
-        convert = tt_name_entry_ascii_from_ucs4;
-        break;
-
-      default:
-        ;
-      }
-    }
-    else if ( found_apple >= 0 )
-    {
-      rec     = face->name_table.names + found_apple;
-      convert = tt_name_entry_ascii_from_other;
-    }
-    else if ( found_unicode >= 0 )
-    {
-      rec     = face->name_table.names + found_unicode;
-      convert = tt_name_entry_ascii_from_utf16;
-    }
-
-    if ( rec && convert )
-    {
-      if ( rec->string == NULL )
-      {
-        FT_Error   error  = SFNT_Err_Ok;
-        FT_Stream  stream = face->name_table.stream;
-
-        FT_UNUSED( error );
-
-
-        if ( FT_QNEW_ARRAY ( rec->string, rec->stringLength ) ||
-             FT_STREAM_SEEK( rec->stringOffset )              ||
-             FT_STREAM_READ( rec->string, rec->stringLength ) )
-        {
-          FT_FREE( rec->string );
-          rec->stringLength = 0;
-          result            = NULL;
-          goto Exit;
-        }
-      }
-
-      result = convert( rec, memory );
-    }
-
-  Exit:
-    return result;
-  }
-
-
-  static FT_Encoding
-  sfnt_find_encoding( int  platform_id,
-                      int  encoding_id )
-  {
-    typedef struct  TEncoding
-    {
-      int          platform_id;
-      int          encoding_id;
-      FT_Encoding  encoding;
-
-    } TEncoding;
-
-    static
-    const TEncoding  tt_encodings[] =
-    {
-      { TT_PLATFORM_ISO,           -1,                  FT_ENCODING_UNICODE },
-
-      { TT_PLATFORM_APPLE_UNICODE, -1,                  FT_ENCODING_UNICODE },
-
-      { TT_PLATFORM_MACINTOSH,     TT_MAC_ID_ROMAN,     FT_ENCODING_APPLE_ROMAN },
-
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_SYMBOL_CS,  FT_ENCODING_MS_SYMBOL },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_UCS_4,      FT_ENCODING_UNICODE },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_UNICODE_CS, FT_ENCODING_UNICODE },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_SJIS,       FT_ENCODING_SJIS },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_GB2312,     FT_ENCODING_GB2312 },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_BIG_5,      FT_ENCODING_BIG5 },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_WANSUNG,    FT_ENCODING_WANSUNG },
-      { TT_PLATFORM_MICROSOFT,     TT_MS_ID_JOHAB,      FT_ENCODING_JOHAB }
-    };
-
-    const TEncoding  *cur, *limit;
-
-
-    cur   = tt_encodings;
-    limit = cur + sizeof ( tt_encodings ) / sizeof ( tt_encodings[0] );
-
-    for ( ; cur < limit; cur++ )
-    {
-      if ( cur->platform_id == platform_id )
-      {
-        if ( cur->encoding_id == encoding_id ||
-             cur->encoding_id == -1          )
-          return cur->encoding;
-      }
-    }
-
-    return FT_ENCODING_NONE;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  sfnt_init_face( FT_Stream      stream,
-                  TT_Face        face,
-                  FT_Int         face_index,
-                  FT_Int         num_params,
-                  FT_Parameter*  params )
-  {
-    FT_Error         error;
-    FT_Library       library = face->root.driver->root.library;
-    SFNT_Service     sfnt;
-    SFNT_HeaderRec   sfnt_header;
-
-    /* for now, parameters are unused */
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-
-
-    sfnt = (SFNT_Service)face->sfnt;
-    if ( !sfnt )
-    {
-      sfnt = (SFNT_Service)FT_Get_Module_Interface( library, "sfnt" );
-      if ( !sfnt )
-      {
-        error = SFNT_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      face->sfnt       = sfnt;
-      face->goto_table = sfnt->goto_table;
-    }
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, face->psnames, POSTSCRIPT_CMAPS );
-
-    /* check that we have a valid TrueType file */
-    error = sfnt->load_sfnt_header( face, stream, face_index, &sfnt_header );
-    if ( error )
-      goto Exit;
-
-    face->format_tag = sfnt_header.format_tag;
-    face->num_tables = sfnt_header.num_tables;
-
-    /* Load font directory */
-    error = sfnt->load_directory( face, stream, &sfnt_header );
-    if ( error )
-      goto Exit;
-
-    face->root.num_faces = face->ttc_header.count;
-    if ( face->root.num_faces < 1 )
-      face->root.num_faces = 1;
-
-  Exit:
-    return error;
-  }
-
-
-#undef  LOAD_
-#define LOAD_( x )  ( ( error = sfnt->load_##x( face, stream ) ) \
-                      != SFNT_Err_Ok )
-
-
-  FT_LOCAL_DEF( FT_Error )
-  sfnt_load_face( FT_Stream      stream,
-                  TT_Face        face,
-                  FT_Int         face_index,
-                  FT_Int         num_params,
-                  FT_Parameter*  params )
-  {
-    FT_Error      error, psnames_error;
-    FT_Bool       has_outline;
-    FT_Bool       is_apple_sbit;
-
-    SFNT_Service  sfnt = (SFNT_Service)face->sfnt;
-
-    FT_UNUSED( face_index );
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-
-
-    /* Load tables */
-
-    /* We now support two SFNT-based bitmapped font formats.  They */
-    /* are recognized easily as they do not include a `glyf'       */
-    /* table.                                                      */
-    /*                                                             */
-    /* The first format comes from Apple, and uses a table named   */
-    /* `bhed' instead of `head' to store the font header (using    */
-    /* the same format).  It also doesn't include horizontal and   */
-    /* vertical metrics tables (i.e. `hhea' and `vhea' tables are  */
-    /* missing).                                                   */
-    /*                                                             */
-    /* The other format comes from Microsoft, and is used with     */
-    /* WinCE/PocketPC.  It looks like a standard TTF, except that  */
-    /* it doesn't contain outlines.                                */
-    /*                                                             */
-
-    /* do we have outlines in there? */
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    has_outline   = FT_BOOL( face->root.internal->incremental_interface != 0 ||
-                             tt_face_lookup_table( face, TTAG_glyf )    != 0 ||
-                             tt_face_lookup_table( face, TTAG_CFF )     != 0 );
-#else
-    has_outline   = FT_BOOL( tt_face_lookup_table( face, TTAG_glyf ) != 0 ||
-                             tt_face_lookup_table( face, TTAG_CFF )  != 0 );
-#endif
-
-    is_apple_sbit = 0;
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    /* if this font doesn't contain outlines, we try to load */
-    /* a `bhed' table                                        */
-    if ( !has_outline )
-      is_apple_sbit = FT_BOOL( !LOAD_( bitmap_header ) );
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-    /* load the font header (`head' table) if this isn't an Apple */
-    /* sbit font file                                             */
-    if ( !is_apple_sbit && LOAD_( header ) )
-      goto Exit;
-
-    /* the following tables are often not present in embedded TrueType */
-    /* fonts within PDF documents, so don't check for them.            */
-    (void)LOAD_( max_profile );
-    (void)LOAD_( charmaps );
-
-    /* the following tables are optional in PCL fonts -- */
-    /* don't check for errors                            */
-    (void)LOAD_( names );
-    psnames_error = LOAD_( psnames );
-
-    /* do not load the metrics headers and tables if this is an Apple */
-    /* sbit font file                                                 */
-    if ( !is_apple_sbit )
-    {
-      /* load the `hhea' and `hmtx' tables at once */
-      error = sfnt->load_metrics( face, stream, 0 );
-      if ( error )
-        goto Exit;
-
-      /* try to load the `vhea' and `vmtx' tables at once */
-      error = sfnt->load_metrics( face, stream, 1 );
-      if ( error )
-        goto Exit;
-
-      if ( LOAD_( os2 ) )
-        goto Exit;
-    }
-
-    /* the optional tables */
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    /* embedded bitmap support. */
-    if ( sfnt->load_sbits && LOAD_( sbits ) )
-    {
-      /* return an error if this font file has no outlines */
-      if ( error == SFNT_Err_Table_Missing && has_outline )
-        error = SFNT_Err_Ok;
-      else
-        goto Exit;
-    }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-    if ( LOAD_( hdmx )    ||
-         LOAD_( gasp )    ||
-         LOAD_( kerning ) ||
-         LOAD_( pclt )    )
-      goto Exit;
-
-    face->root.family_name = tt_face_get_name( face,
-                                               TT_NAME_ID_FONT_FAMILY );
-    face->root.style_name  = tt_face_get_name( face,
-                                               TT_NAME_ID_FONT_SUBFAMILY );
-
-    /* now set up root fields */
-    {
-      FT_Face    root = &face->root;
-      FT_Int32   flags = 0;
-      FT_Memory  memory;
-
-
-      memory = root->memory;
-
-      /*********************************************************************/
-      /*                                                                   */
-      /* Compute face flags.                                               */
-      /*                                                                   */
-      if ( has_outline == TRUE )
-        flags = FT_FACE_FLAG_SCALABLE;    /* scalable outlines */
-
-      flags |= FT_FACE_FLAG_SFNT      |   /* SFNT file format  */
-               FT_FACE_FLAG_HORIZONTAL;   /* horizontal data   */
-
-#ifdef TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-      if ( psnames_error == SFNT_Err_Ok &&
-           face->postscript.FormatType != 0x00030000L )
-        flags |= FT_FACE_FLAG_GLYPH_NAMES;
-#endif
-
-      /* fixed width font? */
-      if ( face->postscript.isFixedPitch )
-        flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      /* vertical information? */
-      if ( face->vertical_info )
-        flags |= FT_FACE_FLAG_VERTICAL;
-
-      /* kerning available ? */
-      if ( face->kern_pairs )
-        flags |= FT_FACE_FLAG_KERNING;
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-      /* Don't bother to load the tables unless somebody asks for them. */
-      /* No need to do work which will (probably) not be used.          */
-      if ( tt_face_lookup_table( face, TTAG_glyf ) != 0 &&
-           tt_face_lookup_table( face, TTAG_fvar ) != 0 &&
-           tt_face_lookup_table( face, TTAG_gvar ) != 0 )
-        flags |= FT_FACE_FLAG_MULTIPLE_MASTERS;
-#endif
-
-      root->face_flags = flags;
-
-      /*********************************************************************/
-      /*                                                                   */
-      /* Compute style flags.                                              */
-      /*                                                                   */
-      flags = 0;
-      if ( has_outline == TRUE && face->os2.version != 0xFFFFU )
-      {
-        /* we have an OS/2 table; use the `fsSelection' field */
-        if ( face->os2.fsSelection & 1 )
-          flags |= FT_STYLE_FLAG_ITALIC;
-
-        if ( face->os2.fsSelection & 32 )
-          flags |= FT_STYLE_FLAG_BOLD;
-      }
-      else
-      {
-        /* this is an old Mac font, use the header field */
-        if ( face->header.Mac_Style & 1 )
-          flags |= FT_STYLE_FLAG_BOLD;
-
-        if ( face->header.Mac_Style & 2 )
-          flags |= FT_STYLE_FLAG_ITALIC;
-      }
-
-      root->style_flags = flags;
-
-      /*********************************************************************/
-      /*                                                                   */
-      /* Polish the charmaps.                                              */
-      /*                                                                   */
-      /*   Try to set the charmap encoding according to the platform &     */
-      /*   encoding ID of each charmap.                                    */
-      /*                                                                   */
-
-      tt_face_build_cmaps( face );  /* ignore errors */
-
-
-      /* set the encoding fields */
-      {
-        FT_Int  m;
-
-
-        for ( m = 0; m < root->num_charmaps; m++ )
-        {
-          FT_CharMap  charmap = root->charmaps[m];
-
-
-          charmap->encoding = sfnt_find_encoding( charmap->platform_id,
-                                                  charmap->encoding_id );
-
-#if 0
-          if ( root->charmap     == NULL &&
-               charmap->encoding == FT_ENCODING_UNICODE )
-          {
-            /* set 'root->charmap' to the first Unicode encoding we find */
-            root->charmap = charmap;
-          }
-#endif
-        }
-      }
-
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-      if ( face->num_sbit_strikes )
-      {
-        FT_ULong  n;
-
-
-        root->face_flags |= FT_FACE_FLAG_FIXED_SIZES;
-
-#if 0
-        /* XXX: I don't know criteria whether layout is horizontal */
-        /*      or vertical.                                       */
-        if ( has_outline.... )
-        {
-          ...
-          root->face_flags |= FT_FACE_FLAG_VERTICAL;
-        }
-#endif
-        root->num_fixed_sizes = (FT_Int)face->num_sbit_strikes;
-
-        if ( FT_NEW_ARRAY( root->available_sizes, face->num_sbit_strikes ) )
-          goto Exit;
-
-        for ( n = 0 ; n < face->num_sbit_strikes ; n++ )
-        {
-          FT_Bitmap_Size*  bsize  = root->available_sizes + n;
-          TT_SBit_Strike   strike = face->sbit_strikes + n;
-          FT_UShort        fupem  = face->header.Units_Per_EM;
-          FT_Short         height = (FT_Short)( face->horizontal.Ascender -
-                                                face->horizontal.Descender +
-                                                face->horizontal.Line_Gap );
-          FT_Short         avg    = face->os2.xAvgCharWidth;
-
-
-          /* assume 72dpi */
-          bsize->height =
-            (FT_Short)( ( height * strike->y_ppem + fupem/2 ) / fupem );
-          bsize->width  =
-            (FT_Short)( ( avg * strike->y_ppem + fupem/2 ) / fupem );
-          bsize->size   = strike->y_ppem << 6;
-          bsize->x_ppem = strike->x_ppem << 6;
-          bsize->y_ppem = strike->y_ppem << 6;
-        }
-      }
-      else
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-      {
-        root->num_fixed_sizes = 0;
-        root->available_sizes = 0;
-      }
-
-      /*********************************************************************/
-      /*                                                                   */
-      /*  Set up metrics.                                                  */
-      /*                                                                   */
-      if ( has_outline == TRUE )
-      {
-        /* XXX What about if outline header is missing */
-        /*     (e.g. sfnt wrapped bitmap)?             */
-        root->bbox.xMin    = face->header.xMin;
-        root->bbox.yMin    = face->header.yMin;
-        root->bbox.xMax    = face->header.xMax;
-        root->bbox.yMax    = face->header.yMax;
-        root->units_per_EM = face->header.Units_Per_EM;
-
-
-        /* XXX: Computing the ascender/descender/height is very different */
-        /*      from what the specification tells you.  Apparently, we    */
-        /*      must be careful because                                   */
-        /*                                                                */
-        /*      - not all fonts have an OS/2 table; in this case, we take */
-        /*        the values in the horizontal header.  However, these    */
-        /*        values very often are not reliable.                     */
-        /*                                                                */
-        /*      - otherwise, the correct typographic values are in the    */
-        /*        sTypoAscender, sTypoDescender & sTypoLineGap fields.    */
-        /*                                                                */
-        /*        However, certains fonts have these fields set to 0.     */
-        /*        Rather, they have usWinAscent & usWinDescent correctly  */
-        /*        set (but with different values).                        */
-        /*                                                                */
-        /*      As an example, Arial Narrow is implemented through four   */
-        /*      files ARIALN.TTF, ARIALNI.TTF, ARIALNB.TTF & ARIALNBI.TTF */
-        /*                                                                */
-        /*      Strangely, all fonts have the same values in their        */
-        /*      sTypoXXX fields, except ARIALNB which sets them to 0.     */
-        /*                                                                */
-        /*      On the other hand, they all have different                */
-        /*      usWinAscent/Descent values -- as a conclusion, the OS/2   */
-        /*      table cannot be used to compute the text height reliably! */
-        /*                                                                */
-
-        /* The ascender/descender/height are computed from the OS/2 table */
-        /* when found.  Otherwise, they're taken from the horizontal      */
-        /* header.                                                        */
-        /*                                                                */
-
-        root->ascender  = face->horizontal.Ascender;
-        root->descender = face->horizontal.Descender;
-
-        root->height    = (FT_Short)( root->ascender - root->descender +
-                                      face->horizontal.Line_Gap );
-
-#if 0
-        /* if the line_gap is 0, we add an extra 15% to the text height --  */
-        /* this computation is based on various versions of Times New Roman */
-        if ( face->horizontal.Line_Gap == 0 )
-          root->height = (FT_Short)( ( root->height * 115 + 50 ) / 100 );
-#endif
-
-#if 0
-
-        /* some fonts have the OS/2 "sTypoAscender", "sTypoDescender" & */
-        /* "sTypoLineGap" fields set to 0, like ARIALNB.TTF             */
-        if ( face->os2.version != 0xFFFFU && root->ascender )
-        {
-          FT_Int  height;
-
-
-          root->ascender  =  face->os2.sTypoAscender;
-          root->descender = -face->os2.sTypoDescender;
-
-          height = root->ascender + root->descender + face->os2.sTypoLineGap;
-          if ( height > root->height )
-            root->height = height;
-        }
-
-#endif /* 0 */
-
-        root->max_advance_width   = face->horizontal.advance_Width_Max;
-
-        root->max_advance_height  = (FT_Short)( face->vertical_info
-                                      ? face->vertical.advance_Height_Max
-                                      : root->height );
-
-        root->underline_position  = face->postscript.underlinePosition;
-        root->underline_thickness = face->postscript.underlineThickness;
-
-        /* root->max_points   -- already set up */
-        /* root->max_contours -- already set up */
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-#undef LOAD_
-
-
-  FT_LOCAL_DEF( void )
-  sfnt_done_face( TT_Face  face )
-  {
-    FT_Memory     memory = face->root.memory;
-    SFNT_Service  sfnt   = (SFNT_Service)face->sfnt;
-
-
-    if ( sfnt )
-    {
-      /* destroy the postscript names table if it is loaded */
-      if ( sfnt->free_psnames )
-        sfnt->free_psnames( face );
-
-      /* destroy the embedded bitmaps table if it is loaded */
-      if ( sfnt->free_sbits )
-        sfnt->free_sbits( face );
-    }
-
-    /* freeing the kerning table */
-    FT_FREE( face->kern_pairs );
-    face->num_kern_pairs = 0;
-
-    /* freeing the collection table */
-    FT_FREE( face->ttc_header.offsets );
-    face->ttc_header.count = 0;
-
-    /* freeing table directory */
-    FT_FREE( face->dir_tables );
-    face->num_tables = 0;
-
-    {
-      FT_Stream  stream = FT_FACE_STREAM( face );
-
-
-      /* simply release the 'cmap' table frame */
-      FT_FRAME_RELEASE( face->cmap_table );
-      face->cmap_size = 0;
-    }
-
-    /* freeing the horizontal metrics */
-    FT_FREE( face->horizontal.long_metrics );
-    FT_FREE( face->horizontal.short_metrics );
-
-    /* freeing the vertical ones, if any */
-    if ( face->vertical_info )
-    {
-      FT_FREE( face->vertical.long_metrics  );
-      FT_FREE( face->vertical.short_metrics );
-      face->vertical_info = 0;
-    }
-
-    /* freeing the gasp table */
-    FT_FREE( face->gasp.gaspRanges );
-    face->gasp.numRanges = 0;
-
-    /* freeing the name table */
-    sfnt->free_names( face );
-
-    /* freeing the hdmx table */
-    sfnt->free_hdmx( face );
-
-    /* freeing family and style name */
-    FT_FREE( face->root.family_name );
-    FT_FREE( face->root.style_name );
-
-    /* freeing sbit size table */
-    FT_FREE( face->root.available_sizes );
-    face->root.num_fixed_sizes = 0;
-
-    FT_FREE( face->postscript_name );
-
-    face->sfnt = 0;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/sfobjs.h b/nx-X11/extras/freetype2/src/sfnt/sfobjs.h
deleted file mode 100644
index 6241c93b3..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/sfobjs.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfobjs.h                                                               */
-/*                                                                         */
-/*    SFNT object management (specification).                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __SFOBJS_H__
-#define __SFOBJS_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_SFNT_H
-#include FT_INTERNAL_OBJECTS_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( FT_Error )
-  sfnt_init_face( FT_Stream      stream,
-                  TT_Face        face,
-                  FT_Int         face_index,
-                  FT_Int         num_params,
-                  FT_Parameter*  params );
-
-  FT_LOCAL( FT_Error )
-  sfnt_load_face( FT_Stream      stream,
-                  TT_Face        face,
-                  FT_Int         face_index,
-                  FT_Int         num_params,
-                  FT_Parameter*  params );
-
-  FT_LOCAL( void )
-  sfnt_done_face( TT_Face  face );
-
-
-FT_END_HEADER
-
-#endif /* __SFDRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttcmap0.c b/nx-X11/extras/freetype2/src/sfnt/ttcmap0.c
deleted file mode 100644
index dd1c76aaa..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttcmap0.c
+++ /dev/null
@@ -1,1991 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttcmap0.c                                                              */
-/*                                                                         */
-/*    TrueType new character mapping table (cmap) support (body).          */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
-#include "ttload.h"
-#include "ttcmap0.h"
-
-#include "sferrors.h"
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttcmap
-
-
-#define TT_PEEK_SHORT   FT_PEEK_SHORT
-#define TT_PEEK_USHORT  FT_PEEK_USHORT
-#define TT_PEEK_LONG    FT_PEEK_LONG
-#define TT_PEEK_ULONG   FT_PEEK_ULONG
-
-#define TT_NEXT_SHORT   FT_NEXT_SHORT
-#define TT_NEXT_USHORT  FT_NEXT_USHORT
-#define TT_NEXT_LONG    FT_NEXT_LONG
-#define TT_NEXT_ULONG   FT_NEXT_ULONG
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap_init( TT_CMap   cmap,
-                FT_Byte*  table )
-  {
-    cmap->data = table;
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                           FORMAT 0                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME        OFFSET         TYPE          DESCRIPTION                */
-  /*                                                                       */
-  /*   format      0              USHORT        must be 0                  */
-  /*   length      2              USHORT        table length in bytes      */
-  /*   language    4              USHORT        Mac language code          */
-  /*   glyph_ids   6              BYTE[256]     array of glyph indices     */
-  /*               262                                                     */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_0
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap0_validate( FT_Byte*      table,
-                     FT_Validator  valid )
-  {
-    FT_Byte*  p      = table + 2;
-    FT_UInt   length = TT_NEXT_USHORT( p );
-
-
-    if ( table + length > valid->limit || length < 262 )
-      FT_INVALID_TOO_SHORT;
-
-    /* check glyph indices whenever necessary */
-    if ( valid->level >= FT_VALIDATE_TIGHT )
-    {
-      FT_UInt  n, idx;
-
-
-      p = table + 6;
-      for ( n = 0; n < 256; n++ )
-      {
-        idx = *p++;
-        if ( idx >= TT_VALID_GLYPH_COUNT( valid ) )
-          FT_INVALID_GLYPH_ID;
-      }
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap0_char_index( TT_CMap    cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_Byte*  table = cmap->data;
-
-
-    return char_code < 256 ? table[6 + char_code] : 0;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap0_char_next( TT_CMap     cmap,
-                      FT_UInt32  *pchar_code )
-  {
-    FT_Byte*   table    = cmap->data;
-    FT_UInt32  charcode = *pchar_code;
-    FT_UInt32  result   = 0;
-    FT_UInt    gindex   = 0;
-
-
-    table += 6;  /* go to glyph ids */
-    while ( ++charcode < 256 )
-    {
-      gindex = table[charcode];
-      if ( gindex != 0 )
-      {
-        result = charcode;
-        break;
-      }
-    }
-
-    *pchar_code = result;
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap0_get_info( TT_CMap       cmap,
-                     TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 4;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap0_class_rec =
-  {
-    {
-      sizeof( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap0_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap0_char_next
-    },
-    0,
-    (TT_CMap_ValidateFunc)   tt_cmap0_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap0_get_info
-  };
-
-#endif /* TT_CONFIG_CMAP_FORMAT_0 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          FORMAT 2                             *****/
-  /*****                                                               *****/
-  /***** This is used for certain CJK encodings that encode text in a  *****/
-  /***** mixed 8/16 bits encoding along the following lines:           *****/
-  /*****                                                               *****/
-  /***** * Certain byte values correspond to an 8-bit character code   *****/
-  /*****   (typically in the range 0..127 for ASCII compatibility).    *****/
-  /*****                                                               *****/
-  /***** * Certain byte values signal the first byte of a 2-byte       *****/
-  /*****   character code (but these values are also valid as the      *****/
-  /*****   second byte of a 2-byte character).                         *****/
-  /*****                                                               *****/
-  /***** The following charmap lookup and iteration functions all      *****/
-  /***** assume that the value "charcode" correspond to following:     *****/
-  /*****                                                               *****/
-  /*****   - For one byte characters, "charcode" is simply the         *****/
-  /*****     character code.                                           *****/
-  /*****                                                               *****/
-  /*****   - For two byte characters, "charcode" is the 2-byte         *****/
-  /*****     character code in big endian format.  More exactly:       *****/
-  /*****                                                               *****/
-  /*****       (charcode >> 8)    is the first byte value              *****/
-  /*****       (charcode & 0xFF)  is the second byte value             *****/
-  /*****                                                               *****/
-  /***** Note that not all values of "charcode" are valid according    *****/
-  /***** to these rules, and the function moderately check the         *****/
-  /***** arguments.                                                    *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME        OFFSET         TYPE            DESCRIPTION              */
-  /*                                                                       */
-  /*   format      0              USHORT          must be 2                */
-  /*   length      2              USHORT          table length in bytes    */
-  /*   language    4              USHORT          Mac language code        */
-  /*   keys        6              USHORT[256]     sub-header keys          */
-  /*   subs        518            SUBHEAD[NSUBS]  sub-headers array        */
-  /*   glyph_ids   518+NSUB*8     USHORT[]        glyph id array           */
-  /*                                                                       */
-  /* The `keys' table is used to map charcode high-bytes to sub-headers.   */
-  /* The value of `NSUBS' is the number of sub-headers defined in the      */
-  /* table and is computed by finding the maximum of the `keys' table.     */
-  /*                                                                       */
-  /* Note that for any n, `keys[n]' is a byte offset within the `subs'     */
-  /* table, i.e., it is the corresponding sub-header index multiplied      */
-  /* by 8.                                                                 */
-  /*                                                                       */
-  /* Each sub-header has the following format:                             */
-  /*                                                                       */
-  /*   NAME        OFFSET      TYPE            DESCRIPTION                 */
-  /*                                                                       */
-  /*   first       0           USHORT          first valid low-byte        */
-  /*   count       2           USHORT          number of valid low-bytes   */
-  /*   delta       4           SHORT           see below                   */
-  /*   offset      6           USHORT          see below                   */
-  /*                                                                       */
-  /* A sub-header defines, for each high-byte, the range of valid          */
-  /* low-bytes within the charmap.  Note that the range defined by `first' */
-  /* and `count' must be completely included in the interval [0..255]      */
-  /* according to the specification.                                       */
-  /*                                                                       */
-  /* If a character code is contained within a given sub-header, then      */
-  /* mapping it to a glyph index is done as follows:                       */
-  /*                                                                       */
-  /* * The value of `offset' is read.  This is a _byte_ distance from the  */
-  /*   location of the `offset' field itself into a slice of the           */
-  /*   `glyph_ids' table.  Let's call it `slice' (it's a USHORT[] too).    */
-  /*                                                                       */
-  /* * The value `slice[char.lo - first]' is read.  If it is 0, there is   */
-  /*   no glyph for the charcode.  Otherwise, the value of `delta' is      */
-  /*   added to it (modulo 65536) to form a new glyph index.               */
-  /*                                                                       */
-  /* It is up to the validation routine to check that all offsets fall     */
-  /* within the glyph ids table (and not within the `subs' table itself or */
-  /* outside of the CMap).                                                 */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_2
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap2_validate( FT_Byte*      table,
-                     FT_Validator  valid )
-  {
-    FT_Byte*  p      = table + 2;           /* skip format */
-    FT_UInt   length = TT_PEEK_USHORT( p );
-    FT_UInt   n, max_subs;
-    FT_Byte*  keys;                         /* keys table */
-    FT_Byte*  subs;                         /* sub-headers */
-    FT_Byte*  glyph_ids;                    /* glyph id array */
-
-
-    if ( table + length > valid->limit || length < 6 + 512 )
-      FT_INVALID_TOO_SHORT;
-
-    keys = table + 6;
-
-    /* parse keys to compute sub-headers count */
-    p        = keys;
-    max_subs = 0;
-    for ( n = 0; n < 256; n++ )
-    {
-      FT_UInt  idx = TT_NEXT_USHORT( p );
-
-
-      /* value must be multiple of 8 */
-      if ( valid->level >= FT_VALIDATE_PARANOID && ( idx & 7 ) != 0 )
-        FT_INVALID_DATA;
-
-      idx >>= 3;
-
-      if ( idx > max_subs )
-        max_subs = idx;
-    }
-
-    FT_ASSERT( p == table + 518 );
-
-    subs      = p;
-    glyph_ids = subs + (max_subs + 1) * 8;
-    if ( glyph_ids > valid->limit )
-      FT_INVALID_TOO_SHORT;
-
-    /* parse sub-headers */
-    for ( n = 0; n <= max_subs; n++ )
-    {
-      FT_UInt   first_code, code_count, offset;
-      FT_Int    delta;
-      FT_Byte*  ids;
-
-
-      first_code = TT_NEXT_USHORT( p );
-      code_count = TT_NEXT_USHORT( p );
-      delta      = TT_NEXT_SHORT( p );
-      offset     = TT_NEXT_USHORT( p );
-
-      /* check range within 0..255 */
-      if ( valid->level >= FT_VALIDATE_PARANOID )
-      {
-        if ( first_code >= 256 || first_code + code_count > 256 )
-          FT_INVALID_DATA;
-      }
-
-      /* check offset */
-      if ( offset != 0 )
-      {
-        ids = p - 2 + offset;
-        if ( ids < glyph_ids || ids + code_count*2 > table + length )
-          FT_INVALID_OFFSET;
-
-        /* check glyph ids */
-        if ( valid->level >= FT_VALIDATE_TIGHT )
-        {
-          FT_Byte*  limit = p + code_count * 2;
-          FT_UInt   idx;
-
-
-          for ( ; p < limit; )
-          {
-            idx = TT_NEXT_USHORT( p );
-            if ( idx != 0 )
-            {
-              idx = ( idx + delta ) & 0xFFFFU;
-              if ( idx >= TT_VALID_GLYPH_COUNT( valid ) )
-                FT_INVALID_GLYPH_ID;
-            }
-          }
-        }
-      }
-    }
-  }
-
-
-  /* return sub header corresponding to a given character code */
-  /* NULL on invalid charcode                                  */
-  static FT_Byte*
-  tt_cmap2_get_subheader( FT_Byte*   table,
-                          FT_UInt32  char_code )
-  {
-    FT_Byte*  result = NULL;
-
-
-    if ( char_code < 0x10000UL )
-    {
-      FT_UInt   char_lo = (FT_UInt)( char_code & 0xFF );
-      FT_UInt   char_hi = (FT_UInt)( char_code >> 8 );
-      FT_Byte*  p       = table + 6;    /* keys table */
-      FT_Byte*  subs    = table + 518;  /* subheaders table */
-      FT_Byte*  sub;
-
-
-      if ( char_hi == 0 )
-      {
-        /* an 8-bit character code -- we use subHeader 0 in this case */
-        /* to test whether the character code is in the charmap       */
-        /*                                                            */
-        sub = subs;  /* jump to first sub-header */
-
-        /* check that the sub-header for this byte is 0, which */
-        /* indicates that it's really a valid one-byte value   */
-        /* Otherwise, return 0                                 */
-        /*                                                     */
-        p += char_lo * 2;
-        if ( TT_PEEK_USHORT( p ) != 0 )
-          goto Exit;
-      }
-      else
-      {
-        /* a 16-bit character code */
-
-        /* jump to key entry  */
-        p  += char_hi * 2;
-        /* jump to sub-header */
-        sub = subs + ( FT_PAD_FLOOR( TT_PEEK_USHORT( p ), 8 ) );
-
-        /* check that the high byte isn't a valid one-byte value */
-        if ( sub == subs )
-          goto Exit;
-      }
-      result = sub;
-    }
-  Exit:
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap2_char_index( TT_CMap    cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_Byte*  table   = cmap->data;
-    FT_UInt   result  = 0;
-    FT_Byte*  subheader;
-
-
-    subheader = tt_cmap2_get_subheader( table, char_code );
-    if ( subheader )
-    {
-      FT_Byte*  p   = subheader;
-      FT_UInt   idx = (FT_UInt)(char_code & 0xFF);
-      FT_UInt   start, count;
-      FT_Int    delta;
-      FT_UInt   offset;
-
-
-      start  = TT_NEXT_USHORT( p );
-      count  = TT_NEXT_USHORT( p );
-      delta  = TT_NEXT_SHORT ( p );
-      offset = TT_PEEK_USHORT( p );
-
-      idx -= start;
-      if ( idx < count && offset != 0 )
-      {
-        p  += offset + 2 * idx;
-        idx = TT_PEEK_USHORT( p );
-
-        if ( idx != 0 )
-          result = (FT_UInt)( idx + delta ) & 0xFFFFU;
-      }
-    }
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap2_char_next( TT_CMap     cmap,
-                      FT_UInt32  *pcharcode )
-  {
-    FT_Byte*   table    = cmap->data;
-    FT_UInt    gindex   = 0;
-    FT_UInt32  result   = 0;
-    FT_UInt32  charcode = *pcharcode + 1;
-    FT_Byte*   subheader;
-
-
-    while ( charcode < 0x10000UL )
-    {
-      subheader = tt_cmap2_get_subheader( table, charcode );
-      if ( subheader )
-      {
-        FT_Byte*  p       = subheader;
-        FT_UInt   start   = TT_NEXT_USHORT( p );
-        FT_UInt   count   = TT_NEXT_USHORT( p );
-        FT_Int    delta   = TT_NEXT_SHORT ( p );
-        FT_UInt   offset  = TT_PEEK_USHORT( p );
-        FT_UInt   char_lo = (FT_UInt)( charcode & 0xFF );
-        FT_UInt   pos, idx;
-
-
-        if ( offset == 0 )
-          goto Next_SubHeader;
-
-        if ( char_lo < start )
-        {
-          char_lo = start;
-          pos     = 0;
-        }
-        else
-          pos = (FT_UInt)( char_lo - start );
-
-        p       += offset + pos * 2;
-        charcode = FT_PAD_FLOOR( charcode, 256 ) + char_lo;
-
-        for ( ; pos < count; pos++, charcode++ )
-        {
-          idx = TT_NEXT_USHORT( p );
-
-          if ( idx != 0 )
-          {
-            gindex = ( idx + delta ) & 0xFFFFU;
-            if ( gindex != 0 )
-            {
-              result = charcode;
-              goto Exit;
-            }
-          }
-        }
-      }
-
-      /* jump to next sub-header, i.e. higher byte value */
-    Next_SubHeader:
-      charcode = FT_PAD_FLOOR( charcode, 256 ) + 256;
-    }
-
-  Exit:
-    *pcharcode = result;
-
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap2_get_info( TT_CMap       cmap,
-                     TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 4;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap2_class_rec =
-  {
-    {
-      sizeof( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap2_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap2_char_next
-    },
-    2,
-    (TT_CMap_ValidateFunc)   tt_cmap2_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap2_get_info
-  };
-
-#endif /* TT_CONFIG_CMAP_FORMAT_2 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                           FORMAT 4                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME          OFFSET         TYPE              DESCRIPTION          */
-  /*                                                                       */
-  /*   format        0              USHORT            must be 4            */
-  /*   length        2              USHORT            table length         */
-  /*                                                  in bytes             */
-  /*   language      4              USHORT            Mac language code    */
-  /*                                                                       */
-  /*   segCountX2    6              USHORT            2*NUM_SEGS           */
-  /*   searchRange   8              USHORT            2*(1 << LOG_SEGS)    */
-  /*   entrySelector 10             USHORT            LOG_SEGS             */
-  /*   rangeShift    12             USHORT            segCountX2 -         */
-  /*                                                    searchRange        */
-  /*                                                                       */
-  /*   endCount      14             USHORT[NUM_SEGS]  end charcode for     */
-  /*                                                  each segment; last   */
-  /*                                                  is 0xFFFF            */
-  /*                                                                       */
-  /*   pad           14+NUM_SEGS*2  USHORT            padding              */
-  /*                                                                       */
-  /*   startCount    16+NUM_SEGS*2  USHORT[NUM_SEGS]  first charcode for   */
-  /*                                                  each segment         */
-  /*                                                                       */
-  /*   idDelta       16+NUM_SEGS*4  SHORT[NUM_SEGS]   delta for each       */
-  /*                                                  segment              */
-  /*   idOffset      16+NUM_SEGS*6  SHORT[NUM_SEGS]   range offset for     */
-  /*                                                  each segment; can be */
-  /*                                                  zero                 */
-  /*                                                                       */
-  /*   glyphIds      16+NUM_SEGS*8  USHORT[]          array of glyph id    */
-  /*                                                  ranges               */
-  /*                                                                       */
-  /* Character codes are modelled by a series of ordered (increasing)      */
-  /* intervals called segments.  Each segment has start and end codes,     */
-  /* provided by the `startCount' and `endCount' arrays.  Segments must    */
-  /* not be overlapping and the last segment should always contain the     */
-  /* `0xFFFF' endCount.                                                    */
-  /*                                                                       */
-  /* The fields `searchRange', `entrySelector' and `rangeShift' are better */
-  /* ignored (they are traces of over-engineering in the TrueType          */
-  /* specification).                                                       */
-  /*                                                                       */
-  /* Each segment also has a signed `delta', as well as an optional offset */
-  /* within the `glyphIds' table.                                          */
-  /*                                                                       */
-  /* If a segment's idOffset is 0, the glyph index corresponding to any    */
-  /* charcode within the segment is obtained by adding the value of        */
-  /* `idDelta' directly to the charcode, modulo 65536.                     */
-  /*                                                                       */
-  /* Otherwise, a glyph index is taken from the glyph ids sub-array for    */
-  /* the segment, and the value of `idDelta' is added to it.               */
-  /*                                                                       */
-  /*                                                                       */
-  /* Finally, note that certain fonts contain invalid charmaps that        */
-  /* contain end=0xFFFF, start=0xFFFF, delta=0x0001, offset=0xFFFF at the  */
-  /* of their charmaps (e.g. opens___.ttf which comes with OpenOffice.org) */
-  /* we need special code to deal with them correctly...                   */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_4
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap4_validate( FT_Byte*      table,
-                     FT_Validator  valid )
-  {
-    FT_Byte*  p      = table + 2;               /* skip format */
-    FT_UInt   length = TT_NEXT_USHORT( p );
-    FT_Byte   *ends, *starts, *offsets, *deltas, *glyph_ids;
-    FT_UInt   num_segs;
-
-
-    /* in certain fonts, the `length' field is invalid and goes */
-    /* out of bound.  We try to correct this here...            */
-    if ( length < 16 )
-      FT_INVALID_TOO_SHORT;
-
-    if ( table + length > valid->limit )
-    {
-      if ( valid->level >= FT_VALIDATE_TIGHT )
-        FT_INVALID_TOO_SHORT;
-
-      length = (FT_UInt)( valid->limit - table );
-    }
-
-    p        = table + 6;
-    num_segs = TT_NEXT_USHORT( p );   /* read segCountX2 */
-
-    if ( valid->level >= FT_VALIDATE_PARANOID )
-    {
-      /* check that we have an even value here */
-      if ( num_segs & 1 )
-        FT_INVALID_DATA;
-    }
-
-    num_segs /= 2;
-
-    /* check the search parameters - even though we never use them */
-    /*                                                             */
-    if ( valid->level >= FT_VALIDATE_PARANOID )
-    {
-      /* check the values of 'searchRange', 'entrySelector', 'rangeShift' */
-      FT_UInt  search_range   = TT_NEXT_USHORT( p );
-      FT_UInt  entry_selector = TT_NEXT_USHORT( p );
-      FT_UInt  range_shift    = TT_NEXT_USHORT( p );
-
-
-      if ( ( search_range | range_shift ) & 1 )  /* must be even values */
-        FT_INVALID_DATA;
-
-      search_range /= 2;
-      range_shift  /= 2;
-
-      /* `search range' is the greatest power of 2 that is <= num_segs */
-
-      if ( search_range                > num_segs                 ||
-           search_range * 2            < num_segs                 ||
-           search_range + range_shift != num_segs                 ||
-           search_range               != ( 1U << entry_selector ) )
-        FT_INVALID_DATA;
-    }
-
-    ends      = table   + 14;
-    starts    = table   + 16 + num_segs * 2;
-    deltas    = starts  + num_segs * 2;
-    offsets   = deltas  + num_segs * 2;
-    glyph_ids = offsets + num_segs * 2;
-
-    if ( glyph_ids > table + length )
-      FT_INVALID_TOO_SHORT;
-
-    /* check last segment, its end count must be FFFF */
-    if ( valid->level >= FT_VALIDATE_PARANOID )
-    {
-      p = ends + ( num_segs - 1 ) * 2;
-      if ( TT_PEEK_USHORT( p ) != 0xFFFFU )
-        FT_INVALID_DATA;
-    }
-
-    /* check that segments are sorted in increasing order and do not */
-    /* overlap; check also the offsets                               */
-    {
-      FT_UInt  start, end, last = 0, offset, n;
-      FT_Int   delta;
-
-
-      for ( n = 0; n < num_segs; n++ )
-      {
-        p = starts + n * 2;
-        start = TT_PEEK_USHORT( p );
-        p = ends + n * 2;
-        end = TT_PEEK_USHORT( p );
-        p = deltas + n * 2;
-        delta = TT_PEEK_SHORT( p );
-        p = offsets + n * 2;
-        offset = TT_PEEK_USHORT( p );
-
-        if ( start > end )
-          FT_INVALID_DATA;
-
-        /* this test should be performed at default validation level;  */
-        /* unfortunately, some popular Asian fonts present overlapping */
-        /* ranges in their charmaps                                    */
-        /*                                                             */
-        if ( valid->level >= FT_VALIDATE_TIGHT )
-        {
-          if ( n > 0 && start <= last )
-            FT_INVALID_DATA;
-        }
-
-        if ( offset && offset != 0xFFFFU )
-        {
-          p += offset;  /* start of glyph id array */
-
-          /* check that we point within the glyph ids table only */
-          if ( valid->level >= FT_VALIDATE_TIGHT )
-          {
-            if ( p < glyph_ids                                ||
-                 p + ( end - start + 1 ) * 2 > table + length )
-              FT_INVALID_DATA;
-          }
-          else
-          {
-            if ( p < glyph_ids                              ||
-                 p + ( end - start + 1 ) * 2 > valid->limit )
-              FT_INVALID_DATA;
-          }
-
-          /* check glyph indices within the segment range */
-          if ( valid->level >= FT_VALIDATE_TIGHT )
-          {
-            FT_UInt  i, idx;
-
-
-            for ( i = start; i < end; i++ )
-            {
-              idx = FT_NEXT_USHORT( p );
-              if ( idx != 0 )
-              {
-                idx = (FT_UInt)( idx + delta ) & 0xFFFFU;
-
-                if ( idx >= TT_VALID_GLYPH_COUNT( valid ) )
-                  FT_INVALID_GLYPH_ID;
-              }
-            }
-          }
-        }
-        else if ( offset == 0xFFFFU )
-        {
-          /* Some fonts (erroneously?) use a range offset of 0xFFFF */
-          /* to mean missing glyph in cmap table                    */
-          /*                                                        */
-          if ( valid->level >= FT_VALIDATE_PARANOID                     ||
-               n != num_segs - 1                                        ||
-               !( start == 0xFFFFU && end == 0xFFFFU && delta == 0x1U ) )
-            FT_INVALID_DATA;
-        }
-
-        last = end;
-      }
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap4_char_index( TT_CMap    cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_Byte*  table  = cmap->data;
-    FT_UInt   result = 0;
-
-
-    if ( char_code < 0x10000UL )
-    {
-      FT_UInt   idx, num_segs2;
-      FT_Int    delta;
-      FT_UInt   code = (FT_UInt)char_code;
-      FT_Byte*  p;
-
-
-      p         = table + 6;
-      num_segs2 = FT_PAD_FLOOR( TT_PEEK_USHORT( p ), 2 );  /* be paranoid! */
-
-#if 1
-      /* Some fonts have more than 170 segments in their charmaps! */
-      /* We changed this function to use a more efficient binary   */
-      /* search for improving performance                          */
-      {
-        FT_UInt  min = 0;
-        FT_UInt  max = num_segs2 >> 1;
-        FT_UInt  mid, start, end, offset;
-
-
-        while ( min < max )
-        {
-          mid   = ( min + max ) >> 1;
-          p     = table + 14 + mid * 2;
-          end   = TT_NEXT_USHORT( p );
-          p    += num_segs2;
-          start = TT_PEEK_USHORT( p);
-
-          if ( code < start )
-            max = mid;
-          else if ( code > end )
-            min = mid + 1;
-          else
-          {
-            /* we found the segment */
-            idx = code;
-
-            p += num_segs2;
-            delta = TT_PEEK_SHORT( p );
-
-            p += num_segs2;
-            offset = TT_PEEK_USHORT( p );
-
-            if ( offset == 0xFFFFU )
-              goto Exit;
-
-            if ( offset != 0 )
-            {
-              p  += offset + 2 * ( idx - start );
-              idx = TT_PEEK_USHORT( p );
-            }
-
-            if ( idx != 0 )
-              result = (FT_UInt)( idx + delta ) & 0xFFFFU;
-
-            goto Exit;
-          }
-        }
-      }
-
-#else /* 0 - old code */
-
-      {
-        FT_UInt   n;
-        FT_Byte*  q;
-
-
-        p = table + 14;               /* ends table   */
-        q = table + 16 + num_segs2;   /* starts table */
-
-
-        for ( n = 0; n < num_segs2; n += 2 )
-        {
-          FT_UInt  end   = TT_NEXT_USHORT( p );
-          FT_UInt  start = TT_NEXT_USHORT( q );
-          FT_UInt  offset;
-
-
-          if ( code < start )
-            break;
-
-          if ( code <= end )
-          {
-            idx = code;
-
-            p = q + num_segs2 - 2;
-            delta = TT_PEEK_SHORT( p );
-            p += num_segs2;
-            offset = TT_PEEK_USHORT( p );
-
-            if ( offset == 0xFFFFU )
-              goto Exit;
-
-            if ( offset != 0 )
-            {
-              p  += offset + 2 * ( idx - start );
-              idx = TT_PEEK_USHORT( p );
-            }
-
-            if ( idx != 0 )
-              result = (FT_UInt)( idx + delta ) & 0xFFFFU;
-          }
-        }
-      }
-
-#endif /* 0 */
-
-    }
-
-  Exit:
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap4_char_next( TT_CMap     cmap,
-                      FT_UInt32  *pchar_code )
-  {
-    FT_Byte*   table     = cmap->data;
-    FT_UInt32  result    = 0;
-    FT_UInt    gindex    = 0;
-    FT_UInt32  char_code = *pchar_code;
-    FT_Byte*   p;
-    FT_UInt    code, num_segs2;
-
-
-    if ( char_code >= 0xFFFFUL )
-      goto Exit;
-
-    code      = (FT_UInt)char_code + 1;
-    p         = table + 6;
-    num_segs2 = FT_PAD_FLOOR( TT_PEEK_USHORT(p), 2 );  /* ensure even-ness */
-
-#if 1
-
-    for (;;)
-    {
-      /* Some fonts have more than 170 segments in their charmaps! */
-      /* We changed this function to use a more efficient binary   */
-      /* search                                                    */
-      FT_UInt  offset;
-      FT_Int   delta;
-      FT_UInt  min = 0;
-      FT_UInt  max = num_segs2 >> 1;
-      FT_UInt  mid, start, end;
-      FT_UInt  hi;
-
-
-      /* we begin by finding the segment which end is
-         closer to our code point */
-      hi = max + 1;
-      while ( min < max )
-      {
-        mid = ( min + max ) >> 1;
-        p   = table + 14 + mid * 2;
-        end = TT_PEEK_USHORT( p );
-
-        if ( end < code )
-          min = mid + 1;
-        else
-        {
-          hi  = mid;
-          max = mid;
-        }
-      }
-
-      if ( hi > max )
-      {
-        /* the point is behind the last segment;
-           we will exit right now */
-        goto Exit;
-      }
-
-      p   = table + 14 + hi * 2;
-      end = TT_PEEK_USHORT( p );
-
-      p    += 2 + num_segs2;
-      start = TT_PEEK_USHORT( p );
-
-      if ( code < start )
-        code = start;
-
-      p    += num_segs2;
-      delta = TT_PEEK_USHORT( p );
-
-      p     += num_segs2;
-      offset = TT_PEEK_USHORT( p );
-
-      if ( offset != 0 && offset != 0xFFFFU )
-      {
-        /* parse the glyph ids array for non-zero index */
-        p += offset + ( code - start ) * 2;
-        while ( code <= end )
-        {
-          gindex = TT_NEXT_USHORT( p );
-          if ( gindex != 0 )
-          {
-            gindex = (FT_UInt)( gindex + delta ) & 0xFFFFU;
-            if ( gindex != 0 )
-            {
-              result = code;
-              goto Exit;
-            }
-          }
-          code++;
-        }
-      }
-      else if ( offset == 0xFFFFU )
-      {
-        /* an offset of 0xFFFF means an empty glyph in certain fonts! */
-        code = end + 1;
-      }
-      else  /* offset == 0 */
-      {
-        gindex = (FT_UInt)( code + delta ) & 0xFFFFU;
-        if ( gindex != 0 )
-        {
-          result = code;
-          goto Exit;
-        }
-        code++;
-      }
-    }
-
-#else   /* old code -- kept for reference */
-
-    for ( ;; )
-    {
-      FT_UInt   offset, n;
-      FT_Int    delta;
-      FT_Byte*  q;
-
-
-      p = table + 14;              /* ends table  */
-      q = table + 16 + num_segs2;  /* starts table */
-
-      for ( n = 0; n < num_segs2; n += 2 )
-      {
-        FT_UInt  end   = TT_NEXT_USHORT( p );
-        FT_UInt  start = TT_NEXT_USHORT( q );
-
-
-        if ( code < start )
-          code = start;
-
-        if ( code <= end )
-        {
-          p = q + num_segs2 - 2;
-          delta = TT_PEEK_SHORT( p );
-          p += num_segs2;
-          offset = TT_PEEK_USHORT( p );
-
-          if ( offset != 0 && offset != 0xFFFFU )
-          {
-            /* parse the glyph ids array for non-0 index */
-            p += offset + ( code - start ) * 2;
-            while ( code <= end )
-            {
-              gindex = TT_NEXT_USHORT( p );
-              if ( gindex != 0 )
-              {
-                gindex = (FT_UInt)( gindex + delta ) & 0xFFFFU;
-                if ( gindex != 0 )
-                  break;
-              }
-              code++;
-            }
-          }
-          else if ( offset == 0xFFFFU )
-          {
-            /* an offset of 0xFFFF means an empty glyph in certain fonts! */
-            code = end;
-            break;
-          }
-          else
-            gindex = (FT_UInt)( code + delta ) & 0xFFFFU;
-
-          if ( gindex == 0 )
-            break;
-
-          result = code;
-          goto Exit;
-        }
-      }
-      /* loop to next trial charcode */
-      if ( code >= 0xFFFFU )
-        break;
-
-      code++;
-    }
-
-#endif /* !1 */
-
-  Exit:
-    *pchar_code = result;
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap4_get_info( TT_CMap       cmap,
-                     TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 4;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap4_class_rec =
-  {
-    {
-      sizeof ( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap4_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap4_char_next
-    },
-    4,
-    (TT_CMap_ValidateFunc)   tt_cmap4_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap4_get_info
-  };
-
-#endif /* TT_CONFIG_CMAP_FORMAT_4 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          FORMAT 6                             *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME        OFFSET          TYPE             DESCRIPTION            */
-  /*                                                                       */
-  /*   format       0              USHORT           must be 4              */
-  /*   length       2              USHORT           table length in bytes  */
-  /*   language     4              USHORT           Mac language code      */
-  /*                                                                       */
-  /*   first        6              USHORT           first segment code     */
-  /*   count        8              USHORT           segment size in chars  */
-  /*   glyphIds     10             USHORT[count]    glyph ids              */
-  /*                                                                       */
-  /* A very simplified segment mapping.                                    */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_6
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap6_validate( FT_Byte*      table,
-                     FT_Validator  valid )
-  {
-    FT_Byte*  p;
-    FT_UInt   length, count;
-
-
-    if ( table + 10 > valid->limit )
-      FT_INVALID_TOO_SHORT;
-
-    p      = table + 2;
-    length = TT_NEXT_USHORT( p );
-
-    p      = table + 8;             /* skip language and start index */
-    count  = TT_NEXT_USHORT( p );
-
-    if ( table + length > valid->limit || length < 10 + count * 2 )
-      FT_INVALID_TOO_SHORT;
-
-    /* check glyph indices */
-    if ( valid->level >= FT_VALIDATE_TIGHT )
-    {
-      FT_UInt  gindex;
-
-
-      for ( ; count > 0; count-- )
-      {
-        gindex = TT_NEXT_USHORT( p );
-        if ( gindex >= TT_VALID_GLYPH_COUNT( valid ) )
-          FT_INVALID_GLYPH_ID;
-      }
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap6_char_index( TT_CMap    cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_Byte*  table  = cmap->data;
-    FT_UInt   result = 0;
-    FT_Byte*  p      = table + 6;
-    FT_UInt   start  = TT_NEXT_USHORT( p );
-    FT_UInt   count  = TT_NEXT_USHORT( p );
-    FT_UInt   idx    = (FT_UInt)( char_code - start );
-
-
-    if ( idx < count )
-    {
-      p += 2 * idx;
-      result = TT_PEEK_USHORT( p );
-    }
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap6_char_next( TT_CMap     cmap,
-                      FT_UInt32  *pchar_code )
-  {
-    FT_Byte*   table     = cmap->data;
-    FT_UInt32  result    = 0;
-    FT_UInt32  char_code = *pchar_code + 1;
-    FT_UInt    gindex    = 0;
-
-    FT_Byte*   p         = table + 6;
-    FT_UInt    start     = TT_NEXT_USHORT( p );
-    FT_UInt    count     = TT_NEXT_USHORT( p );
-    FT_UInt    idx;
-
-
-    if ( char_code >= 0x10000UL )
-      goto Exit;
-
-    if ( char_code < start )
-      char_code = start;
-
-    idx = (FT_UInt)( char_code - start );
-    p  += 2 * idx;
-
-    for ( ; idx < count; idx++ )
-    {
-      gindex = TT_NEXT_USHORT( p );
-      if ( gindex != 0 )
-      {
-        result = char_code;
-        break;
-      }
-      char_code++;
-    }
-
-  Exit:
-    *pchar_code = result;
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap6_get_info( TT_CMap       cmap,
-                     TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 4;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_USHORT( p );
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap6_class_rec =
-  {
-    {
-      sizeof ( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap6_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap6_char_next
-    },
-    6,
-    (TT_CMap_ValidateFunc)   tt_cmap6_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap6_get_info
-  };
-
-#endif /* TT_CONFIG_CMAP_FORMAT_6 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          FORMAT 8                             *****/
-  /*****                                                               *****/
-  /***** It's hard to completely understand what the OpenType spec     *****/
-  /***** says about this format, but here is my conclusion.            *****/
-  /*****                                                               *****/
-  /***** The purpose of this format is to easily map UTF-16 text to    *****/
-  /***** glyph indices.  Basically, the `char_code' must be in one of  *****/
-  /***** the following formats:                                        *****/
-  /*****                                                               *****/
-  /*****   - A 16-bit value that isn't part of the Unicode Surrogates  *****/
-  /*****     Area (i.e. U+D800-U+DFFF).                                *****/
-  /*****                                                               *****/
-  /*****   - A 32-bit value, made of two surrogate values, i.e.. if    *****/
-  /*****     `char_code = (char_hi << 16) | char_lo', then both        *****/
-  /*****     `char_hi' and `char_lo' must be in the Surrogates Area.   *****/
-  /*****      Area.                                                    *****/
-  /*****                                                               *****/
-  /***** The 'is32' table embedded in the charmap indicates whether a  *****/
-  /***** given 16-bit value is in the surrogates area or not.          *****/
-  /*****                                                               *****/
-  /***** So, for any given `char_code', we can assert the following:   *****/
-  /*****                                                               *****/
-  /*****   If `char_hi == 0' then we must have `is32[char_lo] == 0'.   *****/
-  /*****                                                               *****/
-  /*****   If `char_hi != 0' then we must have both                    *****/
-  /*****   `is32[char_hi] != 0' and `is32[char_lo] != 0'.              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME        OFFSET         TYPE        DESCRIPTION                  */
-  /*                                                                       */
-  /*   format      0              USHORT      must be 8                    */
-  /*   reseved     2              USHORT      reserved                     */
-  /*   length      4              ULONG       length in bytes              */
-  /*   language    8              ULONG       Mac language code            */
-  /*   is32        12             BYTE[8192]  32-bitness bitmap            */
-  /*   count       8204           ULONG       number of groups             */
-  /*                                                                       */
-  /* This header is followed by 'count' groups of the following format:    */
-  /*                                                                       */
-  /*   start       0              ULONG       first charcode               */
-  /*   end         4              ULONG       last charcode                */
-  /*   startId     8              ULONG       start glyph id for the group */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_8
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap8_validate( FT_Byte*      table,
-                     FT_Validator  valid )
-  {
-    FT_Byte*   p = table + 4;
-    FT_Byte*   is32;
-    FT_UInt32  length;
-    FT_UInt32  num_groups;
-
-
-    if ( table + 16 + 8192 > valid->limit )
-      FT_INVALID_TOO_SHORT;
-
-    length = TT_NEXT_ULONG( p );
-    if ( table + length > valid->limit || length < 8208 )
-      FT_INVALID_TOO_SHORT;
-
-    is32       = table + 12;
-    p          = is32  + 8192;          /* skip `is32' array */
-    num_groups = TT_NEXT_ULONG( p );
-
-    if ( p + num_groups * 12 > valid->limit )
-      FT_INVALID_TOO_SHORT;
-
-    /* check groups, they must be in increasing order */
-    {
-      FT_UInt32  n, start, end, start_id, count, last = 0;
-
-
-      for ( n = 0; n < num_groups; n++ )
-      {
-        FT_UInt   hi, lo;
-
-
-        start    = TT_NEXT_ULONG( p );
-        end      = TT_NEXT_ULONG( p );
-        start_id = TT_NEXT_ULONG( p );
-
-        if ( start > end )
-          FT_INVALID_DATA;
-
-        if ( n > 0 && start <= last )
-          FT_INVALID_DATA;
-
-        if ( valid->level >= FT_VALIDATE_TIGHT )
-        {
-          if ( start_id + end - start >= TT_VALID_GLYPH_COUNT( valid ) )
-            FT_INVALID_GLYPH_ID;
-
-          count = (FT_UInt32)( end - start + 1 );
-
-          if ( start & ~0xFFFFU )
-          {
-            /* start_hi != 0; check that is32[i] is 1 for each i in */
-            /* the `hi' and `lo' of the range [start..end]          */
-            for ( ; count > 0; count--, start++ )
-            {
-              hi = (FT_UInt)( start >> 16 );
-              lo = (FT_UInt)( start & 0xFFFFU );
-
-              if ( (is32[hi >> 3] & ( 0x80 >> ( hi & 7 ) ) ) == 0 )
-                FT_INVALID_DATA;
-
-              if ( (is32[lo >> 3] & ( 0x80 >> ( lo & 7 ) ) ) == 0 )
-                FT_INVALID_DATA;
-            }
-          }
-          else
-          {
-            /* start_hi == 0; check that is32[i] is 0 for each i in */
-            /* the range [start..end]                               */
-
-            /* end_hi cannot be != 0! */
-            if ( end & ~0xFFFFU )
-              FT_INVALID_DATA;
-
-            for ( ; count > 0; count--, start++ )
-            {
-              lo = (FT_UInt)( start & 0xFFFFU );
-
-              if ( (is32[lo >> 3] & ( 0x80 >> ( lo & 7 ) ) ) != 0 )
-                FT_INVALID_DATA;
-            }
-          }
-        }
-
-        last = end;
-      }
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap8_char_index( TT_CMap    cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_Byte*   table      = cmap->data;
-    FT_UInt    result     = 0;
-    FT_Byte*   p          = table + 8204;
-    FT_UInt32  num_groups = TT_NEXT_ULONG( p );
-    FT_UInt32  start, end, start_id;
-
-
-    for ( ; num_groups > 0; num_groups-- )
-    {
-      start    = TT_NEXT_ULONG( p );
-      end      = TT_NEXT_ULONG( p );
-      start_id = TT_NEXT_ULONG( p );
-
-      if ( char_code < start )
-        break;
-
-      if ( char_code <= end )
-      {
-        result = (FT_UInt)( start_id + char_code - start );
-        break;
-      }
-    }
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap8_char_next( TT_CMap     cmap,
-                      FT_UInt32  *pchar_code )
-  {
-    FT_UInt32  result     = 0;
-    FT_UInt32  char_code  = *pchar_code + 1;
-    FT_UInt    gindex     = 0;
-    FT_Byte*   table      = cmap->data;
-    FT_Byte*   p          = table + 8204;
-    FT_UInt32  num_groups = TT_NEXT_ULONG( p );
-    FT_UInt32  start, end, start_id;
-
-
-    p = table + 8208;
-
-    for ( ; num_groups > 0; num_groups-- )
-    {
-      start    = TT_NEXT_ULONG( p );
-      end      = TT_NEXT_ULONG( p );
-      start_id = TT_NEXT_ULONG( p );
-
-      if ( char_code < start )
-        char_code = start;
-
-      if ( char_code <= end )
-      {
-        gindex = (FT_UInt)( char_code - start + start_id );
-        if ( gindex != 0 )
-        {
-          result = char_code;
-          goto Exit;
-        }
-      }
-    }
-
-  Exit:
-    *pchar_code = result;
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap8_get_info( TT_CMap       cmap,
-                     TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 8;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_ULONG( p );
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap8_class_rec =
-  {
-    {
-      sizeof ( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap8_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap8_char_next
-    },
-    8,
-    (TT_CMap_ValidateFunc)   tt_cmap8_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap8_get_info
-  };
-
-#endif /* TT_CONFIG_CMAP_FORMAT_8 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          FORMAT 10                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME      OFFSET  TYPE               DESCRIPTION                    */
-  /*                                                                       */
-  /*   format     0      USHORT             must be 10                     */
-  /*   reserved   2      USHORT             reserved                       */
-  /*   length     4      ULONG              length in bytes                */
-  /*   language   8      ULONG              Mac language code              */
-  /*                                                                       */
-  /*   start     12      ULONG              first char in range            */
-  /*   count     16      ULONG              number of chars in range       */
-  /*   glyphIds  20      USHORT[count]      glyph indices covered          */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_10
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap10_validate( FT_Byte*      table,
-                      FT_Validator  valid )
-  {
-    FT_Byte*  p = table + 4;
-    FT_ULong  length, count;
-
-
-    if ( table + 20 > valid->limit )
-      FT_INVALID_TOO_SHORT;
-
-    length = TT_NEXT_ULONG( p );
-    p      = table + 16;
-    count  = TT_NEXT_ULONG( p );
-
-    if ( table + length > valid->limit || length < 20 + count * 2 )
-      FT_INVALID_TOO_SHORT;
-
-    /* check glyph indices */
-    if ( valid->level >= FT_VALIDATE_TIGHT )
-    {
-      FT_UInt  gindex;
-
-
-      for ( ; count > 0; count-- )
-      {
-        gindex = TT_NEXT_USHORT( p );
-        if ( gindex >= TT_VALID_GLYPH_COUNT( valid ) )
-          FT_INVALID_GLYPH_ID;
-      }
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap10_char_index( TT_CMap    cmap,
-                        FT_UInt32  char_code )
-  {
-    FT_Byte*   table  = cmap->data;
-    FT_UInt    result = 0;
-    FT_Byte*   p      = table + 12;
-    FT_UInt32  start  = TT_NEXT_ULONG( p );
-    FT_UInt32  count  = TT_NEXT_ULONG( p );
-    FT_UInt32  idx    = (FT_ULong)( char_code - start );
-
-
-    if ( idx < count )
-    {
-      p     += 2 * idx;
-      result = TT_PEEK_USHORT( p );
-    }
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap10_char_next( TT_CMap     cmap,
-                       FT_UInt32  *pchar_code )
-  {
-    FT_Byte*   table     = cmap->data;
-    FT_UInt32  char_code = *pchar_code + 1;
-    FT_UInt    gindex    = 0;
-    FT_Byte*   p         = table + 12;
-    FT_UInt32  start     = TT_NEXT_ULONG( p );
-    FT_UInt32  count     = TT_NEXT_ULONG( p );
-    FT_UInt32  idx;
-
-
-    if ( char_code < start )
-      char_code = start;
-
-    idx = (FT_UInt32)( char_code - start );
-    p  += 2 * idx;
-
-    for ( ; idx < count; idx++ )
-    {
-      gindex = TT_NEXT_USHORT( p );
-      if ( gindex != 0 )
-        break;
-      char_code++;
-    }
-
-    *pchar_code = char_code;
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap10_get_info( TT_CMap       cmap,
-                      TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 8;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_ULONG( p );
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap10_class_rec =
-  {
-    {
-      sizeof ( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap10_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap10_char_next
-    },
-    10,
-    (TT_CMap_ValidateFunc)   tt_cmap10_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap10_get_info
-  };
-
-#endif /* TT_CONFIG_CMAP_FORMAT_10 */
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                          FORMAT 12                            *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TABLE OVERVIEW                                                        */
-  /* --------------                                                        */
-  /*                                                                       */
-  /*   NAME        OFFSET     TYPE       DESCRIPTION                       */
-  /*                                                                       */
-  /*   format      0          USHORT     must be 12                        */
-  /*   reserved    2          USHORT     reserved                          */
-  /*   length      4          ULONG      length in bytes                   */
-  /*   language    8          ULONG      Mac language code                 */
-  /*   count       12         ULONG      number of groups                  */
-  /*               16                                                      */
-  /*                                                                       */
-  /* This header is followed by `count' groups of the following format:    */
-  /*                                                                       */
-  /*   start       0          ULONG      first charcode                    */
-  /*   end         4          ULONG      last charcode                     */
-  /*   startId     8          ULONG      start glyph id for the group      */
-  /*                                                                       */
-
-#ifdef TT_CONFIG_CMAP_FORMAT_12
-
-  FT_CALLBACK_DEF( void )
-  tt_cmap12_validate( FT_Byte*      table,
-                      FT_Validator  valid )
-  {
-    FT_Byte*   p;
-    FT_ULong   length;
-    FT_ULong   num_groups;
-
-
-    if ( table + 16 > valid->limit )
-      FT_INVALID_TOO_SHORT;
-
-    p      = table + 4;
-    length = TT_NEXT_ULONG( p );
-
-    p          = table + 12;
-    num_groups = TT_NEXT_ULONG( p );
-
-    if ( table + length > valid->limit || length < 16 + 12 * num_groups )
-      FT_INVALID_TOO_SHORT;
-
-    /* check groups, they must be in increasing order */
-    {
-      FT_ULong  n, start, end, start_id, last = 0;
-
-
-      for ( n = 0; n < num_groups; n++ )
-      {
-        start    = TT_NEXT_ULONG( p );
-        end      = TT_NEXT_ULONG( p );
-        start_id = TT_NEXT_ULONG( p );
-
-        if ( start > end )
-          FT_INVALID_DATA;
-
-        if ( n > 0 && start <= last )
-          FT_INVALID_DATA;
-
-        if ( valid->level >= FT_VALIDATE_TIGHT )
-        {
-          if ( start_id + end - start >= TT_VALID_GLYPH_COUNT( valid ) )
-            FT_INVALID_GLYPH_ID;
-        }
-
-        last = end;
-      }
-    }
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap12_char_index( TT_CMap    cmap,
-                        FT_UInt32  char_code )
-  {
-    FT_UInt    result     = 0;
-    FT_Byte*   table      = cmap->data;
-    FT_Byte*   p          = table + 12;
-    FT_UInt32  num_groups = TT_NEXT_ULONG( p );
-    FT_UInt32  start, end, start_id;
-
-
-    for ( ; num_groups > 0; num_groups-- )
-    {
-      start    = TT_NEXT_ULONG( p );
-      end      = TT_NEXT_ULONG( p );
-      start_id = TT_NEXT_ULONG( p );
-
-      if ( char_code < start )
-        break;
-
-      if ( char_code <= end )
-      {
-        result = (FT_UInt)( start_id + char_code - start );
-        break;
-      }
-    }
-    return result;
-  }
-
-
-  FT_CALLBACK_DEF( FT_UInt )
-  tt_cmap12_char_next( TT_CMap     cmap,
-                       FT_UInt32  *pchar_code )
-  {
-    FT_Byte*   table      = cmap->data;
-    FT_UInt32  result     = 0;
-    FT_UInt32  char_code  = *pchar_code + 1;
-    FT_UInt    gindex     = 0;
-    FT_Byte*   p          = table + 12;
-    FT_UInt32  num_groups = TT_NEXT_ULONG( p );
-    FT_UInt32  start, end, start_id;
-
-
-    p = table + 16;
-
-    for ( ; num_groups > 0; num_groups-- )
-    {
-      start    = TT_NEXT_ULONG( p );
-      end      = TT_NEXT_ULONG( p );
-      start_id = TT_NEXT_ULONG( p );
-
-      if ( char_code < start )
-        char_code = start;
-
-      if ( char_code <= end )
-      {
-        gindex = (FT_UInt)(char_code - start + start_id);
-        if ( gindex != 0 )
-        {
-          result = char_code;
-          goto Exit;
-        }
-      }
-    }
-
-  Exit:
-    *pchar_code = result;
-    return gindex;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  tt_cmap12_get_info( TT_CMap       cmap,
-                      TT_CMapInfo  *cmap_info )
-  {
-    FT_Byte*  p = cmap->data + 8;
-
-
-    cmap_info->language = (FT_ULong)TT_PEEK_ULONG( p );
-
-    return FT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const TT_CMap_ClassRec  tt_cmap12_class_rec =
-  {
-    {
-      sizeof ( TT_CMapRec ),
-
-      (FT_CMap_InitFunc)     tt_cmap_init,
-      (FT_CMap_DoneFunc)     NULL,
-      (FT_CMap_CharIndexFunc)tt_cmap12_char_index,
-      (FT_CMap_CharNextFunc) tt_cmap12_char_next
-    },
-    12,
-    (TT_CMap_ValidateFunc)   tt_cmap12_validate,
-    (TT_CMap_Info_GetFunc)   tt_cmap12_get_info
-  };
-
-
-#endif /* TT_CONFIG_CMAP_FORMAT_12 */
-
-
-  static const TT_CMap_Class  tt_cmap_classes[] =
-  {
-#ifdef TT_CONFIG_CMAP_FORMAT_0
-    &tt_cmap0_class_rec,
-#endif
-
-#ifdef TT_CONFIG_CMAP_FORMAT_2
-    &tt_cmap2_class_rec,
-#endif
-
-#ifdef TT_CONFIG_CMAP_FORMAT_4
-    &tt_cmap4_class_rec,
-#endif
-
-#ifdef TT_CONFIG_CMAP_FORMAT_6
-    &tt_cmap6_class_rec,
-#endif
-
-#ifdef TT_CONFIG_CMAP_FORMAT_8
-    &tt_cmap8_class_rec,
-#endif
-
-#ifdef TT_CONFIG_CMAP_FORMAT_10
-    &tt_cmap10_class_rec,
-#endif
-
-#ifdef TT_CONFIG_CMAP_FORMAT_12
-    &tt_cmap12_class_rec,
-#endif
-
-    NULL,
-  };
-
-
-  /* parse the `cmap' table and build the corresponding TT_CMap objects */
-  /* in the current face                                                */
-  /*                                                                    */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_build_cmaps( TT_Face  face )
-  {
-    FT_Byte*           table = face->cmap_table;
-    FT_Byte*           limit = table + face->cmap_size;
-    FT_UInt volatile   num_cmaps;
-    FT_Byte* volatile  p     = table;
-
-
-    if ( p + 4 > limit )
-      return SFNT_Err_Invalid_Table;
-
-    /* only recognize format 0 */
-    if ( TT_NEXT_USHORT( p ) != 0 )
-    {
-      p -= 2;
-      FT_ERROR(( "tt_face_build_cmaps: unsupported `cmap' table format = %d\n",
-                 TT_PEEK_USHORT( p ) ));
-      return SFNT_Err_Invalid_Table;
-    }
-
-    num_cmaps = TT_NEXT_USHORT( p );
-
-    for ( ; num_cmaps > 0 && p + 8 <= limit; num_cmaps-- )
-    {
-      FT_CharMapRec  charmap;
-      FT_UInt32      offset;
-
-
-      charmap.platform_id = TT_NEXT_USHORT( p );
-      charmap.encoding_id = TT_NEXT_USHORT( p );
-      charmap.face        = FT_FACE( face );
-      charmap.encoding    = FT_ENCODING_NONE;  /* will be filled later */
-      offset              = TT_NEXT_ULONG( p );
-
-      if ( offset && table + offset + 2 < limit )
-      {
-        FT_Byte*                       cmap   = table + offset;
-        volatile FT_UInt               format = TT_PEEK_USHORT( cmap );
-        const TT_CMap_Class* volatile  pclazz = tt_cmap_classes;
-        TT_CMap_Class                  clazz;
-
-
-        for ( ; *pclazz; pclazz++ )
-        {
-          clazz = *pclazz;
-          if ( clazz->format == format )
-          {
-            volatile TT_ValidatorRec  valid;
-
-
-            ft_validator_init( FT_VALIDATOR( &valid ), cmap, limit,
-                               FT_VALIDATE_DEFAULT );
-
-            valid.num_glyphs = (FT_UInt)face->root.num_glyphs;
-
-            if ( ft_setjmp( FT_VALIDATOR( &valid )->jump_buffer ) == 0 )
-            {
-              /* validate this cmap sub-table */
-              clazz->validate( cmap, FT_VALIDATOR( &valid ) );
-            }
-
-            if ( valid.validator.error == 0 )
-              (void)FT_CMap_New( (FT_CMap_Class)clazz, cmap, &charmap, NULL );
-            else
-            {
-              FT_ERROR(( "tt_face_build_cmaps:" ));
-              FT_ERROR(( " broken cmap sub-table ignored!\n" ));
-            }
-            break;
-          }
-        }
-      }
-    }
-
-    return 0;
-  }
-
-
-  FT_LOCAL( FT_Error )
-  tt_get_cmap_info( FT_CharMap    charmap,
-                    TT_CMapInfo  *cmap_info )
-  {
-    FT_CMap        cmap  = (FT_CMap)charmap;
-    TT_CMap_Class  clazz = (TT_CMap_Class)cmap->clazz;
-
-
-    return clazz->get_cmap_info( charmap, cmap_info );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttcmap0.h b/nx-X11/extras/freetype2/src/sfnt/ttcmap0.h
deleted file mode 100644
index 6ca9ca110..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttcmap0.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttcmap0.h                                                              */
-/*                                                                         */
-/*    TrueType new character mapping table (cmap) support (specification). */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTCMAP0_H__
-#define __TTCMAP0_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_SERVICE_TT_CMAP_H
-
-FT_BEGIN_HEADER
-
-  typedef struct  TT_CMapRec_
-  {
-    FT_CMapRec  cmap;
-    FT_Byte*    data;           /* pointer to in-memory cmap table */
-
-  } TT_CMapRec, *TT_CMap;
-
-  typedef const struct TT_CMap_ClassRec_*  TT_CMap_Class;
-
-
-  typedef FT_Error
-  (*TT_CMap_ValidateFunc)( FT_Byte*      data,
-                           FT_Validator  valid );
-
-  typedef struct  TT_CMap_ClassRec_
-  {
-    FT_CMap_ClassRec      clazz;
-    FT_UInt               format;
-    TT_CMap_ValidateFunc  validate;
-    TT_CMap_Info_GetFunc  get_cmap_info;
-
-  } TT_CMap_ClassRec;
-
-
-  typedef struct  TT_ValidatorRec_
-  {
-    FT_ValidatorRec  validator;
-    FT_UInt          num_glyphs;
-
-  } TT_ValidatorRec, *TT_Validator;
-
-
-#define TT_VALIDATOR( x )          ((TT_Validator)( x ))
-#define TT_VALID_GLYPH_COUNT( x )  TT_VALIDATOR( x )->num_glyphs
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_build_cmaps( TT_Face  face );
-
-  /* used in tt-cmaps service */
-  FT_LOCAL( FT_Error )
-  tt_get_cmap_info( FT_CharMap    charmap,
-                    TT_CMapInfo  *cmap_info );
-
-
-FT_END_HEADER
-
-#endif /* __TTCMAP0_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttload.c b/nx-X11/extras/freetype2/src/sfnt/ttload.c
deleted file mode 100644
index fa5c6a71a..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttload.c
+++ /dev/null
@@ -1,1912 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttload.c                                                               */
-/*                                                                         */
-/*    Load the basic TrueType tables, i.e., tables that can be either in   */
-/*    TTF or OTF fonts (body).                                             */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
-#include "ttload.h"
-
-#include "sferrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttload
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_lookup_table                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Looks for a TrueType table by name.                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A face object handle.                                      */
-  /*                                                                       */
-  /*    tag  :: The searched tag.                                          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A pointer to the table directory entry.  0 if not found.           */
-  /*                                                                       */
-  FT_LOCAL_DEF( TT_Table  )
-  tt_face_lookup_table( TT_Face   face,
-                        FT_ULong  tag  )
-  {
-    TT_Table  entry;
-    TT_Table  limit;
-
-
-    FT_TRACE3(( "tt_face_lookup_table: %08p, `%c%c%c%c' -- ",
-                face,
-                (FT_Char)( tag >> 24 ),
-                (FT_Char)( tag >> 16 ),
-                (FT_Char)( tag >> 8  ),
-                (FT_Char)( tag       ) ));
-
-    entry = face->dir_tables;
-    limit = entry + face->num_tables;
-
-    for ( ; entry < limit; entry++ )
-    {
-      /* For compatibility with Windows, we consider 0-length */
-      /* tables the same as missing tables.                   */
-      if ( entry->Tag == tag && entry->Length != 0 )
-      {
-        FT_TRACE3(( "found table.\n" ));
-        return entry;
-      }
-    }
-
-    FT_TRACE3(( "could not find table!\n" ));
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_goto_table                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Looks for a TrueType table by name, then seek a stream to it.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A face object handle.                                    */
-  /*                                                                       */
-  /*    tag    :: The searched tag.                                        */
-  /*                                                                       */
-  /*    stream :: The stream to seek when the table is found.              */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    length :: The length of the table if found, undefined otherwise.   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_goto_table( TT_Face    face,
-                      FT_ULong   tag,
-                      FT_Stream  stream,
-                      FT_ULong*  length )
-  {
-    TT_Table  table;
-    FT_Error  error;
-
-
-    table = tt_face_lookup_table( face, tag );
-    if ( table )
-    {
-      if ( length )
-        *length = table->Length;
-
-      if ( FT_STREAM_SEEK( table->Offset ) )
-       goto Exit;
-    }
-    else
-      error = SFNT_Err_Table_Missing;
-
-  Exit:
-    return error;
-  }
-
-
- /* In theory, we should check the values of `search_range',               */
- /* `entry_selector', and `range_shift' to detect non-SFNT based files     */
- /* whose header might also start with 0x100000L (yes, these exist).       */
- /*                                                                        */
- /* Very unfortunately, many TrueType fonts don't have these fields        */
- /* set correctly and we must ignore them to support them.  An alternative */
- /* way to check the font file is thus to:                                 */
- /*                                                                        */
- /* - check that `num_tables' is valid                                     */
- /* - look for a "head" table, check its size, and parse it to             */
- /*   see if its "magic" field is correctly set                            */
- /*                                                                        */
- /* When checking directory entries, ignore the tables `glyx' and `locx'   */
- /* which are hacked-out versions of `glyf' and `loca' in some PostScript  */
- /* Type 42 fonts, and will generally be invalid.                          */
- /*                                                                        */
-  static FT_Error
-  sfnt_dir_check( FT_Stream  stream,
-                  FT_ULong   offset,
-                  FT_UInt    num_tables )
-   {
-    FT_Error        error;
-    FT_UInt         nn, has_head = 0;
-
-    const FT_ULong  glyx_tag = FT_MAKE_TAG( 'g', 'l', 'y', 'x' );
-    const FT_ULong  locx_tag = FT_MAKE_TAG( 'l', 'o', 'c', 'x' );
-
-    static const FT_Frame_Field  sfnt_dir_entry_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_TableRec
-
-      FT_FRAME_START( 16 ),
-        FT_FRAME_ULONG( Tag ),
-        FT_FRAME_ULONG( CheckSum ),
-        FT_FRAME_ULONG( Offset ),
-        FT_FRAME_ULONG( Length ),
-      FT_FRAME_END
-    };
-
-
-    /* if 'num_tables' is 0, read the table count from the file */
-    if ( num_tables == 0 )
-    {
-      if ( FT_STREAM_SEEK( offset )     ||
-           FT_STREAM_SKIP( 4 )          ||
-           FT_READ_USHORT( num_tables ) ||
-           FT_STREAM_SKIP( 6 )          )
-        goto Bad_Format;
-
-      if ( offset + 12 + num_tables*16 > stream->size )
-        goto Bad_Format;
-    }
-    else if ( FT_STREAM_SEEK( offset + 12 ) )
-      goto Bad_Format;
-
-    for ( nn = 0; nn < num_tables; nn++ )
-    {
-      TT_TableRec  table;
-
-
-      if ( FT_STREAM_READ_FIELDS( sfnt_dir_entry_fields, &table ) )
-        goto Bad_Format;
-
-      if ( table.Offset + table.Length > stream->size     &&
-           table.Tag != glyx_tag && table.Tag != locx_tag )
-        goto Bad_Format;
-
-      if ( table.Tag == TTAG_head )
-      {
-        FT_UInt32  magic;
-
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-      head_retry:
-#endif  /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-        has_head = 1;
-
-        /* The table length should be 0x36, but certain font tools
-         * make it 0x38, so we will just check that it is greater.
-         *
-         * Note that according to the specification,
-         * the table must be padded to 32-bit lengths, but this doesn't
-         * apply to the value of its "Length" field!
-         */
-        if ( table.Length < 0x36                 ||
-             FT_STREAM_SEEK( table.Offset + 12 ) ||
-             FT_READ_ULONG( magic )              ||
-             magic != 0x5F0F3CF5UL               )
-          goto Bad_Format;
-
-        if ( FT_STREAM_SEEK( offset + 28 + 16*nn ) )
-          goto Bad_Format;
-      }
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-      else if ( table.Tag == TTAG_bhed )
-        goto head_retry;
-#endif  /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */      
-    }
-
-    if ( has_head == 0 )
-      goto Bad_Format;
-
-  Exit:
-    return  error;
-
-  Bad_Format:
-    error = SFNT_Err_Unknown_File_Format;
-    goto Exit;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_sfnt_header                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the header of a SFNT font file.  Supports collections.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face       :: A handle to the target face object.                  */
-  /*                                                                       */
-  /*    stream     :: The input stream.                                    */
-  /*                                                                       */
-  /*    face_index :: If the font is a collection, the number of the font  */
-  /*                  in the collection.  Must be zero otherwise.          */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    sfnt       :: The SFNT header.                                     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be at the font file's origin.               */
-  /*                                                                       */
-  /*    This function recognizes fonts embedded in a `TrueType collection' */
-  /*                                                                       */
-  /*    The header will be checked whether it is valid by looking at the   */
-  /*    values of `search_range', `entry_selector', and `range_shift'.     */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_sfnt_header( TT_Face      face,
-                            FT_Stream    stream,
-                            FT_Long      face_index,
-                            SFNT_Header  sfnt )
-  {
-    FT_Error   error;
-    FT_ULong   font_format_tag, format_tag, offset;
-    FT_Memory  memory = stream->memory;
-
-    static const FT_Frame_Field  sfnt_header_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  SFNT_HeaderRec
-
-      FT_FRAME_START( 8 ),
-        FT_FRAME_USHORT( num_tables ),
-        FT_FRAME_USHORT( search_range ),
-        FT_FRAME_USHORT( entry_selector ),
-        FT_FRAME_USHORT( range_shift ),
-      FT_FRAME_END
-    };
-
-    static const FT_Frame_Field  ttc_header_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TTC_HeaderRec
-
-      FT_FRAME_START( 8 ),
-        FT_FRAME_LONG( version ),
-        FT_FRAME_LONG( count   ),
-      FT_FRAME_END
-    };
-
-
-    FT_TRACE2(( "tt_face_load_sfnt_header: %08p, %ld\n",
-                face, face_index ));
-
-    face->ttc_header.tag     = 0;
-    face->ttc_header.version = 0;
-    face->ttc_header.count   = 0;
-
-    face->num_tables = 0;
-
-    /* First of all, read the first 4 bytes.  If it is `ttcf', then the   */
-    /* file is a TrueType collection, otherwise it is a single-face font. */
-    /*                                                                    */
-    offset = FT_STREAM_POS();
-
-    if ( FT_READ_ULONG( font_format_tag ) )
-      goto Exit;
-
-    format_tag = font_format_tag;
-
-    if ( font_format_tag == TTAG_ttcf )
-    {
-      FT_Int  n;
-
-
-      FT_TRACE3(( "tt_face_load_sfnt_header: file is a collection\n" ));
-
-      /* It is a TrueType collection, i.e. a file containing several */
-      /* font files.  Read the font directory now                    */
-      if ( FT_STREAM_READ_FIELDS( ttc_header_fields, &face->ttc_header ) )
-        goto Exit;
-
-      /* now read the offsets of each font in the file */
-      if ( FT_NEW_ARRAY( face->ttc_header.offsets, face->ttc_header.count ) ||
-           FT_FRAME_ENTER( face->ttc_header.count * 4L )                    )
-        goto Exit;
-
-      for ( n = 0; n < face->ttc_header.count; n++ )
-        face->ttc_header.offsets[n] = FT_GET_ULONG();
-
-      FT_FRAME_EXIT();
-
-      /* check face index */
-      if ( face_index >= face->ttc_header.count )
-      {
-        error = SFNT_Err_Bad_Argument;
-        goto Exit;
-      }
-
-      /* seek to the appropriate TrueType file, then read tag */
-      offset = face->ttc_header.offsets[face_index];
-
-      if ( FT_STREAM_SEEK( offset )   ||
-           FT_READ_LONG( format_tag ) )
-        goto Exit;
-    }
-
-    /* the format tag was read, now check the rest of the header */
-    sfnt->format_tag = format_tag;
-    sfnt->offset     = offset;
-
-    if ( FT_STREAM_READ_FIELDS( sfnt_header_fields, sfnt ) )
-      goto Exit;
-
-    /* now check the sfnt directory */
-    error = sfnt_dir_check( stream, offset, sfnt->num_tables );
-    if ( error )
-    {
-      FT_TRACE2(( "tt_face_load_sfnt_header: file is not SFNT!\n" ));
-      error = SFNT_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* disallow face index values > 0 for non-TTC files */
-    if ( font_format_tag != TTAG_ttcf && face_index > 0 )
-      error = SFNT_Err_Bad_Argument;
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_directory                                             */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the table directory into a face object.                      */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /*    sfnt   :: The SFNT directory header.                               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be at the font file's origin.               */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_directory( TT_Face      face,
-                          FT_Stream    stream,
-                          SFNT_Header  sfnt )
-  {
-    FT_Error     error;
-    FT_Memory    memory = stream->memory;
-
-    TT_TableRec  *entry, *limit;
-
-
-    FT_TRACE2(( "tt_face_load_directory: %08p\n", face ));
-
-    FT_TRACE2(( "-- Tables count:   %12u\n",  sfnt->num_tables ));
-    FT_TRACE2(( "-- Format version: %08lx\n", sfnt->format_tag ));
-
-    face->num_tables = sfnt->num_tables;
-
-    if ( FT_QNEW_ARRAY( face->dir_tables, face->num_tables ) )
-      goto Exit;
-
-    if ( FT_STREAM_SEEK( sfnt->offset + 12 )      ||
-         FT_FRAME_ENTER( face->num_tables * 16L ) )
-      goto Exit;
-
-    entry = face->dir_tables;
-    limit = entry + face->num_tables;
-
-    for ( ; entry < limit; entry++ )
-    {                    /* loop through the tables and get all entries */
-      entry->Tag      = FT_GET_TAG4();
-      entry->CheckSum = FT_GET_ULONG();
-      entry->Offset   = FT_GET_LONG();
-      entry->Length   = FT_GET_LONG();
-
-      FT_TRACE2(( "  %c%c%c%c  -  %08lx  -  %08lx\n",
-                  (FT_Char)( entry->Tag >> 24 ),
-                  (FT_Char)( entry->Tag >> 16 ),
-                  (FT_Char)( entry->Tag >> 8  ),
-                  (FT_Char)( entry->Tag       ),
-                  entry->Offset,
-                  entry->Length ));
-    }
-
-    FT_FRAME_EXIT();
-
-    FT_TRACE2(( "Directory loaded\n\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_any                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads any font table into client memory.                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: The face object to look for.                             */
-  /*                                                                       */
-  /*    tag    :: The tag of table to load.  Use the value 0 if you want   */
-  /*              to access the whole font file, else set this parameter   */
-  /*              to a valid TrueType table tag that you can forge with    */
-  /*              the MAKE_TT_TAG macro.                                   */
-  /*                                                                       */
-  /*    offset :: The starting offset in the table (or the file if         */
-  /*              tag == 0).                                               */
-  /*                                                                       */
-  /*    length :: The address of the decision variable:                    */
-  /*                                                                       */
-  /*                If length == NULL:                                     */
-  /*                  Loads the whole table.  Returns an error if          */
-  /*                  `offset' == 0!                                       */
-  /*                                                                       */
-  /*                If *length == 0:                                       */
-  /*                  Exits immediately; returning the length of the given */
-  /*                  table or of the font file, depending on the value of */
-  /*                  `tag'.                                               */
-  /*                                                                       */
-  /*                If *length != 0:                                       */
-  /*                  Loads the next `length' bytes of table or font,      */
-  /*                  starting at offset `offset' (in table or font too).  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    buffer :: The address of target buffer.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_any( TT_Face    face,
-                    FT_ULong   tag,
-                    FT_Long    offset,
-                    FT_Byte*   buffer,
-                    FT_ULong*  length )
-  {
-    FT_Error   error;
-    FT_Stream  stream;
-    TT_Table   table;
-    FT_ULong   size;
-
-
-    if ( tag != 0 )
-    {
-      /* look for tag in font directory */
-      table = tt_face_lookup_table( face, tag );
-      if ( !table )
-      {
-        error = SFNT_Err_Table_Missing;
-        goto Exit;
-      }
-
-      offset += table->Offset;
-      size    = table->Length;
-    }
-    else
-      /* tag == 0 -- the user wants to access the font file directly */
-      size = face->root.stream->size;
-
-    if ( length && *length == 0 )
-    {
-      *length = size;
-
-      return SFNT_Err_Ok;
-    }
-
-    if ( length )
-      size = *length;
-
-    stream = face->root.stream;
-    /* the `if' is syntactic sugar for picky compilers */
-    if ( FT_STREAM_READ_AT( offset, buffer, size ) )
-      goto Exit;
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_generic_header                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the TrueType table `head' or `bhed'.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  tt_face_load_generic_header( TT_Face    face,
-                               FT_Stream  stream,
-                               FT_ULong   tag )
-  {
-    FT_Error    error;
-    TT_Header*  header;
-
-    static const FT_Frame_Field  header_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_Header
-
-      FT_FRAME_START( 54 ),
-        FT_FRAME_ULONG ( Table_Version ),
-        FT_FRAME_ULONG ( Font_Revision ),
-        FT_FRAME_LONG  ( CheckSum_Adjust ),
-        FT_FRAME_LONG  ( Magic_Number ),
-        FT_FRAME_USHORT( Flags ),
-        FT_FRAME_USHORT( Units_Per_EM ),
-        FT_FRAME_LONG  ( Created[0] ),
-        FT_FRAME_LONG  ( Created[1] ),
-        FT_FRAME_LONG  ( Modified[0] ),
-        FT_FRAME_LONG  ( Modified[1] ),
-        FT_FRAME_SHORT ( xMin ),
-        FT_FRAME_SHORT ( yMin ),
-        FT_FRAME_SHORT ( xMax ),
-        FT_FRAME_SHORT ( yMax ),
-        FT_FRAME_USHORT( Mac_Style ),
-        FT_FRAME_USHORT( Lowest_Rec_PPEM ),
-        FT_FRAME_SHORT ( Font_Direction ),
-        FT_FRAME_SHORT ( Index_To_Loc_Format ),
-        FT_FRAME_SHORT ( Glyph_Data_Format ),
-      FT_FRAME_END
-    };
-
-
-    FT_TRACE2(( "tt_face_load_generic_header: "
-                "%08p, looking up font table `%c%c%c%c'.\n",
-                face,
-                (FT_Char)( tag >> 24 ),
-                (FT_Char)( tag >> 16 ),
-                (FT_Char)( tag >> 8  ),
-                (FT_Char)( tag       ) ));
-
-    error = face->goto_table( face, tag, stream, 0 );
-    if ( error )
-    {
-      FT_TRACE2(( "tt_face_load_generic_header: Font table is missing!\n" ));
-      goto Exit;
-    }
-
-    header = &face->header;
-
-    if ( FT_STREAM_READ_FIELDS( header_fields, header ) )
-      goto Exit;
-
-    FT_TRACE2(( "    Units per EM: %8u\n", header->Units_Per_EM ));
-    FT_TRACE2(( "    IndexToLoc:   %8d\n", header->Index_To_Loc_Format ));
-    FT_TRACE2(( "tt_face_load_generic_header: Font table loaded.\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_header( TT_Face    face,
-                       FT_Stream  stream )
-  {
-    return tt_face_load_generic_header( face, stream, TTAG_head );
-  }
-
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_bitmap_header( TT_Face    face,
-                              FT_Stream  stream )
-  {
-    return tt_face_load_generic_header( face, stream, TTAG_bhed );
-  }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_max_profile                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the maximum profile into a face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_max_profile( TT_Face    face,
-                            FT_Stream  stream )
-  {
-    FT_Error        error;
-    TT_MaxProfile*  maxProfile = &face->max_profile;
-
-    const FT_Frame_Field  maxp_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_MaxProfile
-
-      FT_FRAME_START( 6 ),
-        FT_FRAME_LONG  ( version ),
-        FT_FRAME_USHORT( numGlyphs ),
-      FT_FRAME_END
-    };
-
-    const FT_Frame_Field  maxp_fields_extra[] =
-    {
-      FT_FRAME_START( 26 ),
-        FT_FRAME_USHORT( maxPoints ),
-        FT_FRAME_USHORT( maxContours ),
-        FT_FRAME_USHORT( maxCompositePoints ),
-        FT_FRAME_USHORT( maxCompositeContours ),
-        FT_FRAME_USHORT( maxZones ),
-        FT_FRAME_USHORT( maxTwilightPoints ),
-        FT_FRAME_USHORT( maxStorage ),
-        FT_FRAME_USHORT( maxFunctionDefs ),
-        FT_FRAME_USHORT( maxInstructionDefs ),
-        FT_FRAME_USHORT( maxStackElements ),
-        FT_FRAME_USHORT( maxSizeOfInstructions ),
-        FT_FRAME_USHORT( maxComponentElements ),
-        FT_FRAME_USHORT( maxComponentDepth ),
-      FT_FRAME_END
-    };
-
-
-    FT_TRACE2(( "Load_TT_MaxProfile: %08p\n", face ));
-
-    error = face->goto_table( face, TTAG_maxp, stream, 0 );
-    if ( error )
-      goto Exit;
-
-    if ( FT_STREAM_READ_FIELDS( maxp_fields, maxProfile ) )
-      goto Exit;
-
-    face->root.num_glyphs = maxProfile->numGlyphs;
-
-    maxProfile->maxPoints             = 0;
-    maxProfile->maxContours           = 0;
-    maxProfile->maxCompositePoints    = 0;
-    maxProfile->maxCompositeContours  = 0;
-    maxProfile->maxZones              = 0;
-    maxProfile->maxTwilightPoints     = 0;
-    maxProfile->maxStorage            = 0;
-    maxProfile->maxFunctionDefs       = 0;
-    maxProfile->maxInstructionDefs    = 0;
-    maxProfile->maxStackElements      = 0;
-    maxProfile->maxSizeOfInstructions = 0;
-    maxProfile->maxComponentElements  = 0;
-    maxProfile->maxComponentDepth     = 0;
-
-    if ( maxProfile->version >= 0x10000L )
-    {
-      if ( FT_STREAM_READ_FIELDS( maxp_fields_extra, maxProfile ) )
-        goto Exit;
-
-      /* XXX: an adjustment that is necessary to load certain */
-      /*      broken fonts like `Keystrokes MT' :-(           */
-      /*                                                      */
-      /*   We allocate 64 function entries by default when    */
-      /*   the maxFunctionDefs field is null.                 */
-
-      if ( maxProfile->maxFunctionDefs == 0 )
-        maxProfile->maxFunctionDefs = 64;
-
-      face->root.internal->max_points =
-        (FT_UShort)FT_MAX( maxProfile->maxCompositePoints,
-                           maxProfile->maxPoints );
-
-      face->root.internal->max_contours =
-        (FT_Short)FT_MAX( maxProfile->maxCompositeContours,
-                          maxProfile->maxContours );
-
-      face->max_components = (FT_ULong)maxProfile->maxComponentElements +
-                             maxProfile->maxComponentDepth;
-
-      /* XXX: some fonts have maxComponents set to 0; we will */
-      /*      then use 16 of them by default.                 */
-      if ( face->max_components == 0 )
-        face->max_components = 16;
-
-      /* We also increase maxPoints and maxContours in order to support */
-      /* some broken fonts.                                             */
-      face->root.internal->max_points   += (FT_UShort)8;
-      face->root.internal->max_contours += (FT_Short) 4;
-    }
-
-    FT_TRACE2(( "MAXP loaded.\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_metrics                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the horizontal or vertical metrics table into a face object. */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face     :: A handle to the target face object.                    */
-  /*                                                                       */
-  /*    stream   :: The input stream.                                      */
-  /*                                                                       */
-  /*    vertical :: A boolean flag.  If set, load vertical metrics.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  tt_face_load_metrics( TT_Face    face,
-                        FT_Stream  stream,
-                        FT_Bool    vertical )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-
-    FT_ULong   table_len;
-    FT_Long    num_shorts, num_longs, num_shorts_checked;
-
-    TT_LongMetrics *   longs;
-    TT_ShortMetrics**  shorts;
-
-
-    FT_TRACE2(( "TT_Load_%s_Metrics: %08p\n", vertical ? "Vertical"
-                                                       : "Horizontal",
-                                              face ));
-
-    if ( vertical )
-    {
-      /* The table is optional, quit silently if it wasn't found       */
-      /*                                                               */
-      /* XXX: Some fonts have a valid vertical header with a non-null  */
-      /*      `number_of_VMetrics' fields, but no corresponding `vmtx' */
-      /*      table to get the metrics from (e.g. mingliu).            */
-      /*                                                               */
-      /*      For safety, we set the field to 0!                       */
-      /*                                                               */
-      error = face->goto_table( face, TTAG_vmtx, stream, &table_len );
-      if ( error )
-      {
-        /* Set number_Of_VMetrics to 0! */
-        FT_TRACE2(( "  no vertical header in file.\n" ));
-        face->vertical.number_Of_VMetrics = 0;
-        error = SFNT_Err_Ok;
-        goto Exit;
-      }
-
-      num_longs = face->vertical.number_Of_VMetrics;
-      longs     = (TT_LongMetrics *)&face->vertical.long_metrics;
-      shorts    = (TT_ShortMetrics**)&face->vertical.short_metrics;
-    }
-    else
-    {
-      error = face->goto_table( face, TTAG_hmtx, stream, &table_len );
-      if ( error )
-      {
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-        /* If this is an incrementally loaded font and there are */
-        /* overriding metrics tolerate a missing 'hmtx' table.   */
-        if ( face->root.internal->incremental_interface &&
-             face->root.internal->incremental_interface->funcs->
-               get_glyph_metrics )
-        {
-          face->horizontal.number_Of_HMetrics = 0;
-          error = SFNT_Err_Ok;
-          goto Exit;
-        }
-#endif
-
-        FT_ERROR(( " no horizontal metrics in file!\n" ));
-        error = SFNT_Err_Hmtx_Table_Missing;
-        goto Exit;
-      }
-
-      num_longs = face->horizontal.number_Of_HMetrics;
-      longs     = (TT_LongMetrics *)&face->horizontal.long_metrics;
-      shorts    = (TT_ShortMetrics**)&face->horizontal.short_metrics;
-    }
-
-    /* never trust derived values */
-
-    num_shorts         = face->max_profile.numGlyphs - num_longs;
-    num_shorts_checked = ( table_len - num_longs * 4L ) / 2;
-
-    if ( num_shorts < 0 )
-    {
-      FT_ERROR(( "TT_Load_%s_Metrics: more metrics than glyphs!\n",
-                 vertical ? "Vertical"
-                          : "Horizontal" ));
-
-      error = vertical ? SFNT_Err_Invalid_Vert_Metrics
-                       : SFNT_Err_Invalid_Horiz_Metrics;
-      goto Exit;
-    }
-
-    if ( FT_QNEW_ARRAY( *longs,  num_longs  ) ||
-         FT_QNEW_ARRAY( *shorts, num_shorts ) )
-      goto Exit;
-
-    if ( FT_FRAME_ENTER( table_len ) )
-      goto Exit;
-
-    {
-      TT_LongMetrics  cur   = *longs;
-      TT_LongMetrics  limit = cur + num_longs;
-
-
-      for ( ; cur < limit; cur++ )
-      {
-        cur->advance = FT_GET_USHORT();
-        cur->bearing = FT_GET_SHORT();
-      }
-    }
-
-    /* do we have an inconsistent number of metric values? */
-    {
-      TT_ShortMetrics*  cur   = *shorts;
-      TT_ShortMetrics*  limit = cur +
-                                FT_MIN( num_shorts, num_shorts_checked );
-
-
-      for ( ; cur < limit; cur++ )
-        *cur = FT_GET_SHORT();
-
-      /* we fill up the missing left side bearings with the     */
-      /* last valid value.  Since this will occur for buggy CJK */
-      /* fonts usually only, nothing serious will happen        */
-      if ( num_shorts > num_shorts_checked && num_shorts_checked > 0 )
-      {
-        FT_Short  val = (*shorts)[num_shorts_checked - 1];
-
-
-        limit = *shorts + num_shorts;
-        for ( ; cur < limit; cur++ )
-          *cur = val;
-      }
-    }
-
-    FT_FRAME_EXIT();
-
-    FT_TRACE2(( "loaded\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_metrics_header                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the horizontal or vertical header in a face object.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face     :: A handle to the target face object.                    */
-  /*                                                                       */
-  /*    stream   :: The input stream.                                      */
-  /*                                                                       */
-  /*    vertical :: A boolean flag.  If set, load vertical metrics.        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_metrics_header( TT_Face    face,
-                               FT_Stream  stream,
-                               FT_Bool    vertical )
-  {
-    FT_Error        error;
-    TT_HoriHeader*  header;
-
-    const FT_Frame_Field  metrics_header_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_HoriHeader
-
-      FT_FRAME_START( 36 ),
-        FT_FRAME_ULONG ( Version ),
-        FT_FRAME_SHORT ( Ascender ),
-        FT_FRAME_SHORT ( Descender ),
-        FT_FRAME_SHORT ( Line_Gap ),
-        FT_FRAME_USHORT( advance_Width_Max ),
-        FT_FRAME_SHORT ( min_Left_Side_Bearing ),
-        FT_FRAME_SHORT ( min_Right_Side_Bearing ),
-        FT_FRAME_SHORT ( xMax_Extent ),
-        FT_FRAME_SHORT ( caret_Slope_Rise ),
-        FT_FRAME_SHORT ( caret_Slope_Run ),
-        FT_FRAME_SHORT ( caret_Offset ),
-        FT_FRAME_SHORT ( Reserved[0] ),
-        FT_FRAME_SHORT ( Reserved[1] ),
-        FT_FRAME_SHORT ( Reserved[2] ),
-        FT_FRAME_SHORT ( Reserved[3] ),
-        FT_FRAME_SHORT ( metric_Data_Format ),
-        FT_FRAME_USHORT( number_Of_HMetrics ),
-      FT_FRAME_END
-    };
-
-
-    FT_TRACE2(( vertical ? "Vertical header " : "Horizontal header " ));
-
-    if ( vertical )
-    {
-      face->vertical_info = 0;
-
-      /* The vertical header table is optional, so return quietly if */
-      /* we don't find it.                                           */
-      error = face->goto_table( face, TTAG_vhea, stream, 0 );
-      if ( error )
-      {
-        error = SFNT_Err_Ok;
-        goto Exit;
-      }
-
-      face->vertical_info = 1;
-      header = (TT_HoriHeader*)&face->vertical;
-    }
-    else
-    {
-      /* The horizontal header is mandatory; return an error if we */
-      /* don't find it.                                            */
-      error = face->goto_table( face, TTAG_hhea, stream, 0 );
-      if ( error )
-      {
-        error = SFNT_Err_Horiz_Header_Missing;
-        goto Exit;
-      }
-
-      header = &face->horizontal;
-    }
-
-    if ( FT_STREAM_READ_FIELDS( metrics_header_fields, header ) )
-      goto Exit;
-
-    header->long_metrics  = NULL;
-    header->short_metrics = NULL;
-
-    FT_TRACE2(( "loaded\n" ));
-
-    /* Now try to load the corresponding metrics */
-
-    error = tt_face_load_metrics( face, stream, vertical );
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_names                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the name records.                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_names( TT_Face    face,
-                      FT_Stream  stream )
-  {
-    FT_Error      error;
-    FT_Memory     memory = stream->memory;
-    FT_ULong      table_pos, table_len;
-    FT_ULong      storage_start, storage_limit;
-    FT_UInt       count;
-    TT_NameTable  table;
-
-    static const FT_Frame_Field  name_table_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_NameTableRec
-
-      FT_FRAME_START( 6 ),
-        FT_FRAME_USHORT( format ),
-        FT_FRAME_USHORT( numNameRecords ),
-        FT_FRAME_USHORT( storageOffset ),
-      FT_FRAME_END
-    };
-
-    static const FT_Frame_Field  name_record_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_NameEntryRec
-
-      /* no FT_FRAME_START */
-        FT_FRAME_USHORT( platformID ),
-        FT_FRAME_USHORT( encodingID ),
-        FT_FRAME_USHORT( languageID ),
-        FT_FRAME_USHORT( nameID ),
-        FT_FRAME_USHORT( stringLength ),
-        FT_FRAME_USHORT( stringOffset ),
-      FT_FRAME_END
-    };
-
-
-    table         = &face->name_table;
-    table->stream = stream;
-
-    FT_TRACE2(( "Names " ));
-
-    error = face->goto_table( face, TTAG_name, stream, &table_len );
-    if ( error )
-    {
-      /* The name table is required so indicate failure. */
-      FT_TRACE2(( "is missing!\n" ));
-      error = SFNT_Err_Name_Table_Missing;
-      goto Exit;
-    }
-
-    table_pos = FT_STREAM_POS();
-
-
-    if ( FT_STREAM_READ_FIELDS( name_table_fields, table ) )
-      goto Exit;
-
-    /* Some popular Asian fonts have an invalid `storageOffset' value   */
-    /* (it should be at least "6 + 12*num_names").  However, the string */
-    /* offsets, computed as "storageOffset + entry->stringOffset", are  */
-    /* valid pointers within the name table...                          */
-    /*                                                                  */
-    /* We thus can't check `storageOffset' right now.                   */
-    /*                                                                  */
-    storage_start = table_pos + 6 + 12*table->numNameRecords;
-    storage_limit = table_pos + table_len;
-
-    if ( storage_start > storage_limit )
-    {
-      FT_ERROR(( "tt_face_load_names: invalid `name' table\n" ));
-      error = SFNT_Err_Name_Table_Missing;
-      goto Exit;
-    }
-
-    /* Allocate the array of name records. */
-    count                 = table->numNameRecords;
-    table->numNameRecords = 0;
-
-    if ( FT_NEW_ARRAY( table->names, count ) ||
-         FT_FRAME_ENTER( count * 12 )        )
-      goto Exit;
-
-    /* Load the name records and determine how much storage is needed */
-    /* to hold the strings themselves.                                */
-    {
-      TT_NameEntryRec*  entry = table->names;
-
-
-      for ( ; count > 0; count-- )
-      {
-        if ( FT_STREAM_READ_FIELDS( name_record_fields, entry ) )
-          continue;
-
-        /* check that the name is not empty */
-        if ( entry->stringLength == 0 )
-          continue;
-
-        /* check that the name string is within the table */
-        entry->stringOffset += table_pos + table->storageOffset;
-        if ( entry->stringOffset                       < storage_start ||
-             entry->stringOffset + entry->stringLength > storage_limit )
-        {
-          /* invalid entry - ignore it */
-          entry->stringOffset = 0;
-          entry->stringLength = 0;
-          continue;
-        }
-
-        entry++;
-      }
-
-      table->numNameRecords = (FT_UInt)( entry - table->names );
-    }
-
-    FT_FRAME_EXIT();
-
-    FT_TRACE2(( "loaded\n" ));
-
-    /* everything went well, update face->num_names */
-    face->num_names = (FT_UShort) table->numNameRecords;
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_free_names                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Frees the name records.                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the target face object.                        */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_face_free_names( TT_Face  face )
-  {
-    FT_Memory     memory = face->root.driver->root.memory;
-    TT_NameTable  table  = &face->name_table;
-    TT_NameEntry  entry  = table->names;
-    FT_UInt       count  = table->numNameRecords;
-
-
-    if ( table->names )
-    {
-      for ( ; count > 0; count--, entry++ )
-      {
-        FT_FREE( entry->string );
-        entry->stringLength = 0;
-      }
-
-      /* free strings table */
-      FT_FREE( table->names );
-    }
-
-    table->numNameRecords = 0;
-    table->format         = 0;
-    table->storageOffset  = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_cmap                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the cmap directory in a face object.  The cmaps itselves are */
-  /*    loaded on demand in the `ttcmap.c' module.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_cmap( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    FT_Error  error;
-
-
-    error = face->goto_table( face, TTAG_cmap, stream, &face->cmap_size );
-    if ( error )
-    {
-      FT_TRACE2(( "No `cmap' table in font !\n" ));
-      error = SFNT_Err_CMap_Table_Missing;
-      goto Exit;
-    }
-
-    if ( !FT_FRAME_EXTRACT( face->cmap_size, face->cmap_table ) )
-      FT_TRACE2(( "`cmap' table loaded\n" ));
-    else
-    {
-      FT_ERROR(( "`cmap' table is too short!\n" ));
-      face->cmap_size = 0;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_os2                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the OS2 table.                                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_os2( TT_Face    face,
-                    FT_Stream  stream )
-  {
-    FT_Error  error;
-    TT_OS2*   os2;
-
-    const FT_Frame_Field  os2_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_OS2
-
-      FT_FRAME_START( 78 ),
-        FT_FRAME_USHORT( version ),
-        FT_FRAME_SHORT ( xAvgCharWidth ),
-        FT_FRAME_USHORT( usWeightClass ),
-        FT_FRAME_USHORT( usWidthClass ),
-        FT_FRAME_SHORT ( fsType ),
-        FT_FRAME_SHORT ( ySubscriptXSize ),
-        FT_FRAME_SHORT ( ySubscriptYSize ),
-        FT_FRAME_SHORT ( ySubscriptXOffset ),
-        FT_FRAME_SHORT ( ySubscriptYOffset ),
-        FT_FRAME_SHORT ( ySuperscriptXSize ),
-        FT_FRAME_SHORT ( ySuperscriptYSize ),
-        FT_FRAME_SHORT ( ySuperscriptXOffset ),
-        FT_FRAME_SHORT ( ySuperscriptYOffset ),
-        FT_FRAME_SHORT ( yStrikeoutSize ),
-        FT_FRAME_SHORT ( yStrikeoutPosition ),
-        FT_FRAME_SHORT ( sFamilyClass ),
-        FT_FRAME_BYTE  ( panose[0] ),
-        FT_FRAME_BYTE  ( panose[1] ),
-        FT_FRAME_BYTE  ( panose[2] ),
-        FT_FRAME_BYTE  ( panose[3] ),
-        FT_FRAME_BYTE  ( panose[4] ),
-        FT_FRAME_BYTE  ( panose[5] ),
-        FT_FRAME_BYTE  ( panose[6] ),
-        FT_FRAME_BYTE  ( panose[7] ),
-        FT_FRAME_BYTE  ( panose[8] ),
-        FT_FRAME_BYTE  ( panose[9] ),
-        FT_FRAME_ULONG ( ulUnicodeRange1 ),
-        FT_FRAME_ULONG ( ulUnicodeRange2 ),
-        FT_FRAME_ULONG ( ulUnicodeRange3 ),
-        FT_FRAME_ULONG ( ulUnicodeRange4 ),
-        FT_FRAME_BYTE  ( achVendID[0] ),
-        FT_FRAME_BYTE  ( achVendID[1] ),
-        FT_FRAME_BYTE  ( achVendID[2] ),
-        FT_FRAME_BYTE  ( achVendID[3] ),
-
-        FT_FRAME_USHORT( fsSelection ),
-        FT_FRAME_USHORT( usFirstCharIndex ),
-        FT_FRAME_USHORT( usLastCharIndex ),
-        FT_FRAME_SHORT ( sTypoAscender ),
-        FT_FRAME_SHORT ( sTypoDescender ),
-        FT_FRAME_SHORT ( sTypoLineGap ),
-        FT_FRAME_USHORT( usWinAscent ),
-        FT_FRAME_USHORT( usWinDescent ),
-      FT_FRAME_END
-    };
-
-    const FT_Frame_Field  os2_fields_extra[] =
-    {
-      FT_FRAME_START( 8 ),
-        FT_FRAME_ULONG( ulCodePageRange1 ),
-        FT_FRAME_ULONG( ulCodePageRange2 ),
-      FT_FRAME_END
-    };
-
-    const FT_Frame_Field  os2_fields_extra2[] =
-    {
-      FT_FRAME_START( 10 ),
-        FT_FRAME_SHORT ( sxHeight ),
-        FT_FRAME_SHORT ( sCapHeight ),
-        FT_FRAME_USHORT( usDefaultChar ),
-        FT_FRAME_USHORT( usBreakChar ),
-        FT_FRAME_USHORT( usMaxContext ),
-      FT_FRAME_END
-    };
-
-
-    FT_TRACE2(( "OS/2 Table " ));
-
-    /* We now support old Mac fonts where the OS/2 table doesn't  */
-    /* exist.  Simply put, we set the `version' field to 0xFFFF   */
-    /* and test this value each time we need to access the table. */
-    error = face->goto_table( face, TTAG_OS2, stream, 0 );
-    if ( error )
-    {
-      FT_TRACE2(( "is missing!\n" ));
-      face->os2.version = 0xFFFFU;
-      error = SFNT_Err_Ok;
-      goto Exit;
-    }
-
-    os2 = &face->os2;
-
-    if ( FT_STREAM_READ_FIELDS( os2_fields, os2 ) )
-      goto Exit;
-
-    os2->ulCodePageRange1 = 0;
-    os2->ulCodePageRange2 = 0;
-    os2->sxHeight         = 0;
-    os2->sCapHeight       = 0;
-    os2->usDefaultChar    = 0;
-    os2->usBreakChar      = 0;
-    os2->usMaxContext     = 0;
-
-    if ( os2->version >= 0x0001 )
-    {
-      /* only version 1 tables */
-      if ( FT_STREAM_READ_FIELDS( os2_fields_extra, os2 ) )
-        goto Exit;
-
-      if ( os2->version >= 0x0002 )
-      {
-        /* only version 2 tables */
-        if ( FT_STREAM_READ_FIELDS( os2_fields_extra2, os2 ) )
-          goto Exit;
-      }
-    }
-
-    FT_TRACE2(( "loaded\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_postscript                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the Postscript table.                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_postscript( TT_Face    face,
-                           FT_Stream  stream )
-  {
-    FT_Error        error;
-    TT_Postscript*  post = &face->postscript;
-
-    static const FT_Frame_Field  post_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_Postscript
-
-      FT_FRAME_START( 32 ),
-        FT_FRAME_ULONG( FormatType ),
-        FT_FRAME_ULONG( italicAngle ),
-        FT_FRAME_SHORT( underlinePosition ),
-        FT_FRAME_SHORT( underlineThickness ),
-        FT_FRAME_ULONG( isFixedPitch ),
-        FT_FRAME_ULONG( minMemType42 ),
-        FT_FRAME_ULONG( maxMemType42 ),
-        FT_FRAME_ULONG( minMemType1 ),
-        FT_FRAME_ULONG( maxMemType1 ),
-      FT_FRAME_END
-    };
-
-
-    FT_TRACE2(( "PostScript " ));
-
-    error = face->goto_table( face, TTAG_post, stream, 0 );
-    if ( error )
-      return SFNT_Err_Post_Table_Missing;
-
-    if ( FT_STREAM_READ_FIELDS( post_fields, post ) )
-      return error;
-
-    /* we don't load the glyph names, we do that in another */
-    /* module (ttpost).                                     */
-    FT_TRACE2(( "loaded\n" ));
-
-    return SFNT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_pclt                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the PCL 5 Table.                                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_pclt( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    static const FT_Frame_Field  pclt_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_PCLT
-
-      FT_FRAME_START( 54 ),
-        FT_FRAME_ULONG ( Version ),
-        FT_FRAME_ULONG ( FontNumber ),
-        FT_FRAME_USHORT( Pitch ),
-        FT_FRAME_USHORT( xHeight ),
-        FT_FRAME_USHORT( Style ),
-        FT_FRAME_USHORT( TypeFamily ),
-        FT_FRAME_USHORT( CapHeight ),
-        FT_FRAME_BYTES ( TypeFace, 16 ),
-        FT_FRAME_BYTES ( CharacterComplement, 8 ),
-        FT_FRAME_BYTES ( FileName, 6 ),
-        FT_FRAME_CHAR  ( StrokeWeight ),
-        FT_FRAME_CHAR  ( WidthType ),
-        FT_FRAME_BYTE  ( SerifStyle ),
-        FT_FRAME_BYTE  ( Reserved ),
-      FT_FRAME_END
-    };
-
-    FT_Error  error;
-    TT_PCLT*  pclt = &face->pclt;
-
-
-    FT_TRACE2(( "PCLT " ));
-
-    /* optional table */
-    error = face->goto_table( face, TTAG_PCLT, stream, 0 );
-    if ( error )
-    {
-      FT_TRACE2(( "missing (optional)\n" ));
-      pclt->Version = 0;
-      return SFNT_Err_Ok;
-    }
-
-    if ( FT_STREAM_READ_FIELDS( pclt_fields, pclt ) )
-      goto Exit;
-
-    FT_TRACE2(( "loaded\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_gasp                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the `gasp' table into a face object.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_gasp( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-
-    FT_UInt        j,num_ranges;
-    TT_GaspRange   gaspranges;
-
-
-    FT_TRACE2(( "tt_face_load_gasp: %08p\n", face ));
-
-    /* the gasp table is optional */
-    error = face->goto_table( face, TTAG_gasp, stream, 0 );
-    if ( error )
-      return SFNT_Err_Ok;
-
-    if ( FT_FRAME_ENTER( 4L ) )
-      goto Exit;
-
-    face->gasp.version   = FT_GET_USHORT();
-    face->gasp.numRanges = FT_GET_USHORT();
-
-    FT_FRAME_EXIT();
-
-    num_ranges = face->gasp.numRanges;
-    FT_TRACE3(( "number of ranges = %d\n", num_ranges ));
-
-    if ( FT_QNEW_ARRAY( gaspranges, num_ranges ) ||
-         FT_FRAME_ENTER( num_ranges * 4L )      )
-      goto Exit;
-
-    face->gasp.gaspRanges = gaspranges;
-
-    for ( j = 0; j < num_ranges; j++ )
-    {
-      gaspranges[j].maxPPEM  = FT_GET_USHORT();
-      gaspranges[j].gaspFlag = FT_GET_USHORT();
-
-      FT_TRACE3(( " [max:%d flag:%d]",
-                    gaspranges[j].maxPPEM,
-                    gaspranges[j].gaspFlag ));
-    }
-    FT_TRACE3(( "\n" ));
-
-    FT_FRAME_EXIT();
-    FT_TRACE2(( "GASP loaded\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( int )
-  tt_kern_pair_compare( const void*  a,
-                        const void*  b );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_kern                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the first kerning table with format 0 in the font.  Only     */
-  /*    accepts the first horizontal kerning table.  Developers should use */
-  /*    the `ftxkern' extension to access other kerning tables in the font */
-  /*    file, if they really want to.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  
-#undef  TT_KERN_INDEX
-#define TT_KERN_INDEX( g1, g2 )  ( ( (FT_ULong)g1 << 16 ) | g2 )
-
-
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_kern( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-
-    FT_UInt    n, num_tables;
-
-
-    /* the kern table is optional; exit silently if it is missing */
-    error = face->goto_table( face, TTAG_kern, stream, 0 );
-    if ( error )
-      return SFNT_Err_Ok;
-
-    if ( FT_FRAME_ENTER( 4L ) )
-      goto Exit;
-
-    (void)FT_GET_USHORT();         /* version */
-    num_tables = FT_GET_USHORT();
-
-    FT_FRAME_EXIT();
-
-    for ( n = 0; n < num_tables; n++ )
-    {
-      FT_UInt  coverage;
-      FT_UInt  length;
-
-
-      if ( FT_FRAME_ENTER( 6L ) )
-        goto Exit;
-
-      (void)FT_GET_USHORT();           /* version                 */
-      length   = FT_GET_USHORT() - 6;  /* substract header length */
-      coverage = FT_GET_USHORT();
-
-      FT_FRAME_EXIT();
-
-      if ( coverage == 0x0001 )
-      {
-        FT_UInt        num_pairs;
-        TT_Kern0_Pair  pair;
-        TT_Kern0_Pair  limit;
-
-
-        /* found a horizontal format 0 kerning table! */
-        if ( FT_FRAME_ENTER( 8L ) )
-          goto Exit;
-
-        num_pairs = FT_GET_USHORT();
-
-        /* skip the rest */
-
-        FT_FRAME_EXIT();
-
-        /* allocate array of kerning pairs */
-        if ( FT_QNEW_ARRAY( face->kern_pairs, num_pairs ) ||
-             FT_FRAME_ENTER( 6L * num_pairs )             )
-          goto Exit;
-
-        pair  = face->kern_pairs;
-        limit = pair + num_pairs;
-        for ( ; pair < limit; pair++ )
-        {
-          pair->left  = FT_GET_USHORT();
-          pair->right = FT_GET_USHORT();
-          pair->value = FT_GET_USHORT();
-        }
-
-        FT_FRAME_EXIT();
-
-        face->num_kern_pairs   = num_pairs;
-        face->kern_table_index = n;
-
-        /* ensure that the kerning pair table is sorted (yes, some */
-        /* fonts have unsorted tables!)                            */
-
-#if 1
-        if ( num_pairs > 0 )     
-        {
-          TT_Kern0_Pair  pair0 = face->kern_pairs;
-          FT_ULong       prev  = TT_KERN_INDEX( pair0->left, pair0->right );
-          
-
-          for ( pair0++; pair0 < limit; pair0++ )
-          {
-            FT_ULong  next = TT_KERN_INDEX( pair0->left, pair0->right );
-            
-
-            if ( next < prev )
-              goto SortIt;
-              
-            prev = next;
-          }
-          goto Exit;
-          
-        SortIt:
-          ft_qsort( (void*)face->kern_pairs, (int)num_pairs,
-                    sizeof ( TT_Kern0_PairRec ), tt_kern_pair_compare );
-        }
-#else        
-        {
-          TT_Kern0_Pair  pair0    = face->kern_pairs;
-          FT_UInt        i;
-          
-
-          for ( i = 1; i < num_pairs; i++, pair0++ )
-          {
-            if ( tt_kern_pair_compare( pair0, pair0 + 1 ) != -1 )
-            {
-              ft_qsort( (void*)face->kern_pairs, (int)num_pairs,
-                        sizeof ( TT_Kern0_PairRec ), tt_kern_pair_compare );
-              break;
-            }
-          }
-        }
-#endif
-
-        goto Exit;
-      }
-
-      if ( FT_STREAM_SKIP( length ) )
-        goto Exit;
-    }
-
-    /* no kern table found -- doesn't matter */
-    face->kern_table_index = -1;
-    face->num_kern_pairs   = 0;
-    face->kern_pairs       = NULL;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( int )
-  tt_kern_pair_compare( const void*  a,
-                        const void*  b )
-  {
-    TT_Kern0_Pair  pair1 = (TT_Kern0_Pair)a;
-    TT_Kern0_Pair  pair2 = (TT_Kern0_Pair)b;
-
-    FT_ULong  index1 = TT_KERN_INDEX( pair1->left, pair1->right );
-    FT_ULong  index2 = TT_KERN_INDEX( pair2->left, pair2->right );
-
-
-    return ( index1 < index2 ? -1 :
-           ( index1 > index2 ?  1 : 0 ));
-  }
-
-
-#undef TT_KERN_INDEX
-  
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_hdmx                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the horizontal device metrics table.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_hdmx( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-
-    TT_Hdmx    hdmx = &face->hdmx;
-    FT_Short   num_records;
-    FT_Long    num_glyphs;
-    FT_Long    record_size;
-
-
-    hdmx->version     = 0;
-    hdmx->num_records = 0;
-    hdmx->records     = 0;
-
-    /* this table is optional */
-    error = face->goto_table( face, TTAG_hdmx, stream, 0 );
-    if ( error )
-      return SFNT_Err_Ok;
-
-    if ( FT_FRAME_ENTER( 8L ) )
-      goto Exit;
-
-    hdmx->version     = FT_GET_USHORT();
-    num_records       = FT_GET_SHORT();
-    record_size       = FT_GET_LONG();
-
-    FT_FRAME_EXIT();
-
-    /* Only recognize format 0 */
-    if ( hdmx->version != 0 )
-      goto Exit;
-
-    if ( FT_QNEW_ARRAY( hdmx->records, num_records ) )
-      goto Exit;
-
-    hdmx->num_records = num_records;
-    num_glyphs   = face->root.num_glyphs;
-    record_size -= num_glyphs + 2;
-
-    {
-      TT_HdmxEntry  cur   = hdmx->records;
-      TT_HdmxEntry  limit = cur + hdmx->num_records;
-
-
-      for ( ; cur < limit; cur++ )
-      {
-        /* read record */
-        if ( FT_READ_BYTE( cur->ppem      ) ||
-             FT_READ_BYTE( cur->max_width ) )
-          goto Exit;
-
-        if ( FT_QALLOC( cur->widths, num_glyphs )       ||
-             FT_STREAM_READ( cur->widths, num_glyphs ) )
-          goto Exit;
-
-        /* skip padding bytes */
-        if ( record_size > 0 && FT_STREAM_SKIP( record_size ) )
-            goto Exit;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_free_hdmx                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Frees the horizontal device metrics table.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the target face object.                        */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_face_free_hdmx( TT_Face  face )
-  {
-    if ( face )
-    {
-      FT_Int     n;
-      FT_Memory  memory = face->root.driver->root.memory;
-
-
-      for ( n = 0; n < face->hdmx.num_records; n++ )
-        FT_FREE( face->hdmx.records[n].widths );
-
-      FT_FREE( face->hdmx.records );
-      face->hdmx.num_records = 0;
-    }
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttload.h b/nx-X11/extras/freetype2/src/sfnt/ttload.h
deleted file mode 100644
index 27c41b50b..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttload.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttload.h                                                               */
-/*                                                                         */
-/*    Load the basic TrueType tables, i.e., tables that can be either in   */
-/*    TTF or OTF fonts (specification).                                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTLOAD_H__
-#define __TTLOAD_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( TT_Table  )
-  tt_face_lookup_table( TT_Face   face,
-                        FT_ULong  tag );
-
-  FT_LOCAL( FT_Error )
-  tt_face_goto_table( TT_Face    face,
-                      FT_ULong   tag,
-                      FT_Stream  stream,
-                      FT_ULong*  length );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_sfnt_header( TT_Face      face,
-                            FT_Stream    stream,
-                            FT_Long      face_index,
-                            SFNT_Header  sfnt );
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_directory( TT_Face      face,
-                          FT_Stream    stream,
-                          SFNT_Header  sfnt );
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_any( TT_Face    face,
-                    FT_ULong   tag,
-                    FT_Long    offset,
-                    FT_Byte*   buffer,
-                    FT_ULong*  length );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_header( TT_Face    face,
-                       FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_metrics_header( TT_Face    face,
-                               FT_Stream  stream,
-                               FT_Bool    vertical );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_cmap( TT_Face    face,
-                     FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_max_profile( TT_Face    face,
-                            FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_names( TT_Face    face,
-                      FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_os2( TT_Face    face,
-                    FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_postscript( TT_Face    face,
-                           FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_hdmx( TT_Face    face,
-                     FT_Stream  stream );
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_pclt( TT_Face    face,
-                     FT_Stream  stream );
-
-  FT_LOCAL( void )
-  tt_face_free_names( TT_Face  face );
-
-
-  FT_LOCAL( void )
-  tt_face_free_hdmx ( TT_Face  face );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_kern( TT_Face    face,
-                     FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_gasp( TT_Face    face,
-                     FT_Stream  stream );
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_bitmap_header( TT_Face    face,
-                              FT_Stream  stream );
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-
-FT_END_HEADER
-
-#endif /* __TTLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttpost.c b/nx-X11/extras/freetype2/src/sfnt/ttpost.c
deleted file mode 100644
index 3d526db4c..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttpost.c
+++ /dev/null
@@ -1,521 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttpost.c                                                               */
-/*                                                                         */
-/*    Postcript name table processing for TrueType and OpenType fonts      */
-/*    (body).                                                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The post table is not completely loaded by the core engine.  This     */
-  /* file loads the missing PS glyph names and implements an API to access */
-  /* them.                                                                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
-#include "ttpost.h"
-#include "ttload.h"
-
-#include "sferrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttpost
-
-
-  /* If this configuration macro is defined, we rely on the `PSNames' */
-  /* module to grab the glyph names.                                  */
-
-#ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-
-#define MAC_NAME( x )  ( (FT_String*)psnames->macintosh_name( x ) )
-
-
-#else /* FT_CONFIG_OPTION_POSTSCRIPT_NAMES */
-
-
-   /* Otherwise, we ignore the `PSNames' module, and provide our own  */
-   /* table of Mac names.  Thus, it is possible to build a version of */
-   /* FreeType without the Type 1 driver & PSNames module.            */
-
-#define MAC_NAME( x )  tt_post_default_names[x]
-
-  /* the 258 default Mac PS glyph names */
-
-  static const FT_String*  tt_post_default_names[258] =
-  {
-    /*   0 */
-    ".notdef", ".null", "CR", "space", "exclam",
-    "quotedbl", "numbersign", "dollar", "percent", "ampersand",
-    /*  10 */
-    "quotesingle", "parenleft", "parenright", "asterisk", "plus",
-    "comma", "hyphen", "period", "slash", "zero",
-    /*  20 */
-    "one", "two", "three", "four", "five",
-    "six", "seven", "eight", "nine", "colon",
-    /*  30 */
-    "semicolon", "less", "equal", "greater", "question",
-    "at", "A", "B", "C", "D",
-    /*  40 */
-    "E", "F", "G", "H", "I",
-    "J", "K", "L", "M", "N",
-    /*  50 */
-    "O", "P", "Q", "R", "S",
-    "T", "U", "V", "W", "X",
-    /*  60 */
-    "Y", "Z", "bracketleft", "backslash", "bracketright",
-    "asciicircum", "underscore", "grave", "a", "b",
-    /*  70 */
-    "c", "d", "e", "f", "g",
-    "h", "i", "j", "k", "l",
-    /*  80 */
-    "m", "n", "o", "p", "q",
-    "r", "s", "t", "u", "v",
-    /*  90 */
-    "w", "x", "y", "z", "braceleft",
-    "bar", "braceright", "asciitilde", "Adieresis", "Aring",
-    /* 100 */
-    "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
-    "aacute", "agrave", "acircumflex", "adieresis", "atilde",
-    /* 110 */
-    "aring", "ccedilla", "eacute", "egrave", "ecircumflex",
-    "edieresis", "iacute", "igrave", "icircumflex", "idieresis",
-    /* 120 */
-    "ntilde", "oacute", "ograve", "ocircumflex", "odieresis",
-    "otilde", "uacute", "ugrave", "ucircumflex", "udieresis",
-    /* 130 */
-    "dagger", "degree", "cent", "sterling", "section",
-    "bullet", "paragraph", "germandbls", "registered", "copyright",
-    /* 140 */
-    "trademark", "acute", "dieresis", "notequal", "AE",
-    "Oslash", "infinity", "plusminus", "lessequal", "greaterequal",
-    /* 150 */
-    "yen", "mu", "partialdiff", "summation", "product",
-    "pi", "integral", "ordfeminine", "ordmasculine", "Omega",
-    /* 160 */
-    "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
-    "radical", "florin", "approxequal", "Delta", "guillemotleft",
-    /* 170 */
-    "guillemotright", "ellipsis", "nbspace", "Agrave", "Atilde",
-    "Otilde", "OE", "oe", "endash", "emdash",
-    /* 180 */
-    "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide",
-    "lozenge", "ydieresis", "Ydieresis", "fraction", "currency",
-    /* 190 */
-    "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
-    "periodcentered", "quotesinglbase", "quotedblbase", "perthousand", "Acircumflex",
-    /* 200 */
-    "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute",
-    "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex",
-    /* 210 */
-    "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave",
-    "dotlessi", "circumflex", "tilde", "macron", "breve",
-    /* 220 */
-    "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek",
-    "caron", "Lslash", "lslash", "Scaron", "scaron",
-    /* 230 */
-    "Zcaron", "zcaron", "brokenbar", "Eth", "eth",
-    "Yacute", "yacute", "Thorn", "thorn", "minus",
-    /* 240 */
-    "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
-    "onequarter", "threequarters", "franc", "Gbreve", "gbreve",
-    /* 250 */
-    "Idot", "Scedilla", "scedilla", "Cacute", "cacute",
-    "Ccaron", "ccaron", "dmacron",
-  };
-
-
-#endif /* FT_CONFIG_OPTION_POSTSCRIPT_NAMES */
-
-
-  static FT_Error
-  load_format_20( TT_Face    face,
-                  FT_Stream  stream )
-  {
-    FT_Memory   memory = stream->memory;
-    FT_Error    error;
-
-    FT_Int      num_glyphs;
-    FT_UShort   num_names;
-
-    FT_UShort*  glyph_indices = 0;
-    FT_Char**   name_strings  = 0;
-
-
-    if ( FT_READ_USHORT( num_glyphs ) )
-      goto Exit;
-
-    /* UNDOCUMENTED!  The number of glyphs in this table can be smaller */
-    /* than the value in the maxp table (cf. cyberbit.ttf).             */
-
-    /* There already exist fonts which have more than 32768 glyph names */
-    /* in this table, so the test for this threshold has been dropped.  */
-
-    if ( num_glyphs > face->root.num_glyphs )
-    {
-      error = SFNT_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    /* load the indices */
-    {
-      FT_Int  n;
-
-
-      if ( FT_NEW_ARRAY ( glyph_indices, num_glyphs ) ||
-           FT_FRAME_ENTER( num_glyphs * 2L )          )
-        goto Fail;
-
-      for ( n = 0; n < num_glyphs; n++ )
-        glyph_indices[n] = FT_GET_USHORT();
-
-      FT_FRAME_EXIT();
-    }
-
-    /* compute number of names stored in table */
-    {
-      FT_Int  n;
-
-
-      num_names = 0;
-
-      for ( n = 0; n < num_glyphs; n++ )
-      {
-        FT_Int  idx;
-
-
-        idx = glyph_indices[n];
-        if ( idx >= 258 )
-        {
-          idx -= 257;
-          if ( idx > num_names )
-            num_names = (FT_UShort)idx;
-        }
-      }
-    }
-
-    /* now load the name strings */
-    {
-      FT_UShort  n;
-
-
-      if ( FT_NEW_ARRAY( name_strings, num_names ) )
-        goto Fail;
-
-      for ( n = 0; n < num_names; n++ )
-      {
-        FT_UInt  len;
-
-
-        if ( FT_READ_BYTE  ( len )                    ||
-             FT_NEW_ARRAY( name_strings[n], len + 1 ) ||
-             FT_STREAM_READ  ( name_strings[n], len ) )
-          goto Fail1;
-
-        name_strings[n][len] = '\0';
-      }
-    }
-
-    /* all right, set table fields and exit successfuly */
-    {
-      TT_Post_20  table = &face->postscript_names.names.format_20;
-
-
-      table->num_glyphs    = (FT_UShort)num_glyphs;
-      table->num_names     = (FT_UShort)num_names;
-      table->glyph_indices = glyph_indices;
-      table->glyph_names   = name_strings;
-    }
-    return SFNT_Err_Ok;
-
-  Fail1:
-    {
-      FT_UShort  n;
-
-
-      for ( n = 0; n < num_names; n++ )
-        FT_FREE( name_strings[n] );
-    }
-
-  Fail:
-    FT_FREE( name_strings );
-    FT_FREE( glyph_indices );
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  load_format_25( TT_Face    face,
-                  FT_Stream  stream )
-  {
-    FT_Memory  memory = stream->memory;
-    FT_Error   error;
-
-    FT_Int     num_glyphs;
-    FT_Char*   offset_table = 0;
-
-
-    /* UNDOCUMENTED!  This value appears only in the Apple TT specs. */
-    if ( FT_READ_USHORT( num_glyphs ) )
-      goto Exit;
-
-    /* check the number of glyphs */
-    if ( num_glyphs > face->root.num_glyphs || num_glyphs > 258 )
-    {
-      error = SFNT_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    if ( FT_ALLOC( offset_table, num_glyphs )       ||
-         FT_STREAM_READ( offset_table, num_glyphs ) )
-      goto Fail;
-
-    /* now check the offset table */
-    {
-      FT_Int  n;
-
-
-      for ( n = 0; n < num_glyphs; n++ )
-      {
-        FT_Long  idx = (FT_Long)n + offset_table[n];
-
-
-        if ( idx < 0 || idx > num_glyphs )
-        {
-          error = SFNT_Err_Invalid_File_Format;
-          goto Fail;
-        }
-      }
-    }
-
-    /* OK, set table fields and exit successfuly */
-    {
-      TT_Post_25  table = &face->postscript_names.names.format_25;
-
-
-      table->num_glyphs = (FT_UShort)num_glyphs;
-      table->offsets    = offset_table;
-    }
-
-    return SFNT_Err_Ok;
-
-  Fail:
-    FT_FREE( offset_table );
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  load_post_names( TT_Face  face )
-  {
-    FT_Stream  stream;
-    FT_Error   error;
-    FT_Fixed   format;
-
-
-    /* get a stream for the face's resource */
-    stream = face->root.stream;
-
-    /* seek to the beginning of the PS names table */
-    error = face->goto_table( face, TTAG_post, stream, 0 );
-    if ( error )
-      goto Exit;
-
-    format = face->postscript.FormatType;
-
-    /* go to beginning of subtable */
-    if ( FT_STREAM_SKIP( 32 ) )
-      goto Exit;
-
-    /* now read postscript table */
-    if ( format == 0x00020000L )
-      error = load_format_20( face, stream );
-    else if ( format == 0x00028000L )
-      error = load_format_25( face, stream );
-    else
-      error = SFNT_Err_Invalid_File_Format;
-
-    face->postscript_names.loaded = 1;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  tt_face_free_ps_names( TT_Face  face )
-  {
-    FT_Memory      memory = face->root.memory;
-    TT_Post_Names  names  = &face->postscript_names;
-    FT_Fixed       format;
-
-
-    if ( names->loaded )
-    {
-      format = face->postscript.FormatType;
-
-      if ( format == 0x00020000L )
-      {
-        TT_Post_20  table = &names->names.format_20;
-        FT_UShort   n;
-
-
-        FT_FREE( table->glyph_indices );
-        table->num_glyphs = 0;
-
-        for ( n = 0; n < table->num_names; n++ )
-          FT_FREE( table->glyph_names[n] );
-
-        FT_FREE( table->glyph_names );
-        table->num_names = 0;
-      }
-      else if ( format == 0x00028000L )
-      {
-        TT_Post_25  table = &names->names.format_25;
-
-
-        FT_FREE( table->offsets );
-        table->num_glyphs = 0;
-      }
-    }
-    names->loaded = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_get_ps_name                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Gets the PostScript glyph name of a glyph.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: A handle to the parent face.                             */
-  /*                                                                       */
-  /*    idx    :: The glyph index.                                         */
-  /*                                                                       */
-  /*    PSname :: The address of a string pointer.  Will be NULL in case   */
-  /*              of error, otherwise it is a pointer to the glyph name.   */
-  /*                                                                       */
-  /*              You must not modify the returned string!                 */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_get_ps_name( TT_Face      face,
-                       FT_UInt      idx,
-                       FT_String**  PSname )
-  {
-    FT_Error         error;
-    TT_Post_Names    names;
-    FT_Fixed         format;
-
-#ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-    FT_Service_PsCMaps  psnames;
-#endif
-
-
-    if ( !face )
-      return SFNT_Err_Invalid_Face_Handle;
-
-    if ( idx >= (FT_UInt)face->root.num_glyphs )
-      return SFNT_Err_Invalid_Glyph_Index;
-
-#ifdef FT_CONFIG_OPTION_POSTSCRIPT_NAMES
-    psnames = (FT_Service_PsCMaps)face->psnames;
-    if ( !psnames )
-      return SFNT_Err_Unimplemented_Feature;
-#endif
-
-    names = &face->postscript_names;
-
-    /* `.notdef' by default */
-    *PSname = MAC_NAME( 0 );
-
-    format = face->postscript.FormatType;
-
-    if ( format == 0x00010000L )
-    {
-      if ( idx < 258 )                    /* paranoid checking */
-        *PSname = MAC_NAME( idx );
-    }
-    else if ( format == 0x00020000L )
-    {
-      TT_Post_20  table = &names->names.format_20;
-
-
-      if ( !names->loaded )
-      {
-        error = load_post_names( face );
-        if ( error )
-          goto End;
-      }
-
-      if ( idx < (FT_UInt)table->num_glyphs )
-      {
-        FT_UShort  name_index = table->glyph_indices[idx];
-
-
-        if ( name_index < 258 )
-          *PSname = MAC_NAME( name_index );
-        else
-          *PSname = (FT_String*)table->glyph_names[name_index - 258];
-      }
-    }
-    else if ( format == 0x00028000L )
-    {
-      TT_Post_25  table = &names->names.format_25;
-
-
-      if ( !names->loaded )
-      {
-        error = load_post_names( face );
-        if ( error )
-          goto End;
-      }
-
-      if ( idx < (FT_UInt)table->num_glyphs )    /* paranoid checking */
-      {
-        idx    += table->offsets[idx];
-        *PSname = MAC_NAME( idx );
-      }
-    }
-
-    /* nothing to do for format == 0x00030000L */
-
-  End:
-    return SFNT_Err_Ok;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttpost.h b/nx-X11/extras/freetype2/src/sfnt/ttpost.h
deleted file mode 100644
index 6f06d75a7..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttpost.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttpost.h                                                               */
-/*                                                                         */
-/*    Postcript name table processing for TrueType and OpenType fonts      */
-/*    (specification).                                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTPOST_H__
-#define __TTPOST_H__
-
-
-#include <ft2build.h>
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_get_ps_name( TT_Face      face,
-                       FT_UInt      idx,
-                       FT_String**  PSname );
-
-  FT_LOCAL( void )
-  tt_face_free_ps_names( TT_Face  face );
-
-
-FT_END_HEADER
-
-#endif /* __TTPOST_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttsbit.c b/nx-X11/extras/freetype2/src/sfnt/ttsbit.c
deleted file mode 100644
index 444c27acc..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttsbit.c
+++ /dev/null
@@ -1,1467 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttsbit.c                                                               */
-/*                                                                         */
-/*    TrueType and OpenType embedded bitmap support (body).                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
-#include "ttsbit.h"
-
-#include "sferrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttsbit
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    blit_sbit                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Blits a bitmap from an input stream into a given target.  Supports */
-  /*    x and y offsets as well as byte padded lines.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    target      :: The target bitmap/pixmap.                           */
-  /*                                                                       */
-  /*    source      :: The input packed bitmap data.                       */
-  /*                                                                       */
-  /*    line_bits   :: The number of bits per line.                        */
-  /*                                                                       */
-  /*    byte_padded :: A flag which is true if lines are byte-padded.      */
-  /*                                                                       */
-  /*    x_offset    :: The horizontal offset.                              */
-  /*                                                                       */
-  /*    y_offset    :: The vertical offset.                                */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    IMPORTANT: The x and y offsets are relative to the top corner of   */
-  /*               the target bitmap (unlike the normal TrueType           */
-  /*               convention).  A positive y offset indicates a downwards */
-  /*               direction!                                              */
-  /*                                                                       */
-  static void
-  blit_sbit( FT_Bitmap*  target,
-             FT_Byte*    source,
-             FT_Int      line_bits,
-             FT_Bool     byte_padded,
-             FT_Int      x_offset,
-             FT_Int      y_offset )
-  {
-    FT_Byte*   line_buff;
-    FT_Int     line_incr;
-    FT_Int     height;
-
-    FT_UShort  acc;
-    FT_UInt    loaded;
-
-
-    /* first of all, compute starting write position */
-    line_incr = target->pitch;
-    line_buff = target->buffer;
-
-    if ( line_incr < 0 )
-      line_buff -= line_incr * ( target->rows - 1 );
-
-    line_buff += ( x_offset >> 3 ) + y_offset * line_incr;
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* We use the extra-classic `accumulator' trick to extract the bits    */
-    /* from the source byte stream.                                        */
-    /*                                                                     */
-    /* Namely, the variable `acc' is a 16-bit accumulator containing the   */
-    /* last `loaded' bits from the input stream.  The bits are shifted to  */
-    /* the upmost position in `acc'.                                       */
-    /*                                                                     */
-    /***********************************************************************/
-
-    acc    = 0;  /* clear accumulator   */
-    loaded = 0;  /* no bits were loaded */
-
-    for ( height = target->rows; height > 0; height-- )
-    {
-      FT_Byte*  cur   = line_buff;        /* current write cursor          */
-      FT_Int    count = line_bits;        /* # of bits to extract per line */
-      FT_Byte   shift = (FT_Byte)( x_offset & 7 ); /* current write shift  */
-      FT_Byte   space = (FT_Byte)( 8 - shift );
-
-
-      /* first of all, read individual source bytes */
-      if ( count >= 8 )
-      {
-        count -= 8;
-        {
-          do
-          {
-            FT_Byte  val;
-
-
-            /* ensure that there are at least 8 bits in the accumulator */
-            if ( loaded < 8 )
-            {
-              acc    |= (FT_UShort)((FT_UShort)*source++ << ( 8 - loaded ));
-              loaded += 8;
-            }
-
-            /* now write one byte */
-            val = (FT_Byte)( acc >> 8 );
-            if ( shift )
-            {
-              cur[0] |= (FT_Byte)( val >> shift );
-              cur[1] |= (FT_Byte)( val << space );
-            }
-            else
-              cur[0] |= val;
-
-            cur++;
-            acc   <<= 8;  /* remove bits from accumulator */
-            loaded -= 8;
-            count  -= 8;
-
-          } while ( count >= 0 );
-        }
-
-        /* restore `count' to correct value */
-        count += 8;
-      }
-
-      /* now write remaining bits (count < 8) */
-      if ( count > 0 )
-      {
-        FT_Byte  val;
-
-
-        /* ensure that there are at least `count' bits in the accumulator */
-        if ( (FT_Int)loaded < count )
-        {
-          acc    |= (FT_UShort)((FT_UShort)*source++ << ( 8 - loaded ));
-          loaded += 8;
-        }
-
-        /* now write remaining bits */
-        val     = (FT_Byte)( ( (FT_Byte)( acc >> 8 ) ) & ~( 0xFF >> count ) );
-        cur[0] |= (FT_Byte)( val >> shift );
-
-        if ( count > space )
-          cur[1] |= (FT_Byte)( val << space );
-
-        acc   <<= count;
-        loaded -= count;
-      }
-
-      /* now, skip to next line */
-      if ( byte_padded )
-      {
-        acc    = 0;
-        loaded = 0;   /* clear accumulator on byte-padded lines */
-      }
-
-      line_buff += line_incr;
-    }
-  }
-
-
-  const FT_Frame_Field  sbit_metrics_fields[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_SBit_MetricsRec
-
-    FT_FRAME_START( 8 ),
-      FT_FRAME_BYTE( height ),
-      FT_FRAME_BYTE( width ),
-
-      FT_FRAME_CHAR( horiBearingX ),
-      FT_FRAME_CHAR( horiBearingY ),
-      FT_FRAME_BYTE( horiAdvance ),
-
-      FT_FRAME_CHAR( vertBearingX ),
-      FT_FRAME_CHAR( vertBearingY ),
-      FT_FRAME_BYTE( vertAdvance ),
-    FT_FRAME_END
-  };
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Load_SBit_Const_Metrics                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the metrics for `EBLC' index tables format 2 and 5.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    range  :: The target range.                                        */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Load_SBit_Const_Metrics( TT_SBit_Range  range,
-                           FT_Stream      stream )
-  {
-    FT_Error  error;
-
-
-    if ( FT_READ_ULONG( range->image_size ) )
-      return error;
-
-    return FT_STREAM_READ_FIELDS( sbit_metrics_fields, &range->metrics );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Load_SBit_Range_Codes                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the range codes for `EBLC' index tables format 4 and 5.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    range        :: The target range.                                  */
-  /*                                                                       */
-  /*    stream       :: The input stream.                                  */
-  /*                                                                       */
-  /*    load_offsets :: A flag whether to load the glyph offset table.     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Load_SBit_Range_Codes( TT_SBit_Range  range,
-                         FT_Stream      stream,
-                         FT_Bool        load_offsets )
-  {
-    FT_Error   error;
-    FT_ULong   count, n, size;
-    FT_Memory  memory = stream->memory;
-
-
-    if ( FT_READ_ULONG( count ) )
-      goto Exit;
-
-    range->num_glyphs = count;
-
-    /* Allocate glyph offsets table if needed */
-    if ( load_offsets )
-    {
-      if ( FT_NEW_ARRAY( range->glyph_offsets, count ) )
-        goto Exit;
-
-      size = count * 4L;
-    }
-    else
-      size = count * 2L;
-
-    /* Allocate glyph codes table and access frame */
-    if ( FT_NEW_ARRAY ( range->glyph_codes, count ) ||
-         FT_FRAME_ENTER( size )                     )
-      goto Exit;
-
-    for ( n = 0; n < count; n++ )
-    {
-      range->glyph_codes[n] = FT_GET_USHORT();
-
-      if ( load_offsets )
-        range->glyph_offsets[n] = (FT_ULong)range->image_offset +
-                                  FT_GET_USHORT();
-    }
-
-    FT_FRAME_EXIT();
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Load_SBit_Range                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads a given `EBLC' index/range table.                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    range  :: The target range.                                        */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Load_SBit_Range( TT_SBit_Range  range,
-                   FT_Stream      stream )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-
-
-    switch( range->index_format )
-    {
-    case 1:   /* variable metrics with 4-byte offsets */
-    case 3:   /* variable metrics with 2-byte offsets */
-      {
-        FT_ULong  num_glyphs, n;
-        FT_Int    size_elem;
-        FT_Bool   large = FT_BOOL( range->index_format == 1 );
-
-
-        num_glyphs        = range->last_glyph - range->first_glyph + 1L;
-        range->num_glyphs = num_glyphs;
-        num_glyphs++;                       /* XXX: BEWARE - see spec */
-
-        size_elem = large ? 4 : 2;
-
-        if ( FT_NEW_ARRAY( range->glyph_offsets, num_glyphs ) ||
-             FT_FRAME_ENTER( num_glyphs * size_elem )         )
-          goto Exit;
-
-        for ( n = 0; n < num_glyphs; n++ )
-          range->glyph_offsets[n] = (FT_ULong)( range->image_offset +
-                                                ( large ? FT_GET_ULONG()
-                                                        : FT_GET_USHORT() ) );
-        FT_FRAME_EXIT();
-      }
-      break;
-
-    case 2:   /* all glyphs have identical metrics */
-      error = Load_SBit_Const_Metrics( range, stream );
-      break;
-
-    case 4:
-      error = Load_SBit_Range_Codes( range, stream, 1 );
-      break;
-
-    case 5:
-      error = Load_SBit_Const_Metrics( range, stream )   ||
-              Load_SBit_Range_Codes( range, stream, 0 );
-      break;
-
-    default:
-      error = SFNT_Err_Invalid_File_Format;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_sbit_strikes                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the table of embedded bitmap sizes for this face.            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face   :: The target face object.                                  */
-  /*                                                                       */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_sbit_strikes( TT_Face    face,
-                             FT_Stream  stream )
-  {
-    FT_Error   error  = 0;
-    FT_Memory  memory = stream->memory;
-    FT_Fixed   version;
-    FT_ULong   num_strikes;
-    FT_ULong   table_base;
-
-    const FT_Frame_Field  sbit_line_metrics_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_SBit_LineMetricsRec
-
-      /* no FT_FRAME_START */
-        FT_FRAME_CHAR( ascender ),
-        FT_FRAME_CHAR( descender ),
-        FT_FRAME_BYTE( max_width ),
-
-        FT_FRAME_CHAR( caret_slope_numerator ),
-        FT_FRAME_CHAR( caret_slope_denominator ),
-        FT_FRAME_CHAR( caret_offset ),
-
-        FT_FRAME_CHAR( min_origin_SB ),
-        FT_FRAME_CHAR( min_advance_SB ),
-        FT_FRAME_CHAR( max_before_BL ),
-        FT_FRAME_CHAR( min_after_BL ),
-        FT_FRAME_CHAR( pads[0] ),
-        FT_FRAME_CHAR( pads[1] ),
-      FT_FRAME_END
-    };
-
-    const FT_Frame_Field  strike_start_fields[] =
-    {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_SBit_StrikeRec
-
-      /* no FT_FRAME_START */
-        FT_FRAME_ULONG( ranges_offset ),
-        FT_FRAME_SKIP_LONG,
-        FT_FRAME_ULONG( num_ranges ),
-        FT_FRAME_ULONG( color_ref ),
-      FT_FRAME_END
-    };
-
-    const FT_Frame_Field  strike_end_fields[] =
-    {
-      /* no FT_FRAME_START */
-        FT_FRAME_USHORT( start_glyph ),
-        FT_FRAME_USHORT( end_glyph ),
-        FT_FRAME_BYTE  ( x_ppem ),
-        FT_FRAME_BYTE  ( y_ppem ),
-        FT_FRAME_BYTE  ( bit_depth ),
-        FT_FRAME_CHAR  ( flags ),
-      FT_FRAME_END
-    };
-
-
-    face->num_sbit_strikes = 0;
-
-    /* this table is optional */
-    error = face->goto_table( face, TTAG_EBLC, stream, 0 );
-    if ( error )
-      error = face->goto_table( face, TTAG_bloc, stream, 0 );
-    if ( error )
-      goto Exit;
-
-    table_base = FT_STREAM_POS();
-    if ( FT_FRAME_ENTER( 8L ) )
-      goto Exit;
-
-    version     = FT_GET_LONG();
-    num_strikes = FT_GET_ULONG();
-
-    FT_FRAME_EXIT();
-
-    /* check version number and strike count */
-    if ( version     != 0x00020000L ||
-         num_strikes >= 0x10000L    )
-    {
-      FT_ERROR(( "tt_face_load_sbit_strikes: invalid table version!\n" ));
-      error = SFNT_Err_Invalid_File_Format;
-
-      goto Exit;
-    }
-
-    /* allocate the strikes table */
-    if ( FT_NEW_ARRAY( face->sbit_strikes, num_strikes ) )
-      goto Exit;
-
-    face->num_sbit_strikes = num_strikes;
-
-    /* now read each strike table separately */
-    {
-      TT_SBit_Strike  strike = face->sbit_strikes;
-      FT_ULong        count  = num_strikes;
-
-
-      if ( FT_FRAME_ENTER( 48L * num_strikes ) )
-        goto Exit;
-
-      while ( count > 0 )
-      {
-        if ( FT_STREAM_READ_FIELDS( strike_start_fields, strike )             ||
-             FT_STREAM_READ_FIELDS( sbit_line_metrics_fields, &strike->hori ) ||
-             FT_STREAM_READ_FIELDS( sbit_line_metrics_fields, &strike->vert ) ||
-             FT_STREAM_READ_FIELDS( strike_end_fields, strike )               )
-          break;
-
-        count--;
-        strike++;
-      }
-
-      FT_FRAME_EXIT();
-    }
-
-    /* allocate the index ranges for each strike table */
-    {
-      TT_SBit_Strike  strike = face->sbit_strikes;
-      FT_ULong        count  = num_strikes;
-
-
-      while ( count > 0 )
-      {
-        TT_SBit_Range  range;
-        FT_ULong       count2 = strike->num_ranges;
-
-
-        if ( FT_NEW_ARRAY( strike->sbit_ranges, strike->num_ranges ) )
-          goto Exit;
-
-        /* read each range */
-        if ( FT_STREAM_SEEK( table_base + strike->ranges_offset ) ||
-             FT_FRAME_ENTER( strike->num_ranges * 8L )            )
-          goto Exit;
-
-        range = strike->sbit_ranges;
-        while ( count2 > 0 )
-        {
-          range->first_glyph  = FT_GET_USHORT();
-          range->last_glyph   = FT_GET_USHORT();
-          range->table_offset = table_base + strike->ranges_offset +
-                                  FT_GET_ULONG();
-          count2--;
-          range++;
-        }
-
-        FT_FRAME_EXIT();
-
-        /* Now, read each index table */
-        count2 = strike->num_ranges;
-        range  = strike->sbit_ranges;
-        while ( count2 > 0 )
-        {
-          /* Read the header */
-          if ( FT_STREAM_SEEK( range->table_offset ) ||
-               FT_FRAME_ENTER( 8L )                  )
-            goto Exit;
-
-          range->index_format = FT_GET_USHORT();
-          range->image_format = FT_GET_USHORT();
-          range->image_offset = FT_GET_ULONG();
-
-          FT_FRAME_EXIT();
-
-          error = Load_SBit_Range( range, stream );
-          if ( error )
-            goto Exit;
-
-          count2--;
-          range++;
-        }
-
-        count--;
-        strike++;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_free_sbit_strikes                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Releases the embedded bitmap tables.                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: The target face object.                                    */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_face_free_sbit_strikes( TT_Face  face )
-  {
-    FT_Memory       memory       = face->root.memory;
-    TT_SBit_Strike  strike       = face->sbit_strikes;
-    TT_SBit_Strike  strike_limit = strike + face->num_sbit_strikes;
-
-
-    if ( strike )
-    {
-      for ( ; strike < strike_limit; strike++ )
-      {
-        TT_SBit_Range  range       = strike->sbit_ranges;
-        TT_SBit_Range  range_limit = range + strike->num_ranges;
-
-
-        if ( range )
-        {
-          for ( ; range < range_limit; range++ )
-          {
-            /* release the glyph offsets and codes tables */
-            /* where appropriate                          */
-            FT_FREE( range->glyph_offsets );
-            FT_FREE( range->glyph_codes );
-          }
-        }
-        FT_FREE( strike->sbit_ranges );
-        strike->num_ranges = 0;
-      }
-      FT_FREE( face->sbit_strikes );
-    }
-    face->num_sbit_strikes = 0;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_set_sbit_strike( TT_Face    face,
-                           FT_UInt    x_ppem,
-                           FT_UInt    y_ppem,
-                           FT_ULong  *astrike_index )
-  {
-    FT_ULong  i;
-
-
-    if ( x_ppem > 255 ||
-         y_ppem < 1 || y_ppem > 255 )
-      return SFNT_Err_Invalid_PPem;
-
-    for ( i = 0; i < face->num_sbit_strikes; i++ )
-    {
-      if ( ( (FT_UInt)face->sbit_strikes[i].y_ppem == y_ppem )     &&
-           ( ( x_ppem == 0 )                                     ||
-             ( (FT_UInt)face->sbit_strikes[i].x_ppem == x_ppem ) ) )
-      {
-        *astrike_index = i;
-        return SFNT_Err_Ok;
-      }
-    }
-
-    return SFNT_Err_Invalid_PPem;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    find_sbit_range                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Scans a given strike's ranges and return, for a given glyph        */
-  /*    index, the corresponding sbit range, and `EBDT' offset.            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    glyph_index   :: The glyph index.                                  */
-  /*                                                                       */
-  /*    strike        :: The source/current sbit strike.                   */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    arange        :: The sbit range containing the glyph index.        */
-  /*                                                                       */
-  /*    aglyph_offset :: The offset of the glyph data in `EBDT' table.     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means the glyph index was found.           */
-  /*                                                                       */
-  static FT_Error
-  find_sbit_range( FT_UInt          glyph_index,
-                   TT_SBit_Strike   strike,
-                   TT_SBit_Range   *arange,
-                   FT_ULong        *aglyph_offset )
-  {
-    TT_SBit_RangeRec  *range, *range_limit;
-
-
-    /* check whether the glyph index is within this strike's */
-    /* glyph range                                           */
-    if ( glyph_index < (FT_UInt)strike->start_glyph ||
-         glyph_index > (FT_UInt)strike->end_glyph   )
-      goto Fail;
-
-    /* scan all ranges in strike */
-    range       = strike->sbit_ranges;
-    range_limit = range + strike->num_ranges;
-    if ( !range )
-      goto Fail;
-
-    for ( ; range < range_limit; range++ )
-    {
-      if ( glyph_index >= (FT_UInt)range->first_glyph &&
-           glyph_index <= (FT_UInt)range->last_glyph  )
-      {
-        FT_UShort  delta = (FT_UShort)( glyph_index - range->first_glyph );
-
-
-        switch ( range->index_format )
-        {
-        case 1:
-        case 3:
-          *aglyph_offset = range->glyph_offsets[delta];
-          break;
-
-        case 2:
-          *aglyph_offset = range->image_offset +
-                           range->image_size * delta;
-          break;
-
-        case 4:
-        case 5:
-          {
-            FT_ULong  n;
-
-
-            for ( n = 0; n < range->num_glyphs; n++ )
-            {
-              if ( (FT_UInt)range->glyph_codes[n] == glyph_index )
-              {
-                if ( range->index_format == 4 )
-                  *aglyph_offset = range->glyph_offsets[n];
-                else
-                  *aglyph_offset = range->image_offset +
-                                   n * range->image_size;
-                goto Found;
-              }
-            }
-          }
-
-        /* fall-through */
-        default:
-          goto Fail;
-        }
-
-      Found:
-        /* return successfully! */
-        *arange  = range;
-        return 0;
-      }
-    }
-
-  Fail:
-    *arange        = 0;
-    *aglyph_offset = 0;
-
-    return SFNT_Err_Invalid_Argument;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_find_sbit_image                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Checks whether an embedded bitmap (an `sbit') exists for a given   */
-  /*    glyph, at a given strike.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face          :: The target face object.                           */
-  /*                                                                       */
-  /*    glyph_index   :: The glyph index.                                  */
-  /*                                                                       */
-  /*    strike_index  :: The current strike index.                         */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    arange        :: The SBit range containing the glyph index.        */
-  /*                                                                       */
-  /*    astrike       :: The SBit strike containing the glyph index.       */
-  /*                                                                       */
-  /*    aglyph_offset :: The offset of the glyph data in `EBDT' table.     */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.  Returns                    */
-  /*    SFNT_Err_Invalid_Argument if no sbit exists for the requested      */
-  /*    glyph.                                                             */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  tt_find_sbit_image( TT_Face          face,
-                      FT_UInt          glyph_index,
-                      FT_ULong         strike_index,
-                      TT_SBit_Range   *arange,
-                      TT_SBit_Strike  *astrike,
-                      FT_ULong        *aglyph_offset )
-  {
-    FT_Error        error;
-    TT_SBit_Strike  strike;
-
-
-    if ( !face->sbit_strikes                        ||
-         ( face->num_sbit_strikes <= strike_index ) )
-      goto Fail;
-
-    strike = &face->sbit_strikes[strike_index];
-
-    error = find_sbit_range( glyph_index, strike,
-                             arange, aglyph_offset );
-    if ( error )
-      goto Fail;
-
-    *astrike = strike;
-
-    return SFNT_Err_Ok;
-
-  Fail:
-    /* no embedded bitmap for this glyph in face */
-    *arange        = 0;
-    *astrike       = 0;
-    *aglyph_offset = 0;
-
-    return SFNT_Err_Invalid_Argument;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_load_sbit_metrics                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Gets the big metrics for a given SBit.                             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream      :: The input stream.                                   */
-  /*                                                                       */
-  /*    range       :: The SBit range containing the glyph.                */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    big_metrics :: A big SBit metrics structure for the glyph.         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The stream cursor must be positioned at the glyph's offset within  */
-  /*    the `EBDT' table before the call.                                  */
-  /*                                                                       */
-  /*    If the image format uses variable metrics, the stream cursor is    */
-  /*    positioned just after the metrics header in the `EBDT' table on    */
-  /*    function exit.                                                     */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  tt_load_sbit_metrics( FT_Stream        stream,
-                        TT_SBit_Range    range,
-                        TT_SBit_Metrics  metrics )
-  {
-    FT_Error  error = SFNT_Err_Ok;
-
-
-    switch ( range->image_format )
-    {
-    case 1:
-    case 2:
-    case 8:
-      /* variable small metrics */
-      {
-        TT_SBit_SmallMetricsRec  smetrics;
-
-        const FT_Frame_Field  sbit_small_metrics_fields[] =
-        {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  TT_SBit_SmallMetricsRec
-
-          FT_FRAME_START( 5 ),
-            FT_FRAME_BYTE( height ),
-            FT_FRAME_BYTE( width ),
-            FT_FRAME_CHAR( bearingX ),
-            FT_FRAME_CHAR( bearingY ),
-            FT_FRAME_BYTE( advance ),
-          FT_FRAME_END
-        };
-
-
-        /* read small metrics */
-        if ( FT_STREAM_READ_FIELDS( sbit_small_metrics_fields, &smetrics ) )
-          goto Exit;
-
-        /* convert it to a big metrics */
-        metrics->height       = smetrics.height;
-        metrics->width        = smetrics.width;
-        metrics->horiBearingX = smetrics.bearingX;
-        metrics->horiBearingY = smetrics.bearingY;
-        metrics->horiAdvance  = smetrics.advance;
-
-        /* these metrics are made up at a higher level when */
-        /* needed.                                          */
-        metrics->vertBearingX = 0;
-        metrics->vertBearingY = 0;
-        metrics->vertAdvance  = 0;
-      }
-      break;
-
-    case 6:
-    case 7:
-    case 9:
-      /* variable big metrics */
-      if ( FT_STREAM_READ_FIELDS( sbit_metrics_fields, metrics ) )
-        goto Exit;
-      break;
-
-    case 5:
-    default:  /* constant metrics */
-      if ( range->index_format == 2 || range->index_format == 5 )
-        *metrics = range->metrics;
-      else
-        return SFNT_Err_Invalid_File_Format;
-   }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    crop_bitmap                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Crops a bitmap to its tightest bounding box, and adjusts its       */
-  /*    metrics.                                                           */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    map     :: The bitmap.                                             */
-  /*                                                                       */
-  /*    metrics :: The corresponding metrics structure.                    */
-  /*                                                                       */
-  static void
-  crop_bitmap( FT_Bitmap*       map,
-               TT_SBit_Metrics  metrics )
-  {
-    /***********************************************************************/
-    /*                                                                     */
-    /* In this situation, some bounding boxes of embedded bitmaps are too  */
-    /* large.  We need to crop it to a reasonable size.                    */
-    /*                                                                     */
-    /*      ---------                                                      */
-    /*      |       |                -----                                 */
-    /*      |  ***  |                |***|                                 */
-    /*      |   *   |                | * |                                 */
-    /*      |   *   |    ------>     | * |                                 */
-    /*      |   *   |                | * |                                 */
-    /*      |   *   |                | * |                                 */
-    /*      |  ***  |                |***|                                 */
-    /*      ---------                -----                                 */
-    /*                                                                     */
-    /***********************************************************************/
-
-    FT_Int    rows, count;
-    FT_Long   line_len;
-    FT_Byte*  line;
-
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* first of all, check the top-most lines of the bitmap, and remove    */
-    /* them if they're empty.                                              */
-    /*                                                                     */
-    {
-      line     = (FT_Byte*)map->buffer;
-      rows     = map->rows;
-      line_len = map->pitch;
-
-
-      for ( count = 0; count < rows; count++ )
-      {
-        FT_Byte*  cur   = line;
-        FT_Byte*  limit = line + line_len;
-
-
-        for ( ; cur < limit; cur++ )
-          if ( cur[0] )
-            goto Found_Top;
-
-        /* the current line was empty - skip to next one */
-        line  = limit;
-      }
-
-    Found_Top:
-      /* check that we have at least one filled line */
-      if ( count >= rows )
-        goto Empty_Bitmap;
-
-      /* now, crop the empty upper lines */
-      if ( count > 0 )
-      {
-        line = (FT_Byte*)map->buffer;
-
-        FT_MEM_MOVE( line, line + count * line_len,
-                     ( rows - count ) * line_len );
-
-        metrics->height       = (FT_Byte)( metrics->height - count );
-        metrics->horiBearingY = (FT_Char)( metrics->horiBearingY - count );
-        metrics->vertBearingY = (FT_Char)( metrics->vertBearingY - count );
-
-        map->rows -= count;
-        rows      -= count;
-      }
-    }
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* second, crop the lower lines                                        */
-    /*                                                                     */
-    {
-      line = (FT_Byte*)map->buffer + ( rows - 1 ) * line_len;
-
-      for ( count = 0; count < rows; count++ )
-      {
-        FT_Byte*  cur   = line;
-        FT_Byte*  limit = line + line_len;
-
-
-        for ( ; cur < limit; cur++ )
-          if ( cur[0] )
-            goto Found_Bottom;
-
-        /* the current line was empty - skip to previous one */
-        line -= line_len;
-      }
-
-    Found_Bottom:
-      if ( count > 0 )
-      {
-        metrics->height  = (FT_Byte)( metrics->height - count );
-        rows            -= count;
-        map->rows       -= count;
-      }
-    }
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* third, get rid of the space on the left side of the glyph           */
-    /*                                                                     */
-    do
-    {
-      FT_Byte*  limit;
-
-
-      line  = (FT_Byte*)map->buffer;
-      limit = line + rows * line_len;
-
-      for ( ; line < limit; line += line_len )
-        if ( line[0] & 0x80 )
-          goto Found_Left;
-
-      /* shift the whole glyph one pixel to the left */
-      line  = (FT_Byte*)map->buffer;
-      limit = line + rows * line_len;
-
-      for ( ; line < limit; line += line_len )
-      {
-        FT_Int    n, width = map->width;
-        FT_Byte   old;
-        FT_Byte*  cur = line;
-
-
-        old = (FT_Byte)(cur[0] << 1);
-        for ( n = 8; n < width; n += 8 )
-        {
-          FT_Byte  val;
-
-
-          val    = cur[1];
-          cur[0] = (FT_Byte)( old | ( val >> 7 ) );
-          old    = (FT_Byte)( val << 1 );
-          cur++;
-        }
-        cur[0] = old;
-      }
-
-      map->width--;
-      metrics->horiBearingX++;
-      metrics->vertBearingX++;
-      metrics->width--;
-
-    } while ( map->width > 0 );
-
-  Found_Left:
-
-    /***********************************************************************/
-    /*                                                                     */
-    /* finally, crop the bitmap width to get rid of the space on the right */
-    /* side of the glyph.                                                  */
-    /*                                                                     */
-    do
-    {
-      FT_Int    right = map->width - 1;
-      FT_Byte*  limit;
-      FT_Byte   mask;
-
-
-      line  = (FT_Byte*)map->buffer + ( right >> 3 );
-      limit = line + rows * line_len;
-      mask  = (FT_Byte)( 0x80 >> ( right & 7 ) );
-
-      for ( ; line < limit; line += line_len )
-        if ( line[0] & mask )
-          goto Found_Right;
-
-      /* crop the whole glyph to the right */
-      map->width--;
-      metrics->width--;
-
-    } while ( map->width > 0 );
-
-  Found_Right:
-    /* all right, the bitmap was cropped */
-    return;
-
-  Empty_Bitmap:
-    map->width      = 0;
-    map->rows       = 0;
-    map->pitch      = 0;
-    map->pixel_mode = FT_PIXEL_MODE_MONO;
-  }
-
-
-  static FT_Error
-  Load_SBit_Single( FT_Bitmap*       map,
-                    FT_Int           x_offset,
-                    FT_Int           y_offset,
-                    FT_Int           pix_bits,
-                    FT_UShort        image_format,
-                    TT_SBit_Metrics  metrics,
-                    FT_Stream        stream )
-  {
-    FT_Error  error;
-
-
-    /* check that the source bitmap fits into the target pixmap */
-    if ( x_offset < 0 || x_offset + metrics->width  > map->width ||
-         y_offset < 0 || y_offset + metrics->height > map->rows  )
-    {
-      error = SFNT_Err_Invalid_Argument;
-
-      goto Exit;
-    }
-
-    {
-      FT_Int   glyph_width  = metrics->width;
-      FT_Int   glyph_height = metrics->height;
-      FT_Int   glyph_size;
-      FT_Int   line_bits    = pix_bits * glyph_width;
-      FT_Bool  pad_bytes    = 0;
-
-
-      /* compute size of glyph image */
-      switch ( image_format )
-      {
-      case 1:  /* byte-padded formats */
-      case 6:
-        {
-          FT_Int  line_length;
-
-
-          switch ( pix_bits )
-          {
-          case 1:
-            line_length = ( glyph_width + 7 ) >> 3;
-            break;
-          case 2:
-            line_length = ( glyph_width + 3 ) >> 2;
-            break;
-          case 4:
-            line_length = ( glyph_width + 1 ) >> 1;
-            break;
-          default:
-            line_length =   glyph_width;
-          }
-
-          glyph_size = glyph_height * line_length;
-          pad_bytes  = 1;
-        }
-        break;
-
-      case 2:
-      case 5:
-      case 7:
-        line_bits  =   glyph_width  * pix_bits;
-        glyph_size = ( glyph_height * line_bits + 7 ) >> 3;
-        break;
-
-      default:  /* invalid format */
-        return SFNT_Err_Invalid_File_Format;
-      }
-
-      /* Now read data and draw glyph into target pixmap       */
-      if ( FT_FRAME_ENTER( glyph_size ) )
-        goto Exit;
-
-      /* don't forget to multiply `x_offset' by `map->pix_bits' as */
-      /* the sbit blitter doesn't make a difference between pixmap */
-      /* depths.                                                   */
-      blit_sbit( map, (FT_Byte*)stream->cursor, line_bits, pad_bytes,
-                 x_offset * pix_bits, y_offset );
-
-      FT_FRAME_EXIT();
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  Load_SBit_Image( TT_SBit_Strike   strike,
-                   TT_SBit_Range    range,
-                   FT_ULong         ebdt_pos,
-                   FT_ULong         glyph_offset,
-                   FT_GlyphSlot     slot,
-                   FT_Int           x_offset,
-                   FT_Int           y_offset,
-                   FT_Stream        stream,
-                   TT_SBit_Metrics  metrics,
-                   FT_Int           depth )
-  {
-    FT_Memory   memory = stream->memory;
-    FT_Bitmap*  map    = &slot->bitmap;
-    FT_Error    error;
-
-
-    /* place stream at beginning of glyph data and read metrics */
-    if ( FT_STREAM_SEEK( ebdt_pos + glyph_offset ) )
-      goto Exit;
-
-    error = tt_load_sbit_metrics( stream, range, metrics );
-    if ( error )
-      goto Exit;
-
-    /* This function is recursive.  At the top-level call, we  */
-    /* compute the dimensions of the higher-level glyph to     */
-    /* allocate the final pixmap buffer.                       */
-    if ( depth == 0 )
-    {
-      FT_Long  size;
-
-
-      map->width = metrics->width;
-      map->rows  = metrics->height;
-
-      switch ( strike->bit_depth )
-      {
-      case 1:
-        map->pixel_mode = FT_PIXEL_MODE_MONO;
-        map->pitch      = ( map->width + 7 ) >> 3;
-        break;
-
-      case 2:
-        map->pixel_mode = FT_PIXEL_MODE_GRAY2;
-        map->pitch      = ( map->width + 3 ) >> 2;
-        break;
-
-      case 4:
-        map->pixel_mode = FT_PIXEL_MODE_GRAY4;
-        map->pitch      = ( map->width + 1 ) >> 1;
-        break;
-
-      case 8:
-        map->pixel_mode = FT_PIXEL_MODE_GRAY;
-        map->pitch      = map->width;
-        break;
-
-      default:
-        return SFNT_Err_Invalid_File_Format;
-      }
-
-      size = map->rows * map->pitch;
-
-      /* check that there is no empty image */
-      if ( size == 0 )
-        goto Exit;     /* exit successfully! */
-
-      error = ft_glyphslot_alloc_bitmap( slot, size );
-      if (error)
-        goto Exit;
-    }
-
-    switch ( range->image_format )
-    {
-    case 1:  /* single sbit image - load it */
-    case 2:
-    case 5:
-    case 6:
-    case 7:
-      return Load_SBit_Single( map, x_offset, y_offset, strike->bit_depth,
-                               range->image_format, metrics, stream );
-
-    case 8:  /* compound format */
-      FT_Stream_Skip( stream, 1L );
-      /* fallthrough */
-
-    case 9:
-      break;
-
-    default: /* invalid image format */
-      return SFNT_Err_Invalid_File_Format;
-    }
-
-    /* All right, we have a compound format.  First of all, read */
-    /* the array of elements.                                    */
-    {
-      TT_SBit_Component  components;
-      TT_SBit_Component  comp;
-      FT_UShort          num_components, count;
-
-
-      if ( FT_READ_USHORT( num_components )           ||
-           FT_NEW_ARRAY( components, num_components ) )
-        goto Exit;
-
-      count = num_components;
-
-      if ( FT_FRAME_ENTER( 4L * num_components ) )
-        goto Fail_Memory;
-
-      for ( comp = components; count > 0; count--, comp++ )
-      {
-        comp->glyph_code = FT_GET_USHORT();
-        comp->x_offset   = FT_GET_CHAR();
-        comp->y_offset   = FT_GET_CHAR();
-      }
-
-      FT_FRAME_EXIT();
-
-      /* Now recursively load each element glyph */
-      count = num_components;
-      comp  = components;
-      for ( ; count > 0; count--, comp++ )
-      {
-        TT_SBit_Range       elem_range;
-        TT_SBit_MetricsRec  elem_metrics;
-        FT_ULong            elem_offset;
-
-
-        /* find the range for this element */
-        error = find_sbit_range( comp->glyph_code,
-                                 strike,
-                                 &elem_range,
-                                 &elem_offset );
-        if ( error )
-          goto Fail_Memory;
-
-        /* now load the element, recursively */
-        error = Load_SBit_Image( strike,
-                                 elem_range,
-                                 ebdt_pos,
-                                 elem_offset,
-                                 slot,
-                                 x_offset + comp->x_offset,
-                                 y_offset + comp->y_offset,
-                                 stream,
-                                 &elem_metrics,
-                                 depth + 1 );
-        if ( error )
-          goto Fail_Memory;
-      }
-
-    Fail_Memory:
-      FT_FREE( components );
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_sbit_image                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads a given glyph sbit image from the font resource.  This also  */
-  /*    returns its metrics.                                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face         :: The target face object.                            */
-  /*                                                                       */
-  /*    strike_index :: The current strike index.                          */
-  /*                                                                       */
-  /*    glyph_index  :: The current glyph index.                           */
-  /*                                                                       */
-  /*    load_flags   :: The glyph load flags (the code checks for the flag */
-  /*                    FT_LOAD_CROP_BITMAP).                              */
-  /*                                                                       */
-  /*    stream       :: The input stream.                                  */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    map          :: The target pixmap.                                 */
-  /*                                                                       */
-  /*    metrics      :: A big sbit metrics structure for the glyph image.  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.  Returns an error if no     */
-  /*    glyph sbit exists for the index.                                   */
-  /*                                                                       */
-  /*  <Note>                                                               */
-  /*    The `map.buffer' field is always freed before the glyph is loaded. */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_sbit_image( TT_Face              face,
-                           FT_ULong             strike_index,
-                           FT_UInt              glyph_index,
-                           FT_UInt              load_flags,
-                           FT_Stream            stream,
-                           FT_Bitmap           *map,
-                           TT_SBit_MetricsRec  *metrics )
-  {
-    FT_Error        error;
-    FT_ULong        ebdt_pos, glyph_offset;
-
-    TT_SBit_Strike  strike;
-    TT_SBit_Range   range;
-
-
-    /* Check whether there is a glyph sbit for the current index */
-    error = tt_find_sbit_image( face, glyph_index, strike_index,
-                                &range, &strike, &glyph_offset );
-    if ( error )
-      goto Exit;
-
-    /* now, find the location of the `EBDT' table in */
-    /* the font file                                 */
-    error = face->goto_table( face, TTAG_EBDT, stream, 0 );
-    if ( error )
-      error = face->goto_table( face, TTAG_bdat, stream, 0 );
-    if (error)
-      goto Exit;
-
-    ebdt_pos = FT_STREAM_POS();
-
-    error = Load_SBit_Image( strike, range, ebdt_pos, glyph_offset,
-                             face->root.glyph, 0, 0, stream, metrics, 0 );
-    if ( error )
-      goto Exit;
-
-    /* setup vertical metrics if needed */
-    if ( strike->flags & 1 )
-    {
-      /* in case of a horizontal strike only */
-      FT_Int  advance;
-
-
-      advance = strike->hori.ascender - strike->hori.descender;
-
-      /* some heuristic values */
-
-      metrics->vertBearingX = (FT_Char)(-metrics->width / 2 );
-      metrics->vertBearingY = (FT_Char)( advance / 10 );
-      metrics->vertAdvance  = (FT_Char)( advance * 12 / 10 );
-    }
-
-    /* Crop the bitmap now, unless specified otherwise */
-    if ( load_flags & FT_LOAD_CROP_BITMAP )
-      crop_bitmap( map, metrics );
-
-  Exit:
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/sfnt/ttsbit.h b/nx-X11/extras/freetype2/src/sfnt/ttsbit.h
deleted file mode 100644
index f1b63b7ec..000000000
--- a/nx-X11/extras/freetype2/src/sfnt/ttsbit.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttsbit.h                                                               */
-/*                                                                         */
-/*    TrueType and OpenType embedded bitmap support (specification).       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTSBIT_H__
-#define __TTSBIT_H__
-
-
-#include <ft2build.h>
-#include "ttload.h"
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_sbit_strikes( TT_Face    face,
-                             FT_Stream  stream );
-
-  FT_LOCAL( void )
-  tt_face_free_sbit_strikes( TT_Face  face );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_set_sbit_strike( TT_Face    face,
-                           FT_UInt    x_ppem,
-                           FT_UInt    y_ppem,
-                           FT_ULong  *astrike_index );
-
-  FT_LOCAL( FT_Error )
-  tt_find_sbit_image( TT_Face          face,
-                      FT_UInt          glyph_index,
-                      FT_ULong         strike_index,
-                      TT_SBit_Range   *arange,
-                      TT_SBit_Strike  *astrike,
-                      FT_ULong        *aglyph_offset );
-
-  FT_LOCAL( FT_Error )
-  tt_load_sbit_metrics( FT_Stream        stream,
-                        TT_SBit_Range    range,
-                        TT_SBit_Metrics  metrics );
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_sbit_image( TT_Face              face,
-                           FT_ULong             strike_index,
-                           FT_UInt              glyph_index,
-                           FT_UInt              load_flags,
-                           FT_Stream            stream,
-                           FT_Bitmap           *map,
-                           TT_SBit_MetricsRec  *metrics );
-
-
-FT_END_HEADER
-
-#endif /* __TTSBIT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/smooth/Jamfile b/nx-X11/extras/freetype2/src/smooth/Jamfile
deleted file mode 100644
index 5ab9b60c7..000000000
--- a/nx-X11/extras/freetype2/src/smooth/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/smooth Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) smooth ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = ftgrays ftsmooth ;
-  }
-  else
-  {
-    _sources = smooth ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/smooth Jamfile
diff --git a/nx-X11/extras/freetype2/src/smooth/descrip.mms b/nx-X11/extras/freetype2/src/smooth/descrip.mms
deleted file mode 100644
index 9ebc7ff22..000000000
--- a/nx-X11/extras/freetype2/src/smooth/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 smooth renderer module compilation rules for VMS
-#
-
-
-# Copyright 2001 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.smooth])
-
-OBJS=smooth.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/smooth/ftgrays.c b/nx-X11/extras/freetype2/src/smooth/ftgrays.c
deleted file mode 100644
index 499cc8cb5..000000000
--- a/nx-X11/extras/freetype2/src/smooth/ftgrays.c
+++ /dev/null
@@ -1,2159 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftgrays.c                                                              */
-/*                                                                         */
-/*    A new `perfect' anti-aliasing renderer (body).                       */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file can be compiled without the rest of the FreeType engine, by */
-  /* defining the _STANDALONE_ macro when compiling it.  You also need to  */
-  /* put the files `ftgrays.h' and `ftimage.h' into the current            */
-  /* compilation directory.  Typically, you could do something like        */
-  /*                                                                       */
-  /* - copy `src/smooth/ftgrays.c' (this file) to your current directory   */
-  /*                                                                       */
-  /* - copy `include/freetype/ftimage.h' and `src/smooth/ftgrays.h' to the */
-  /*   same directory                                                      */
-  /*                                                                       */
-  /* - compile `ftgrays' with the _STANDALONE_ macro defined, as in        */
-  /*                                                                       */
-  /*     cc -c -D_STANDALONE_ ftgrays.c                                    */
-  /*                                                                       */
-  /* The renderer can be initialized with a call to                        */
-  /* `ft_gray_raster.raster_new'; an anti-aliased bitmap can be generated  */
-  /* with a call to `ft_gray_raster.raster_render'.                        */
-  /*                                                                       */
-  /* See the comments and documentation in the file `ftimage.h' for more   */
-  /* details on how the raster works.                                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This is a new anti-aliasing scan-converter for FreeType 2.  The       */
-  /* algorithm used here is _very_ different from the one in the standard  */
-  /* `ftraster' module.  Actually, `ftgrays' computes the _exact_          */
-  /* coverage of the outline on each pixel cell.                           */
-  /*                                                                       */
-  /* It is based on ideas that I initially found in Raph Levien's          */
-  /* excellent LibArt graphics library (see http://www.levien.com/libart   */
-  /* for more information, though the web pages do not tell anything       */
-  /* about the renderer; you'll have to dive into the source code to       */
-  /* understand how it works).                                             */
-  /*                                                                       */
-  /* Note, however, that this is a _very_ different implementation         */
-  /* compared to Raph's.  Coverage information is stored in a very         */
-  /* different way, and I don't use sorted vector paths.  Also, it doesn't */
-  /* use floating point values.                                            */
-  /*                                                                       */
-  /* This renderer has the following advantages:                           */
-  /*                                                                       */
-  /* - It doesn't need an intermediate bitmap.  Instead, one can supply a  */
-  /*   callback function that will be called by the renderer to draw gray  */
-  /*   spans on any target surface.  You can thus do direct composition on */
-  /*   any kind of bitmap, provided that you give the renderer the right   */
-  /*   callback.                                                           */
-  /*                                                                       */
-  /* - A perfect anti-aliaser, i.e., it computes the _exact_ coverage on   */
-  /*   each pixel cell.                                                    */
-  /*                                                                       */
-  /* - It performs a single pass on the outline (the `standard' FT2        */
-  /*   renderer makes two passes).                                         */
-  /*                                                                       */
-  /* - It can easily be modified to render to _any_ number of gray levels  */
-  /*   cheaply.                                                            */
-  /*                                                                       */
-  /* - For small (< 20) pixel sizes, it is faster than the standard        */
-  /*   renderer.                                                           */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-
-/* experimental support for gamma correction within the rasterizer */
-#define xxxGRAYS_USE_GAMMA
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_smooth
-
-
-#define ErrRaster_MemoryOverflow   -4
-
-
-#ifdef _STANDALONE_
-
-#include <string.h>             /* for ft_memcpy() */
-#include <setjmp.h>
-#include <limits.h>
-#define FT_UINT_MAX  UINT_MAX
-
-#define ft_memset   memset
-
-#define ft_setjmp   setjmp
-#define ft_longjmp  longjmp
-#define ft_jmp_buf  jmp_buf
-
-
-#define ErrRaster_Invalid_Mode     -2
-#define ErrRaster_Invalid_Outline  -1
-
-#define FT_BEGIN_HEADER
-#define FT_END_HEADER
-
-#include "ftimage.h"
-#include "ftgrays.h"
-
-  /* This macro is used to indicate that a function parameter is unused. */
-  /* Its purpose is simply to reduce compiler warnings.  Note also that  */
-  /* simply defining it as `(void)x' doesn't avoid warnings with certain */
-  /* ANSI compilers (e.g. LCC).                                          */
-#define FT_UNUSED( x )  (x) = (x)
-
-  /* Disable the tracing mechanism for simplicity -- developers can      */
-  /* activate it easily by redefining these two macros.                  */
-#ifndef FT_ERROR
-#define FT_ERROR( x )  do ; while ( 0 )     /* nothing */
-#endif
-
-#ifndef FT_TRACE
-#define FT_TRACE( x )  do ; while ( 0 )     /* nothing */
-#endif
-
-
-#else /* _STANDALONE_ */
-
-
-#include <ft2build.h>
-#include "ftgrays.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_OUTLINE_H
-
-#include "ftsmerrs.h"
-
-#define ErrRaster_Invalid_Mode     Smooth_Err_Cannot_Render_Glyph
-#define ErrRaster_Invalid_Outline  Smooth_Err_Invalid_Outline
-
-
-#endif /* _STANDALONE_ */
-
-
-#ifndef FT_MEM_SET
-#define FT_MEM_SET( d, s, c )  ft_memset( d, s, c )
-#endif
-
-#ifndef FT_MEM_ZERO
-#define FT_MEM_ZERO( dest, count )  FT_MEM_SET( dest, 0, count )
-#endif
-
-  /* define this to dump debugging information */
-#define xxxDEBUG_GRAYS
-
-  /* as usual, for the speed hungry :-) */
-
-#ifndef FT_STATIC_RASTER
-
-
-#define RAS_ARG   PRaster  raster
-#define RAS_ARG_  PRaster  raster,
-
-#define RAS_VAR   raster
-#define RAS_VAR_  raster,
-
-#define ras       (*raster)
-
-
-#else /* FT_STATIC_RASTER */
-
-
-#define RAS_ARG   /* empty */
-#define RAS_ARG_  /* empty */
-#define RAS_VAR   /* empty */
-#define RAS_VAR_  /* empty */
-
-  static TRaster  ras;
-
-
-#endif /* FT_STATIC_RASTER */
-
-
-  /* must be at least 6 bits! */
-#define PIXEL_BITS  8
-
-#define ONE_PIXEL       ( 1L << PIXEL_BITS )
-#define PIXEL_MASK      ( -1L << PIXEL_BITS )
-#define TRUNC( x )      ( (TCoord)((x) >> PIXEL_BITS) )
-#define SUBPIXELS( x )  ( (TPos)(x) << PIXEL_BITS )
-#define FLOOR( x )      ( (x) & -ONE_PIXEL )
-#define CEILING( x )    ( ( (x) + ONE_PIXEL - 1 ) & -ONE_PIXEL )
-#define ROUND( x )      ( ( (x) + ONE_PIXEL / 2 ) & -ONE_PIXEL )
-
-#if PIXEL_BITS >= 6
-#define UPSCALE( x )    ( (x) << ( PIXEL_BITS - 6 ) )
-#define DOWNSCALE( x )  ( (x) >> ( PIXEL_BITS - 6 ) )
-#else
-#define UPSCALE( x )    ( (x) >> ( 6 - PIXEL_BITS ) )
-#define DOWNSCALE( x )  ( (x) << ( 6 - PIXEL_BITS ) )
-#endif
-
-  /* Define this if you want to use a more compact storage scheme.  This   */
-  /* increases the number of cells available in the render pool but slows  */
-  /* down the rendering a bit.  It is useful if you have a really tiny     */
-  /* render pool.                                                          */
-#undef GRAYS_COMPACT
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*   TYPE DEFINITIONS                                                    */
-  /*                                                                       */
-
-  /* don't change the following types to FT_Int or FT_Pos, since we might */
-  /* need to define them to "float" or "double" when experimenting with   */
-  /* new algorithms                                                       */
-
-  typedef int   TCoord;   /* integer scanline/pixel coordinate */
-  typedef long  TPos;     /* sub-pixel coordinate              */
-
-  /* determine the type used to store cell areas.  This normally takes at */
-  /* least PIXEL_BYTES*2 + 1.  On 16-bit systems, we need to use `long'   */
-  /* instead of `int', otherwise bad things happen                        */
-
-#if PIXEL_BITS <= 7
-
-  typedef int   TArea;
-
-#else /* PIXEL_BITS >= 8 */
-
-  /* approximately determine the size of integers using an ANSI-C header */
-#if FT_UINT_MAX == 0xFFFFU
-  typedef long  TArea;
-#else
-  typedef int  TArea;
-#endif
-
-#endif /* PIXEL_BITS >= 8 */
-
-
-  /* maximal number of gray spans in a call to the span callback */
-#define FT_MAX_GRAY_SPANS  32
-
-
-#ifdef GRAYS_COMPACT
-
-  typedef struct  TCell_
-  {
-    short  x     : 14;
-    short  y     : 14;
-    int    cover : PIXEL_BITS + 2;
-    int    area  : PIXEL_BITS * 2 + 2;
-
-  } TCell, *PCell;
-
-#else /* GRAYS_COMPACT */
-
-  typedef struct  TCell_
-  {
-    TCoord  x;
-    TCoord  y;
-    int     cover;
-    TArea   area;
-
-  } TCell, *PCell;
-
-#endif /* GRAYS_COMPACT */
-
-
-  typedef struct  TRaster_
-  {
-    PCell   cells;
-    int     max_cells;
-    int     num_cells;
-
-    TPos    min_ex, max_ex;
-    TPos    min_ey, max_ey;
-
-    TArea   area;
-    int     cover;
-    int     invalid;
-
-    TCoord  ex, ey;
-    TCoord  cx, cy;
-    TPos    x,  y;
-
-    TPos    last_ey;
-
-    FT_Vector   bez_stack[32 * 3 + 1];
-    int         lev_stack[32];
-
-    FT_Outline  outline;
-    FT_Bitmap   target;
-    FT_BBox     clip_box;
-
-    FT_Span     gray_spans[FT_MAX_GRAY_SPANS];
-    int         num_gray_spans;
-
-    FT_Raster_Span_Func  render_span;
-    void*                render_span_data;
-    int                  span_y;
-
-    int  band_size;
-    int  band_shoot;
-    int  conic_level;
-    int  cubic_level;
-
-    void*       memory;
-    ft_jmp_buf  jump_buffer;
-
-#ifdef GRAYS_USE_GAMMA
-    unsigned char  gamma[257];
-#endif
-
-  } TRaster, *PRaster;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Initialize the cells table.                                           */
-  /*                                                                       */
-  static void
-  gray_init_cells( RAS_ARG_ void*  buffer,
-                   long            byte_size )
-  {
-    ras.cells     = (PCell)buffer;
-    ras.max_cells = (int)( byte_size / sizeof ( TCell ) );
-    ras.num_cells = 0;
-    ras.area      = 0;
-    ras.cover     = 0;
-    ras.invalid   = 1;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Compute the outline bounding box.                                     */
-  /*                                                                       */
-  static void
-  gray_compute_cbox( RAS_ARG )
-  {
-    FT_Outline*  outline = &ras.outline;
-    FT_Vector*   vec     = outline->points;
-    FT_Vector*   limit   = vec + outline->n_points;
-
-
-    if ( outline->n_points <= 0 )
-    {
-      ras.min_ex = ras.max_ex = 0;
-      ras.min_ey = ras.max_ey = 0;
-      return;
-    }
-
-    ras.min_ex = ras.max_ex = vec->x;
-    ras.min_ey = ras.max_ey = vec->y;
-
-    vec++;
-
-    for ( ; vec < limit; vec++ )
-    {
-      TPos  x = vec->x;
-      TPos  y = vec->y;
-
-
-      if ( x < ras.min_ex ) ras.min_ex = x;
-      if ( x > ras.max_ex ) ras.max_ex = x;
-      if ( y < ras.min_ey ) ras.min_ey = y;
-      if ( y > ras.max_ey ) ras.max_ey = y;
-    }
-
-    /* truncate the bounding box to integer pixels */
-    ras.min_ex = ras.min_ex >> 6;
-    ras.min_ey = ras.min_ey >> 6;
-    ras.max_ex = ( ras.max_ex + 63 ) >> 6;
-    ras.max_ey = ( ras.max_ey + 63 ) >> 6;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Record the current cell in the table.                                 */
-  /*                                                                       */
-  static void
-  gray_record_cell( RAS_ARG )
-  {
-    PCell  cell;
-
-
-    if ( !ras.invalid && ( ras.area | ras.cover ) )
-    {
-      if ( ras.num_cells >= ras.max_cells )
-        ft_longjmp( ras.jump_buffer, 1 );
-
-      cell        = ras.cells + ras.num_cells++;
-      cell->x     = (TCoord)(ras.ex - ras.min_ex);
-      cell->y     = (TCoord)(ras.ey - ras.min_ey);
-      cell->area  = ras.area;
-      cell->cover = ras.cover;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Set the current cell to a new position.                               */
-  /*                                                                       */
-  static void
-  gray_set_cell( RAS_ARG_ TCoord  ex,
-                          TCoord  ey )
-  {
-    int  invalid, record, clean;
-
-
-    /* Move the cell pointer to a new position.  We set the `invalid'      */
-    /* flag to indicate that the cell isn't part of those we're interested */
-    /* in during the render phase.  This means that:                       */
-    /*                                                                     */
-    /* . the new vertical position must be within min_ey..max_ey-1.        */
-    /* . the new horizontal position must be strictly less than max_ex     */
-    /*                                                                     */
-    /* Note that if a cell is to the left of the clipping region, it is    */
-    /* actually set to the (min_ex-1) horizontal position.                 */
-
-    record  = 0;
-    clean   = 1;
-
-    invalid = ( ey < ras.min_ey || ey >= ras.max_ey || ex >= ras.max_ex );
-    if ( !invalid )
-    {
-      /* All cells that are on the left of the clipping region go to the */
-      /* min_ex - 1 horizontal position.                                 */
-      if ( ex < ras.min_ex )
-        ex = (TCoord)(ras.min_ex - 1);
-
-      /* if our position is new, then record the previous cell */
-      if ( ex != ras.ex || ey != ras.ey )
-        record = 1;
-      else
-        clean = ras.invalid;  /* do not clean if we didn't move from */
-                              /* a valid cell                        */
-    }
-
-    /* record the previous cell if needed (i.e., if we changed the cell */
-    /* position, of changed the `invalid' flag)                         */
-    if ( ras.invalid != invalid || record )
-      gray_record_cell( RAS_VAR );
-
-    if ( clean )
-    {
-      ras.area  = 0;
-      ras.cover = 0;
-    }
-
-    ras.invalid = invalid;
-    ras.ex      = ex;
-    ras.ey      = ey;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Start a new contour at a given cell.                                  */
-  /*                                                                       */
-  static void
-  gray_start_cell( RAS_ARG_  TCoord  ex,
-                             TCoord  ey )
-  {
-    if ( ex < ras.min_ex )
-      ex = (TCoord)(ras.min_ex - 1);
-
-    ras.area    = 0;
-    ras.cover   = 0;
-    ras.ex      = ex;
-    ras.ey      = ey;
-    ras.last_ey = SUBPIXELS( ey );
-    ras.invalid = 0;
-
-    gray_set_cell( RAS_VAR_ ex, ey );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Render a scanline as one or more cells.                               */
-  /*                                                                       */
-  static void
-  gray_render_scanline( RAS_ARG_  TCoord  ey,
-                                  TPos    x1,
-                                  TCoord  y1,
-                                  TPos    x2,
-                                  TCoord  y2 )
-  {
-    TCoord  ex1, ex2, fx1, fx2, delta;
-    long    p, first, dx;
-    int     incr, lift, mod, rem;
-
-
-    dx = x2 - x1;
-
-    ex1 = TRUNC( x1 ); /* if (ex1 >= ras.max_ex) ex1 = ras.max_ex-1; */
-    ex2 = TRUNC( x2 ); /* if (ex2 >= ras.max_ex) ex2 = ras.max_ex-1; */
-    fx1 = (TCoord)( x1 - SUBPIXELS( ex1 ) );
-    fx2 = (TCoord)( x2 - SUBPIXELS( ex2 ) );
-
-    /* trivial case.  Happens often */
-    if ( y1 == y2 )
-    {
-      gray_set_cell( RAS_VAR_ ex2, ey );
-      return;
-    }
-
-    /* everything is located in a single cell.  That is easy! */
-    /*                                                        */
-    if ( ex1 == ex2 )
-    {
-      delta      = y2 - y1;
-      ras.area  += (TArea)( fx1 + fx2 ) * delta;
-      ras.cover += delta;
-      return;
-    }
-
-    /* ok, we'll have to render a run of adjacent cells on the same */
-    /* scanline...                                                  */
-    /*                                                              */
-    p     = ( ONE_PIXEL - fx1 ) * ( y2 - y1 );
-    first = ONE_PIXEL;
-    incr  = 1;
-
-    if ( dx < 0 )
-    {
-      p     = fx1 * ( y2 - y1 );
-      first = 0;
-      incr  = -1;
-      dx    = -dx;
-    }
-
-    delta = (TCoord)( p / dx );
-    mod   = (TCoord)( p % dx );
-    if ( mod < 0 )
-    {
-      delta--;
-      mod += (TCoord)dx;
-    }
-
-    ras.area  += (TArea)( fx1 + first ) * delta;
-    ras.cover += delta;
-
-    ex1 += incr;
-    gray_set_cell( RAS_VAR_ ex1, ey );
-    y1  += delta;
-
-    if ( ex1 != ex2 )
-    {
-      p    = ONE_PIXEL * ( y2 - y1 + delta );
-      lift = (TCoord)( p / dx );
-      rem  = (TCoord)( p % dx );
-      if ( rem < 0 )
-      {
-        lift--;
-        rem += (TCoord)dx;
-      }
-
-      mod -= (int)dx;
-
-      while ( ex1 != ex2 )
-      {
-        delta = lift;
-        mod  += rem;
-        if ( mod >= 0 )
-        {
-          mod -= (TCoord)dx;
-          delta++;
-        }
-
-        ras.area  += (TArea)ONE_PIXEL * delta;
-        ras.cover += delta;
-        y1        += delta;
-        ex1       += incr;
-        gray_set_cell( RAS_VAR_ ex1, ey );
-      }
-    }
-
-    delta      = y2 - y1;
-    ras.area  += (TArea)( fx2 + ONE_PIXEL - first ) * delta;
-    ras.cover += delta;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Render a given line as a series of scanlines.                         */
-  /*                                                                       */
-  static void
-  gray_render_line( RAS_ARG_ TPos  to_x,
-                             TPos  to_y )
-  {
-    TCoord  ey1, ey2, fy1, fy2;
-    TPos    dx, dy, x, x2;
-    long    p, first;
-    int     delta, rem, mod, lift, incr;
-
-
-    ey1 = TRUNC( ras.last_ey );
-    ey2 = TRUNC( to_y ); /* if (ey2 >= ras.max_ey) ey2 = ras.max_ey-1; */
-    fy1 = (TCoord)( ras.y - ras.last_ey );
-    fy2 = (TCoord)( to_y - SUBPIXELS( ey2 ) );
-
-    dx = to_x - ras.x;
-    dy = to_y - ras.y;
-
-    /* XXX: we should do something about the trivial case where dx == 0, */
-    /*      as it happens very often!                                    */
-
-    /* perform vertical clipping */
-    {
-      TCoord  min, max;
-
-
-      min = ey1;
-      max = ey2;
-      if ( ey1 > ey2 )
-      {
-        min = ey2;
-        max = ey1;
-      }
-      if ( min >= ras.max_ey || max < ras.min_ey )
-        goto End;
-    }
-
-    /* everything is on a single scanline */
-    if ( ey1 == ey2 )
-    {
-      gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, to_x, fy2 );
-      goto End;
-    }
-
-    /* vertical line - avoid calling gray_render_scanline */
-    incr = 1;
-
-    if ( dx == 0 )
-    {
-      TCoord  ex     = TRUNC( ras.x );
-      TCoord  two_fx = (TCoord)( ( ras.x - SUBPIXELS( ex ) ) << 1 );
-      TPos    area;
-
-
-      first = ONE_PIXEL;
-      if ( dy < 0 )
-      {
-        first = 0;
-        incr  = -1;
-      }
-
-      delta      = (int)( first - fy1 );
-      ras.area  += (TArea)two_fx * delta;
-      ras.cover += delta;
-      ey1       += incr;
-
-      gray_set_cell( raster, ex, ey1 );
-
-      delta = (int)( first + first - ONE_PIXEL );
-      area  = (TArea)two_fx * delta;
-      while ( ey1 != ey2 )
-      {
-        ras.area  += area;
-        ras.cover += delta;
-        ey1       += incr;
-        gray_set_cell( raster, ex, ey1 );
-      }
-
-      delta      = (int)( fy2 - ONE_PIXEL + first );
-      ras.area  += (TArea)two_fx * delta;
-      ras.cover += delta;
-      goto End;
-    }
-
-    /* ok, we have to render several scanlines */
-    p     = ( ONE_PIXEL - fy1 ) * dx;
-    first = ONE_PIXEL;
-    incr  = 1;
-
-    if ( dy < 0 )
-    {
-      p     = fy1 * dx;
-      first = 0;
-      incr  = -1;
-      dy    = -dy;
-    }
-
-    delta = (int)( p / dy );
-    mod   = (int)( p % dy );
-    if ( mod < 0 )
-    {
-      delta--;
-      mod += (TCoord)dy;
-    }
-
-    x = ras.x + delta;
-    gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, x, (TCoord)first );
-
-    ey1 += incr;
-    gray_set_cell( RAS_VAR_ TRUNC( x ), ey1 );
-
-    if ( ey1 != ey2 )
-    {
-      p     = ONE_PIXEL * dx;
-      lift  = (int)( p / dy );
-      rem   = (int)( p % dy );
-      if ( rem < 0 )
-      {
-        lift--;
-        rem += (int)dy;
-      }
-      mod -= (int)dy;
-
-      while ( ey1 != ey2 )
-      {
-        delta = lift;
-        mod  += rem;
-        if ( mod >= 0 )
-        {
-          mod -= (int)dy;
-          delta++;
-        }
-
-        x2 = x + delta;
-        gray_render_scanline( RAS_VAR_ ey1, x,
-                                       (TCoord)( ONE_PIXEL - first ), x2,
-                                       (TCoord)first );
-        x = x2;
-
-        ey1 += incr;
-        gray_set_cell( RAS_VAR_ TRUNC( x ), ey1 );
-      }
-    }
-
-    gray_render_scanline( RAS_VAR_ ey1, x,
-                                   (TCoord)( ONE_PIXEL - first ), to_x,
-                                   fy2 );
-
-  End:
-    ras.x       = to_x;
-    ras.y       = to_y;
-    ras.last_ey = SUBPIXELS( ey2 );
-  }
-
-
-  static void
-  gray_split_conic( FT_Vector*  base )
-  {
-    TPos  a, b;
-
-
-    base[4].x = base[2].x;
-    b = base[1].x;
-    a = base[3].x = ( base[2].x + b ) / 2;
-    b = base[1].x = ( base[0].x + b ) / 2;
-    base[2].x = ( a + b ) / 2;
-
-    base[4].y = base[2].y;
-    b = base[1].y;
-    a = base[3].y = ( base[2].y + b ) / 2;
-    b = base[1].y = ( base[0].y + b ) / 2;
-    base[2].y = ( a + b ) / 2;
-  }
-
-
-  static void
-  gray_render_conic( RAS_ARG_ FT_Vector*  control,
-                              FT_Vector*  to )
-  {
-    TPos        dx, dy;
-    int         top, level;
-    int*        levels;
-    FT_Vector*  arc;
-
-
-    dx = DOWNSCALE( ras.x ) + to->x - ( control->x << 1 );
-    if ( dx < 0 )
-      dx = -dx;
-    dy = DOWNSCALE( ras.y ) + to->y - ( control->y << 1 );
-    if ( dy < 0 )
-      dy = -dy;
-    if ( dx < dy )
-      dx = dy;
-
-    level = 1;
-    dx = dx / ras.conic_level;
-    while ( dx > 0 )
-    {
-      dx >>= 2;
-      level++;
-    }
-
-    /* a shortcut to speed things up */
-    if ( level <= 1 )
-    {
-      /* we compute the mid-point directly in order to avoid */
-      /* calling gray_split_conic()                          */
-      TPos   to_x, to_y, mid_x, mid_y;
-
-
-      to_x  = UPSCALE( to->x );
-      to_y  = UPSCALE( to->y );
-      mid_x = ( ras.x + to_x + 2 * UPSCALE( control->x ) ) / 4;
-      mid_y = ( ras.y + to_y + 2 * UPSCALE( control->y ) ) / 4;
-
-      gray_render_line( RAS_VAR_ mid_x, mid_y );
-      gray_render_line( RAS_VAR_ to_x, to_y );
-      return;
-    }
-
-    arc       = ras.bez_stack;
-    levels    = ras.lev_stack;
-    top       = 0;
-    levels[0] = level;
-
-    arc[0].x = UPSCALE( to->x );
-    arc[0].y = UPSCALE( to->y );
-    arc[1].x = UPSCALE( control->x );
-    arc[1].y = UPSCALE( control->y );
-    arc[2].x = ras.x;
-    arc[2].y = ras.y;
-
-    while ( top >= 0 )
-    {
-      level = levels[top];
-      if ( level > 1 )
-      {
-        /* check that the arc crosses the current band */
-        TPos  min, max, y;
-
-
-        min = max = arc[0].y;
-
-        y = arc[1].y;
-        if ( y < min ) min = y;
-        if ( y > max ) max = y;
-
-        y = arc[2].y;
-        if ( y < min ) min = y;
-        if ( y > max ) max = y;
-
-        if ( TRUNC( min ) >= ras.max_ey || TRUNC( max ) < ras.min_ey )
-          goto Draw;
-
-        gray_split_conic( arc );
-        arc += 2;
-        top++;
-        levels[top] = levels[top - 1] = level - 1;
-        continue;
-      }
-
-    Draw:
-      {
-        TPos  to_x, to_y, mid_x, mid_y;
-
-
-        to_x  = arc[0].x;
-        to_y  = arc[0].y;
-        mid_x = ( ras.x + to_x + 2 * arc[1].x ) / 4;
-        mid_y = ( ras.y + to_y + 2 * arc[1].y ) / 4;
-
-        gray_render_line( RAS_VAR_ mid_x, mid_y );
-        gray_render_line( RAS_VAR_ to_x, to_y );
-
-        top--;
-        arc -= 2;
-      }
-    }
-    return;
-  }
-
-
-  static void
-  gray_split_cubic( FT_Vector*  base )
-  {
-    TPos  a, b, c, d;
-
-
-    base[6].x = base[3].x;
-    c = base[1].x;
-    d = base[2].x;
-    base[1].x = a = ( base[0].x + c ) / 2;
-    base[5].x = b = ( base[3].x + d ) / 2;
-    c = ( c + d ) / 2;
-    base[2].x = a = ( a + c ) / 2;
-    base[4].x = b = ( b + c ) / 2;
-    base[3].x = ( a + b ) / 2;
-
-    base[6].y = base[3].y;
-    c = base[1].y;
-    d = base[2].y;
-    base[1].y = a = ( base[0].y + c ) / 2;
-    base[5].y = b = ( base[3].y + d ) / 2;
-    c = ( c + d ) / 2;
-    base[2].y = a = ( a + c ) / 2;
-    base[4].y = b = ( b + c ) / 2;
-    base[3].y = ( a + b ) / 2;
-  }
-
-
-  static void
-  gray_render_cubic( RAS_ARG_ FT_Vector*  control1,
-                              FT_Vector*  control2,
-                              FT_Vector*  to )
-  {
-    TPos        dx, dy, da, db;
-    int         top, level;
-    int*        levels;
-    FT_Vector*  arc;
-
-
-    dx = DOWNSCALE( ras.x ) + to->x - ( control1->x << 1 );
-    if ( dx < 0 )
-      dx = -dx;
-    dy = DOWNSCALE( ras.y ) + to->y - ( control1->y << 1 );
-    if ( dy < 0 )
-      dy = -dy;
-    if ( dx < dy )
-      dx = dy;
-    da = dx;
-
-    dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x );
-    if ( dx < 0 )
-      dx = -dx;
-    dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->x + control2->y );
-    if ( dy < 0 )
-      dy = -dy;
-    if ( dx < dy )
-      dx = dy;
-    db = dx;
-
-    level = 1;
-    da    = da / ras.cubic_level;
-    db    = db / ras.conic_level;
-    while ( da > 0 || db > 0 )
-    {
-      da >>= 2;
-      db >>= 3;
-      level++;
-    }
-
-    if ( level <= 1 )
-    {
-      TPos   to_x, to_y, mid_x, mid_y;
-
-
-      to_x  = UPSCALE( to->x );
-      to_y  = UPSCALE( to->y );
-      mid_x = ( ras.x + to_x +
-                3 * UPSCALE( control1->x + control2->x ) ) / 8;
-      mid_y = ( ras.y + to_y +
-                3 * UPSCALE( control1->y + control2->y ) ) / 8;
-
-      gray_render_line( RAS_VAR_ mid_x, mid_y );
-      gray_render_line( RAS_VAR_ to_x, to_y );
-      return;
-    }
-
-    arc      = ras.bez_stack;
-    arc[0].x = UPSCALE( to->x );
-    arc[0].y = UPSCALE( to->y );
-    arc[1].x = UPSCALE( control2->x );
-    arc[1].y = UPSCALE( control2->y );
-    arc[2].x = UPSCALE( control1->x );
-    arc[2].y = UPSCALE( control1->y );
-    arc[3].x = ras.x;
-    arc[3].y = ras.y;
-
-    levels    = ras.lev_stack;
-    top       = 0;
-    levels[0] = level;
-
-    while ( top >= 0 )
-    {
-      level = levels[top];
-      if ( level > 1 )
-      {
-        /* check that the arc crosses the current band */
-        TPos  min, max, y;
-
-
-        min = max = arc[0].y;
-        y = arc[1].y;
-        if ( y < min ) min = y;
-        if ( y > max ) max = y;
-        y = arc[2].y;
-        if ( y < min ) min = y;
-        if ( y > max ) max = y;
-        y = arc[3].y;
-        if ( y < min ) min = y;
-        if ( y > max ) max = y;
-        if ( TRUNC( min ) >= ras.max_ey || TRUNC( max ) < 0 )
-          goto Draw;
-        gray_split_cubic( arc );
-        arc += 3;
-        top ++;
-        levels[top] = levels[top - 1] = level - 1;
-        continue;
-      }
-
-    Draw:
-      {
-        TPos  to_x, to_y, mid_x, mid_y;
-
-
-        to_x  = arc[0].x;
-        to_y  = arc[0].y;
-        mid_x = ( ras.x + to_x + 3 * ( arc[1].x + arc[2].x ) ) / 8;
-        mid_y = ( ras.y + to_y + 3 * ( arc[1].y + arc[2].y ) ) / 8;
-
-        gray_render_line( RAS_VAR_ mid_x, mid_y );
-        gray_render_line( RAS_VAR_ to_x, to_y );
-        top --;
-        arc -= 3;
-      }
-    }
-    return;
-  }
-
-
-  /* a macro comparing two cell pointers.  Returns true if a <= b. */
-#if 1
-
-#define PACK( a )          ( ( (long)(a)->y << 16 ) + (a)->x )
-#define LESS_THAN( a, b )  ( PACK( a ) < PACK( b ) )
-
-#else /* 1 */
-
-#define LESS_THAN( a, b )  ( (a)->y < (b)->y || \
-                             ( (a)->y == (b)->y && (a)->x < (b)->x ) )
-
-#endif /* 1 */
-
-#define SWAP_CELLS( a, b, temp )  do             \
-                                  {              \
-                                    temp = *(a); \
-                                    *(a) = *(b); \
-                                    *(b) = temp; \
-                                  } while ( 0 )
-#define DEBUG_SORT
-#define QUICK_SORT
-
-#ifdef SHELL_SORT
-
-  /* a simple shell sort algorithm that works directly on our */
-  /* cells table                                              */
-  static void
-  gray_shell_sort ( PCell  cells,
-                    int    count )
-  {
-    PCell  i, j, limit = cells + count;
-    TCell  temp;
-    int    gap;
-
-
-    /* compute initial gap */
-    for ( gap = 0; ++gap < count; gap *= 3 )
-      ;
-
-    while ( gap /= 3 )
-    {
-      for ( i = cells + gap; i < limit; i++ )
-      {
-        for ( j = i - gap; ; j -= gap )
-        {
-          PCell  k = j + gap;
-
-
-          if ( LESS_THAN( j, k ) )
-            break;
-
-          SWAP_CELLS( j, k, temp );
-
-          if ( j < cells + gap )
-            break;
-        }
-      }
-    }
-  }
-
-#endif /* SHELL_SORT */
-
-
-#ifdef QUICK_SORT
-
-  /* This is a non-recursive quicksort that directly process our cells     */
-  /* array.  It should be faster than calling the stdlib qsort(), and we   */
-  /* can even tailor our insertion threshold...                            */
-
-#define QSORT_THRESHOLD  9  /* below this size, a sub-array will be sorted */
-                            /* through a normal insertion sort             */
-
-  static void
-  gray_quick_sort( PCell  cells,
-                   int    count )
-  {
-    PCell   stack[40];  /* should be enough ;-) */
-    PCell*  top;        /* top of stack */
-    PCell   base, limit;
-    TCell   temp;
-
-
-    limit = cells + count;
-    base  = cells;
-    top   = stack;
-
-    for (;;)
-    {
-      int    len = (int)( limit - base );
-      PCell  i, j, pivot;
-
-
-      if ( len > QSORT_THRESHOLD )
-      {
-        /* we use base + len/2 as the pivot */
-        pivot = base + len / 2;
-        SWAP_CELLS( base, pivot, temp );
-
-        i = base + 1;
-        j = limit - 1;
-
-        /* now ensure that *i <= *base <= *j */
-        if ( LESS_THAN( j, i ) )
-          SWAP_CELLS( i, j, temp );
-
-        if ( LESS_THAN( base, i ) )
-          SWAP_CELLS( base, i, temp );
-
-        if ( LESS_THAN( j, base ) )
-          SWAP_CELLS( base, j, temp );
-
-        for (;;)
-        {
-          do i++; while ( LESS_THAN( i, base ) );
-          do j--; while ( LESS_THAN( base, j ) );
-
-          if ( i > j )
-            break;
-
-          SWAP_CELLS( i, j, temp );
-        }
-
-        SWAP_CELLS( base, j, temp );
-
-        /* now, push the largest sub-array */
-        if ( j - base > limit - i )
-        {
-          top[0] = base;
-          top[1] = j;
-          base   = i;
-        }
-        else
-        {
-          top[0] = i;
-          top[1] = limit;
-          limit  = j;
-        }
-        top += 2;
-      }
-      else
-      {
-        /* the sub-array is small, perform insertion sort */
-        j = base;
-        i = j + 1;
-
-        for ( ; i < limit; j = i, i++ )
-        {
-          for ( ; LESS_THAN( j + 1, j ); j-- )
-          {
-            SWAP_CELLS( j + 1, j, temp );
-            if ( j == base )
-              break;
-          }
-        }
-        if ( top > stack )
-        {
-          top  -= 2;
-          base  = top[0];
-          limit = top[1];
-        }
-        else
-          break;
-      }
-    }
-  }
-
-#endif /* QUICK_SORT */
-
-
-#ifdef DEBUG_GRAYS
-#ifdef DEBUG_SORT
-
-  static int
-  gray_check_sort( PCell  cells,
-                   int    count )
-  {
-    PCell  p, q;
-
-
-    for ( p = cells + count - 2; p >= cells; p-- )
-    {
-      q = p + 1;
-      if ( !LESS_THAN( p, q ) )
-        return 0;
-    }
-    return 1;
-  }
-
-#endif /* DEBUG_SORT */
-#endif /* DEBUG_GRAYS */
-
-
-  static int
-  gray_move_to( FT_Vector*  to,
-                FT_Raster   raster )
-  {
-    TPos  x, y;
-
-
-    /* record current cell, if any */
-    gray_record_cell( (PRaster)raster );
-
-    /* start to a new position */
-    x = UPSCALE( to->x );
-    y = UPSCALE( to->y );
-
-    gray_start_cell( (PRaster)raster, TRUNC( x ), TRUNC( y ) );
-
-    ((PRaster)raster)->x = x;
-    ((PRaster)raster)->y = y;
-    return 0;
-  }
-
-
-  static int
-  gray_line_to( FT_Vector*  to,
-                FT_Raster   raster )
-  {
-    gray_render_line( (PRaster)raster,
-                      UPSCALE( to->x ), UPSCALE( to->y ) );
-    return 0;
-  }
-
-
-  static int
-  gray_conic_to( FT_Vector*  control,
-                 FT_Vector*  to,
-                 FT_Raster   raster )
-  {
-    gray_render_conic( (PRaster)raster, control, to );
-    return 0;
-  }
-
-
-  static int
-  gray_cubic_to( FT_Vector*  control1,
-                 FT_Vector*  control2,
-                 FT_Vector*  to,
-                 FT_Raster   raster )
-  {
-    gray_render_cubic( (PRaster)raster, control1, control2, to );
-    return 0;
-  }
-
-
-  static void
-  gray_render_span( int       y,
-                    int       count,
-                    FT_Span*  spans,
-                    PRaster   raster )
-  {
-    unsigned char*  p;
-    FT_Bitmap*      map = &raster->target;
-
-
-    /* first of all, compute the scanline offset */
-    p = (unsigned char*)map->buffer - y * map->pitch;
-    if ( map->pitch >= 0 )
-      p += ( map->rows - 1 ) * map->pitch;
-
-    for ( ; count > 0; count--, spans++ )
-    {
-      unsigned char  coverage = spans->coverage;
-
-
-#ifdef GRAYS_USE_GAMMA
-      coverage = raster->gamma[coverage];
-#endif
-
-      if ( coverage )
-#if 1
-        FT_MEM_SET( p + spans->x, (unsigned char)coverage, spans->len );
-#else /* 1 */
-      {
-        q     = p + spans->x;
-        limit = q + spans->len;
-        for ( ; q < limit; q++ )
-          q[0] = (unsigned char)coverage;
-      }
-#endif /* 1 */
-    }
-  }
-
-
-#ifdef DEBUG_GRAYS
-
-#include <stdio.h>
-
-  static void
-  gray_dump_cells( RAS_ARG )
-  {
-    PCell  cell, limit;
-    int    y = -1;
-
-
-    cell  = ras.cells;
-    limit = cell + ras.num_cells;
-
-    for ( ; cell < limit; cell++ )
-    {
-      if ( cell->y != y )
-      {
-        fprintf( stderr, "\n%2d: ", cell->y );
-        y = cell->y;
-      }
-      fprintf( stderr, "[%d %d %d]",
-               cell->x, cell->area, cell->cover );
-    }
-    fprintf(stderr, "\n" );
-  }
-
-#endif /* DEBUG_GRAYS */
-
-
-  static void
-  gray_hline( RAS_ARG_ TCoord  x,
-                       TCoord  y,
-                       TPos    area,
-                       int     acount )
-  {
-    FT_Span*   span;
-    int        count;
-    int        coverage;
-
-
-    /* compute the coverage line's coverage, depending on the    */
-    /* outline fill rule                                         */
-    /*                                                           */
-    /* the coverage percentage is area/(PIXEL_BITS*PIXEL_BITS*2) */
-    /*                                                           */
-    coverage = (int)( area >> ( PIXEL_BITS * 2 + 1 - 8 ) );
-                                                    /* use range 0..256 */
-    if ( coverage < 0 )
-      coverage = -coverage;
-
-    if ( ras.outline.flags & FT_OUTLINE_EVEN_ODD_FILL )
-    {
-      coverage &= 511;
-
-      if ( coverage > 256 )
-        coverage = 512 - coverage;
-      else if ( coverage == 256 )
-        coverage = 255;
-    }
-    else
-    {
-      /* normal non-zero winding rule */
-      if ( coverage >= 256 )
-        coverage = 255;
-    }
-
-    y += (TCoord)ras.min_ey;
-    x += (TCoord)ras.min_ex;
-
-    if ( coverage )
-    {
-      /* see if we can add this span to the current list */
-      count = ras.num_gray_spans;
-      span  = ras.gray_spans + count - 1;
-      if ( count > 0                          &&
-           ras.span_y == y                    &&
-           (int)span->x + span->len == (int)x &&
-           span->coverage == coverage )
-      {
-        span->len = (unsigned short)( span->len + acount );
-        return;
-      }
-
-      if ( ras.span_y != y || count >= FT_MAX_GRAY_SPANS )
-      {
-        if ( ras.render_span && count > 0 )
-          ras.render_span( ras.span_y, count, ras.gray_spans,
-                           ras.render_span_data );
-        /* ras.render_span( span->y, ras.gray_spans, count ); */
-
-#ifdef DEBUG_GRAYS
-
-        if ( ras.span_y >= 0 )
-        {
-          int  n;
-
-
-          fprintf( stderr, "y=%3d ", ras.span_y );
-          span = ras.gray_spans;
-          for ( n = 0; n < count; n++, span++ )
-            fprintf( stderr, "[%d..%d]:%02x ",
-                     span->x, span->x + span->len - 1, span->coverage );
-          fprintf( stderr, "\n" );
-        }
-
-#endif /* DEBUG_GRAYS */
-
-        ras.num_gray_spans = 0;
-        ras.span_y         = y;
-
-        count = 0;
-        span  = ras.gray_spans;
-      }
-      else
-        span++;
-
-      /* add a gray span to the current list */
-      span->x        = (short)x;
-      span->len      = (unsigned short)acount;
-      span->coverage = (unsigned char)coverage;
-      ras.num_gray_spans++;
-    }
-  }
-
-
-  static void
-  gray_sweep( RAS_ARG_ FT_Bitmap*  target )
-  {
-    TCoord  x, y, cover;
-    TArea   area;
-    PCell   start, cur, limit;
-
-    FT_UNUSED( target );
-
-
-    if ( ras.num_cells == 0 )
-      return;
-
-    cur   = ras.cells;
-    limit = cur + ras.num_cells;
-
-    cover              = 0;
-    ras.span_y         = -1;
-    ras.num_gray_spans = 0;
-
-    for (;;)
-    {
-      start  = cur;
-      y      = start->y;
-      x      = start->x;
-
-      area   = start->area;
-      cover += start->cover;
-
-      /* accumulate all start cells */
-      for (;;)
-      {
-        ++cur;
-        if ( cur >= limit || cur->y != start->y || cur->x != start->x )
-          break;
-
-        area  += cur->area;
-        cover += cur->cover;
-      }
-
-      /* if the start cell has a non-null area, we must draw an */
-      /* individual gray pixel there                            */
-      if ( area && x >= 0 )
-      {
-        gray_hline( RAS_VAR_ x, y, cover * ( ONE_PIXEL * 2 ) - area, 1 );
-        x++;
-      }
-
-      if ( x < 0 )
-        x = 0;
-
-      if ( cur < limit && start->y == cur->y )
-      {
-        /* draw a gray span between the start cell and the current one */
-        if ( cur->x > x )
-          gray_hline( RAS_VAR_ x, y,
-                      cover * ( ONE_PIXEL * 2 ), cur->x - x );
-      }
-      else
-      {
-        /* draw a gray span until the end of the clipping region */
-        if ( cover && x < ras.max_ex - ras.min_ex )
-          gray_hline( RAS_VAR_ x, y,
-                      cover * ( ONE_PIXEL * 2 ),
-                      (int)( ras.max_ex - x - ras.min_ex ) );
-        cover = 0;
-      }
-
-      if ( cur >= limit )
-        break;
-    }
-
-    if ( ras.render_span && ras.num_gray_spans > 0 )
-      ras.render_span( ras.span_y, ras.num_gray_spans,
-                       ras.gray_spans, ras.render_span_data );
-
-#ifdef DEBUG_GRAYS
-
-    {
-      int       n;
-      FT_Span*  span;
-
-
-      fprintf( stderr, "y=%3d ", ras.span_y );
-      span = ras.gray_spans;
-      for ( n = 0; n < ras.num_gray_spans; n++, span++ )
-        fprintf( stderr, "[%d..%d]:%02x ",
-                 span->x, span->x + span->len - 1, span->coverage );
-      fprintf( stderr, "\n" );
-    }
-
-#endif /* DEBUG_GRAYS */
-
-  }
-
-
-#ifdef _STANDALONE_
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  The following function should only compile in stand_alone mode,      */
-  /*  i.e., when building this component without the rest of FreeType.     */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    FT_Outline_Decompose                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Walks over an outline's structure to decompose it into individual  */
-  /*    segments and Bezier arcs.  This function is also able to emit      */
-  /*    `move to' and `close to' operations to indicate the start and end  */
-  /*    of new contours in the outline.                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    outline        :: A pointer to the source target.                  */
-  /*                                                                       */
-  /*    func_interface :: A table of `emitters', i.e,. function pointers   */
-  /*                      called during decomposition to indicate path     */
-  /*                      operations.                                      */
-  /*                                                                       */
-  /*    user           :: A typeless pointer which is passed to each       */
-  /*                      emitter during the decomposition.  It can be     */
-  /*                      used to store the state during the               */
-  /*                      decomposition.                                   */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Error code.  0 means sucess.                                       */
-  /*                                                                       */
-  static
-  int  FT_Outline_Decompose( FT_Outline*              outline,
-                             const FT_Outline_Funcs*  func_interface,
-                             void*                    user )
-  {
-#undef SCALED
-#if 0
-#define SCALED( x )  ( ( (x) << shift ) - delta )
-#else
-#define SCALED( x )  (x)
-#endif
-
-    FT_Vector   v_last;
-    FT_Vector   v_control;
-    FT_Vector   v_start;
-
-    FT_Vector*  point;
-    FT_Vector*  limit;
-    char*       tags;
-
-    int   n;         /* index of contour in outline     */
-    int   first;     /* index of first point in contour */
-    int   error;
-    char  tag;       /* current point's state           */
-
-#if 0
-    int   shift = func_interface->shift;
-    TPos  delta = func_interface->delta;
-#endif
-
-
-    first = 0;
-
-    for ( n = 0; n < outline->n_contours; n++ )
-    {
-      int  last;  /* index of last point in contour */
-
-
-      last  = outline->contours[n];
-      limit = outline->points + last;
-
-      v_start = outline->points[first];
-      v_last  = outline->points[last];
-
-      v_start.x = SCALED( v_start.x ); v_start.y = SCALED( v_start.y );
-      v_last.x  = SCALED( v_last.x );  v_last.y  = SCALED( v_last.y );
-
-      v_control = v_start;
-
-      point = outline->points + first;
-      tags  = outline->tags  + first;
-      tag   = FT_CURVE_TAG( tags[0] );
-
-      /* A contour cannot start with a cubic control point! */
-      if ( tag == FT_CURVE_TAG_CUBIC )
-        goto Invalid_Outline;
-
-      /* check first point to determine origin */
-      if ( tag == FT_CURVE_TAG_CONIC )
-      {
-        /* first point is conic control.  Yes, this happens. */
-        if ( FT_CURVE_TAG( outline->tags[last] ) == FT_CURVE_TAG_ON )
-        {
-          /* start at last point if it is on the curve */
-          v_start = v_last;
-          limit--;
-        }
-        else
-        {
-          /* if both first and last points are conic,         */
-          /* start at their middle and record its position    */
-          /* for closure                                      */
-          v_start.x = ( v_start.x + v_last.x ) / 2;
-          v_start.y = ( v_start.y + v_last.y ) / 2;
-
-          v_last = v_start;
-        }
-        point--;
-        tags--;
-      }
-
-      error = func_interface->move_to( &v_start, user );
-      if ( error )
-        goto Exit;
-
-      while ( point < limit )
-      {
-        point++;
-        tags++;
-
-        tag = FT_CURVE_TAG( tags[0] );
-        switch ( tag )
-        {
-        case FT_CURVE_TAG_ON:  /* emit a single line_to */
-          {
-            FT_Vector  vec;
-
-
-            vec.x = SCALED( point->x );
-            vec.y = SCALED( point->y );
-
-            error = func_interface->line_to( &vec, user );
-            if ( error )
-              goto Exit;
-            continue;
-          }
-
-        case FT_CURVE_TAG_CONIC:  /* consume conic arcs */
-          {
-            v_control.x = SCALED( point->x );
-            v_control.y = SCALED( point->y );
-
-          Do_Conic:
-            if ( point < limit )
-            {
-              FT_Vector  vec;
-              FT_Vector  v_middle;
-
-
-              point++;
-              tags++;
-              tag = FT_CURVE_TAG( tags[0] );
-
-              vec.x = SCALED( point->x );
-              vec.y = SCALED( point->y );
-
-              if ( tag == FT_CURVE_TAG_ON )
-              {
-                error = func_interface->conic_to( &v_control, &vec, user );
-                if ( error )
-                  goto Exit;
-                continue;
-              }
-
-              if ( tag != FT_CURVE_TAG_CONIC )
-                goto Invalid_Outline;
-
-              v_middle.x = ( v_control.x + vec.x ) / 2;
-              v_middle.y = ( v_control.y + vec.y ) / 2;
-
-              error = func_interface->conic_to( &v_control, &v_middle, user );
-              if ( error )
-                goto Exit;
-
-              v_control = vec;
-              goto Do_Conic;
-            }
-
-            error = func_interface->conic_to( &v_control, &v_start, user );
-            goto Close;
-          }
-
-        default:  /* FT_CURVE_TAG_CUBIC */
-          {
-            FT_Vector  vec1, vec2;
-
-
-            if ( point + 1 > limit                             ||
-                 FT_CURVE_TAG( tags[1] ) != FT_CURVE_TAG_CUBIC )
-              goto Invalid_Outline;
-
-            point += 2;
-            tags  += 2;
-
-            vec1.x = SCALED( point[-2].x ); vec1.y = SCALED( point[-2].y );
-            vec2.x = SCALED( point[-1].x ); vec2.y = SCALED( point[-1].y );
-
-            if ( point <= limit )
-            {
-              FT_Vector  vec;
-
-
-              vec.x = SCALED( point->x );
-              vec.y = SCALED( point->y );
-
-              error = func_interface->cubic_to( &vec1, &vec2, &vec, user );
-              if ( error )
-                goto Exit;
-              continue;
-            }
-
-            error = func_interface->cubic_to( &vec1, &vec2, &v_start, user );
-            goto Close;
-          }
-        }
-      }
-
-      /* close the contour with a line segment */
-      error = func_interface->line_to( &v_start, user );
-
-   Close:
-      if ( error )
-        goto Exit;
-
-      first = last + 1;
-    }
-
-    return 0;
-
-  Exit:
-    return error;
-
-  Invalid_Outline:
-    return ErrRaster_Invalid_Outline;
-  }
-
-#endif /* _STANDALONE_ */
-
-
-  typedef struct  TBand_
-  {
-    TPos  min, max;
-
-  } TBand;
-
-
-  static int
-  gray_convert_glyph_inner( RAS_ARG )
-  {
-    static
-    const FT_Outline_Funcs  func_interface =
-    {
-      (FT_Outline_MoveTo_Func) gray_move_to,
-      (FT_Outline_LineTo_Func) gray_line_to,
-      (FT_Outline_ConicTo_Func)gray_conic_to,
-      (FT_Outline_CubicTo_Func)gray_cubic_to,
-      0,
-      0
-    };
-
-    volatile int  error = 0;
-
-    if ( ft_setjmp( ras.jump_buffer ) == 0 )
-    {
-      error = FT_Outline_Decompose( &ras.outline, &func_interface, &ras );
-      gray_record_cell( RAS_VAR );
-    }
-    else
-    {
-      error = ErrRaster_MemoryOverflow;
-    }
-
-    return error;
-  }
-
-
-  static int
-  gray_convert_glyph( RAS_ARG )
-  {
-    TBand            bands[40];
-    TBand* volatile  band;
-    int volatile     n, num_bands;
-    TPos volatile    min, max, max_y;
-    FT_BBox*         clip;
-
-
-    /* Set up state in the raster object */
-    gray_compute_cbox( RAS_VAR );
-
-    /* clip to target bitmap, exit if nothing to do */
-    clip = &ras.clip_box;
-
-    if ( ras.max_ex <= clip->xMin || ras.min_ex >= clip->xMax ||
-         ras.max_ey <= clip->yMin || ras.min_ey >= clip->yMax )
-      return 0;
-
-    if ( ras.min_ex < clip->xMin ) ras.min_ex = clip->xMin;
-    if ( ras.min_ey < clip->yMin ) ras.min_ey = clip->yMin;
-
-    if ( ras.max_ex > clip->xMax ) ras.max_ex = clip->xMax;
-    if ( ras.max_ey > clip->yMax ) ras.max_ey = clip->yMax;
-
-    /* simple heuristic used to speed-up the bezier decomposition -- see */
-    /* the code in gray_render_conic() and gray_render_cubic() for more  */
-    /* details                                                           */
-    ras.conic_level = 32;
-    ras.cubic_level = 16;
-
-    {
-      int level = 0;
-
-
-      if ( ras.max_ex > 24 || ras.max_ey > 24 )
-        level++;
-      if ( ras.max_ex > 120 || ras.max_ey > 120 )
-        level++;
-
-      ras.conic_level <<= level;
-      ras.cubic_level <<= level;
-    }
-
-    /* setup vertical bands */
-    num_bands = (int)( ( ras.max_ey - ras.min_ey ) / ras.band_size );
-    if ( num_bands == 0 )  num_bands = 1;
-    if ( num_bands >= 39 ) num_bands = 39;
-
-    ras.band_shoot = 0;
-
-    min   = ras.min_ey;
-    max_y = ras.max_ey;
-
-    for ( n = 0; n < num_bands; n++, min = max )
-    {
-      max = min + ras.band_size;
-      if ( n == num_bands - 1 || max > max_y )
-        max = max_y;
-
-      bands[0].min = min;
-      bands[0].max = max;
-      band         = bands;
-
-      while ( band >= bands )
-      {
-        TPos  bottom, top, middle;
-        int   error;
-
-
-        ras.num_cells = 0;
-        ras.invalid   = 1;
-        ras.min_ey    = band->min;
-        ras.max_ey    = band->max;
-
-#if 1
-        error = gray_convert_glyph_inner( RAS_VAR );
-#else
-        error = FT_Outline_Decompose( outline, &func_interface, &ras ) ||
-                gray_record_cell( RAS_VAR );
-#endif
-
-        if ( !error )
-        {
-#ifdef SHELL_SORT
-          gray_shell_sort( ras.cells, ras.num_cells );
-#else
-          gray_quick_sort( ras.cells, ras.num_cells );
-#endif
-
-#ifdef DEBUG_GRAYS
-          gray_check_sort( ras.cells, ras.num_cells );
-          gray_dump_cells( RAS_VAR );
-#endif
-
-          gray_sweep( RAS_VAR_  &ras.target );
-          band--;
-          continue;
-        }
-        else if ( error != ErrRaster_MemoryOverflow )
-          return 1;
-
-        /* render pool overflow, we will reduce the render band by half */
-        bottom = band->min;
-        top    = band->max;
-        middle = bottom + ( ( top - bottom ) >> 1 );
-
-        /* waoow! This is too complex for a single scanline, something */
-        /* must be really rotten here!                                 */
-        if ( middle == bottom )
-        {
-#ifdef DEBUG_GRAYS
-          fprintf( stderr, "Rotten glyph!\n" );
-#endif
-          return 1;
-        }
-
-        if ( bottom-top >= ras.band_size )
-          ras.band_shoot++;
-
-        band[1].min = bottom;
-        band[1].max = middle;
-        band[0].min = middle;
-        band[0].max = top;
-        band++;
-      }
-    }
-
-    if ( ras.band_shoot > 8 && ras.band_size > 16 )
-      ras.band_size = ras.band_size / 2;
-
-    return 0;
-  }
-
-
-  extern int
-  gray_raster_render( PRaster            raster,
-                      FT_Raster_Params*  params )
-  {
-    FT_Outline*  outline = (FT_Outline*)params->source;
-    FT_Bitmap*   target_map = params->target;
-
-
-    if ( !raster || !raster->cells || !raster->max_cells )
-      return -1;
-
-    /* return immediately if the outline is empty */
-    if ( outline->n_points == 0 || outline->n_contours <= 0 )
-      return 0;
-
-    if ( !outline || !outline->contours || !outline->points )
-      return ErrRaster_Invalid_Outline;
-
-    if ( outline->n_points !=
-           outline->contours[outline->n_contours - 1] + 1 )
-      return ErrRaster_Invalid_Outline;
-
-    /* if direct mode is not set, we must have a target bitmap */
-    if ( ( params->flags & FT_RASTER_FLAG_DIRECT ) == 0 &&
-         ( !target_map || !target_map->buffer )         )
-      return -1;
-
-    /* this version does not support monochrome rendering */
-    if ( !( params->flags & FT_RASTER_FLAG_AA ) )
-      return ErrRaster_Invalid_Mode;
-
-    /* compute clipping box */
-    if ( ( params->flags & FT_RASTER_FLAG_DIRECT ) == 0 )
-    {
-      /* compute clip box from target pixmap */
-      ras.clip_box.xMin = 0;
-      ras.clip_box.yMin = 0;
-      ras.clip_box.xMax = target_map->width;
-      ras.clip_box.yMax = target_map->rows;
-    }
-    else if ( params->flags & FT_RASTER_FLAG_CLIP )
-    {
-      ras.clip_box = params->clip_box;
-    }
-    else
-    {
-      ras.clip_box.xMin = -32768L;
-      ras.clip_box.yMin = -32768L;
-      ras.clip_box.xMax =  32767L;
-      ras.clip_box.yMax =  32767L;
-    }
-
-    ras.outline   = *outline;
-    ras.num_cells = 0;
-    ras.invalid   = 1;
-
-    if ( target_map )
-      ras.target = *target_map;
-
-    ras.render_span      = (FT_Raster_Span_Func)gray_render_span;
-    ras.render_span_data = &ras;
-
-    if ( params->flags & FT_RASTER_FLAG_DIRECT )
-    {
-      ras.render_span      = (FT_Raster_Span_Func)params->gray_spans;
-      ras.render_span_data = params->user;
-    }
-
-    return gray_convert_glyph( (PRaster)raster );
-  }
-
-
-  /**** RASTER OBJECT CREATION: In standalone mode, we simply use *****/
-  /****                         a static object.                  *****/
-
-#ifdef GRAYS_USE_GAMMA
-
-  /* initialize the "gamma" table. Yes, this is really a crummy function */
-  /* but the results look pretty good for something that simple.         */
-  /*                                                                     */
-#define M_MAX  255
-#define M_X    128
-#define M_Y    192
-
-  static void
-  grays_init_gamma( PRaster  raster )
-  {
-    unsigned int  x, a;
-
-
-    for ( x = 0; x < 256; x++ )
-    {
-      if ( x <= M_X )
-        a = ( x * M_Y + M_X / 2) / M_X;
-      else
-        a = M_Y + ( ( x - M_X ) * ( M_MAX - M_Y ) +
-            ( M_MAX - M_X ) / 2 ) / ( M_MAX - M_X );
-
-      raster->gamma[x] = (unsigned char)a;
-    }
-  }
-
-#endif /* GRAYS_USE_GAMMA */
-
-#ifdef _STANDALONE_
-
-  static int
-  gray_raster_new( void*       memory,
-                   FT_Raster*  araster )
-  {
-    static TRaster  the_raster;
-
-    FT_UNUSED( memory );
-
-
-    *araster = (FT_Raster)&the_raster;
-    FT_MEM_ZERO( &the_raster, sizeof ( the_raster ) );
-
-#ifdef GRAYS_USE_GAMMA
-    grays_init_gamma( (PRaster)*araster );
-#endif
-
-    return 0;
-  }
-
-
-  static void
-  gray_raster_done( FT_Raster  raster )
-  {
-    /* nothing */
-    FT_UNUSED( raster );
-  }
-
-#else /* _STANDALONE_ */
-
-  static int
-  gray_raster_new( FT_Memory   memory,
-                   FT_Raster*  araster )
-  {
-    FT_Error  error;
-    PRaster   raster;
-
-
-    *araster = 0;
-    if ( !FT_ALLOC( raster, sizeof ( TRaster ) ) )
-    {
-      raster->memory = memory;
-      *araster = (FT_Raster)raster;
-
-#ifdef GRAYS_USE_GAMMA
-      grays_init_gamma( raster );
-#endif
-    }
-
-    return error;
-  }
-
-
-  static void
-  gray_raster_done( FT_Raster  raster )
-  {
-    FT_Memory  memory = (FT_Memory)((PRaster)raster)->memory;
-
-
-    FT_FREE( raster );
-  }
-
-#endif /* _STANDALONE_ */
-
-
-  static void
-  gray_raster_reset( FT_Raster    raster,
-                     const char*  pool_base,
-                     long         pool_size )
-  {
-    PRaster  rast = (PRaster)raster;
-
-
-    if ( raster && pool_base && pool_size >= 4096 )
-      gray_init_cells( rast, (char*)pool_base, pool_size );
-
-    rast->band_size  = (int)( ( pool_size / sizeof ( TCell ) ) / 8 );
-  }
-
-
-  const FT_Raster_Funcs  ft_grays_raster =
-  {
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    (FT_Raster_New_Func)     gray_raster_new,
-    (FT_Raster_Reset_Func)   gray_raster_reset,
-    (FT_Raster_Set_Mode_Func)0,
-    (FT_Raster_Render_Func)  gray_raster_render,
-    (FT_Raster_Done_Func)    gray_raster_done
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/smooth/ftgrays.h b/nx-X11/extras/freetype2/src/smooth/ftgrays.h
deleted file mode 100644
index 2d409543d..000000000
--- a/nx-X11/extras/freetype2/src/smooth/ftgrays.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftgrays.h                                                              */
-/*                                                                         */
-/*    FreeType smooth renderer declaration                                 */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTGRAYS_H__
-#define __FTGRAYS_H__
-
-#ifdef __cplusplus
-  extern "C" {
-#endif
-
-
-#ifdef _STANDALONE_
-#include "ftimage.h"
-#else
-#include <ft2build.h>
-#include FT_IMAGE_H
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* To make ftgrays.h independent from configuration files we check       */
-  /* whether FT_EXPORT_VAR has been defined already.                       */
-  /*                                                                       */
-  /* On some systems and compilers (Win32 mostly), an extra keyword is     */
-  /* necessary to compile the library as a DLL.                            */
-  /*                                                                       */
-#ifndef FT_EXPORT_VAR
-#define FT_EXPORT_VAR( x )  extern  x
-#endif
-
-  FT_EXPORT_VAR( const FT_Raster_Funcs )  ft_grays_raster;
-
-
-#ifdef __cplusplus
-  }
-#endif
-
-#endif /* __FTGRAYS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/smooth/ftsmerrs.h b/nx-X11/extras/freetype2/src/smooth/ftsmerrs.h
deleted file mode 100644
index 0c2a2ecd9..000000000
--- a/nx-X11/extras/freetype2/src/smooth/ftsmerrs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsmerrs.h                                                             */
-/*                                                                         */
-/*    smooth renderer error codes (specification only).                    */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the smooth renderer error enumeration     */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __FTSMERRS_H__
-#define __FTSMERRS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  Smooth_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Smooth
-
-#include FT_ERRORS_H
-
-#endif /* __FTSMERRS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/smooth/ftsmooth.c b/nx-X11/extras/freetype2/src/smooth/ftsmooth.c
deleted file mode 100644
index af8783e29..000000000
--- a/nx-X11/extras/freetype2/src/smooth/ftsmooth.c
+++ /dev/null
@@ -1,374 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsmooth.c                                                             */
-/*                                                                         */
-/*    Anti-aliasing renderer interface (body).                             */
-/*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_OUTLINE_H
-#include "ftsmooth.h"
-#include "ftgrays.h"
-
-#include "ftsmerrs.h"
-
-
-  /* initialize renderer -- init its raster */
-  static FT_Error
-  ft_smooth_init( FT_Renderer  render )
-  {
-    FT_Library  library = FT_MODULE_LIBRARY( render );
-
-
-    render->clazz->raster_class->raster_reset( render->raster,
-                                               library->raster_pool,
-                                               library->raster_pool_size );
-
-    return 0;
-  }
-
-
-  /* sets render-specific mode */
-  static FT_Error
-  ft_smooth_set_mode( FT_Renderer  render,
-                      FT_ULong     mode_tag,
-                      FT_Pointer   data )
-  {
-    /* we simply pass it to the raster */
-    return render->clazz->raster_class->raster_set_mode( render->raster,
-                                                         mode_tag,
-                                                         data );
-  }
-
-  /* transform a given glyph image */
-  static FT_Error
-  ft_smooth_transform( FT_Renderer   render,
-                       FT_GlyphSlot  slot,
-                       FT_Matrix*    matrix,
-                       FT_Vector*    delta )
-  {
-    FT_Error  error = Smooth_Err_Ok;
-
-
-    if ( slot->format != render->glyph_format )
-    {
-      error = Smooth_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    if ( matrix )
-      FT_Outline_Transform( &slot->outline, matrix );
-
-    if ( delta )
-      FT_Outline_Translate( &slot->outline, delta->x, delta->y );
-
-  Exit:
-    return error;
-  }
-
-
-  /* return the glyph's control box */
-  static void
-  ft_smooth_get_cbox( FT_Renderer   render,
-                      FT_GlyphSlot  slot,
-                      FT_BBox*      cbox )
-  {
-    FT_MEM_ZERO( cbox, sizeof ( *cbox ) );
-
-    if ( slot->format == render->glyph_format )
-      FT_Outline_Get_CBox( &slot->outline, cbox );
-  }
-
-
-  /* convert a slot's glyph image into a bitmap */
-  static FT_Error
-  ft_smooth_render_generic( FT_Renderer     render,
-                            FT_GlyphSlot    slot,
-                            FT_Render_Mode  mode,
-                            FT_Vector*      origin,
-                            FT_Render_Mode  required_mode,
-                            FT_Int          hmul,
-                            FT_Int          vmul )
-  {
-    FT_Error     error;
-    FT_Outline*  outline = NULL;
-    FT_BBox      cbox;
-    FT_UInt      width, height, pitch;
-    FT_Bitmap*   bitmap;
-    FT_Memory    memory;
-
-    FT_Raster_Params  params;
-
-
-    /* check glyph image format */
-    if ( slot->format != render->glyph_format )
-    {
-      error = Smooth_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* check mode */
-    if ( mode != required_mode )
-      return Smooth_Err_Cannot_Render_Glyph;
-
-    outline = &slot->outline;
-
-    /* translate the outline to the new origin if needed */
-    if ( origin )
-      FT_Outline_Translate( outline, origin->x, origin->y );
-
-    /* compute the control box, and grid fit it */
-    FT_Outline_Get_CBox( outline, &cbox );
-
-    cbox.xMin = FT_PIX_FLOOR( cbox.xMin );
-    cbox.yMin = FT_PIX_FLOOR( cbox.yMin );
-    cbox.xMax = FT_PIX_CEIL( cbox.xMax );
-    cbox.yMax = FT_PIX_CEIL( cbox.yMax );
-
-    width  = (FT_UInt)( ( cbox.xMax - cbox.xMin ) >> 6 );
-    height = (FT_UInt)( ( cbox.yMax - cbox.yMin ) >> 6 );
-    bitmap = &slot->bitmap;
-    memory = render->root.memory;
-
-    /* release old bitmap buffer */
-    if ( slot->internal->flags & FT_GLYPH_OWN_BITMAP )
-    {
-      FT_FREE( bitmap->buffer );
-      slot->internal->flags &= ~FT_GLYPH_OWN_BITMAP;
-    }
-
-    /* allocate new one, depends on pixel format */
-    pitch = width;
-    if ( hmul )
-    {
-      width = width * hmul;
-      pitch = FT_PAD_CEIL( width, 4 );
-    }
-
-    if ( vmul )
-      height *= vmul;
-
-    bitmap->pixel_mode = FT_PIXEL_MODE_GRAY;
-    bitmap->num_grays  = 256;
-    bitmap->width      = width;
-    bitmap->rows       = height;
-    bitmap->pitch      = pitch;
-
-    if ( FT_ALLOC( bitmap->buffer, (FT_ULong)pitch * height ) )
-      goto Exit;
-
-    slot->internal->flags |= FT_GLYPH_OWN_BITMAP;
-
-    /* translate outline to render it into the bitmap */
-    FT_Outline_Translate( outline, -cbox.xMin, -cbox.yMin );
-
-    /* set up parameters */
-    params.target = bitmap;
-    params.source = outline;
-    params.flags  = FT_RASTER_FLAG_AA;
-
-    /* implode outline if needed */
-    {
-      FT_Int      n;
-      FT_Vector*  vec;
-
-
-      if ( hmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
-          vec->x *= hmul;
-
-      if ( vmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
-          vec->y *= vmul;
-    }
-
-    /* render outline into the bitmap */
-    error = render->raster_render( render->raster, &params );
-
-    /* deflate outline if needed */
-    {
-      FT_Int      n;
-      FT_Vector*  vec;
-
-
-      if ( hmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
-          vec->x /= hmul;
-
-      if ( vmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
-          vec->y /= vmul;
-    }
-
-    FT_Outline_Translate( outline, cbox.xMin, cbox.yMin );
-
-    if ( error )
-      goto Exit;
-
-    slot->format      = FT_GLYPH_FORMAT_BITMAP;
-    slot->bitmap_left = (FT_Int)( cbox.xMin >> 6 );
-    slot->bitmap_top  = (FT_Int)( cbox.yMax >> 6 );
-
-  Exit:
-    if ( outline && origin )
-      FT_Outline_Translate( outline, -origin->x, -origin->y );
-
-    return error;
-  }
-
-
-  /* convert a slot's glyph image into a bitmap */
-  static FT_Error
-  ft_smooth_render( FT_Renderer     render,
-                    FT_GlyphSlot    slot,
-                    FT_Render_Mode  mode,
-                    FT_Vector*      origin )
-  {
-    if ( mode == FT_RENDER_MODE_LIGHT )
-      mode = FT_RENDER_MODE_NORMAL;
-
-    return ft_smooth_render_generic( render, slot, mode, origin,
-                                     FT_RENDER_MODE_NORMAL,
-                                     0, 0 );
-  }
-
-
-  /* convert a slot's glyph image into a horizontal LCD bitmap */
-  static FT_Error
-  ft_smooth_render_lcd( FT_Renderer     render,
-                        FT_GlyphSlot    slot,
-                        FT_Render_Mode  mode,
-                        FT_Vector*      origin )
-  {
-    FT_Error  error;
-
-    error = ft_smooth_render_generic( render, slot, mode, origin,
-                                      FT_RENDER_MODE_LCD,
-                                      3, 0 );
-    if ( !error )
-      slot->bitmap.pixel_mode = FT_PIXEL_MODE_LCD;
-
-    return error;
-  }
-
-
-  /* convert a slot's glyph image into a vertical LCD bitmap */
-  static FT_Error
-  ft_smooth_render_lcd_v( FT_Renderer     render,
-                          FT_GlyphSlot    slot,
-                          FT_Render_Mode  mode,
-                          FT_Vector*      origin )
-  {
-    FT_Error  error;
-
-    error = ft_smooth_render_generic( render, slot, mode, origin,
-                                      FT_RENDER_MODE_LCD_V,
-                                      0, 3 );
-    if ( !error )
-      slot->bitmap.pixel_mode = FT_PIXEL_MODE_LCD_V;
-
-    return error;
-  }
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Renderer_Class  ft_smooth_renderer_class =
-  {
-    {
-      FT_MODULE_RENDERER,
-      sizeof( FT_RendererRec ),
-
-      "smooth",
-      0x10000L,
-      0x20000L,
-
-      0,    /* module specific interface */
-
-      (FT_Module_Constructor)ft_smooth_init,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  0
-    },
-
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    (FT_Renderer_RenderFunc)   ft_smooth_render,
-    (FT_Renderer_TransformFunc)ft_smooth_transform,
-    (FT_Renderer_GetCBoxFunc)  ft_smooth_get_cbox,
-    (FT_Renderer_SetModeFunc)  ft_smooth_set_mode,
-
-    (FT_Raster_Funcs*)    &ft_grays_raster
-  };
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Renderer_Class  ft_smooth_lcd_renderer_class =
-  {
-    {
-      FT_MODULE_RENDERER,
-      sizeof( FT_RendererRec ),
-
-      "smooth-lcd",
-      0x10000L,
-      0x20000L,
-
-      0,    /* module specific interface */
-
-      (FT_Module_Constructor)ft_smooth_init,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  0
-    },
-
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    (FT_Renderer_RenderFunc)   ft_smooth_render_lcd,
-    (FT_Renderer_TransformFunc)ft_smooth_transform,
-    (FT_Renderer_GetCBoxFunc)  ft_smooth_get_cbox,
-    (FT_Renderer_SetModeFunc)  ft_smooth_set_mode,
-
-    (FT_Raster_Funcs*)    &ft_grays_raster
-  };
-
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Renderer_Class  ft_smooth_lcdv_renderer_class =
-  {
-    {
-      FT_MODULE_RENDERER,
-      sizeof( FT_RendererRec ),
-
-      "smooth-lcdv",
-      0x10000L,
-      0x20000L,
-
-      0,    /* module specific interface */
-
-      (FT_Module_Constructor)ft_smooth_init,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  0
-    },
-
-    FT_GLYPH_FORMAT_OUTLINE,
-
-    (FT_Renderer_RenderFunc)   ft_smooth_render_lcd_v,
-    (FT_Renderer_TransformFunc)ft_smooth_transform,
-    (FT_Renderer_GetCBoxFunc)  ft_smooth_get_cbox,
-    (FT_Renderer_SetModeFunc)  ft_smooth_set_mode,
-
-    (FT_Raster_Funcs*)    &ft_grays_raster
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/smooth/ftsmooth.h b/nx-X11/extras/freetype2/src/smooth/ftsmooth.h
deleted file mode 100644
index 62cced448..000000000
--- a/nx-X11/extras/freetype2/src/smooth/ftsmooth.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ftsmooth.h                                                             */
-/*                                                                         */
-/*    Anti-aliasing renderer interface (specification).                    */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __FTSMOOTH_H__
-#define __FTSMOOTH_H__
-
-
-#include <ft2build.h>
-#include FT_RENDER_H
-
-
-FT_BEGIN_HEADER
-
-
-#ifndef FT_CONFIG_OPTION_NO_STD_RASTER
-  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_std_renderer_class;
-#endif
-
-#ifndef FT_CONFIG_OPTION_NO_SMOOTH_RASTER
-  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_smooth_renderer_class;
-
-  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_smooth_lcd_renderer_class;
-
-  FT_EXPORT_VAR( const FT_Renderer_Class )  ft_smooth_lcd_v_renderer_class;
-#endif
-
-
-
-FT_END_HEADER
-
-#endif /* __FTSMOOTH_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/smooth/module.mk b/nx-X11/extras/freetype2/src/smooth/module.mk
deleted file mode 100644
index ead77cf30..000000000
--- a/nx-X11/extras/freetype2/src/smooth/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 smooth renderer module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_smooth_renderer
-
-add_smooth_renderer:
-	$(OPEN_DRIVER)ft_smooth_renderer_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)smooth    $(ECHO_DRIVER_DESC)anti-aliased bitmap renderer$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/smooth/rules.mk b/nx-X11/extras/freetype2/src/smooth/rules.mk
deleted file mode 100644
index 4f27f01db..000000000
--- a/nx-X11/extras/freetype2/src/smooth/rules.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# FreeType 2 smooth renderer module build rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# smooth driver directory
-#
-SMOOTH_DIR := $(SRC_DIR)/smooth
-
-# compilation flags for the driver
-#
-SMOOTH_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(SMOOTH_DIR))
-
-
-# smooth driver sources (i.e., C files)
-#
-SMOOTH_DRV_SRC := $(SMOOTH_DIR)/ftgrays.c  \
-                  $(SMOOTH_DIR)/ftsmooth.c
-
-
-# smooth driver headers
-#
-SMOOTH_DRV_H := $(SMOOTH_DRV_SRC:%c=%h)  \
-                $(SMOOTH_DIR)/ftsmerrs.h
-
-
-# smooth driver object(s)
-#
-#   SMOOTH_DRV_OBJ_M is used during `multi' builds.
-#   SMOOTH_DRV_OBJ_S is used during `single' builds.
-#
-SMOOTH_DRV_OBJ_M := $(SMOOTH_DRV_SRC:$(SMOOTH_DIR)/%.c=$(OBJ_DIR)/%.$O)
-SMOOTH_DRV_OBJ_S := $(OBJ_DIR)/smooth.$O
-
-# smooth driver source file for single build
-#
-SMOOTH_DRV_SRC_S := $(SMOOTH_DIR)/smooth.c
-
-
-# smooth driver - single object
-#
-$(SMOOTH_DRV_OBJ_S): $(SMOOTH_DRV_SRC_S) $(SMOOTH_DRV_SRC) \
-                     $(FREETYPE_H) $(SMOOTH_DRV_H)
-	$(SMOOTH_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(SMOOTH_DRV_SRC_S))
-
-
-# smooth driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(SMOOTH_DIR)/%.c $(FREETYPE_H) $(SMOOTH_DRV_H)
-	$(SMOOTH_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(SMOOTH_DRV_OBJ_S)
-DRV_OBJS_M += $(SMOOTH_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/smooth/smooth.c b/nx-X11/extras/freetype2/src/smooth/smooth.c
deleted file mode 100644
index ff6be3e40..000000000
--- a/nx-X11/extras/freetype2/src/smooth/smooth.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  smooth.c                                                               */
-/*                                                                         */
-/*    FreeType anti-aliasing rasterer module component (body only).        */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "ftgrays.c"
-#include "ftsmooth.c"
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/tools/cordic.py b/nx-X11/extras/freetype2/src/tools/cordic.py
deleted file mode 100644
index 1906b6b1f..000000000
--- a/nx-X11/extras/freetype2/src/tools/cordic.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# compute arctangent table for CORDIC computations in fttrigon.c
-import sys, math
-
-#units  = 64*65536.0   # don't change !!
-units  = 256
-scale  = units/math.pi
-shrink = 1.0
-comma  = ""
-
-def calc_val( x ):
-    global units, shrink
-    angle  = math.atan(x)
-    shrink = shrink * math.cos(angle)
-    return angle/math.pi * units
-
-def  print_val( n, x ):
-    global comma
-
-    lo  = int(x)
-    hi  = lo + 1
-    alo = math.atan(lo)
-    ahi = math.atan(hi)
-    ax  = math.atan(2.0**n)
-
-    errlo = abs( alo - ax )
-    errhi = abs( ahi - ax )
-
-    if ( errlo < errhi ):
-      hi = lo
-
-    sys.stdout.write( comma + repr( int(hi) ) )
-    comma = ", "
-
-
-print ""
-print "table of arctan( 1/2^n ) for PI = " + repr(units/65536.0) + " units"
-
-# compute range of "i"
-r = [-1]
-r = r + range(32)
-
-for n in r:
-
-    if n >= 0:
-        x = 1.0/(2.0**n)    # tangent value
-    else:
-        x = 2.0**(-n)
-
-    angle  = math.atan(x)    # arctangent
-    angle2 = angle*scale     # arctangent in FT_Angle units
-
-    # determine which integer value for angle gives the best tangent
-    lo  = int(angle2)
-    hi  = lo + 1
-    tlo = math.tan(lo/scale)
-    thi = math.tan(hi/scale)
-
-    errlo = abs( tlo - x )
-    errhi = abs( thi - x )
-
-    angle2 = hi
-    if errlo < errhi:
-        angle2 = lo
-
-    if angle2 <= 0:
-        break
-
-    sys.stdout.write( comma + repr( int(angle2) ) )
-    comma = ", "
-
-    shrink = shrink * math.cos( angle2/scale)
-
-
-print
-print "shrink factor    = " + repr( shrink )
-print "shrink factor 2  = " + repr( shrink * (2.0**32) )
-print "expansion factor = " + repr(1/shrink)
-print ""
-   
\ No newline at end of file
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/.cvsignore b/nx-X11/extras/freetype2/src/tools/docmaker/.cvsignore
deleted file mode 100644
index 0d20b6487..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-*.pyc
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/content.py b/nx-X11/extras/freetype2/src/tools/docmaker/content.py
deleted file mode 100644
index ebfeb8bf4..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/content.py
+++ /dev/null
@@ -1,585 +0,0 @@
-#
-#  this file contains routines used to parse the content of documentation
-#  comment block and build a more structured objects out of them
-#
-
-from sources import *
-from utils import *
-import string, re
-
-
-# this regular expresion is used to detect code sequences. these
-# are simply code fragments embedded in '{' and '}' like in:
-#
-#  {
-#    x = y + z;
-#    if ( zookoo == 2 )
-#    {
-#      foobar();
-#    }
-#  }
-#
-# note that identation of the starting and ending accolades must be
-# exactly the same. the code sequence can contain accolades at greater
-# indentation
-#
-re_code_start = re.compile( r"(\s*){\s*$" )
-re_code_end   = re.compile( r"(\s*)}\s*$" )
-
-
-# this regular expression is used to isolate identifiers from
-# other text
-#
-re_identifier = re.compile( r'(\w*)' )
-
-
-#############################################################################
-#
-# The DocCode class is used to store source code lines.
-#
-#   'self.lines' contains a set of source code lines that will be dumped as
-#   HTML in a <PRE> tag.
-#
-#   The object is filled line by line by the parser; it strips the leading
-#   "margin" space from each input line before storing it in 'self.lines'.
-#
-class DocCode:
-
-    def __init__( self, margin, lines ):
-        self.lines  = []
-        self.words  = None
-
-        # remove margin spaces
-        for l in lines:
-            if string.strip( l[:margin] ) == "":
-                l = l[margin:]
-            self.lines.append( l )
-
-    def dump( self, prefix = "", width=60 ):
-        lines = self.dump_lines( 0, width )
-        for l in lines:
-            print prefix + l
-    
-    def dump_lines( self, margin=0, width=60 ):
-        result = []
-        for l in self.lines:
-            result.append( " "*margin + l )
-        return result
-    
-
-
-#############################################################################
-#
-# The DocPara class is used to store "normal" text paragraph.
-#
-#   'self.words' contains the list of words that make up the paragraph
-#
-class DocPara:
-
-    def __init__( self, lines ):
-        self.lines = None
-        self.words = []
-        for l in lines:
-            l = string.strip(l)
-            self.words.extend( string.split( l ) )
-
-    def dump( self, prefix = "", width = 60 ):
-        lines = self.dump_lines( 0, width )
-        for l in lines:
-            print prefix + l
-    
-    def dump_lines( self, margin=0, width = 60 ):
-        cur    = ""  # current line
-        col    = 0   # current width
-        result = []
-
-        for word in self.words:
-            ln = len(word)
-            if col > 0:
-                ln = ln+1
-
-            if col + ln > width:
-                result.append( " "*margin + cur )
-                cur = word
-                col = len(word)
-            else:
-                if col > 0:
-                    cur = cur + " "
-                cur = cur + word
-                col = col + ln
-
-        if col > 0:
-            result.append( " "*margin + cur )
-            
-        return result
-
-    
-
-
-#############################################################################
-#
-#  The DocField class is used to store a list containing either DocPara or
-#  DocCode objects. Each DocField also has an optional "name" which is used
-#  when the object corresponds to a field of value definition
-#
-class DocField:
-
-    def __init__( self, name, lines ):
-
-        self.name  = name  # can be None for normal paragraphs/sources
-        self.items = []     # list of items
-
-        mode_none  = 0   # start parsing mode
-        mode_code  = 1   # parsing code sequences
-        mode_para  = 3   # parsing normal paragraph
-
-        margin     = -1  # current code sequence indentation
-        cur_lines  = []
-
-        # now analyze the markup lines to see if they contain paragraphs,
-        # code sequences or fields definitions
-        #
-        start = 0
-        mode  = mode_none
-        for l in lines:
-
-            # are we parsing a code sequence ?
-            if mode == mode_code:
-
-                m = re_code_end.match( l )
-                if m and len(m.group(1)) <= margin:
-                    # that's it, we finised the code sequence
-                    code = DocCode( 0, cur_lines )
-                    self.items.append( code )
-                    margin    = -1
-                    cur_lines = []
-                    mode      = mode_none
-                else:
-                    # nope, continue the code sequence
-                    cur_lines.append( l[margin:] )
-            else:
-                # start of code sequence ?
-                m = re_code_start.match( l )
-                if m:
-                    # save current lines
-                    if cur_lines:
-                        para = DocPara( cur_lines )
-                        self.items.append( para )
-                        cur_lines = []
-
-                    # switch to code extraction mode
-                    margin = len(m.group(1))
-                    mode   = mode_code
-
-                else:
-                    if not string.split( l ) and cur_lines:
-                        # if the line is empty, we end the current paragraph,
-                        # if any
-                        para = DocPara( cur_lines )
-                        self.items.append( para )
-                        cur_lines = []
-                    else:
-                        # otherwise, simply add the line to the current
-                        # paragraph
-                        cur_lines.append( l )
-
-        if mode == mode_code:
-            # unexpected end of code sequence
-            code = DocCode( margin, cur_lines )
-            self.items.append( code )
-
-        elif cur_lines:
-            para = DocPara( cur_lines )
-            self.items.append( para )
-
-    def dump( self, prefix = "" ):
-        if self.field:
-            print prefix + self.field + " ::"
-            prefix = prefix + "----"
-
-        first = 1
-        for p in self.items:
-            if not first:
-                print ""
-            p.dump( prefix )
-            first = 0
-
-    def dump_lines( self, margin=0, width=60 ):
-        result = []
-        nl     = None
-        for p in self.items:
-            if nl:
-                result.append( "" )
-                
-            result.extend( p.dump_lines( margin, width ) )
-            nl = 1
-            
-        return result
-
-# this regular expression is used to detect field definitions
-#
-re_field  = re.compile( r"\s*(\w*)\s*::" )
-
-
-
-class DocMarkup:
-
-    def __init__( self, tag, lines ):
-        self.tag       = string.lower(tag)
-        self.fields    = []
-
-        cur_lines = []
-        field     = None
-        mode      = 0
-
-        for l in lines:
-            m = re_field.match( l )
-            if m:
-                # we detected the start of a new field definition
-
-                # first, save the current one
-                if cur_lines:
-                    f = DocField( field, cur_lines )
-                    self.fields.append( f )
-                    cur_lines = []
-                    field     = None
-
-                field     = m.group(1)   # record field name
-                ln        = len(m.group(0))
-                l         = " "*ln + l[ln:]
-                cur_lines = [ l ]
-            else:
-                cur_lines.append( l )
-
-        if field or cur_lines:
-            f = DocField( field, cur_lines )
-            self.fields.append( f )
-
-    def get_name( self ):
-        try:
-            return self.fields[0].items[0].words[0]
-
-        except:
-            return None
-        
-    def get_start( self ):
-        try:
-            result = ""
-            for word in self.fields[0].items[0].words:
-                result = result + " " + word
-            return result[1:]
-        
-        except:
-            return "ERROR"
-
-    def dump( self, margin ):
-        print " "*margin + "<" + self.tag + ">"
-        for f in self.fields:
-            f.dump( "  " )
-        print " "*margin + "</" + self.tag + ">"
-
-
-
-
-class DocChapter:
-
-    def __init__( self, block ):
-        self.block    = block
-        self.sections = []
-        if block:
-            self.name     = block.name
-            self.title    = block.get_markup_words( "title" )
-            self.order    = block.get_markup_words( "sections" )
-        else:
-            self.name     = "Other"
-            self.title    = string.split( "Miscellaneous" )
-            self.order    = []
-
-
-
-class DocSection:
-
-    def __init__( self, name = "Other" ):
-        self.name        = name
-        self.blocks      = {}
-        self.block_names = []  # ordered block names in section
-        self.defs        = []
-        self.abstract    = ""
-        self.description = ""
-        self.order       = []
-        self.title       = "ERROR"
-        self.chapter     = None
-
-    def add_def( self, block ):
-        self.defs.append( block )
-
-    def add_block( self, block ):
-        self.block_names.append( block.name )
-        self.blocks[ block.name ] = block
-
-    def process( self ):
-        # lookup one block that contains a valid section description
-        for block in self.defs:
-            title = block.get_markup_text( "Title" )
-            if title:
-                self.title       = title
-                self.abstract    = block.get_markup_words( "abstract" )
-                self.description = block.get_markup_items( "description" )
-                self.order       = block.get_markup_words( "order" )
-                return
-
-    def reorder( self ):
-
-        self.block_names = sort_order_list( self.block_names, self.order )
-
-
-class ContentProcessor:
-
-    def __init__( self ):
-        """initialize a block content processor"""
-        self.reset()
-
-        self.sections = {}    # dictionary of documentation sections
-        self.section  = None  # current documentation section
-
-        self.chapters = []        # list of chapters
-
-    def set_section( self, section_name ):
-        """set current section during parsing"""
-        if not self.sections.has_key( section_name ):
-            section = DocSection( section_name )
-            self.sections[ section_name ] = section
-            self.section                  = section
-        else:
-            self.section = self.sections[ section_name ]
-
-    def add_chapter( self, block ):
-        chapter = DocChapter( block )
-        self.chapters.append( chapter )
-
-
-    def reset( self ):
-        """reset the content processor for a new block"""
-        self.markups      = []
-        self.markup       = None
-        self.markup_lines = []
-
-    def add_markup( self ):
-        """add a new markup section"""
-        if self.markup and self.markup_lines:
-
-            # get rid of last line of markup if it's empty
-            marks = self.markup_lines
-            if len(marks) > 0 and not string.strip(marks[-1]):
-                self.markup_lines = marks[:-1]
-
-            m = DocMarkup( self.markup, self.markup_lines )
-
-            self.markups.append( m )
-
-            self.markup       = None
-            self.markup_lines = []
-
-
-    def process_content( self, content ):
-        """process a block content and return a list of DocMarkup objects
-           corresponding to it"""
-        markup       = None
-        markup_lines = []
-        first        = 1
-
-        for line in content:
-            found = None
-            for t in re_markup_tags:
-                m = t.match( line )
-                if m:
-                    found  = string.lower(m.group(1))
-                    prefix = len(m.group(0))
-                    line   = " "*prefix + line[prefix:]   # remove markup from line
-                    break
-
-            # is it the start of a new markup section ?
-            if found:
-                first = 0
-                self.add_markup()  # add current markup content
-                self.markup = found
-                if len(string.strip( line )) > 0:
-                    self.markup_lines.append( line )
-            elif first == 0:
-                self.markup_lines.append( line )
-
-        self.add_markup()
-
-        return self.markups
-
-
-    def  parse_sources( self, source_processor ):
-        blocks = source_processor.blocks
-        count  = len(blocks)
-        for n in range(count):
-
-            source = blocks[n]
-            if source.content:
-                # this is a documentation comment, we need to catch
-                # all following normal blocks in the "follow" list
-                #
-                follow = []
-                m = n+1
-                while m < count and not blocks[m].content:
-                    follow.append( blocks[m] )
-                    m = m+1
-
-                doc_block = DocBlock( source, follow, self )
-
-
-    def  finish( self ):
-
-        # process all sections to extract their abstract, description
-        # and ordered list of items
-        #
-        for sec in self.sections.values():
-            sec.process()
-
-        # process chapters to check that all sections are correctly
-        # listed there
-        for chap in self.chapters:
-            for sec in chap.order:
-                if self.sections.has_key(sec):
-                    section = self.sections[ sec ]
-                    section.chapter = chap
-                    section.reorder()
-                    chap.sections.append( section )
-                else:
-                    sys.stderr.write( "WARNING: chapter '" +
-                        chap.name + "' in " + chap.block.location() + \
-                        " lists unknown section '" + sec + "'\n" )
-
-        # check that all sections are in a chapter
-        #
-        others = []
-        for sec in self.sections.values():
-            if not sec.chapter:
-                others.append(sec)
-
-        # create a new special chapter for all remaining sections
-        # when necessary
-        #
-        if others:
-            chap = DocChapter( None )
-            chap.sections = others
-            self.chapters.append( chap )
-
-
-
-class DocBlock:
-
-    def __init__( self, source, follow, processor ):
-
-        processor.reset()
-
-        self.source    = source
-        self.code      = []
-        self.type      = "ERRTYPE"
-        self.name      = "ERRNAME"
-        self.section   = processor.section
-        self.markups   = processor.process_content( source.content )
-
-        # compute block type from first markup tag
-        try:
-            self.type = self.markups[0].tag
-        except:
-            pass
-
-
-        # compute block name from first markup paragraph
-        try:
-            markup = self.markups[0]
-            para   = markup.fields[0].items[0]
-            name   = para.words[0]
-            m = re_identifier.match( name )
-            if m:
-                name = m.group(1)
-            self.name = name
-        except:
-            pass
-
-        # detect new section starts
-        if self.type == "section":
-            processor.set_section( self.name )
-            processor.section.add_def( self )
-
-        # detect new chapter
-        elif self.type == "chapter":
-            processor.add_chapter( self )
-
-        else:
-            processor.section.add_block( self )
-
-        # now, compute the source lines relevant to this documentation
-        # block. We keep normal comments in for obvious reasons (??)
-        source = []
-        for b in follow:
-            if b.format:
-                break
-            for l in b.lines:
-                # we use "/* */" as a separator
-                if re_source_sep.match( l ):
-                    break
-                source.append( l )
-
-        # now strip the leading and trailing empty lines from the sources
-        start = 0
-        end   = len( source )-1
-
-        while start < end and not string.strip( source[start] ):
-            start = start + 1
-
-        while start < end and not string.strip( source[end] ):
-            end = end - 1
-
-        source = source[start:end+1]
-
-        self.code = source
-
-
-    def location( self ):
-        return self.source.location()
-
-
-
-    def get_markup( self, tag_name ):
-        """return the DocMarkup corresponding to a given tag in a block"""
-        for m in self.markups:
-            if m.tag == string.lower(tag_name):
-                return m
-        return None
-
-
-    def get_markup_name( self, tag_name ):
-        """return the name of a given primary markup in a block"""
-        try:
-            m = self.get_markup( tag_name )
-            return m.get_name()
-        except:
-            return None
-
-
-    def get_markup_words( self, tag_name ):
-        try:
-            m = self.get_markup( tag_name )
-            return m.fields[0].items[0].words
-        except:
-            return []
-
-
-    def get_markup_text( self, tag_name ):
-        result = self.get_markup_words( tag_name )
-        return string.join( result )
-
-
-    def get_markup_items( self, tag_name ):
-        try:
-            m = self.get_markup( tag_name )
-            return m.fields[0].items
-        except:
-            return None
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/docbeauty.py b/nx-X11/extras/freetype2/src/tools/docmaker/docbeauty.py
deleted file mode 100644
index 94b266b6d..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/docbeauty.py
+++ /dev/null
@@ -1,109 +0,0 @@
-#!/usr/bin/env python
-#
-#  DocBeauty (c) 2003, 2004 David Turner <david@freetype.org>
-#
-# This program is used to beautify the documentation comments used
-# in the FreeType 2 public headers.
-#
-
-from sources   import *
-from content   import *
-from utils     import *
-
-import utils
-
-import sys, os, time, string, getopt
-
-content_processor = ContentProcessor()
-
-
-def beautify_block( block ):
-    if block.content:
-        content_processor.reset()
-
-        markups = content_processor.process_content( block.content )
-        text    = []
-        first   = 1
-
-        for markup in markups:
-            text.extend( markup.beautify( first ) )
-            first = 0
-        
-        # now beautify the documentation "borders" themselves
-        lines = [ " /*************************************************************************" ]
-        for l in text:
-            lines.append( "  *" + l )
-        lines.append( "  */" )
-        
-        block.lines = lines
-        
-
-def usage():
-    print "\nDocBeauty 0.1 Usage information\n"
-    print "  docbeauty [options] file1 [ file2 ... ]\n"
-    print "using the following options:\n"
-    print "  -h : print this page"
-    print "  -b : backup original files with the 'orig' extension"
-    print ""
-    print "  --backup : same as -b"
-    
-
-def main( argv ):
-    """main program loop"""
-
-    global output_dir
-
-    try:
-        opts, args = getopt.getopt( sys.argv[1:],
-                                    "hb",
-                                    [ "help", "backup" ] )
-
-    except getopt.GetoptError:
-        usage()
-        sys.exit( 2 )
-
-    if args == []:
-        usage()
-        sys.exit( 1 )
-
-    # process options
-    #
-    output_dir = None
-    do_backup  = None
-
-    for opt in opts:
-        if opt[0] in ( "-h", "--help" ):
-            usage()
-            sys.exit( 0 )
-
-        if opt[0] in ( "-b", "--backup" ):
-            do_backup = 1
-
-    # create context and processor
-    source_processor  = SourceProcessor()
-
-    # retrieve the list of files to process
-    file_list = make_file_list( args )
-    for filename in file_list:
-        source_processor.parse_file( filename )
-        for block in source_processor.blocks:
-            beautify_block( block )
-        new_name = filename + ".new"
-        ok       = None
-        try:
-            file = open( new_name, "wt" )
-            for block in source_processor.blocks:
-                for line in block.lines:
-                    file.write( line )
-                    file.write( "\n" )
-            file.close()
-        except:
-            ok = 0
-
-# if called from the command line
-#
-if __name__ == '__main__':
-    main( sys.argv )
-
-
-# eof
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/docmaker.py b/nx-X11/extras/freetype2/src/tools/docmaker/docmaker.py
deleted file mode 100644
index 9da4bbf8e..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/docmaker.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/env python
-#
-#  DocMaker (c) 2002, 2004 David Turner <david@freetype.org>
-#
-# This program is a re-write of the original DocMaker took used
-# to generate the API Reference of the FreeType font engine
-# by converting in-source comments into structured HTML.
-#
-# This new version is capable of outputting XML data, as well
-# as accepts more liberal formatting options.
-#
-# It also uses regular expression matching and substitution
-# to speed things significantly.
-#
-
-from sources   import *
-from content   import *
-from utils     import *
-from formatter import *
-from tohtml    import *
-
-import utils
-
-import sys, os, time, string, glob, getopt
-
-
-def usage():
-    print "\nDocMaker Usage information\n"
-    print "  docmaker [options] file1 [ file2 ... ]\n"
-    print "using the following options:\n"
-    print "  -h : print this page"
-    print "  -t : set project title, as in '-t \"My Project\"'"
-    print "  -o : set output directory, as in '-o mydir'"
-    print "  -p : set documentation prefix, as in '-p ft2'"
-    print ""
-    print "  --title  : same as -t, as in '--title=\"My Project\"'"
-    print "  --output : same as -o, as in '--output=mydir'"
-    print "  --prefix : same as -p, as in '--prefix=ft2'"
-    
-
-def main( argv ):
-    """main program loop"""
-
-    global output_dir
-
-    try:
-        opts, args = getopt.getopt( sys.argv[1:],
-                                    "ht:o:p:",
-                                    [ "help", "title=", "output=", "prefix=" ] )
-
-    except getopt.GetoptError:
-        usage()
-        sys.exit( 2 )
-
-    if args == []:
-        usage()
-        sys.exit( 1 )
-
-    # process options
-    #
-    project_title  = "Project"
-    project_prefix = None
-    output_dir     = None
-
-    for opt in opts:
-        if opt[0] in ( "-h", "--help" ):
-            usage()
-            sys.exit( 0 )
-
-        if opt[0] in ( "-t", "--title" ):
-            project_title = opt[1]
-
-        if opt[0] in ( "-o", "--output" ):
-            utils.output_dir = opt[1]
-
-        if opt[0] in ( "-p", "--prefix" ):
-            project_prefix = opt[1]
-
-    check_output( )
-
-    # create context and processor
-    source_processor  = SourceProcessor()
-    content_processor = ContentProcessor()
-
-    # retrieve the list of files to process
-    file_list = make_file_list( args )
-    for filename in file_list:
-        source_processor.parse_file( filename )
-        content_processor.parse_sources( source_processor )
-        
-    # process sections
-    content_processor.finish()
-
-    formatter = HtmlFormatter( content_processor, project_title, project_prefix )
-
-    formatter.toc_dump()
-    formatter.index_dump()
-    formatter.section_dump_all()
-
-
-# if called from the command line
-#
-if __name__ == '__main__':
-    main( sys.argv )
-
-
-# eof
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/formatter.py b/nx-X11/extras/freetype2/src/tools/docmaker/formatter.py
deleted file mode 100644
index 63ecddc97..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/formatter.py
+++ /dev/null
@@ -1,203 +0,0 @@
-from sources import *
-from content import *
-from utils   import *
-
-# This is the base Formatter class. its purpose is to convert
-# a content processor's data into specific documents (i.e. table of
-# contents, global index, and individual API reference indices).
-#
-# You'll need to sub-class it to output anything sensible.  For example,
-# the file tohtml.py contains the definition of the HtmlFormatter sub-class
-# used to output, you guessed it, HTML.
-#
-
-class Formatter:
-
-    def __init__( self, processor ):
-
-        self.processor   = processor
-        self.identifiers = {}
-        self.chapters    = processor.chapters
-        self.sections    = processor.sections.values()
-        self.block_index = []
-
-        # store all blocks in a dictionary
-        self.blocks      = []
-        for section in self.sections:
-            for block in section.blocks.values():
-                self.add_identifier( block.name, block )
-                    
-                # add enumeration values to the index, since this is useful
-                for markup in block.markups:
-                    if markup.tag == 'values':
-                        for field in markup.fields:
-                            self.add_identifier( field.name, block )
-
-
-        self.block_index = self.identifiers.keys()
-        self.block_index.sort( index_sort )
-
-
-    def add_identifier( self, name, block ):
-        if self.identifiers.has_key( name ):
-            # duplicate name !!
-            sys.stderr.write( \
-               "WARNING: duplicate definition for '" + name + "' in " + \
-               block.location() + ", previous definition in " +         \
-               self.identifiers[ name ].location() + "\n" )
-        else:
-            self.identifiers[name] = block
-              
-
-    #
-    #  Formatting the table of contents
-    #
-
-    def  toc_enter( self ):
-        pass
-    
-    def  toc_chapter_enter( self, chapter ):
-        pass
-    
-    def  toc_section_enter( self, section ):
-        pass
-        
-    def  toc_section_exit( self, section ):
-        pass
-        
-    def  toc_chapter_exit( self, chapter ):
-        pass
-
-    def  toc_index( self, index_filename ):
-        pass
-    
-    def  toc_exit( self ):
-        pass
-
-    def  toc_dump( self, toc_filename = None, index_filename = None ):
-        
-        output = None
-        if toc_filename:
-            output = open_output( toc_filename )
-        
-        self.toc_enter()
-    
-        for chap in self.processor.chapters:
-    
-            self.toc_chapter_enter( chap )
-    
-            for section in chap.sections:
-                self.toc_section_enter( section )
-                self.toc_section_exit( section )
-    
-            self.toc_chapter_exit ( chap )
-    
-        self.toc_index( index_filename )
-    
-        self.toc_exit()
-
-        if output:
-            close_output( output )
-    
-    #
-    #  Formatting the index
-    #
-
-    def  index_enter( self ):
-        pass
-
-    def  index_name_enter( self, name ):
-        pass
-
-    def  index_name_exit( self, name ):
-        pass
-
-    def  index_exit( self ):
-        pass
-
-    def  index_dump( self, index_filename = None ):
-        
-        output = None
-        if index_filename:
-            output = open_output( index_filename )
-
-        self.index_enter()
-
-        for name in self.block_index:
-            self.index_name_enter( name )
-            self.index_name_exit ( name )
-
-        self.index_exit()
-     
-        if output:
-            close_output( output )
-     
-    #
-    #  Formatting a section
-    #
-    def  section_enter( self, section ):
-        pass
-    
-    def  block_enter( self, block ):
-        pass
-    
-    def  markup_enter( self, markup, block = None ):
-        pass
-    
-    def  field_enter( self, field, markup = None, block = None ):
-        pass
-        
-    def  field_exit( self, field, markup = None, block = None ):
-        pass
-    
-    def  markup_exit( self, markup, block = None ):
-        pass
-        
-    def  block_exit( self, block ):
-        pass
-
-    def  section_exit( self, section ):
-        pass
-
-
-    def  section_dump( self, section, section_filename = None ):
-        
-        output = None
-        if section_filename:
-            output = open_output( section_filename )
-        
-        self.section_enter( section )
-
-        for name in section.block_names:
-            block = self.identifiers[ name ]
-            self.block_enter( block )
-
-            for markup in block.markups[1:]:   # always ignore first markup !!
-                self.markup_enter( markup, block )
-
-                for field in markup.fields:
-                    self.field_enter( field, markup, block )
-
-                    self.field_exit ( field, markup, block )
-
-                self.markup_exit( markup, block )
-
-            self.block_exit( block )
-
-        self.section_exit ( section )
-
-        if output:
-            close_output( output )
-
-
-    def section_dump_all( self ):
-        for section in self.sections:
-            self.section_dump( section )
-
-    #
-    #  Formatting a block
-    #
-
-
-
-
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/sources.py b/nx-X11/extras/freetype2/src/tools/docmaker/sources.py
deleted file mode 100644
index 492300562..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/sources.py
+++ /dev/null
@@ -1,355 +0,0 @@
-#
-# this file contains definitions of classes needed to decompose
-# C sources files into a series of multi-line "blocks". There are
-# two kinds of blocks:
-#
-#   - normal blocks, which contain source code or ordinary comments
-#
-#   - documentation blocks, which have restricted formatting, and
-#     whose text always start with a documentation markup tag like
-#     "<Function>", "<Type>", etc..
-#
-# the routines used to process the content of documentation blocks
-# are not contained here, but in "content.py"
-#
-# the classes and methods found here only deal with text parsing
-# and basic documentation block extraction
-#
-import fileinput, re, sys, os, string
-
-
-
-
-
-
-################################################################
-##
-##  BLOCK FORMAT PATTERN
-##
-##   A simple class containing compiled regular expressions used
-##   to detect potential documentation format block comments within
-##   C source code
-##
-##   note that the 'column' pattern must contain a group that will
-##   be used to "unbox" the content of documentation comment blocks
-##
-class SourceBlockFormat:
-
-    def __init__( self, id, start, column, end ):
-        """create a block pattern, used to recognize special documentation blocks"""
-
-        self.id     = id
-        self.start  = re.compile( start, re.VERBOSE )
-        self.column = re.compile( column, re.VERBOSE )
-        self.end    = re.compile( end, re.VERBOSE )
-
-
-
-#
-# format 1 documentation comment blocks look like the following:
-#
-#    /************************************/
-#    /*                                  */
-#    /*                                  */
-#    /*                                  */
-#    /************************************/
-#
-# we define a few regular expressions here to detect them
-#
-
-start = r'''
-  \s*       # any number of whitespace
-  /\*{2,}/  # followed by '/' and at least two asterisks then '/'
-  \s*$      # eventually followed by whitespace
-'''
-
-column = r'''
-  \s*      # any number of whitespace
-  /\*{1}   # followed by '/' and precisely one asterisk
-  ([^*].*) # followed by anything (group 1)
-  \*{1}/   # followed by one asterisk and a '/'
-  \s*$     # enventually followed by whitespace
-'''
-
-re_source_block_format1 = SourceBlockFormat( 1, start, column, start )
-
-#
-# format 2 documentation comment blocks look like the following:
-#
-#    /************************************ (at least 2 asterisks)
-#     *
-#     *
-#     *
-#     *
-#     **/       (1 or more asterisks at the end)
-#
-# we define a few regular expressions here to detect them
-#
-start = r'''
-  \s*     # any number of whitespace
-  /\*{2,} # followed by '/' and at least two asterisks
-  \s*$    # eventually followed by whitespace
-'''
-
-column = r'''
-  \s*         # any number of whitespace
-  \*{1}       # followed by precisely one asterisk
-  (.*)        # then anything (group1)
-'''
-
-end = r'''
-  \s*     # any number of whitespace
-  \*+/    # followed by at least one asterisk, then '/'
-'''
-
-re_source_block_format2 = SourceBlockFormat( 2, start, column, end )
-
-#
-# the list of supported documentation block formats, we could add new ones
-# relatively easily
-#
-re_source_block_formats = [ re_source_block_format1, re_source_block_format2 ]
-
-
-#
-# the following regular expressions corresponds to markup tags
-# within the documentation comment blocks. they're equivalent
-# despite their different syntax
-#
-# notice how each markup tag _must_ begin a new line
-#
-re_markup_tag1 = re.compile( r'''\s*<(\w*)>''' )  # <xxxx> format
-re_markup_tag2 = re.compile( r'''\s*@(\w*):''' )  # @xxxx: format
-
-#
-# the list of supported markup tags, we could add new ones relatively
-# easily
-#
-re_markup_tags = [ re_markup_tag1, re_markup_tag2 ]
-
-#
-# used to detect a cross-reference, after markup tags have been stripped
-#
-re_crossref = re.compile( r'@(\w*)(.*)' )
-
-#
-# used to detect italic and bold styles in paragraph text
-#
-re_italic = re.compile( r'_(\w+)_' )
-re_bold   = re.compile( r'\*(\w+)\*' )
-
-#
-# used to detect the end of commented source lines
-#
-re_source_sep = re.compile( r'\s*/\*\s*\*/' )
-
-#
-# used to perform cross-reference within source output
-#
-re_source_crossref = re.compile( r'(\W*)(\w*)' )
-
-#
-# a list of reserved source keywords
-#
-re_source_keywords = re.compile( '''( typedef |
-                                       struct |
-                                       enum   |
-                                       union  |
-                                       const  |
-                                       char   |
-                                       int    |
-                                       short  |
-                                       long   |
-                                       void   |
-                                       signed |
-                                       unsigned |
-                                       \#include |
-                                       \#define  |
-                                       \#undef   |
-                                       \#if      |
-                                       \#ifdef   |
-                                       \#ifndef  |
-                                       \#else    |
-                                       \#endif   )''', re.VERBOSE )
-
-################################################################
-##
-##  SOURCE BLOCK CLASS
-##
-##   A SourceProcessor is in charge or reading a C source file
-##   and decomposing it into a series of different "SourceBlocks".
-##   each one of these blocks can be made of the following data:
-##
-##   - A documentation comment block that starts with "/**" and
-##     whose exact format will be discussed later
-##
-##   - normal sources lines, include comments
-##
-##   the important fields in a text block are the following ones:
-##
-##     self.lines   : a list of text lines for the corresponding block
-##
-##     self.content : for documentation comment blocks only, this is the
-##                    block content that has been "unboxed" from its
-##                    decoration. This is None for all other blocks
-##                    (i.e. sources or ordinary comments with no starting
-##                     markup tag)
-##
-class SourceBlock:
-    def __init__( self, processor, filename, lineno, lines ):
-        self.processor = processor
-        self.filename  = filename
-        self.lineno    = lineno
-        self.lines     = lines[:]
-        self.format    = processor.format
-        self.content   = []
-
-        if self.format == None:
-            return
-
-        words = []
-
-        # extract comment lines
-        lines = []
-
-        for line0 in self.lines:
-            m = self.format.column.match( line0 )
-            if m:
-                lines.append( m.group(1) )
-
-        # now, look for a markup tag
-        for l in lines:
-            l = string.strip(l)
-            if len(l) > 0:
-                for tag in re_markup_tags:
-                    if tag.match( l ):
-                        self.content = lines
-                return
-
-    def location( self ):
-        return "(" + self.filename + ":" + repr(self.lineno) + ")"
-
-
-    # debugging only - not used in normal operations
-    def dump( self ):
-
-        if self.content:
-            print "{{{content start---"
-            for l in self.content:
-                print l
-            print "---content end}}}"
-            return
-
-        fmt = ""
-        if self.format:
-            fmt = repr(self.format.id) + " "
-
-        for line in self.lines:
-            print line
-
-
-################################################################
-##
-##  SOURCE PROCESSOR CLASS
-##
-##   The SourceProcessor is in charge or reading a C source file
-##   and decomposing it into a series of different "SourceBlock"
-##   objects.
-##
-##   each one of these blocks can be made of the following data:
-##
-##   - A documentation comment block that starts with "/**" and
-##     whose exact format will be discussed later
-##
-##   - normal sources lines, include comments
-##
-##
-class SourceProcessor:
-
-    def  __init__( self ):
-        """initialize a source processor"""
-        self.blocks   = []
-        self.filename = None
-        self.format   = None
-        self.lines    = []
-
-    def  reset( self ):
-        """reset a block processor, clean all its blocks"""
-        self.blocks = []
-        self.format = None
-
-
-    def  parse_file( self, filename ):
-        """parse a C source file, and adds its blocks to the processor's list"""
-
-        self.reset()
-
-        self.filename = filename
-
-        fileinput.close()
-        self.format    = None
-        self.lineno    = 0
-        self.lines     = []
-
-        for line in fileinput.input( filename ):
-
-            # strip trailing newlines, important on Windows machines !!
-            if  line[-1] == '\012':
-                line = line[0:-1]
-
-            if self.format == None:
-                self.process_normal_line( line )
-
-            else:
-                if self.format.end.match( line ):
-                    # that's a normal block end, add it to lines and
-                    # create a new block
-                    self.lines.append( line )
-                    self.add_block_lines()
-
-                elif self.format.column.match( line ):
-                    # that's a normal column line, add it to 'lines'
-                    self.lines.append( line )
-
-                else:
-                    # humm.. this is an unexcepted block end,
-                    # create a new block, but don't process the line
-                    self.add_block_lines()
-
-                    # we need to process the line again
-                    self.process_normal_line( line )
-
-        # record the last lines
-        self.add_block_lines()
-
-
-
-    def process_normal_line( self, line ):
-        """process a normal line and check if it's the start of a new block"""
-        for f in re_source_block_formats:
-          if f.start.match( line ):
-            self.add_block_lines()
-            self.format = f
-            self.lineno = fileinput.filelineno()
-
-        self.lines.append( line )
-
-
-
-    def add_block_lines( self ):
-        """add the current accumulated lines, and create a new block"""
-        if self.lines != []:
-            block = SourceBlock( self, self.filename, self.lineno, self.lines )
-
-            self.blocks.append( block )
-            self.format = None
-            self.lines  = []
-
-
-    # debugging only, not used in normal operations
-    def dump( self ):
-        """print all blocks in a processor"""
-        for b in self.blocks:
-            b.dump()
-
-# eof
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/tohtml.py b/nx-X11/extras/freetype2/src/tools/docmaker/tohtml.py
deleted file mode 100644
index 2a3cf239b..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/tohtml.py
+++ /dev/null
@@ -1,489 +0,0 @@
-from sources import *
-from content import *
-from formatter import *
-
-import time
-
-# The following defines the HTML header used by all generated pages.
-#
-html_header_1 = """\
-<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>"""
-
-html_header_2= """ API Reference</title>
-<style type="text/css">
-  body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
-         color: #000000;
-         background: #FFFFFF; }
-
-  p { text-align: justify; }
-  h1 { text-align: center; }
-  li { text-align: justify; }
-
-  a:link { color: #0000EF; }
-  a:visited { color: #51188E; }
-  a:hover { color: #FF0000; }
-
-  span.keyword { font-family: monospace;
-                 text-align: left;
-                 white-space: pre;
-                 color: darkblue; }
-
-  pre.colored { color: blue; }
-
-  ul.empty { list-style-type: none; }
-</style>
-</head>
-<body>
-<center><h1>"""
-
-html_header_3=""" API Reference</h1></center>
-"""
-
-
-
-# The HTML footer used by all generated pages.
-#
-html_footer = """\
-</body>
-</html>"""
-
-# The header and footer used for each section.
-#
-section_title_header = "<center><h1>"
-section_title_footer = "</h1></center>"
-
-# The header and footer used for code segments.
-#
-code_header = '<pre class="colored">'
-code_footer = '</pre>'
-
-# Paragraph header and footer.
-#
-para_header = "<p>"
-para_footer = "</p>"
-
-# Block header and footer.
-#
-block_header = '<table align=center width="75%"><tr><td>'
-block_footer = '</td></tr></table><hr width="75%">'
-
-# Description header/footer.
-#
-description_header = '<table align=center width="87%"><tr><td>'
-description_footer = "</td></tr></table><br>"
-
-# Marker header/inter/footer combination.
-#
-marker_header = '<table align=center width="87%" cellpadding=5><tr bgcolor="#EEEEFF"><td><em><b>'
-marker_inter  = "</b></em></td></tr><tr><td>"
-marker_footer = "</td></tr></table>"
-
-# Source code extracts header/footer.
-#
-source_header = '<table align=center width="87%"><tr bgcolor="#D6E8FF"><td><pre>\n'
-source_footer = "\n</pre></table><br>"
-
-# Chapter header/inter/footer.
-#
-chapter_header = '<br><table align=center width="75%"><tr><td><h2>'
-chapter_inter  = '</h2><ul class="empty"><li>'
-chapter_footer = '</li></ul></td></tr></table>'
-
-
-# source language keyword coloration/styling
-#
-keyword_prefix = '<span class="keyword">'
-keyword_suffix = '</span>'
-
-section_synopsis_header = '<h2>Synopsis</h2>'
-section_synopsis_footer = ''
-
-# Translate a single line of source to HTML.  This will convert
-# a "<" into "&lt.", ">" into "&gt.", etc.
-#
-def html_quote( line ):
-    result = string.replace( line,   "&", "&amp;" )
-    result = string.replace( result, "<", "&lt;" )
-    result = string.replace( result, ">", "&gt;" )
-    return result
-
-
-# same as 'html_quote', but ignores left and right brackets
-#
-def html_quote0( line ):
-    return string.replace( line, "&", "&amp;" )
-
-
-def dump_html_code( lines, prefix = "" ):
-    # clean the last empty lines
-    #
-    l = len( self.lines )
-    while l > 0 and string.strip( self.lines[l - 1] ) == "":
-        l = l - 1
-
-    # The code footer should be directly appended to the last code
-    # line to avoid an additional blank line.
-    #
-    print prefix + code_header,
-    for line in self.lines[0 : l+1]:
-        print '\n' + prefix + html_quote(line),
-    print prefix + code_footer,
-
-
-
-class HtmlFormatter(Formatter):
-
-    def __init__( self, processor, project_title, file_prefix ):
-
-        Formatter.__init__( self, processor )
-
-        global html_header_1, html_header_2, html_header_3, html_footer
-
-        if file_prefix:
-            file_prefix = file_prefix + "-"
-        else:
-            file_prefix = ""
-
-        self.project_title = project_title
-        self.file_prefix   = file_prefix
-        self.html_header   = html_header_1 + project_title + html_header_2 + \
-                             project_title + html_header_3
-
-        self.html_footer = "<center><font size=""-2"">generated on " +   \
-                            time.asctime( time.localtime( time.time() ) ) + \
-                           "</font></center>" + html_footer
-
-        self.columns = 3
-
-    def  make_section_url( self, section ):
-        return self.file_prefix + section.name + ".html"
-
-
-    def  make_block_url( self, block ):
-        return self.make_section_url( block.section ) + "#" + block.name
-
-
-    def  make_html_words( self, words ):
-        """ convert a series of simple words into some HTML text """
-        line = ""
-        if words:
-            line = html_quote( words[0] )
-            for w in words[1:]:
-                line = line + " " + html_quote( w )
-
-        return line
-
-
-    def  make_html_word( self, word ):
-        """analyze a simple word to detect cross-references and styling"""
-        # look for cross-references
-        #
-        m = re_crossref.match( word )
-        if m:
-            try:
-                name = m.group(1)
-                rest = m.group(2)
-                block = self.identifiers[ name ]
-                url   = self.make_block_url( block )
-                return '<a href="' + url + '">' + name + '</a>' + rest
-            except:
-                return '?' + name + '?' + rest
-
-        # look for italics and bolds
-        m = re_italic.match( word )
-        if m:
-            name = m.group(1)
-            return '<i>'+name+'</i>'
-
-        m = re_bold.match( word )
-        if m:
-            name = m.group(1)
-            return '<b>'+name+'</b>'
-
-        return html_quote(word)
-
-
-    def  make_html_para( self, words ):
-        """ convert a paragraph's words into tagged HTML text, handle xrefs """
-        line = ""
-        if words:
-            line = self.make_html_word( words[0] )
-            for word in words[1:]:
-                line = line + " " + self.make_html_word( word )
-
-        return "<p>" + line + "</p>"
-
-
-    def  make_html_code( self, lines ):
-        """ convert a code sequence to HTML """
-        line = code_header + '\n'
-        for l in lines:
-            line = line + html_quote( l ) + '\n'
-
-        return line + code_footer
-
-
-    def  make_html_items( self, items ):
-        """ convert a field's content into some valid HTML """
-        lines = []
-        for item in items:
-            if item.lines:
-                lines.append( self.make_html_code( item.lines ) )
-            else:
-                lines.append( self.make_html_para( item.words ) )
-
-        return string.join( lines, '\n' )
-
-
-    def  print_html_items( self, items ):
-        print self.make_html_items( items )
-
-
-    def print_html_field( self, field ):
-        if field.name:
-            print "<table><tr valign=top><td><b>"+field.name+"</b></td><td>"
-
-        print self.make_html_items( field.items )
-
-        if field.name:
-            print "</td></tr></table>"
-
-
-    def html_source_quote( self, line, block_name = None ):
-        result = ""
-        while line:
-            m = re_source_crossref.match( line )
-            if m:
-                name   = m.group(2)
-                prefix = html_quote( m.group(1) )
-                length = len( m.group(0) )
-
-                if name == block_name:
-                    # this is the current block name, if any
-                    result = result + prefix + '<b>' + name + '</b>'
-
-                elif re_source_keywords.match(name):
-                    # this is a C keyword
-                    result = result + prefix + keyword_prefix + name + keyword_suffix
-
-                elif self.identifiers.has_key(name):
-                    # this is a known identifier
-                    block = self.identifiers[name]
-                    result = result + prefix + '<a href="' + \
-                             self.make_block_url(block) + '">' + name + '</a>'
-                else:
-                    result = result + html_quote(line[ : length ])
-
-                line = line[ length : ]
-            else:
-                result = result + html_quote(line)
-                line   = []
-
-        return result
-
-
-    def print_html_field_list( self, fields ):
-        print "<table cellpadding=3>"
-        for field in fields:
-            print "<tr valign=top><td><b>" + field.name + "</b></td><td>"
-            self.print_html_items( field.items )
-            print "</td></tr>"
-        print "</table>"
-
-
-    def print_html_markup( self, markup ):
-        table_fields = []
-        for field in markup.fields:
-            if field.name:
-                # we begin a new series of field or value definitions, we
-                # will record them in the 'table_fields' list before outputting
-                # all of them as a single table
-                #
-                table_fields.append( field )
-
-            else:
-                if table_fields:
-                    self.print_html_field_list( table_fields )
-                    table_fields = []
-
-                self.print_html_items( field.items )
-
-        if table_fields:
-            self.print_html_field_list( table_fields )
-
-    #
-    #  Formatting the index
-    #
-
-    def  index_enter( self ):
-        print self.html_header
-        self.index_items = {}
-
-    def  index_name_enter( self, name ):
-        block = self.identifiers[ name ]
-        url   = self.make_block_url( block )
-        self.index_items[ name ] = url
-
-    def  index_exit( self ):
-
-        # block_index already contains the sorted list of index names
-        count = len( self.block_index )
-        rows  = (count + self.columns - 1)/self.columns
-
-        print "<table align=center border=0 cellpadding=0 cellspacing=0>"
-        for r in range(rows):
-            line = "<tr>"
-            for c in range(self.columns):
-                i = r + c*rows
-                if i < count:
-                    bname = self.block_index[ r + c*rows ]
-                    url   = self.index_items[ bname ]
-                    line = line + '<td><a href="' + url + '">' + bname + '</a></td>'
-                else:
-                    line = line + '<td></td>'
-            line = line + "</tr>"
-            print line
-
-        print "</table>"
-        print self.html_footer
-        self.index_items = {}
-
-    def  index_dump( self, index_filename = None ):
-
-        if index_filename == None:
-            index_filename = self.file_prefix + "index.html"
-
-        Formatter.index_dump( self, index_filename )
-
-    #
-    #  Formatting the table of content
-    #
-    def  toc_enter( self ):
-        print self.html_header
-        print "<center><h1>Table of Contents</h1></center>"
-
-    def  toc_chapter_enter( self, chapter ):
-        print  chapter_header + string.join(chapter.title) + chapter_inter
-        print "<table cellpadding=5>"
-
-    def  toc_section_enter( self, section ):
-        print "<tr valign=top><td>"
-        print '<a href="' + self.make_section_url( section ) + '">' + \
-               section.title + '</a></td><td>'
-
-        print self.make_html_para( section.abstract )
-
-    def  toc_section_exit( self, section ):
-        print "</td></tr>"
-
-    def  toc_chapter_exit( self, chapter ):
-        print "</table>"
-        print  chapter_footer
-
-    def  toc_index( self, index_filename ):
-        print chapter_header + '<a href="' + index_filename + '">Global Index</a>' + chapter_inter + chapter_footer
-
-    def  toc_exit( self ):
-        print self.html_footer
-
-    def  toc_dump( self, toc_filename = None, index_filename = None ):
-        if toc_filename == None:
-            toc_filename = self.file_prefix + "toc.html"
-
-        if index_filename == None:
-            index_filename = self.file_prefix + "index.html"
-
-        Formatter.toc_dump( self, toc_filename, index_filename )
-
-    #
-    #  Formatting sections
-    #
-    def  section_enter( self, section ):
-        print self.html_header
-
-        print section_title_header
-        print section.title
-        print section_title_footer
-
-        # print section synopsys
-        print section_synopsis_header
-        print "<table align=center cellspacing=5 cellpadding=0 border=0>"
-
-        maxwidth = 0
-        for b in section.blocks.values():
-            if len(b.name) > maxwidth:
-                maxwidth = len(b.name)
-
-        width  = 70  # XXX magic number
-        columns = width / maxwidth
-        if columns < 1:
-            columns = 1
-
-        count   = len(section.block_names)
-        rows    = (count + columns-1)/columns
-        for r in range(rows):
-            line = "<tr>"
-            for c in range(columns):
-                i = r + c*rows
-                line = line + '<td></td><td>'
-                if i < count:
-                    name = section.block_names[i]
-                    line = line + '<a href="#' + name + '">' + name + '</a>'
-
-                line = line + '</td>'
-            line = line + "</tr>"
-            print line
-
-        print "</table><br><br>"
-        print section_synopsis_footer
-
-        print description_header
-        print self.make_html_items( section.description )
-        print description_footer
-
-    def  block_enter( self, block ):
-        print block_header
-
-        # place html anchor if needed
-        if block.name:
-            print '<h4><a name="' + block.name + '">' + block.name + '</a></h4>'
-
-        # dump the block C source lines now
-        if block.code:
-            print source_header
-            for l in block.code:
-                print self.html_source_quote( l, block.name )
-            print source_footer
-
-
-    def  markup_enter( self, markup, block ):
-        if markup.tag == "description":
-            print description_header
-        else:
-            print marker_header + markup.tag + marker_inter
-
-        self.print_html_markup( markup )
-
-    def  markup_exit( self, markup, block ):
-        if markup.tag == "description":
-            print description_footer
-        else:
-            print marker_footer
-
-    def  block_exit( self, block ):
-        print block_footer
-
-
-    def  section_exit( self, section ):
-        print html_footer
-
-
-    def section_dump_all( self ):
-        for section in self.sections:
-            self.section_dump( section, self.file_prefix + section.name + '.html' )
-        
diff --git a/nx-X11/extras/freetype2/src/tools/docmaker/utils.py b/nx-X11/extras/freetype2/src/tools/docmaker/utils.py
deleted file mode 100644
index c3e9e2700..000000000
--- a/nx-X11/extras/freetype2/src/tools/docmaker/utils.py
+++ /dev/null
@@ -1,128 +0,0 @@
-import string, sys, os, glob
-
-# current output directory
-#
-output_dir = None
-
-
-# This function is used to sort the index.  It is a simple lexicographical
-# sort, except that it places capital letters before lowercase ones.
-#
-def index_sort( s1, s2 ):
-    if not s1:
-        return -1
-
-    if not s2:
-        return 1
-
-    l1 = len( s1 )
-    l2 = len( s2 )
-    m1 = string.lower( s1 )
-    m2 = string.lower( s2 )
-
-    for i in range( l1 ):
-        if i >= l2 or m1[i] > m2[i]:
-            return 1
-
-        if m1[i] < m2[i]:
-            return -1
-
-        if s1[i] < s2[i]:
-            return -1
-
-        if s1[i] > s2[i]:
-            return 1
-
-    if l2 > l1:
-        return -1
-
-    return 0
-
-# Sort input_list, placing the elements of order_list in front.
-#
-def sort_order_list( input_list, order_list ):
-    new_list = order_list[:]
-    for id in input_list:
-        if not id in order_list:
-            new_list.append( id )
-    return new_list
-
-
-
-# Open the standard output to a given project documentation file.  Use
-# "output_dir" to determine the filename location if necessary and save the
-# old stdout in a tuple that is returned by this function.
-#
-def open_output( filename ):
-    global output_dir
-
-    if output_dir and output_dir != "":
-        filename = output_dir + os.sep + filename
-
-    old_stdout = sys.stdout
-    new_file   = open( filename, "w" )
-    sys.stdout = new_file
-
-    return ( new_file, old_stdout )
-
-
-# Close the output that was returned by "close_output".
-#
-def close_output( output ):
-    output[0].close()
-    sys.stdout = output[1]
-
-
-# Check output directory.
-#
-def check_output( ):
-    global output_dir
-    if output_dir:
-        if output_dir != "":
-            if not os.path.isdir( output_dir ):
-                sys.stderr.write( "argument" + " '" + output_dir + "' " +
-                                  "is not a valid directory" )
-                sys.exit( 2 )
-        else:
-            output_dir = None
-
-def file_exists( pathname ):
-    """checks that a given file exists"""
-    result = 1
-    try:
-        file = open( pathname, "r" )
-        file.close()
-    except:
-        result = None
-        sys.stderr.write( pathname + " couldn't be accessed\n" )
-
-    return result
-
-
-def make_file_list( args = None ):
-    """builds a list of input files from command-line arguments"""
-
-    file_list = []
-    # sys.stderr.write( repr( sys.argv[1 :] ) + '\n' )
-
-    if not args:
-        args = sys.argv[1 :]
-
-    for pathname in args:
-        if string.find( pathname, '*' ) >= 0:
-            newpath = glob.glob( pathname )
-            newpath.sort()  # sort files -- this is important because
-                            # of the order of files
-        else:
-            newpath = [pathname]
-            
-        file_list.extend( newpath )
-
-    if len( file_list ) == 0:
-        file_list = None
-    else:
-        # now filter the file list to remove non-existing ones
-        file_list = filter( file_exists, file_list )
-    
-    return file_list
-
diff --git a/nx-X11/extras/freetype2/src/tools/glnames.py b/nx-X11/extras/freetype2/src/tools/glnames.py
deleted file mode 100644
index e8e80ec6c..000000000
--- a/nx-X11/extras/freetype2/src/tools/glnames.py
+++ /dev/null
@@ -1,4954 +0,0 @@
-#!/usr/bin/env python
-#
-
-#
-# FreeType 2 glyph name builder
-#
-
-
-# Copyright 1996-2000, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-"""\
-
-usage: %s <output-file>
-
-  This very simple python script is used to generate the glyph names
-  tables defined in the PSNames module.
-
-  Its single argument is the name of the header file to be created.
-"""
-
-
-import sys, string
-
-
-# This table is used to name the glyphs according to the Macintosh
-# specification.  It is used by the TrueType Postscript names table.
-#
-# See http://fonts.apple.com/TTRefMan/RM06/Chap6post.html
-# for the official list.
-#
-mac_standard_names = \
-[
-  # 0
-  ".notdef", ".null", "nonmarkingreturn", "space", "exclam",
-  "quotedbl", "numbersign", "dollar", "percent", "ampersand",
-
-  # 10
-  "quotesingle", "parenleft", "parenright", "asterisk", "plus",
-  "comma", "hyphen", "period", "slash", "zero",
-
-  # 20
-  "one", "two", "three", "four", "five",
-  "six", "seven", "eight", "nine", "colon",
-
-  # 30
-  "semicolon", "less", "equal", "greater", "question",
-  "at", "A", "B", "C", "D",
-
-  # 40
-  "E", "F", "G", "H", "I",
-  "J", "K", "L", "M", "N",
-
-  # 50
-  "O", "P", "Q", "R", "S",
-  "T", "U", "V", "W", "X",
-
-  # 60
-  "Y", "Z", "bracketleft", "backslash", "bracketright",
-  "asciicircum", "underscore", "grave", "a", "b",
-
-  # 70
-  "c", "d", "e", "f", "g",
-  "h", "i", "j", "k", "l",
-
-  # 80
-  "m", "n", "o", "p", "q",
-  "r", "s", "t", "u", "v",
-
-  # 90
-  "w", "x", "y", "z", "braceleft",
-  "bar", "braceright", "asciitilde", "Adieresis", "Aring",
-
-  # 100
-  "Ccedilla", "Eacute", "Ntilde", "Odieresis", "Udieresis",
-  "aacute", "agrave", "acircumflex", "adieresis", "atilde",
-
-  # 110
-  "aring", "ccedilla", "eacute", "egrave", "ecircumflex",
-  "edieresis", "iacute", "igrave", "icircumflex", "idieresis",
-
-  # 120
-  "ntilde", "oacute", "ograve", "ocircumflex", "odieresis",
-  "otilde", "uacute", "ugrave", "ucircumflex", "udieresis",
-
-  # 130
-  "dagger", "degree", "cent", "sterling", "section",
-  "bullet", "paragraph", "germandbls", "registered", "copyright",
-
-  # 140
-  "trademark", "acute", "dieresis", "notequal", "AE",
-  "Oslash", "infinity", "plusminus", "lessequal", "greaterequal",
-
-  # 150
-  "yen", "mu", "partialdiff", "summation", "product",
-  "pi", "integral", "ordfeminine", "ordmasculine", "Omega",
-
-  # 160
-  "ae", "oslash", "questiondown", "exclamdown", "logicalnot",
-  "radical", "florin", "approxequal", "Delta", "guillemotleft",
-
-  # 170
-  "guillemotright", "ellipsis", "nonbreakingspace", "Agrave", "Atilde",
-  "Otilde", "OE", "oe", "endash", "emdash",
-
-  # 180
-  "quotedblleft", "quotedblright", "quoteleft", "quoteright", "divide",
-  "lozenge", "ydieresis", "Ydieresis", "fraction", "currency",
-
-  # 190
-  "guilsinglleft", "guilsinglright", "fi", "fl", "daggerdbl",
-  "periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
-    "Acircumflex",
-
-  # 200
-  "Ecircumflex", "Aacute", "Edieresis", "Egrave", "Iacute",
-  "Icircumflex", "Idieresis", "Igrave", "Oacute", "Ocircumflex",
-
-  # 210
-  "apple", "Ograve", "Uacute", "Ucircumflex", "Ugrave",
-  "dotlessi", "circumflex", "tilde", "macron", "breve",
-
-  # 220
-  "dotaccent", "ring", "cedilla", "hungarumlaut", "ogonek",
-  "caron", "Lslash", "lslash", "Scaron", "scaron",
-
-  # 230
-  "Zcaron", "zcaron", "brokenbar", "Eth", "eth",
-  "Yacute", "yacute", "Thorn", "thorn", "minus",
-
-  # 240
-  "multiply", "onesuperior", "twosuperior", "threesuperior", "onehalf",
-  "onequarter", "threequarters", "franc", "Gbreve", "gbreve",
-
-  # 250
-  "Idotaccent", "Scedilla", "scedilla", "Cacute", "cacute",
-  "Ccaron", "ccaron", "dcroat"
-]
-
-
-# The list of standard "SID" glyph names.  For the official list,
-# see Annex A of document at
-# http://partners.adobe.com/asn/developer/pdfs/tn/5176.CFF.pdf.
-#
-sid_standard_names = \
-[
-  # 0
-  ".notdef", "space", "exclam", "quotedbl", "numbersign",
-  "dollar", "percent", "ampersand", "quoteright", "parenleft",
-
-  # 10
-  "parenright", "asterisk", "plus", "comma", "hyphen",
-  "period", "slash", "zero", "one", "two",
-
-  # 20
-  "three", "four", "five", "six", "seven",
-  "eight", "nine", "colon", "semicolon", "less",
-
-  # 30
-  "equal", "greater", "question", "at", "A",
-  "B", "C", "D", "E", "F",
-
-  # 40
-  "G", "H", "I", "J", "K",
-  "L", "M", "N", "O", "P",
-
-  # 50
-  "Q", "R", "S", "T", "U",
-  "V", "W", "X", "Y", "Z",
-
-  # 60
-  "bracketleft", "backslash", "bracketright", "asciicircum", "underscore",
-  "quoteleft", "a", "b", "c", "d",
-
-  # 70
-  "e", "f", "g", "h", "i",
-  "j", "k", "l", "m", "n",
-
-  # 80
-  "o", "p", "q", "r", "s",
-  "t", "u", "v", "w", "x",
-
-  # 90
-  "y", "z", "braceleft", "bar", "braceright",
-  "asciitilde", "exclamdown", "cent", "sterling", "fraction",
-
-  # 100
-  "yen", "florin", "section", "currency", "quotesingle",
-  "quotedblleft", "guillemotleft", "guilsinglleft", "guilsinglright", "fi",
-
-  # 110
-  "fl", "endash", "dagger", "daggerdbl", "periodcentered",
-  "paragraph", "bullet", "quotesinglbase", "quotedblbase", "quotedblright",
-
-  # 120
-  "guillemotright", "ellipsis", "perthousand", "questiondown", "grave",
-  "acute", "circumflex", "tilde", "macron", "breve",
-
-  # 130
-  "dotaccent", "dieresis", "ring", "cedilla", "hungarumlaut",
-  "ogonek", "caron", "emdash", "AE", "ordfeminine",
-
-  # 140
-  "Lslash", "Oslash", "OE", "ordmasculine", "ae",
-  "dotlessi", "lslash", "oslash", "oe", "germandbls",
-
-  # 150
-  "onesuperior", "logicalnot", "mu", "trademark", "Eth",
-  "onehalf", "plusminus", "Thorn", "onequarter", "divide",
-
-  # 160
-  "brokenbar", "degree", "thorn", "threequarters", "twosuperior",
-  "registered", "minus", "eth", "multiply", "threesuperior",
-
-  # 170
-  "copyright", "Aacute", "Acircumflex", "Adieresis", "Agrave",
-  "Aring", "Atilde", "Ccedilla", "Eacute", "Ecircumflex",
-
-  # 180
-  "Edieresis", "Egrave", "Iacute", "Icircumflex", "Idieresis",
-  "Igrave", "Ntilde", "Oacute", "Ocircumflex", "Odieresis",
-
-  # 190
-  "Ograve", "Otilde", "Scaron", "Uacute", "Ucircumflex",
-  "Udieresis", "Ugrave", "Yacute", "Ydieresis", "Zcaron",
-
-  # 200
-  "aacute", "acircumflex", "adieresis", "agrave", "aring",
-  "atilde", "ccedilla", "eacute", "ecircumflex", "edieresis",
-
-  # 210
-  "egrave", "iacute", "icircumflex", "idieresis", "igrave",
-  "ntilde", "oacute", "ocircumflex", "odieresis", "ograve",
-
-  # 220
-  "otilde", "scaron", "uacute", "ucircumflex", "udieresis",
-  "ugrave", "yacute", "ydieresis", "zcaron", "exclamsmall",
-
-  # 230
-  "Hungarumlautsmall", "dollaroldstyle", "dollarsuperior", "ampersandsmall",
-    "Acutesmall",
-  "parenleftsuperior", "parenrightsuperior", "twodotenleader",
-    "onedotenleader", "zerooldstyle",
-
-  # 240
-  "oneoldstyle", "twooldstyle", "threeoldstyle", "fouroldstyle",
-    "fiveoldstyle",
-  "sixoldstyle", "sevenoldstyle", "eightoldstyle", "nineoldstyle",
-    "commasuperior",
-
-  # 250
-  "threequartersemdash", "periodsuperior", "questionsmall", "asuperior",
-    "bsuperior",
-  "centsuperior", "dsuperior", "esuperior", "isuperior", "lsuperior",
-
-  # 260
-  "msuperior", "nsuperior", "osuperior", "rsuperior", "ssuperior",
-  "tsuperior", "ff", "ffi", "ffl", "parenleftinferior",
-
-  # 270
-  "parenrightinferior", "Circumflexsmall", "hyphensuperior", "Gravesmall",
-    "Asmall",
-  "Bsmall", "Csmall", "Dsmall", "Esmall", "Fsmall",
-
-  # 280
-  "Gsmall", "Hsmall", "Ismall", "Jsmall", "Ksmall",
-  "Lsmall", "Msmall", "Nsmall", "Osmall", "Psmall",
-
-  # 290
-  "Qsmall", "Rsmall", "Ssmall", "Tsmall", "Usmall",
-  "Vsmall", "Wsmall", "Xsmall", "Ysmall", "Zsmall",
-
-  # 300
-  "colonmonetary", "onefitted", "rupiah", "Tildesmall", "exclamdownsmall",
-  "centoldstyle", "Lslashsmall", "Scaronsmall", "Zcaronsmall",
-    "Dieresissmall",
-
-  # 310
-  "Brevesmall", "Caronsmall", "Dotaccentsmall", "Macronsmall", "figuredash",
-  "hypheninferior", "Ogoneksmall", "Ringsmall", "Cedillasmall",
-    "questiondownsmall",
-
-  # 320
-  "oneeighth", "threeeighths", "fiveeighths", "seveneighths", "onethird",
-  "twothirds", "zerosuperior", "foursuperior", "fivesuperior",
-    "sixsuperior",
-
-  # 330
-  "sevensuperior", "eightsuperior", "ninesuperior", "zeroinferior",
-    "oneinferior",
-  "twoinferior", "threeinferior", "fourinferior", "fiveinferior",
-    "sixinferior",
-
-  # 340
-  "seveninferior", "eightinferior", "nineinferior", "centinferior",
-    "dollarinferior",
-  "periodinferior", "commainferior", "Agravesmall", "Aacutesmall",
-    "Acircumflexsmall",
-
-  # 350
-  "Atildesmall", "Adieresissmall", "Aringsmall", "AEsmall", "Ccedillasmall",
-  "Egravesmall", "Eacutesmall", "Ecircumflexsmall", "Edieresissmall",
-    "Igravesmall",
-
-  # 360
-  "Iacutesmall", "Icircumflexsmall", "Idieresissmall", "Ethsmall",
-    "Ntildesmall",
-  "Ogravesmall", "Oacutesmall", "Ocircumflexsmall", "Otildesmall",
-    "Odieresissmall",
-
-  # 370
-  "OEsmall", "Oslashsmall", "Ugravesmall", "Uacutesmall",
-    "Ucircumflexsmall",
-  "Udieresissmall", "Yacutesmall", "Thornsmall", "Ydieresissmall",
-    "001.000",
-
-  # 380
-  "001.001", "001.002", "001.003", "Black", "Bold",
-  "Book", "Light", "Medium", "Regular", "Roman",
-
-  # 390
-  "Semibold"
-]
-
-
-# This table maps character codes of the Adobe Standard Type 1
-# encoding to glyph indices in the sid_standard_names table.
-#
-t1_standard_encoding = \
-[
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   1,   2,   3,   4,   5,   6,   7,   8,
-    9,  10,  11,  12,  13,  14,  15,  16,  17,  18,
-
-   19,  20,  21,  22,  23,  24,  25,  26,  27,  28,
-   29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
-   39,  40,  41,  42,  43,  44,  45,  46,  47,  48,
-   49,  50,  51,  52,  53,  54,  55,  56,  57,  58,
-   59,  60,  61,  62,  63,  64,  65,  66,  67,  68,
-
-   69,  70,  71,  72,  73,  74,  75,  76,  77,  78,
-   79,  80,  81,  82,  83,  84,  85,  86,  87,  88,
-   89,  90,  91,  92,  93,  94,  95,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,  96,  97,  98,  99, 100, 101, 102, 103, 104,
-  105, 106, 107, 108, 109, 110,   0, 111, 112, 113,
-  114,   0, 115, 116, 117, 118, 119, 120, 121, 122,
-    0, 123,   0, 124, 125, 126, 127, 128, 129, 130,
-
-  131,   0, 132, 133,   0, 134, 135, 136, 137,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0, 138,   0, 139,   0,   0,
-    0,   0, 140, 141, 142, 143,   0,   0,   0,   0,
-    0, 144,   0,   0,   0, 145,   0,   0, 146, 147,
-
-  148, 149,   0,   0,   0,   0
-]
-
-
-# This table maps character codes of the Adobe Expert Type 1
-# encoding to glyph indices in the sid_standard_names table.
-#
-t1_expert_encoding = \
-[
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   1, 229, 230,   0, 231, 232, 233, 234,
-  235, 236, 237, 238,  13,  14,  15,  99, 239, 240,
-
-  241, 242, 243, 244, 245, 246, 247, 248,  27,  28,
-  249, 250, 251, 252,   0, 253, 254, 255, 256, 257,
-    0,   0,   0, 258,   0,   0, 259, 260, 261, 262,
-    0,   0, 263, 264, 265,   0, 266, 109, 110, 267,
-  268, 269,   0, 270, 271, 272, 273, 274, 275, 276,
-
-  277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
-  287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
-  297, 298, 299, 300, 301, 302, 303,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-
-    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-    0, 304, 305, 306,   0,   0, 307, 308, 309, 310,
-  311,   0, 312,   0,   0, 313,   0,   0, 314, 315,
-    0,   0, 316, 317, 318,   0,   0,   0, 158, 155,
-  163, 319, 320, 321, 322, 323, 324, 325,   0,   0,
-
-  326, 150, 164, 169, 327, 328, 329, 330, 331, 332,
-  333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
-  343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
-  353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
-  363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
-
-  373, 374, 375, 376, 377, 378
-]
-
-
-# This data has been taken literally from the file `glyphlist.txt',
-# version 2.0, 22 Sept 2002.  It is available from
-#
-#   http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
-#
-adobe_glyph_list = """\
-A;0041
-AE;00C6
-AEacute;01FC
-AEmacron;01E2
-AEsmall;F7E6
-Aacute;00C1
-Aacutesmall;F7E1
-Abreve;0102
-Abreveacute;1EAE
-Abrevecyrillic;04D0
-Abrevedotbelow;1EB6
-Abrevegrave;1EB0
-Abrevehookabove;1EB2
-Abrevetilde;1EB4
-Acaron;01CD
-Acircle;24B6
-Acircumflex;00C2
-Acircumflexacute;1EA4
-Acircumflexdotbelow;1EAC
-Acircumflexgrave;1EA6
-Acircumflexhookabove;1EA8
-Acircumflexsmall;F7E2
-Acircumflextilde;1EAA
-Acute;F6C9
-Acutesmall;F7B4
-Acyrillic;0410
-Adblgrave;0200
-Adieresis;00C4
-Adieresiscyrillic;04D2
-Adieresismacron;01DE
-Adieresissmall;F7E4
-Adotbelow;1EA0
-Adotmacron;01E0
-Agrave;00C0
-Agravesmall;F7E0
-Ahookabove;1EA2
-Aiecyrillic;04D4
-Ainvertedbreve;0202
-Alpha;0391
-Alphatonos;0386
-Amacron;0100
-Amonospace;FF21
-Aogonek;0104
-Aring;00C5
-Aringacute;01FA
-Aringbelow;1E00
-Aringsmall;F7E5
-Asmall;F761
-Atilde;00C3
-Atildesmall;F7E3
-Aybarmenian;0531
-B;0042
-Bcircle;24B7
-Bdotaccent;1E02
-Bdotbelow;1E04
-Becyrillic;0411
-Benarmenian;0532
-Beta;0392
-Bhook;0181
-Blinebelow;1E06
-Bmonospace;FF22
-Brevesmall;F6F4
-Bsmall;F762
-Btopbar;0182
-C;0043
-Caarmenian;053E
-Cacute;0106
-Caron;F6CA
-Caronsmall;F6F5
-Ccaron;010C
-Ccedilla;00C7
-Ccedillaacute;1E08
-Ccedillasmall;F7E7
-Ccircle;24B8
-Ccircumflex;0108
-Cdot;010A
-Cdotaccent;010A
-Cedillasmall;F7B8
-Chaarmenian;0549
-Cheabkhasiancyrillic;04BC
-Checyrillic;0427
-Chedescenderabkhasiancyrillic;04BE
-Chedescendercyrillic;04B6
-Chedieresiscyrillic;04F4
-Cheharmenian;0543
-Chekhakassiancyrillic;04CB
-Cheverticalstrokecyrillic;04B8
-Chi;03A7
-Chook;0187
-Circumflexsmall;F6F6
-Cmonospace;FF23
-Coarmenian;0551
-Csmall;F763
-D;0044
-DZ;01F1
-DZcaron;01C4
-Daarmenian;0534
-Dafrican;0189
-Dcaron;010E
-Dcedilla;1E10
-Dcircle;24B9
-Dcircumflexbelow;1E12
-Dcroat;0110
-Ddotaccent;1E0A
-Ddotbelow;1E0C
-Decyrillic;0414
-Deicoptic;03EE
-Delta;2206
-Deltagreek;0394
-Dhook;018A
-Dieresis;F6CB
-DieresisAcute;F6CC
-DieresisGrave;F6CD
-Dieresissmall;F7A8
-Digammagreek;03DC
-Djecyrillic;0402
-Dlinebelow;1E0E
-Dmonospace;FF24
-Dotaccentsmall;F6F7
-Dslash;0110
-Dsmall;F764
-Dtopbar;018B
-Dz;01F2
-Dzcaron;01C5
-Dzeabkhasiancyrillic;04E0
-Dzecyrillic;0405
-Dzhecyrillic;040F
-E;0045
-Eacute;00C9
-Eacutesmall;F7E9
-Ebreve;0114
-Ecaron;011A
-Ecedillabreve;1E1C
-Echarmenian;0535
-Ecircle;24BA
-Ecircumflex;00CA
-Ecircumflexacute;1EBE
-Ecircumflexbelow;1E18
-Ecircumflexdotbelow;1EC6
-Ecircumflexgrave;1EC0
-Ecircumflexhookabove;1EC2
-Ecircumflexsmall;F7EA
-Ecircumflextilde;1EC4
-Ecyrillic;0404
-Edblgrave;0204
-Edieresis;00CB
-Edieresissmall;F7EB
-Edot;0116
-Edotaccent;0116
-Edotbelow;1EB8
-Efcyrillic;0424
-Egrave;00C8
-Egravesmall;F7E8
-Eharmenian;0537
-Ehookabove;1EBA
-Eightroman;2167
-Einvertedbreve;0206
-Eiotifiedcyrillic;0464
-Elcyrillic;041B
-Elevenroman;216A
-Emacron;0112
-Emacronacute;1E16
-Emacrongrave;1E14
-Emcyrillic;041C
-Emonospace;FF25
-Encyrillic;041D
-Endescendercyrillic;04A2
-Eng;014A
-Enghecyrillic;04A4
-Enhookcyrillic;04C7
-Eogonek;0118
-Eopen;0190
-Epsilon;0395
-Epsilontonos;0388
-Ercyrillic;0420
-Ereversed;018E
-Ereversedcyrillic;042D
-Escyrillic;0421
-Esdescendercyrillic;04AA
-Esh;01A9
-Esmall;F765
-Eta;0397
-Etarmenian;0538
-Etatonos;0389
-Eth;00D0
-Ethsmall;F7F0
-Etilde;1EBC
-Etildebelow;1E1A
-Euro;20AC
-Ezh;01B7
-Ezhcaron;01EE
-Ezhreversed;01B8
-F;0046
-Fcircle;24BB
-Fdotaccent;1E1E
-Feharmenian;0556
-Feicoptic;03E4
-Fhook;0191
-Fitacyrillic;0472
-Fiveroman;2164
-Fmonospace;FF26
-Fourroman;2163
-Fsmall;F766
-G;0047
-GBsquare;3387
-Gacute;01F4
-Gamma;0393
-Gammaafrican;0194
-Gangiacoptic;03EA
-Gbreve;011E
-Gcaron;01E6
-Gcedilla;0122
-Gcircle;24BC
-Gcircumflex;011C
-Gcommaaccent;0122
-Gdot;0120
-Gdotaccent;0120
-Gecyrillic;0413
-Ghadarmenian;0542
-Ghemiddlehookcyrillic;0494
-Ghestrokecyrillic;0492
-Gheupturncyrillic;0490
-Ghook;0193
-Gimarmenian;0533
-Gjecyrillic;0403
-Gmacron;1E20
-Gmonospace;FF27
-Grave;F6CE
-Gravesmall;F760
-Gsmall;F767
-Gsmallhook;029B
-Gstroke;01E4
-H;0048
-H18533;25CF
-H18543;25AA
-H18551;25AB
-H22073;25A1
-HPsquare;33CB
-Haabkhasiancyrillic;04A8
-Hadescendercyrillic;04B2
-Hardsigncyrillic;042A
-Hbar;0126
-Hbrevebelow;1E2A
-Hcedilla;1E28
-Hcircle;24BD
-Hcircumflex;0124
-Hdieresis;1E26
-Hdotaccent;1E22
-Hdotbelow;1E24
-Hmonospace;FF28
-Hoarmenian;0540
-Horicoptic;03E8
-Hsmall;F768
-Hungarumlaut;F6CF
-Hungarumlautsmall;F6F8
-Hzsquare;3390
-I;0049
-IAcyrillic;042F
-IJ;0132
-IUcyrillic;042E
-Iacute;00CD
-Iacutesmall;F7ED
-Ibreve;012C
-Icaron;01CF
-Icircle;24BE
-Icircumflex;00CE
-Icircumflexsmall;F7EE
-Icyrillic;0406
-Idblgrave;0208
-Idieresis;00CF
-Idieresisacute;1E2E
-Idieresiscyrillic;04E4
-Idieresissmall;F7EF
-Idot;0130
-Idotaccent;0130
-Idotbelow;1ECA
-Iebrevecyrillic;04D6
-Iecyrillic;0415
-Ifraktur;2111
-Igrave;00CC
-Igravesmall;F7EC
-Ihookabove;1EC8
-Iicyrillic;0418
-Iinvertedbreve;020A
-Iishortcyrillic;0419
-Imacron;012A
-Imacroncyrillic;04E2
-Imonospace;FF29
-Iniarmenian;053B
-Iocyrillic;0401
-Iogonek;012E
-Iota;0399
-Iotaafrican;0196
-Iotadieresis;03AA
-Iotatonos;038A
-Ismall;F769
-Istroke;0197
-Itilde;0128
-Itildebelow;1E2C
-Izhitsacyrillic;0474
-Izhitsadblgravecyrillic;0476
-J;004A
-Jaarmenian;0541
-Jcircle;24BF
-Jcircumflex;0134
-Jecyrillic;0408
-Jheharmenian;054B
-Jmonospace;FF2A
-Jsmall;F76A
-K;004B
-KBsquare;3385
-KKsquare;33CD
-Kabashkircyrillic;04A0
-Kacute;1E30
-Kacyrillic;041A
-Kadescendercyrillic;049A
-Kahookcyrillic;04C3
-Kappa;039A
-Kastrokecyrillic;049E
-Kaverticalstrokecyrillic;049C
-Kcaron;01E8
-Kcedilla;0136
-Kcircle;24C0
-Kcommaaccent;0136
-Kdotbelow;1E32
-Keharmenian;0554
-Kenarmenian;053F
-Khacyrillic;0425
-Kheicoptic;03E6
-Khook;0198
-Kjecyrillic;040C
-Klinebelow;1E34
-Kmonospace;FF2B
-Koppacyrillic;0480
-Koppagreek;03DE
-Ksicyrillic;046E
-Ksmall;F76B
-L;004C
-LJ;01C7
-LL;F6BF
-Lacute;0139
-Lambda;039B
-Lcaron;013D
-Lcedilla;013B
-Lcircle;24C1
-Lcircumflexbelow;1E3C
-Lcommaaccent;013B
-Ldot;013F
-Ldotaccent;013F
-Ldotbelow;1E36
-Ldotbelowmacron;1E38
-Liwnarmenian;053C
-Lj;01C8
-Ljecyrillic;0409
-Llinebelow;1E3A
-Lmonospace;FF2C
-Lslash;0141
-Lslashsmall;F6F9
-Lsmall;F76C
-M;004D
-MBsquare;3386
-Macron;F6D0
-Macronsmall;F7AF
-Macute;1E3E
-Mcircle;24C2
-Mdotaccent;1E40
-Mdotbelow;1E42
-Menarmenian;0544
-Mmonospace;FF2D
-Msmall;F76D
-Mturned;019C
-Mu;039C
-N;004E
-NJ;01CA
-Nacute;0143
-Ncaron;0147
-Ncedilla;0145
-Ncircle;24C3
-Ncircumflexbelow;1E4A
-Ncommaaccent;0145
-Ndotaccent;1E44
-Ndotbelow;1E46
-Nhookleft;019D
-Nineroman;2168
-Nj;01CB
-Njecyrillic;040A
-Nlinebelow;1E48
-Nmonospace;FF2E
-Nowarmenian;0546
-Nsmall;F76E
-Ntilde;00D1
-Ntildesmall;F7F1
-Nu;039D
-O;004F
-OE;0152
-OEsmall;F6FA
-Oacute;00D3
-Oacutesmall;F7F3
-Obarredcyrillic;04E8
-Obarreddieresiscyrillic;04EA
-Obreve;014E
-Ocaron;01D1
-Ocenteredtilde;019F
-Ocircle;24C4
-Ocircumflex;00D4
-Ocircumflexacute;1ED0
-Ocircumflexdotbelow;1ED8
-Ocircumflexgrave;1ED2
-Ocircumflexhookabove;1ED4
-Ocircumflexsmall;F7F4
-Ocircumflextilde;1ED6
-Ocyrillic;041E
-Odblacute;0150
-Odblgrave;020C
-Odieresis;00D6
-Odieresiscyrillic;04E6
-Odieresissmall;F7F6
-Odotbelow;1ECC
-Ogoneksmall;F6FB
-Ograve;00D2
-Ogravesmall;F7F2
-Oharmenian;0555
-Ohm;2126
-Ohookabove;1ECE
-Ohorn;01A0
-Ohornacute;1EDA
-Ohorndotbelow;1EE2
-Ohorngrave;1EDC
-Ohornhookabove;1EDE
-Ohorntilde;1EE0
-Ohungarumlaut;0150
-Oi;01A2
-Oinvertedbreve;020E
-Omacron;014C
-Omacronacute;1E52
-Omacrongrave;1E50
-Omega;2126
-Omegacyrillic;0460
-Omegagreek;03A9
-Omegaroundcyrillic;047A
-Omegatitlocyrillic;047C
-Omegatonos;038F
-Omicron;039F
-Omicrontonos;038C
-Omonospace;FF2F
-Oneroman;2160
-Oogonek;01EA
-Oogonekmacron;01EC
-Oopen;0186
-Oslash;00D8
-Oslashacute;01FE
-Oslashsmall;F7F8
-Osmall;F76F
-Ostrokeacute;01FE
-Otcyrillic;047E
-Otilde;00D5
-Otildeacute;1E4C
-Otildedieresis;1E4E
-Otildesmall;F7F5
-P;0050
-Pacute;1E54
-Pcircle;24C5
-Pdotaccent;1E56
-Pecyrillic;041F
-Peharmenian;054A
-Pemiddlehookcyrillic;04A6
-Phi;03A6
-Phook;01A4
-Pi;03A0
-Piwrarmenian;0553
-Pmonospace;FF30
-Psi;03A8
-Psicyrillic;0470
-Psmall;F770
-Q;0051
-Qcircle;24C6
-Qmonospace;FF31
-Qsmall;F771
-R;0052
-Raarmenian;054C
-Racute;0154
-Rcaron;0158
-Rcedilla;0156
-Rcircle;24C7
-Rcommaaccent;0156
-Rdblgrave;0210
-Rdotaccent;1E58
-Rdotbelow;1E5A
-Rdotbelowmacron;1E5C
-Reharmenian;0550
-Rfraktur;211C
-Rho;03A1
-Ringsmall;F6FC
-Rinvertedbreve;0212
-Rlinebelow;1E5E
-Rmonospace;FF32
-Rsmall;F772
-Rsmallinverted;0281
-Rsmallinvertedsuperior;02B6
-S;0053
-SF010000;250C
-SF020000;2514
-SF030000;2510
-SF040000;2518
-SF050000;253C
-SF060000;252C
-SF070000;2534
-SF080000;251C
-SF090000;2524
-SF100000;2500
-SF110000;2502
-SF190000;2561
-SF200000;2562
-SF210000;2556
-SF220000;2555
-SF230000;2563
-SF240000;2551
-SF250000;2557
-SF260000;255D
-SF270000;255C
-SF280000;255B
-SF360000;255E
-SF370000;255F
-SF380000;255A
-SF390000;2554
-SF400000;2569
-SF410000;2566
-SF420000;2560
-SF430000;2550
-SF440000;256C
-SF450000;2567
-SF460000;2568
-SF470000;2564
-SF480000;2565
-SF490000;2559
-SF500000;2558
-SF510000;2552
-SF520000;2553
-SF530000;256B
-SF540000;256A
-Sacute;015A
-Sacutedotaccent;1E64
-Sampigreek;03E0
-Scaron;0160
-Scarondotaccent;1E66
-Scaronsmall;F6FD
-Scedilla;015E
-Schwa;018F
-Schwacyrillic;04D8
-Schwadieresiscyrillic;04DA
-Scircle;24C8
-Scircumflex;015C
-Scommaaccent;0218
-Sdotaccent;1E60
-Sdotbelow;1E62
-Sdotbelowdotaccent;1E68
-Seharmenian;054D
-Sevenroman;2166
-Shaarmenian;0547
-Shacyrillic;0428
-Shchacyrillic;0429
-Sheicoptic;03E2
-Shhacyrillic;04BA
-Shimacoptic;03EC
-Sigma;03A3
-Sixroman;2165
-Smonospace;FF33
-Softsigncyrillic;042C
-Ssmall;F773
-Stigmagreek;03DA
-T;0054
-Tau;03A4
-Tbar;0166
-Tcaron;0164
-Tcedilla;0162
-Tcircle;24C9
-Tcircumflexbelow;1E70
-Tcommaaccent;0162
-Tdotaccent;1E6A
-Tdotbelow;1E6C
-Tecyrillic;0422
-Tedescendercyrillic;04AC
-Tenroman;2169
-Tetsecyrillic;04B4
-Theta;0398
-Thook;01AC
-Thorn;00DE
-Thornsmall;F7FE
-Threeroman;2162
-Tildesmall;F6FE
-Tiwnarmenian;054F
-Tlinebelow;1E6E
-Tmonospace;FF34
-Toarmenian;0539
-Tonefive;01BC
-Tonesix;0184
-Tonetwo;01A7
-Tretroflexhook;01AE
-Tsecyrillic;0426
-Tshecyrillic;040B
-Tsmall;F774
-Twelveroman;216B
-Tworoman;2161
-U;0055
-Uacute;00DA
-Uacutesmall;F7FA
-Ubreve;016C
-Ucaron;01D3
-Ucircle;24CA
-Ucircumflex;00DB
-Ucircumflexbelow;1E76
-Ucircumflexsmall;F7FB
-Ucyrillic;0423
-Udblacute;0170
-Udblgrave;0214
-Udieresis;00DC
-Udieresisacute;01D7
-Udieresisbelow;1E72
-Udieresiscaron;01D9
-Udieresiscyrillic;04F0
-Udieresisgrave;01DB
-Udieresismacron;01D5
-Udieresissmall;F7FC
-Udotbelow;1EE4
-Ugrave;00D9
-Ugravesmall;F7F9
-Uhookabove;1EE6
-Uhorn;01AF
-Uhornacute;1EE8
-Uhorndotbelow;1EF0
-Uhorngrave;1EEA
-Uhornhookabove;1EEC
-Uhorntilde;1EEE
-Uhungarumlaut;0170
-Uhungarumlautcyrillic;04F2
-Uinvertedbreve;0216
-Ukcyrillic;0478
-Umacron;016A
-Umacroncyrillic;04EE
-Umacrondieresis;1E7A
-Umonospace;FF35
-Uogonek;0172
-Upsilon;03A5
-Upsilon1;03D2
-Upsilonacutehooksymbolgreek;03D3
-Upsilonafrican;01B1
-Upsilondieresis;03AB
-Upsilondieresishooksymbolgreek;03D4
-Upsilonhooksymbol;03D2
-Upsilontonos;038E
-Uring;016E
-Ushortcyrillic;040E
-Usmall;F775
-Ustraightcyrillic;04AE
-Ustraightstrokecyrillic;04B0
-Utilde;0168
-Utildeacute;1E78
-Utildebelow;1E74
-V;0056
-Vcircle;24CB
-Vdotbelow;1E7E
-Vecyrillic;0412
-Vewarmenian;054E
-Vhook;01B2
-Vmonospace;FF36
-Voarmenian;0548
-Vsmall;F776
-Vtilde;1E7C
-W;0057
-Wacute;1E82
-Wcircle;24CC
-Wcircumflex;0174
-Wdieresis;1E84
-Wdotaccent;1E86
-Wdotbelow;1E88
-Wgrave;1E80
-Wmonospace;FF37
-Wsmall;F777
-X;0058
-Xcircle;24CD
-Xdieresis;1E8C
-Xdotaccent;1E8A
-Xeharmenian;053D
-Xi;039E
-Xmonospace;FF38
-Xsmall;F778
-Y;0059
-Yacute;00DD
-Yacutesmall;F7FD
-Yatcyrillic;0462
-Ycircle;24CE
-Ycircumflex;0176
-Ydieresis;0178
-Ydieresissmall;F7FF
-Ydotaccent;1E8E
-Ydotbelow;1EF4
-Yericyrillic;042B
-Yerudieresiscyrillic;04F8
-Ygrave;1EF2
-Yhook;01B3
-Yhookabove;1EF6
-Yiarmenian;0545
-Yicyrillic;0407
-Yiwnarmenian;0552
-Ymonospace;FF39
-Ysmall;F779
-Ytilde;1EF8
-Yusbigcyrillic;046A
-Yusbigiotifiedcyrillic;046C
-Yuslittlecyrillic;0466
-Yuslittleiotifiedcyrillic;0468
-Z;005A
-Zaarmenian;0536
-Zacute;0179
-Zcaron;017D
-Zcaronsmall;F6FF
-Zcircle;24CF
-Zcircumflex;1E90
-Zdot;017B
-Zdotaccent;017B
-Zdotbelow;1E92
-Zecyrillic;0417
-Zedescendercyrillic;0498
-Zedieresiscyrillic;04DE
-Zeta;0396
-Zhearmenian;053A
-Zhebrevecyrillic;04C1
-Zhecyrillic;0416
-Zhedescendercyrillic;0496
-Zhedieresiscyrillic;04DC
-Zlinebelow;1E94
-Zmonospace;FF3A
-Zsmall;F77A
-Zstroke;01B5
-a;0061
-aabengali;0986
-aacute;00E1
-aadeva;0906
-aagujarati;0A86
-aagurmukhi;0A06
-aamatragurmukhi;0A3E
-aarusquare;3303
-aavowelsignbengali;09BE
-aavowelsigndeva;093E
-aavowelsigngujarati;0ABE
-abbreviationmarkarmenian;055F
-abbreviationsigndeva;0970
-abengali;0985
-abopomofo;311A
-abreve;0103
-abreveacute;1EAF
-abrevecyrillic;04D1
-abrevedotbelow;1EB7
-abrevegrave;1EB1
-abrevehookabove;1EB3
-abrevetilde;1EB5
-acaron;01CE
-acircle;24D0
-acircumflex;00E2
-acircumflexacute;1EA5
-acircumflexdotbelow;1EAD
-acircumflexgrave;1EA7
-acircumflexhookabove;1EA9
-acircumflextilde;1EAB
-acute;00B4
-acutebelowcmb;0317
-acutecmb;0301
-acutecomb;0301
-acutedeva;0954
-acutelowmod;02CF
-acutetonecmb;0341
-acyrillic;0430
-adblgrave;0201
-addakgurmukhi;0A71
-adeva;0905
-adieresis;00E4
-adieresiscyrillic;04D3
-adieresismacron;01DF
-adotbelow;1EA1
-adotmacron;01E1
-ae;00E6
-aeacute;01FD
-aekorean;3150
-aemacron;01E3
-afii00208;2015
-afii08941;20A4
-afii10017;0410
-afii10018;0411
-afii10019;0412
-afii10020;0413
-afii10021;0414
-afii10022;0415
-afii10023;0401
-afii10024;0416
-afii10025;0417
-afii10026;0418
-afii10027;0419
-afii10028;041A
-afii10029;041B
-afii10030;041C
-afii10031;041D
-afii10032;041E
-afii10033;041F
-afii10034;0420
-afii10035;0421
-afii10036;0422
-afii10037;0423
-afii10038;0424
-afii10039;0425
-afii10040;0426
-afii10041;0427
-afii10042;0428
-afii10043;0429
-afii10044;042A
-afii10045;042B
-afii10046;042C
-afii10047;042D
-afii10048;042E
-afii10049;042F
-afii10050;0490
-afii10051;0402
-afii10052;0403
-afii10053;0404
-afii10054;0405
-afii10055;0406
-afii10056;0407
-afii10057;0408
-afii10058;0409
-afii10059;040A
-afii10060;040B
-afii10061;040C
-afii10062;040E
-afii10063;F6C4
-afii10064;F6C5
-afii10065;0430
-afii10066;0431
-afii10067;0432
-afii10068;0433
-afii10069;0434
-afii10070;0435
-afii10071;0451
-afii10072;0436
-afii10073;0437
-afii10074;0438
-afii10075;0439
-afii10076;043A
-afii10077;043B
-afii10078;043C
-afii10079;043D
-afii10080;043E
-afii10081;043F
-afii10082;0440
-afii10083;0441
-afii10084;0442
-afii10085;0443
-afii10086;0444
-afii10087;0445
-afii10088;0446
-afii10089;0447
-afii10090;0448
-afii10091;0449
-afii10092;044A
-afii10093;044B
-afii10094;044C
-afii10095;044D
-afii10096;044E
-afii10097;044F
-afii10098;0491
-afii10099;0452
-afii10100;0453
-afii10101;0454
-afii10102;0455
-afii10103;0456
-afii10104;0457
-afii10105;0458
-afii10106;0459
-afii10107;045A
-afii10108;045B
-afii10109;045C
-afii10110;045E
-afii10145;040F
-afii10146;0462
-afii10147;0472
-afii10148;0474
-afii10192;F6C6
-afii10193;045F
-afii10194;0463
-afii10195;0473
-afii10196;0475
-afii10831;F6C7
-afii10832;F6C8
-afii10846;04D9
-afii299;200E
-afii300;200F
-afii301;200D
-afii57381;066A
-afii57388;060C
-afii57392;0660
-afii57393;0661
-afii57394;0662
-afii57395;0663
-afii57396;0664
-afii57397;0665
-afii57398;0666
-afii57399;0667
-afii57400;0668
-afii57401;0669
-afii57403;061B
-afii57407;061F
-afii57409;0621
-afii57410;0622
-afii57411;0623
-afii57412;0624
-afii57413;0625
-afii57414;0626
-afii57415;0627
-afii57416;0628
-afii57417;0629
-afii57418;062A
-afii57419;062B
-afii57420;062C
-afii57421;062D
-afii57422;062E
-afii57423;062F
-afii57424;0630
-afii57425;0631
-afii57426;0632
-afii57427;0633
-afii57428;0634
-afii57429;0635
-afii57430;0636
-afii57431;0637
-afii57432;0638
-afii57433;0639
-afii57434;063A
-afii57440;0640
-afii57441;0641
-afii57442;0642
-afii57443;0643
-afii57444;0644
-afii57445;0645
-afii57446;0646
-afii57448;0648
-afii57449;0649
-afii57450;064A
-afii57451;064B
-afii57452;064C
-afii57453;064D
-afii57454;064E
-afii57455;064F
-afii57456;0650
-afii57457;0651
-afii57458;0652
-afii57470;0647
-afii57505;06A4
-afii57506;067E
-afii57507;0686
-afii57508;0698
-afii57509;06AF
-afii57511;0679
-afii57512;0688
-afii57513;0691
-afii57514;06BA
-afii57519;06D2
-afii57534;06D5
-afii57636;20AA
-afii57645;05BE
-afii57658;05C3
-afii57664;05D0
-afii57665;05D1
-afii57666;05D2
-afii57667;05D3
-afii57668;05D4
-afii57669;05D5
-afii57670;05D6
-afii57671;05D7
-afii57672;05D8
-afii57673;05D9
-afii57674;05DA
-afii57675;05DB
-afii57676;05DC
-afii57677;05DD
-afii57678;05DE
-afii57679;05DF
-afii57680;05E0
-afii57681;05E1
-afii57682;05E2
-afii57683;05E3
-afii57684;05E4
-afii57685;05E5
-afii57686;05E6
-afii57687;05E7
-afii57688;05E8
-afii57689;05E9
-afii57690;05EA
-afii57694;FB2A
-afii57695;FB2B
-afii57700;FB4B
-afii57705;FB1F
-afii57716;05F0
-afii57717;05F1
-afii57718;05F2
-afii57723;FB35
-afii57793;05B4
-afii57794;05B5
-afii57795;05B6
-afii57796;05BB
-afii57797;05B8
-afii57798;05B7
-afii57799;05B0
-afii57800;05B2
-afii57801;05B1
-afii57802;05B3
-afii57803;05C2
-afii57804;05C1
-afii57806;05B9
-afii57807;05BC
-afii57839;05BD
-afii57841;05BF
-afii57842;05C0
-afii57929;02BC
-afii61248;2105
-afii61289;2113
-afii61352;2116
-afii61573;202C
-afii61574;202D
-afii61575;202E
-afii61664;200C
-afii63167;066D
-afii64937;02BD
-agrave;00E0
-agujarati;0A85
-agurmukhi;0A05
-ahiragana;3042
-ahookabove;1EA3
-aibengali;0990
-aibopomofo;311E
-aideva;0910
-aiecyrillic;04D5
-aigujarati;0A90
-aigurmukhi;0A10
-aimatragurmukhi;0A48
-ainarabic;0639
-ainfinalarabic;FECA
-aininitialarabic;FECB
-ainmedialarabic;FECC
-ainvertedbreve;0203
-aivowelsignbengali;09C8
-aivowelsigndeva;0948
-aivowelsigngujarati;0AC8
-akatakana;30A2
-akatakanahalfwidth;FF71
-akorean;314F
-alef;05D0
-alefarabic;0627
-alefdageshhebrew;FB30
-aleffinalarabic;FE8E
-alefhamzaabovearabic;0623
-alefhamzaabovefinalarabic;FE84
-alefhamzabelowarabic;0625
-alefhamzabelowfinalarabic;FE88
-alefhebrew;05D0
-aleflamedhebrew;FB4F
-alefmaddaabovearabic;0622
-alefmaddaabovefinalarabic;FE82
-alefmaksuraarabic;0649
-alefmaksurafinalarabic;FEF0
-alefmaksurainitialarabic;FEF3
-alefmaksuramedialarabic;FEF4
-alefpatahhebrew;FB2E
-alefqamatshebrew;FB2F
-aleph;2135
-allequal;224C
-alpha;03B1
-alphatonos;03AC
-amacron;0101
-amonospace;FF41
-ampersand;0026
-ampersandmonospace;FF06
-ampersandsmall;F726
-amsquare;33C2
-anbopomofo;3122
-angbopomofo;3124
-angkhankhuthai;0E5A
-angle;2220
-anglebracketleft;3008
-anglebracketleftvertical;FE3F
-anglebracketright;3009
-anglebracketrightvertical;FE40
-angleleft;2329
-angleright;232A
-angstrom;212B
-anoteleia;0387
-anudattadeva;0952
-anusvarabengali;0982
-anusvaradeva;0902
-anusvaragujarati;0A82
-aogonek;0105
-apaatosquare;3300
-aparen;249C
-apostrophearmenian;055A
-apostrophemod;02BC
-apple;F8FF
-approaches;2250
-approxequal;2248
-approxequalorimage;2252
-approximatelyequal;2245
-araeaekorean;318E
-araeakorean;318D
-arc;2312
-arighthalfring;1E9A
-aring;00E5
-aringacute;01FB
-aringbelow;1E01
-arrowboth;2194
-arrowdashdown;21E3
-arrowdashleft;21E0
-arrowdashright;21E2
-arrowdashup;21E1
-arrowdblboth;21D4
-arrowdbldown;21D3
-arrowdblleft;21D0
-arrowdblright;21D2
-arrowdblup;21D1
-arrowdown;2193
-arrowdownleft;2199
-arrowdownright;2198
-arrowdownwhite;21E9
-arrowheaddownmod;02C5
-arrowheadleftmod;02C2
-arrowheadrightmod;02C3
-arrowheadupmod;02C4
-arrowhorizex;F8E7
-arrowleft;2190
-arrowleftdbl;21D0
-arrowleftdblstroke;21CD
-arrowleftoverright;21C6
-arrowleftwhite;21E6
-arrowright;2192
-arrowrightdblstroke;21CF
-arrowrightheavy;279E
-arrowrightoverleft;21C4
-arrowrightwhite;21E8
-arrowtableft;21E4
-arrowtabright;21E5
-arrowup;2191
-arrowupdn;2195
-arrowupdnbse;21A8
-arrowupdownbase;21A8
-arrowupleft;2196
-arrowupleftofdown;21C5
-arrowupright;2197
-arrowupwhite;21E7
-arrowvertex;F8E6
-asciicircum;005E
-asciicircummonospace;FF3E
-asciitilde;007E
-asciitildemonospace;FF5E
-ascript;0251
-ascriptturned;0252
-asmallhiragana;3041
-asmallkatakana;30A1
-asmallkatakanahalfwidth;FF67
-asterisk;002A
-asteriskaltonearabic;066D
-asteriskarabic;066D
-asteriskmath;2217
-asteriskmonospace;FF0A
-asterisksmall;FE61
-asterism;2042
-asuperior;F6E9
-asymptoticallyequal;2243
-at;0040
-atilde;00E3
-atmonospace;FF20
-atsmall;FE6B
-aturned;0250
-aubengali;0994
-aubopomofo;3120
-audeva;0914
-augujarati;0A94
-augurmukhi;0A14
-aulengthmarkbengali;09D7
-aumatragurmukhi;0A4C
-auvowelsignbengali;09CC
-auvowelsigndeva;094C
-auvowelsigngujarati;0ACC
-avagrahadeva;093D
-aybarmenian;0561
-ayin;05E2
-ayinaltonehebrew;FB20
-ayinhebrew;05E2
-b;0062
-babengali;09AC
-backslash;005C
-backslashmonospace;FF3C
-badeva;092C
-bagujarati;0AAC
-bagurmukhi;0A2C
-bahiragana;3070
-bahtthai;0E3F
-bakatakana;30D0
-bar;007C
-barmonospace;FF5C
-bbopomofo;3105
-bcircle;24D1
-bdotaccent;1E03
-bdotbelow;1E05
-beamedsixteenthnotes;266C
-because;2235
-becyrillic;0431
-beharabic;0628
-behfinalarabic;FE90
-behinitialarabic;FE91
-behiragana;3079
-behmedialarabic;FE92
-behmeeminitialarabic;FC9F
-behmeemisolatedarabic;FC08
-behnoonfinalarabic;FC6D
-bekatakana;30D9
-benarmenian;0562
-bet;05D1
-beta;03B2
-betasymbolgreek;03D0
-betdagesh;FB31
-betdageshhebrew;FB31
-bethebrew;05D1
-betrafehebrew;FB4C
-bhabengali;09AD
-bhadeva;092D
-bhagujarati;0AAD
-bhagurmukhi;0A2D
-bhook;0253
-bihiragana;3073
-bikatakana;30D3
-bilabialclick;0298
-bindigurmukhi;0A02
-birusquare;3331
-blackcircle;25CF
-blackdiamond;25C6
-blackdownpointingtriangle;25BC
-blackleftpointingpointer;25C4
-blackleftpointingtriangle;25C0
-blacklenticularbracketleft;3010
-blacklenticularbracketleftvertical;FE3B
-blacklenticularbracketright;3011
-blacklenticularbracketrightvertical;FE3C
-blacklowerlefttriangle;25E3
-blacklowerrighttriangle;25E2
-blackrectangle;25AC
-blackrightpointingpointer;25BA
-blackrightpointingtriangle;25B6
-blacksmallsquare;25AA
-blacksmilingface;263B
-blacksquare;25A0
-blackstar;2605
-blackupperlefttriangle;25E4
-blackupperrighttriangle;25E5
-blackuppointingsmalltriangle;25B4
-blackuppointingtriangle;25B2
-blank;2423
-blinebelow;1E07
-block;2588
-bmonospace;FF42
-bobaimaithai;0E1A
-bohiragana;307C
-bokatakana;30DC
-bparen;249D
-bqsquare;33C3
-braceex;F8F4
-braceleft;007B
-braceleftbt;F8F3
-braceleftmid;F8F2
-braceleftmonospace;FF5B
-braceleftsmall;FE5B
-bracelefttp;F8F1
-braceleftvertical;FE37
-braceright;007D
-bracerightbt;F8FE
-bracerightmid;F8FD
-bracerightmonospace;FF5D
-bracerightsmall;FE5C
-bracerighttp;F8FC
-bracerightvertical;FE38
-bracketleft;005B
-bracketleftbt;F8F0
-bracketleftex;F8EF
-bracketleftmonospace;FF3B
-bracketlefttp;F8EE
-bracketright;005D
-bracketrightbt;F8FB
-bracketrightex;F8FA
-bracketrightmonospace;FF3D
-bracketrighttp;F8F9
-breve;02D8
-brevebelowcmb;032E
-brevecmb;0306
-breveinvertedbelowcmb;032F
-breveinvertedcmb;0311
-breveinverteddoublecmb;0361
-bridgebelowcmb;032A
-bridgeinvertedbelowcmb;033A
-brokenbar;00A6
-bstroke;0180
-bsuperior;F6EA
-btopbar;0183
-buhiragana;3076
-bukatakana;30D6
-bullet;2022
-bulletinverse;25D8
-bulletoperator;2219
-bullseye;25CE
-c;0063
-caarmenian;056E
-cabengali;099A
-cacute;0107
-cadeva;091A
-cagujarati;0A9A
-cagurmukhi;0A1A
-calsquare;3388
-candrabindubengali;0981
-candrabinducmb;0310
-candrabindudeva;0901
-candrabindugujarati;0A81
-capslock;21EA
-careof;2105
-caron;02C7
-caronbelowcmb;032C
-caroncmb;030C
-carriagereturn;21B5
-cbopomofo;3118
-ccaron;010D
-ccedilla;00E7
-ccedillaacute;1E09
-ccircle;24D2
-ccircumflex;0109
-ccurl;0255
-cdot;010B
-cdotaccent;010B
-cdsquare;33C5
-cedilla;00B8
-cedillacmb;0327
-cent;00A2
-centigrade;2103
-centinferior;F6DF
-centmonospace;FFE0
-centoldstyle;F7A2
-centsuperior;F6E0
-chaarmenian;0579
-chabengali;099B
-chadeva;091B
-chagujarati;0A9B
-chagurmukhi;0A1B
-chbopomofo;3114
-cheabkhasiancyrillic;04BD
-checkmark;2713
-checyrillic;0447
-chedescenderabkhasiancyrillic;04BF
-chedescendercyrillic;04B7
-chedieresiscyrillic;04F5
-cheharmenian;0573
-chekhakassiancyrillic;04CC
-cheverticalstrokecyrillic;04B9
-chi;03C7
-chieuchacirclekorean;3277
-chieuchaparenkorean;3217
-chieuchcirclekorean;3269
-chieuchkorean;314A
-chieuchparenkorean;3209
-chochangthai;0E0A
-chochanthai;0E08
-chochingthai;0E09
-chochoethai;0E0C
-chook;0188
-cieucacirclekorean;3276
-cieucaparenkorean;3216
-cieuccirclekorean;3268
-cieuckorean;3148
-cieucparenkorean;3208
-cieucuparenkorean;321C
-circle;25CB
-circlemultiply;2297
-circleot;2299
-circleplus;2295
-circlepostalmark;3036
-circlewithlefthalfblack;25D0
-circlewithrighthalfblack;25D1
-circumflex;02C6
-circumflexbelowcmb;032D
-circumflexcmb;0302
-clear;2327
-clickalveolar;01C2
-clickdental;01C0
-clicklateral;01C1
-clickretroflex;01C3
-club;2663
-clubsuitblack;2663
-clubsuitwhite;2667
-cmcubedsquare;33A4
-cmonospace;FF43
-cmsquaredsquare;33A0
-coarmenian;0581
-colon;003A
-colonmonetary;20A1
-colonmonospace;FF1A
-colonsign;20A1
-colonsmall;FE55
-colontriangularhalfmod;02D1
-colontriangularmod;02D0
-comma;002C
-commaabovecmb;0313
-commaaboverightcmb;0315
-commaaccent;F6C3
-commaarabic;060C
-commaarmenian;055D
-commainferior;F6E1
-commamonospace;FF0C
-commareversedabovecmb;0314
-commareversedmod;02BD
-commasmall;FE50
-commasuperior;F6E2
-commaturnedabovecmb;0312
-commaturnedmod;02BB
-compass;263C
-congruent;2245
-contourintegral;222E
-control;2303
-controlACK;0006
-controlBEL;0007
-controlBS;0008
-controlCAN;0018
-controlCR;000D
-controlDC1;0011
-controlDC2;0012
-controlDC3;0013
-controlDC4;0014
-controlDEL;007F
-controlDLE;0010
-controlEM;0019
-controlENQ;0005
-controlEOT;0004
-controlESC;001B
-controlETB;0017
-controlETX;0003
-controlFF;000C
-controlFS;001C
-controlGS;001D
-controlHT;0009
-controlLF;000A
-controlNAK;0015
-controlRS;001E
-controlSI;000F
-controlSO;000E
-controlSOT;0002
-controlSTX;0001
-controlSUB;001A
-controlSYN;0016
-controlUS;001F
-controlVT;000B
-copyright;00A9
-copyrightsans;F8E9
-copyrightserif;F6D9
-cornerbracketleft;300C
-cornerbracketlefthalfwidth;FF62
-cornerbracketleftvertical;FE41
-cornerbracketright;300D
-cornerbracketrighthalfwidth;FF63
-cornerbracketrightvertical;FE42
-corporationsquare;337F
-cosquare;33C7
-coverkgsquare;33C6
-cparen;249E
-cruzeiro;20A2
-cstretched;0297
-curlyand;22CF
-curlyor;22CE
-currency;00A4
-cyrBreve;F6D1
-cyrFlex;F6D2
-cyrbreve;F6D4
-cyrflex;F6D5
-d;0064
-daarmenian;0564
-dabengali;09A6
-dadarabic;0636
-dadeva;0926
-dadfinalarabic;FEBE
-dadinitialarabic;FEBF
-dadmedialarabic;FEC0
-dagesh;05BC
-dageshhebrew;05BC
-dagger;2020
-daggerdbl;2021
-dagujarati;0AA6
-dagurmukhi;0A26
-dahiragana;3060
-dakatakana;30C0
-dalarabic;062F
-dalet;05D3
-daletdagesh;FB33
-daletdageshhebrew;FB33
-dalethatafpatah;05D3 05B2
-dalethatafpatahhebrew;05D3 05B2
-dalethatafsegol;05D3 05B1
-dalethatafsegolhebrew;05D3 05B1
-dalethebrew;05D3
-dalethiriq;05D3 05B4
-dalethiriqhebrew;05D3 05B4
-daletholam;05D3 05B9
-daletholamhebrew;05D3 05B9
-daletpatah;05D3 05B7
-daletpatahhebrew;05D3 05B7
-daletqamats;05D3 05B8
-daletqamatshebrew;05D3 05B8
-daletqubuts;05D3 05BB
-daletqubutshebrew;05D3 05BB
-daletsegol;05D3 05B6
-daletsegolhebrew;05D3 05B6
-daletsheva;05D3 05B0
-daletshevahebrew;05D3 05B0
-dalettsere;05D3 05B5
-dalettserehebrew;05D3 05B5
-dalfinalarabic;FEAA
-dammaarabic;064F
-dammalowarabic;064F
-dammatanaltonearabic;064C
-dammatanarabic;064C
-danda;0964
-dargahebrew;05A7
-dargalefthebrew;05A7
-dasiapneumatacyrilliccmb;0485
-dblGrave;F6D3
-dblanglebracketleft;300A
-dblanglebracketleftvertical;FE3D
-dblanglebracketright;300B
-dblanglebracketrightvertical;FE3E
-dblarchinvertedbelowcmb;032B
-dblarrowleft;21D4
-dblarrowright;21D2
-dbldanda;0965
-dblgrave;F6D6
-dblgravecmb;030F
-dblintegral;222C
-dbllowline;2017
-dbllowlinecmb;0333
-dbloverlinecmb;033F
-dblprimemod;02BA
-dblverticalbar;2016
-dblverticallineabovecmb;030E
-dbopomofo;3109
-dbsquare;33C8
-dcaron;010F
-dcedilla;1E11
-dcircle;24D3
-dcircumflexbelow;1E13
-dcroat;0111
-ddabengali;09A1
-ddadeva;0921
-ddagujarati;0AA1
-ddagurmukhi;0A21
-ddalarabic;0688
-ddalfinalarabic;FB89
-dddhadeva;095C
-ddhabengali;09A2
-ddhadeva;0922
-ddhagujarati;0AA2
-ddhagurmukhi;0A22
-ddotaccent;1E0B
-ddotbelow;1E0D
-decimalseparatorarabic;066B
-decimalseparatorpersian;066B
-decyrillic;0434
-degree;00B0
-dehihebrew;05AD
-dehiragana;3067
-deicoptic;03EF
-dekatakana;30C7
-deleteleft;232B
-deleteright;2326
-delta;03B4
-deltaturned;018D
-denominatorminusonenumeratorbengali;09F8
-dezh;02A4
-dhabengali;09A7
-dhadeva;0927
-dhagujarati;0AA7
-dhagurmukhi;0A27
-dhook;0257
-dialytikatonos;0385
-dialytikatonoscmb;0344
-diamond;2666
-diamondsuitwhite;2662
-dieresis;00A8
-dieresisacute;F6D7
-dieresisbelowcmb;0324
-dieresiscmb;0308
-dieresisgrave;F6D8
-dieresistonos;0385
-dihiragana;3062
-dikatakana;30C2
-dittomark;3003
-divide;00F7
-divides;2223
-divisionslash;2215
-djecyrillic;0452
-dkshade;2593
-dlinebelow;1E0F
-dlsquare;3397
-dmacron;0111
-dmonospace;FF44
-dnblock;2584
-dochadathai;0E0E
-dodekthai;0E14
-dohiragana;3069
-dokatakana;30C9
-dollar;0024
-dollarinferior;F6E3
-dollarmonospace;FF04
-dollaroldstyle;F724
-dollarsmall;FE69
-dollarsuperior;F6E4
-dong;20AB
-dorusquare;3326
-dotaccent;02D9
-dotaccentcmb;0307
-dotbelowcmb;0323
-dotbelowcomb;0323
-dotkatakana;30FB
-dotlessi;0131
-dotlessj;F6BE
-dotlessjstrokehook;0284
-dotmath;22C5
-dottedcircle;25CC
-doubleyodpatah;FB1F
-doubleyodpatahhebrew;FB1F
-downtackbelowcmb;031E
-downtackmod;02D5
-dparen;249F
-dsuperior;F6EB
-dtail;0256
-dtopbar;018C
-duhiragana;3065
-dukatakana;30C5
-dz;01F3
-dzaltone;02A3
-dzcaron;01C6
-dzcurl;02A5
-dzeabkhasiancyrillic;04E1
-dzecyrillic;0455
-dzhecyrillic;045F
-e;0065
-eacute;00E9
-earth;2641
-ebengali;098F
-ebopomofo;311C
-ebreve;0115
-ecandradeva;090D
-ecandragujarati;0A8D
-ecandravowelsigndeva;0945
-ecandravowelsigngujarati;0AC5
-ecaron;011B
-ecedillabreve;1E1D
-echarmenian;0565
-echyiwnarmenian;0587
-ecircle;24D4
-ecircumflex;00EA
-ecircumflexacute;1EBF
-ecircumflexbelow;1E19
-ecircumflexdotbelow;1EC7
-ecircumflexgrave;1EC1
-ecircumflexhookabove;1EC3
-ecircumflextilde;1EC5
-ecyrillic;0454
-edblgrave;0205
-edeva;090F
-edieresis;00EB
-edot;0117
-edotaccent;0117
-edotbelow;1EB9
-eegurmukhi;0A0F
-eematragurmukhi;0A47
-efcyrillic;0444
-egrave;00E8
-egujarati;0A8F
-eharmenian;0567
-ehbopomofo;311D
-ehiragana;3048
-ehookabove;1EBB
-eibopomofo;311F
-eight;0038
-eightarabic;0668
-eightbengali;09EE
-eightcircle;2467
-eightcircleinversesansserif;2791
-eightdeva;096E
-eighteencircle;2471
-eighteenparen;2485
-eighteenperiod;2499
-eightgujarati;0AEE
-eightgurmukhi;0A6E
-eighthackarabic;0668
-eighthangzhou;3028
-eighthnotebeamed;266B
-eightideographicparen;3227
-eightinferior;2088
-eightmonospace;FF18
-eightoldstyle;F738
-eightparen;247B
-eightperiod;248F
-eightpersian;06F8
-eightroman;2177
-eightsuperior;2078
-eightthai;0E58
-einvertedbreve;0207
-eiotifiedcyrillic;0465
-ekatakana;30A8
-ekatakanahalfwidth;FF74
-ekonkargurmukhi;0A74
-ekorean;3154
-elcyrillic;043B
-element;2208
-elevencircle;246A
-elevenparen;247E
-elevenperiod;2492
-elevenroman;217A
-ellipsis;2026
-ellipsisvertical;22EE
-emacron;0113
-emacronacute;1E17
-emacrongrave;1E15
-emcyrillic;043C
-emdash;2014
-emdashvertical;FE31
-emonospace;FF45
-emphasismarkarmenian;055B
-emptyset;2205
-enbopomofo;3123
-encyrillic;043D
-endash;2013
-endashvertical;FE32
-endescendercyrillic;04A3
-eng;014B
-engbopomofo;3125
-enghecyrillic;04A5
-enhookcyrillic;04C8
-enspace;2002
-eogonek;0119
-eokorean;3153
-eopen;025B
-eopenclosed;029A
-eopenreversed;025C
-eopenreversedclosed;025E
-eopenreversedhook;025D
-eparen;24A0
-epsilon;03B5
-epsilontonos;03AD
-equal;003D
-equalmonospace;FF1D
-equalsmall;FE66
-equalsuperior;207C
-equivalence;2261
-erbopomofo;3126
-ercyrillic;0440
-ereversed;0258
-ereversedcyrillic;044D
-escyrillic;0441
-esdescendercyrillic;04AB
-esh;0283
-eshcurl;0286
-eshortdeva;090E
-eshortvowelsigndeva;0946
-eshreversedloop;01AA
-eshsquatreversed;0285
-esmallhiragana;3047
-esmallkatakana;30A7
-esmallkatakanahalfwidth;FF6A
-estimated;212E
-esuperior;F6EC
-eta;03B7
-etarmenian;0568
-etatonos;03AE
-eth;00F0
-etilde;1EBD
-etildebelow;1E1B
-etnahtafoukhhebrew;0591
-etnahtafoukhlefthebrew;0591
-etnahtahebrew;0591
-etnahtalefthebrew;0591
-eturned;01DD
-eukorean;3161
-euro;20AC
-evowelsignbengali;09C7
-evowelsigndeva;0947
-evowelsigngujarati;0AC7
-exclam;0021
-exclamarmenian;055C
-exclamdbl;203C
-exclamdown;00A1
-exclamdownsmall;F7A1
-exclammonospace;FF01
-exclamsmall;F721
-existential;2203
-ezh;0292
-ezhcaron;01EF
-ezhcurl;0293
-ezhreversed;01B9
-ezhtail;01BA
-f;0066
-fadeva;095E
-fagurmukhi;0A5E
-fahrenheit;2109
-fathaarabic;064E
-fathalowarabic;064E
-fathatanarabic;064B
-fbopomofo;3108
-fcircle;24D5
-fdotaccent;1E1F
-feharabic;0641
-feharmenian;0586
-fehfinalarabic;FED2
-fehinitialarabic;FED3
-fehmedialarabic;FED4
-feicoptic;03E5
-female;2640
-ff;FB00
-ffi;FB03
-ffl;FB04
-fi;FB01
-fifteencircle;246E
-fifteenparen;2482
-fifteenperiod;2496
-figuredash;2012
-filledbox;25A0
-filledrect;25AC
-finalkaf;05DA
-finalkafdagesh;FB3A
-finalkafdageshhebrew;FB3A
-finalkafhebrew;05DA
-finalkafqamats;05DA 05B8
-finalkafqamatshebrew;05DA 05B8
-finalkafsheva;05DA 05B0
-finalkafshevahebrew;05DA 05B0
-finalmem;05DD
-finalmemhebrew;05DD
-finalnun;05DF
-finalnunhebrew;05DF
-finalpe;05E3
-finalpehebrew;05E3
-finaltsadi;05E5
-finaltsadihebrew;05E5
-firsttonechinese;02C9
-fisheye;25C9
-fitacyrillic;0473
-five;0035
-fivearabic;0665
-fivebengali;09EB
-fivecircle;2464
-fivecircleinversesansserif;278E
-fivedeva;096B
-fiveeighths;215D
-fivegujarati;0AEB
-fivegurmukhi;0A6B
-fivehackarabic;0665
-fivehangzhou;3025
-fiveideographicparen;3224
-fiveinferior;2085
-fivemonospace;FF15
-fiveoldstyle;F735
-fiveparen;2478
-fiveperiod;248C
-fivepersian;06F5
-fiveroman;2174
-fivesuperior;2075
-fivethai;0E55
-fl;FB02
-florin;0192
-fmonospace;FF46
-fmsquare;3399
-fofanthai;0E1F
-fofathai;0E1D
-fongmanthai;0E4F
-forall;2200
-four;0034
-fourarabic;0664
-fourbengali;09EA
-fourcircle;2463
-fourcircleinversesansserif;278D
-fourdeva;096A
-fourgujarati;0AEA
-fourgurmukhi;0A6A
-fourhackarabic;0664
-fourhangzhou;3024
-fourideographicparen;3223
-fourinferior;2084
-fourmonospace;FF14
-fournumeratorbengali;09F7
-fouroldstyle;F734
-fourparen;2477
-fourperiod;248B
-fourpersian;06F4
-fourroman;2173
-foursuperior;2074
-fourteencircle;246D
-fourteenparen;2481
-fourteenperiod;2495
-fourthai;0E54
-fourthtonechinese;02CB
-fparen;24A1
-fraction;2044
-franc;20A3
-g;0067
-gabengali;0997
-gacute;01F5
-gadeva;0917
-gafarabic;06AF
-gaffinalarabic;FB93
-gafinitialarabic;FB94
-gafmedialarabic;FB95
-gagujarati;0A97
-gagurmukhi;0A17
-gahiragana;304C
-gakatakana;30AC
-gamma;03B3
-gammalatinsmall;0263
-gammasuperior;02E0
-gangiacoptic;03EB
-gbopomofo;310D
-gbreve;011F
-gcaron;01E7
-gcedilla;0123
-gcircle;24D6
-gcircumflex;011D
-gcommaaccent;0123
-gdot;0121
-gdotaccent;0121
-gecyrillic;0433
-gehiragana;3052
-gekatakana;30B2
-geometricallyequal;2251
-gereshaccenthebrew;059C
-gereshhebrew;05F3
-gereshmuqdamhebrew;059D
-germandbls;00DF
-gershayimaccenthebrew;059E
-gershayimhebrew;05F4
-getamark;3013
-ghabengali;0998
-ghadarmenian;0572
-ghadeva;0918
-ghagujarati;0A98
-ghagurmukhi;0A18
-ghainarabic;063A
-ghainfinalarabic;FECE
-ghaininitialarabic;FECF
-ghainmedialarabic;FED0
-ghemiddlehookcyrillic;0495
-ghestrokecyrillic;0493
-gheupturncyrillic;0491
-ghhadeva;095A
-ghhagurmukhi;0A5A
-ghook;0260
-ghzsquare;3393
-gihiragana;304E
-gikatakana;30AE
-gimarmenian;0563
-gimel;05D2
-gimeldagesh;FB32
-gimeldageshhebrew;FB32
-gimelhebrew;05D2
-gjecyrillic;0453
-glottalinvertedstroke;01BE
-glottalstop;0294
-glottalstopinverted;0296
-glottalstopmod;02C0
-glottalstopreversed;0295
-glottalstopreversedmod;02C1
-glottalstopreversedsuperior;02E4
-glottalstopstroke;02A1
-glottalstopstrokereversed;02A2
-gmacron;1E21
-gmonospace;FF47
-gohiragana;3054
-gokatakana;30B4
-gparen;24A2
-gpasquare;33AC
-gradient;2207
-grave;0060
-gravebelowcmb;0316
-gravecmb;0300
-gravecomb;0300
-gravedeva;0953
-gravelowmod;02CE
-gravemonospace;FF40
-gravetonecmb;0340
-greater;003E
-greaterequal;2265
-greaterequalorless;22DB
-greatermonospace;FF1E
-greaterorequivalent;2273
-greaterorless;2277
-greateroverequal;2267
-greatersmall;FE65
-gscript;0261
-gstroke;01E5
-guhiragana;3050
-guillemotleft;00AB
-guillemotright;00BB
-guilsinglleft;2039
-guilsinglright;203A
-gukatakana;30B0
-guramusquare;3318
-gysquare;33C9
-h;0068
-haabkhasiancyrillic;04A9
-haaltonearabic;06C1
-habengali;09B9
-hadescendercyrillic;04B3
-hadeva;0939
-hagujarati;0AB9
-hagurmukhi;0A39
-haharabic;062D
-hahfinalarabic;FEA2
-hahinitialarabic;FEA3
-hahiragana;306F
-hahmedialarabic;FEA4
-haitusquare;332A
-hakatakana;30CF
-hakatakanahalfwidth;FF8A
-halantgurmukhi;0A4D
-hamzaarabic;0621
-hamzadammaarabic;0621 064F
-hamzadammatanarabic;0621 064C
-hamzafathaarabic;0621 064E
-hamzafathatanarabic;0621 064B
-hamzalowarabic;0621
-hamzalowkasraarabic;0621 0650
-hamzalowkasratanarabic;0621 064D
-hamzasukunarabic;0621 0652
-hangulfiller;3164
-hardsigncyrillic;044A
-harpoonleftbarbup;21BC
-harpoonrightbarbup;21C0
-hasquare;33CA
-hatafpatah;05B2
-hatafpatah16;05B2
-hatafpatah23;05B2
-hatafpatah2f;05B2
-hatafpatahhebrew;05B2
-hatafpatahnarrowhebrew;05B2
-hatafpatahquarterhebrew;05B2
-hatafpatahwidehebrew;05B2
-hatafqamats;05B3
-hatafqamats1b;05B3
-hatafqamats28;05B3
-hatafqamats34;05B3
-hatafqamatshebrew;05B3
-hatafqamatsnarrowhebrew;05B3
-hatafqamatsquarterhebrew;05B3
-hatafqamatswidehebrew;05B3
-hatafsegol;05B1
-hatafsegol17;05B1
-hatafsegol24;05B1
-hatafsegol30;05B1
-hatafsegolhebrew;05B1
-hatafsegolnarrowhebrew;05B1
-hatafsegolquarterhebrew;05B1
-hatafsegolwidehebrew;05B1
-hbar;0127
-hbopomofo;310F
-hbrevebelow;1E2B
-hcedilla;1E29
-hcircle;24D7
-hcircumflex;0125
-hdieresis;1E27
-hdotaccent;1E23
-hdotbelow;1E25
-he;05D4
-heart;2665
-heartsuitblack;2665
-heartsuitwhite;2661
-hedagesh;FB34
-hedageshhebrew;FB34
-hehaltonearabic;06C1
-heharabic;0647
-hehebrew;05D4
-hehfinalaltonearabic;FBA7
-hehfinalalttwoarabic;FEEA
-hehfinalarabic;FEEA
-hehhamzaabovefinalarabic;FBA5
-hehhamzaaboveisolatedarabic;FBA4
-hehinitialaltonearabic;FBA8
-hehinitialarabic;FEEB
-hehiragana;3078
-hehmedialaltonearabic;FBA9
-hehmedialarabic;FEEC
-heiseierasquare;337B
-hekatakana;30D8
-hekatakanahalfwidth;FF8D
-hekutaarusquare;3336
-henghook;0267
-herutusquare;3339
-het;05D7
-hethebrew;05D7
-hhook;0266
-hhooksuperior;02B1
-hieuhacirclekorean;327B
-hieuhaparenkorean;321B
-hieuhcirclekorean;326D
-hieuhkorean;314E
-hieuhparenkorean;320D
-hihiragana;3072
-hikatakana;30D2
-hikatakanahalfwidth;FF8B
-hiriq;05B4
-hiriq14;05B4
-hiriq21;05B4
-hiriq2d;05B4
-hiriqhebrew;05B4
-hiriqnarrowhebrew;05B4
-hiriqquarterhebrew;05B4
-hiriqwidehebrew;05B4
-hlinebelow;1E96
-hmonospace;FF48
-hoarmenian;0570
-hohipthai;0E2B
-hohiragana;307B
-hokatakana;30DB
-hokatakanahalfwidth;FF8E
-holam;05B9
-holam19;05B9
-holam26;05B9
-holam32;05B9
-holamhebrew;05B9
-holamnarrowhebrew;05B9
-holamquarterhebrew;05B9
-holamwidehebrew;05B9
-honokhukthai;0E2E
-hookabovecomb;0309
-hookcmb;0309
-hookpalatalizedbelowcmb;0321
-hookretroflexbelowcmb;0322
-hoonsquare;3342
-horicoptic;03E9
-horizontalbar;2015
-horncmb;031B
-hotsprings;2668
-house;2302
-hparen;24A3
-hsuperior;02B0
-hturned;0265
-huhiragana;3075
-huiitosquare;3333
-hukatakana;30D5
-hukatakanahalfwidth;FF8C
-hungarumlaut;02DD
-hungarumlautcmb;030B
-hv;0195
-hyphen;002D
-hypheninferior;F6E5
-hyphenmonospace;FF0D
-hyphensmall;FE63
-hyphensuperior;F6E6
-hyphentwo;2010
-i;0069
-iacute;00ED
-iacyrillic;044F
-ibengali;0987
-ibopomofo;3127
-ibreve;012D
-icaron;01D0
-icircle;24D8
-icircumflex;00EE
-icyrillic;0456
-idblgrave;0209
-ideographearthcircle;328F
-ideographfirecircle;328B
-ideographicallianceparen;323F
-ideographiccallparen;323A
-ideographiccentrecircle;32A5
-ideographicclose;3006
-ideographiccomma;3001
-ideographiccommaleft;FF64
-ideographiccongratulationparen;3237
-ideographiccorrectcircle;32A3
-ideographicearthparen;322F
-ideographicenterpriseparen;323D
-ideographicexcellentcircle;329D
-ideographicfestivalparen;3240
-ideographicfinancialcircle;3296
-ideographicfinancialparen;3236
-ideographicfireparen;322B
-ideographichaveparen;3232
-ideographichighcircle;32A4
-ideographiciterationmark;3005
-ideographiclaborcircle;3298
-ideographiclaborparen;3238
-ideographicleftcircle;32A7
-ideographiclowcircle;32A6
-ideographicmedicinecircle;32A9
-ideographicmetalparen;322E
-ideographicmoonparen;322A
-ideographicnameparen;3234
-ideographicperiod;3002
-ideographicprintcircle;329E
-ideographicreachparen;3243
-ideographicrepresentparen;3239
-ideographicresourceparen;323E
-ideographicrightcircle;32A8
-ideographicsecretcircle;3299
-ideographicselfparen;3242
-ideographicsocietyparen;3233
-ideographicspace;3000
-ideographicspecialparen;3235
-ideographicstockparen;3231
-ideographicstudyparen;323B
-ideographicsunparen;3230
-ideographicsuperviseparen;323C
-ideographicwaterparen;322C
-ideographicwoodparen;322D
-ideographiczero;3007
-ideographmetalcircle;328E
-ideographmooncircle;328A
-ideographnamecircle;3294
-ideographsuncircle;3290
-ideographwatercircle;328C
-ideographwoodcircle;328D
-ideva;0907
-idieresis;00EF
-idieresisacute;1E2F
-idieresiscyrillic;04E5
-idotbelow;1ECB
-iebrevecyrillic;04D7
-iecyrillic;0435
-ieungacirclekorean;3275
-ieungaparenkorean;3215
-ieungcirclekorean;3267
-ieungkorean;3147
-ieungparenkorean;3207
-igrave;00EC
-igujarati;0A87
-igurmukhi;0A07
-ihiragana;3044
-ihookabove;1EC9
-iibengali;0988
-iicyrillic;0438
-iideva;0908
-iigujarati;0A88
-iigurmukhi;0A08
-iimatragurmukhi;0A40
-iinvertedbreve;020B
-iishortcyrillic;0439
-iivowelsignbengali;09C0
-iivowelsigndeva;0940
-iivowelsigngujarati;0AC0
-ij;0133
-ikatakana;30A4
-ikatakanahalfwidth;FF72
-ikorean;3163
-ilde;02DC
-iluyhebrew;05AC
-imacron;012B
-imacroncyrillic;04E3
-imageorapproximatelyequal;2253
-imatragurmukhi;0A3F
-imonospace;FF49
-increment;2206
-infinity;221E
-iniarmenian;056B
-integral;222B
-integralbottom;2321
-integralbt;2321
-integralex;F8F5
-integraltop;2320
-integraltp;2320
-intersection;2229
-intisquare;3305
-invbullet;25D8
-invcircle;25D9
-invsmileface;263B
-iocyrillic;0451
-iogonek;012F
-iota;03B9
-iotadieresis;03CA
-iotadieresistonos;0390
-iotalatin;0269
-iotatonos;03AF
-iparen;24A4
-irigurmukhi;0A72
-ismallhiragana;3043
-ismallkatakana;30A3
-ismallkatakanahalfwidth;FF68
-issharbengali;09FA
-istroke;0268
-isuperior;F6ED
-iterationhiragana;309D
-iterationkatakana;30FD
-itilde;0129
-itildebelow;1E2D
-iubopomofo;3129
-iucyrillic;044E
-ivowelsignbengali;09BF
-ivowelsigndeva;093F
-ivowelsigngujarati;0ABF
-izhitsacyrillic;0475
-izhitsadblgravecyrillic;0477
-j;006A
-jaarmenian;0571
-jabengali;099C
-jadeva;091C
-jagujarati;0A9C
-jagurmukhi;0A1C
-jbopomofo;3110
-jcaron;01F0
-jcircle;24D9
-jcircumflex;0135
-jcrossedtail;029D
-jdotlessstroke;025F
-jecyrillic;0458
-jeemarabic;062C
-jeemfinalarabic;FE9E
-jeeminitialarabic;FE9F
-jeemmedialarabic;FEA0
-jeharabic;0698
-jehfinalarabic;FB8B
-jhabengali;099D
-jhadeva;091D
-jhagujarati;0A9D
-jhagurmukhi;0A1D
-jheharmenian;057B
-jis;3004
-jmonospace;FF4A
-jparen;24A5
-jsuperior;02B2
-k;006B
-kabashkircyrillic;04A1
-kabengali;0995
-kacute;1E31
-kacyrillic;043A
-kadescendercyrillic;049B
-kadeva;0915
-kaf;05DB
-kafarabic;0643
-kafdagesh;FB3B
-kafdageshhebrew;FB3B
-kaffinalarabic;FEDA
-kafhebrew;05DB
-kafinitialarabic;FEDB
-kafmedialarabic;FEDC
-kafrafehebrew;FB4D
-kagujarati;0A95
-kagurmukhi;0A15
-kahiragana;304B
-kahookcyrillic;04C4
-kakatakana;30AB
-kakatakanahalfwidth;FF76
-kappa;03BA
-kappasymbolgreek;03F0
-kapyeounmieumkorean;3171
-kapyeounphieuphkorean;3184
-kapyeounpieupkorean;3178
-kapyeounssangpieupkorean;3179
-karoriisquare;330D
-kashidaautoarabic;0640
-kashidaautonosidebearingarabic;0640
-kasmallkatakana;30F5
-kasquare;3384
-kasraarabic;0650
-kasratanarabic;064D
-kastrokecyrillic;049F
-katahiraprolongmarkhalfwidth;FF70
-kaverticalstrokecyrillic;049D
-kbopomofo;310E
-kcalsquare;3389
-kcaron;01E9
-kcedilla;0137
-kcircle;24DA
-kcommaaccent;0137
-kdotbelow;1E33
-keharmenian;0584
-kehiragana;3051
-kekatakana;30B1
-kekatakanahalfwidth;FF79
-kenarmenian;056F
-kesmallkatakana;30F6
-kgreenlandic;0138
-khabengali;0996
-khacyrillic;0445
-khadeva;0916
-khagujarati;0A96
-khagurmukhi;0A16
-khaharabic;062E
-khahfinalarabic;FEA6
-khahinitialarabic;FEA7
-khahmedialarabic;FEA8
-kheicoptic;03E7
-khhadeva;0959
-khhagurmukhi;0A59
-khieukhacirclekorean;3278
-khieukhaparenkorean;3218
-khieukhcirclekorean;326A
-khieukhkorean;314B
-khieukhparenkorean;320A
-khokhaithai;0E02
-khokhonthai;0E05
-khokhuatthai;0E03
-khokhwaithai;0E04
-khomutthai;0E5B
-khook;0199
-khorakhangthai;0E06
-khzsquare;3391
-kihiragana;304D
-kikatakana;30AD
-kikatakanahalfwidth;FF77
-kiroguramusquare;3315
-kiromeetorusquare;3316
-kirosquare;3314
-kiyeokacirclekorean;326E
-kiyeokaparenkorean;320E
-kiyeokcirclekorean;3260
-kiyeokkorean;3131
-kiyeokparenkorean;3200
-kiyeoksioskorean;3133
-kjecyrillic;045C
-klinebelow;1E35
-klsquare;3398
-kmcubedsquare;33A6
-kmonospace;FF4B
-kmsquaredsquare;33A2
-kohiragana;3053
-kohmsquare;33C0
-kokaithai;0E01
-kokatakana;30B3
-kokatakanahalfwidth;FF7A
-kooposquare;331E
-koppacyrillic;0481
-koreanstandardsymbol;327F
-koroniscmb;0343
-kparen;24A6
-kpasquare;33AA
-ksicyrillic;046F
-ktsquare;33CF
-kturned;029E
-kuhiragana;304F
-kukatakana;30AF
-kukatakanahalfwidth;FF78
-kvsquare;33B8
-kwsquare;33BE
-l;006C
-labengali;09B2
-lacute;013A
-ladeva;0932
-lagujarati;0AB2
-lagurmukhi;0A32
-lakkhangyaothai;0E45
-lamaleffinalarabic;FEFC
-lamalefhamzaabovefinalarabic;FEF8
-lamalefhamzaaboveisolatedarabic;FEF7
-lamalefhamzabelowfinalarabic;FEFA
-lamalefhamzabelowisolatedarabic;FEF9
-lamalefisolatedarabic;FEFB
-lamalefmaddaabovefinalarabic;FEF6
-lamalefmaddaaboveisolatedarabic;FEF5
-lamarabic;0644
-lambda;03BB
-lambdastroke;019B
-lamed;05DC
-lameddagesh;FB3C
-lameddageshhebrew;FB3C
-lamedhebrew;05DC
-lamedholam;05DC 05B9
-lamedholamdagesh;05DC 05B9 05BC
-lamedholamdageshhebrew;05DC 05B9 05BC
-lamedholamhebrew;05DC 05B9
-lamfinalarabic;FEDE
-lamhahinitialarabic;FCCA
-laminitialarabic;FEDF
-lamjeeminitialarabic;FCC9
-lamkhahinitialarabic;FCCB
-lamlamhehisolatedarabic;FDF2
-lammedialarabic;FEE0
-lammeemhahinitialarabic;FD88
-lammeeminitialarabic;FCCC
-lammeemjeeminitialarabic;FEDF FEE4 FEA0
-lammeemkhahinitialarabic;FEDF FEE4 FEA8
-largecircle;25EF
-lbar;019A
-lbelt;026C
-lbopomofo;310C
-lcaron;013E
-lcedilla;013C
-lcircle;24DB
-lcircumflexbelow;1E3D
-lcommaaccent;013C
-ldot;0140
-ldotaccent;0140
-ldotbelow;1E37
-ldotbelowmacron;1E39
-leftangleabovecmb;031A
-lefttackbelowcmb;0318
-less;003C
-lessequal;2264
-lessequalorgreater;22DA
-lessmonospace;FF1C
-lessorequivalent;2272
-lessorgreater;2276
-lessoverequal;2266
-lesssmall;FE64
-lezh;026E
-lfblock;258C
-lhookretroflex;026D
-lira;20A4
-liwnarmenian;056C
-lj;01C9
-ljecyrillic;0459
-ll;F6C0
-lladeva;0933
-llagujarati;0AB3
-llinebelow;1E3B
-llladeva;0934
-llvocalicbengali;09E1
-llvocalicdeva;0961
-llvocalicvowelsignbengali;09E3
-llvocalicvowelsigndeva;0963
-lmiddletilde;026B
-lmonospace;FF4C
-lmsquare;33D0
-lochulathai;0E2C
-logicaland;2227
-logicalnot;00AC
-logicalnotreversed;2310
-logicalor;2228
-lolingthai;0E25
-longs;017F
-lowlinecenterline;FE4E
-lowlinecmb;0332
-lowlinedashed;FE4D
-lozenge;25CA
-lparen;24A7
-lslash;0142
-lsquare;2113
-lsuperior;F6EE
-ltshade;2591
-luthai;0E26
-lvocalicbengali;098C
-lvocalicdeva;090C
-lvocalicvowelsignbengali;09E2
-lvocalicvowelsigndeva;0962
-lxsquare;33D3
-m;006D
-mabengali;09AE
-macron;00AF
-macronbelowcmb;0331
-macroncmb;0304
-macronlowmod;02CD
-macronmonospace;FFE3
-macute;1E3F
-madeva;092E
-magujarati;0AAE
-magurmukhi;0A2E
-mahapakhhebrew;05A4
-mahapakhlefthebrew;05A4
-mahiragana;307E
-maichattawalowleftthai;F895
-maichattawalowrightthai;F894
-maichattawathai;0E4B
-maichattawaupperleftthai;F893
-maieklowleftthai;F88C
-maieklowrightthai;F88B
-maiekthai;0E48
-maiekupperleftthai;F88A
-maihanakatleftthai;F884
-maihanakatthai;0E31
-maitaikhuleftthai;F889
-maitaikhuthai;0E47
-maitholowleftthai;F88F
-maitholowrightthai;F88E
-maithothai;0E49
-maithoupperleftthai;F88D
-maitrilowleftthai;F892
-maitrilowrightthai;F891
-maitrithai;0E4A
-maitriupperleftthai;F890
-maiyamokthai;0E46
-makatakana;30DE
-makatakanahalfwidth;FF8F
-male;2642
-mansyonsquare;3347
-maqafhebrew;05BE
-mars;2642
-masoracirclehebrew;05AF
-masquare;3383
-mbopomofo;3107
-mbsquare;33D4
-mcircle;24DC
-mcubedsquare;33A5
-mdotaccent;1E41
-mdotbelow;1E43
-meemarabic;0645
-meemfinalarabic;FEE2
-meeminitialarabic;FEE3
-meemmedialarabic;FEE4
-meemmeeminitialarabic;FCD1
-meemmeemisolatedarabic;FC48
-meetorusquare;334D
-mehiragana;3081
-meizierasquare;337E
-mekatakana;30E1
-mekatakanahalfwidth;FF92
-mem;05DE
-memdagesh;FB3E
-memdageshhebrew;FB3E
-memhebrew;05DE
-menarmenian;0574
-merkhahebrew;05A5
-merkhakefulahebrew;05A6
-merkhakefulalefthebrew;05A6
-merkhalefthebrew;05A5
-mhook;0271
-mhzsquare;3392
-middledotkatakanahalfwidth;FF65
-middot;00B7
-mieumacirclekorean;3272
-mieumaparenkorean;3212
-mieumcirclekorean;3264
-mieumkorean;3141
-mieumpansioskorean;3170
-mieumparenkorean;3204
-mieumpieupkorean;316E
-mieumsioskorean;316F
-mihiragana;307F
-mikatakana;30DF
-mikatakanahalfwidth;FF90
-minus;2212
-minusbelowcmb;0320
-minuscircle;2296
-minusmod;02D7
-minusplus;2213
-minute;2032
-miribaarusquare;334A
-mirisquare;3349
-mlonglegturned;0270
-mlsquare;3396
-mmcubedsquare;33A3
-mmonospace;FF4D
-mmsquaredsquare;339F
-mohiragana;3082
-mohmsquare;33C1
-mokatakana;30E2
-mokatakanahalfwidth;FF93
-molsquare;33D6
-momathai;0E21
-moverssquare;33A7
-moverssquaredsquare;33A8
-mparen;24A8
-mpasquare;33AB
-mssquare;33B3
-msuperior;F6EF
-mturned;026F
-mu;00B5
-mu1;00B5
-muasquare;3382
-muchgreater;226B
-muchless;226A
-mufsquare;338C
-mugreek;03BC
-mugsquare;338D
-muhiragana;3080
-mukatakana;30E0
-mukatakanahalfwidth;FF91
-mulsquare;3395
-multiply;00D7
-mumsquare;339B
-munahhebrew;05A3
-munahlefthebrew;05A3
-musicalnote;266A
-musicalnotedbl;266B
-musicflatsign;266D
-musicsharpsign;266F
-mussquare;33B2
-muvsquare;33B6
-muwsquare;33BC
-mvmegasquare;33B9
-mvsquare;33B7
-mwmegasquare;33BF
-mwsquare;33BD
-n;006E
-nabengali;09A8
-nabla;2207
-nacute;0144
-nadeva;0928
-nagujarati;0AA8
-nagurmukhi;0A28
-nahiragana;306A
-nakatakana;30CA
-nakatakanahalfwidth;FF85
-napostrophe;0149
-nasquare;3381
-nbopomofo;310B
-nbspace;00A0
-ncaron;0148
-ncedilla;0146
-ncircle;24DD
-ncircumflexbelow;1E4B
-ncommaaccent;0146
-ndotaccent;1E45
-ndotbelow;1E47
-nehiragana;306D
-nekatakana;30CD
-nekatakanahalfwidth;FF88
-newsheqelsign;20AA
-nfsquare;338B
-ngabengali;0999
-ngadeva;0919
-ngagujarati;0A99
-ngagurmukhi;0A19
-ngonguthai;0E07
-nhiragana;3093
-nhookleft;0272
-nhookretroflex;0273
-nieunacirclekorean;326F
-nieunaparenkorean;320F
-nieuncieuckorean;3135
-nieuncirclekorean;3261
-nieunhieuhkorean;3136
-nieunkorean;3134
-nieunpansioskorean;3168
-nieunparenkorean;3201
-nieunsioskorean;3167
-nieuntikeutkorean;3166
-nihiragana;306B
-nikatakana;30CB
-nikatakanahalfwidth;FF86
-nikhahitleftthai;F899
-nikhahitthai;0E4D
-nine;0039
-ninearabic;0669
-ninebengali;09EF
-ninecircle;2468
-ninecircleinversesansserif;2792
-ninedeva;096F
-ninegujarati;0AEF
-ninegurmukhi;0A6F
-ninehackarabic;0669
-ninehangzhou;3029
-nineideographicparen;3228
-nineinferior;2089
-ninemonospace;FF19
-nineoldstyle;F739
-nineparen;247C
-nineperiod;2490
-ninepersian;06F9
-nineroman;2178
-ninesuperior;2079
-nineteencircle;2472
-nineteenparen;2486
-nineteenperiod;249A
-ninethai;0E59
-nj;01CC
-njecyrillic;045A
-nkatakana;30F3
-nkatakanahalfwidth;FF9D
-nlegrightlong;019E
-nlinebelow;1E49
-nmonospace;FF4E
-nmsquare;339A
-nnabengali;09A3
-nnadeva;0923
-nnagujarati;0AA3
-nnagurmukhi;0A23
-nnnadeva;0929
-nohiragana;306E
-nokatakana;30CE
-nokatakanahalfwidth;FF89
-nonbreakingspace;00A0
-nonenthai;0E13
-nonuthai;0E19
-noonarabic;0646
-noonfinalarabic;FEE6
-noonghunnaarabic;06BA
-noonghunnafinalarabic;FB9F
-noonhehinitialarabic;FEE7 FEEC
-nooninitialarabic;FEE7
-noonjeeminitialarabic;FCD2
-noonjeemisolatedarabic;FC4B
-noonmedialarabic;FEE8
-noonmeeminitialarabic;FCD5
-noonmeemisolatedarabic;FC4E
-noonnoonfinalarabic;FC8D
-notcontains;220C
-notelement;2209
-notelementof;2209
-notequal;2260
-notgreater;226F
-notgreaternorequal;2271
-notgreaternorless;2279
-notidentical;2262
-notless;226E
-notlessnorequal;2270
-notparallel;2226
-notprecedes;2280
-notsubset;2284
-notsucceeds;2281
-notsuperset;2285
-nowarmenian;0576
-nparen;24A9
-nssquare;33B1
-nsuperior;207F
-ntilde;00F1
-nu;03BD
-nuhiragana;306C
-nukatakana;30CC
-nukatakanahalfwidth;FF87
-nuktabengali;09BC
-nuktadeva;093C
-nuktagujarati;0ABC
-nuktagurmukhi;0A3C
-numbersign;0023
-numbersignmonospace;FF03
-numbersignsmall;FE5F
-numeralsigngreek;0374
-numeralsignlowergreek;0375
-numero;2116
-nun;05E0
-nundagesh;FB40
-nundageshhebrew;FB40
-nunhebrew;05E0
-nvsquare;33B5
-nwsquare;33BB
-nyabengali;099E
-nyadeva;091E
-nyagujarati;0A9E
-nyagurmukhi;0A1E
-o;006F
-oacute;00F3
-oangthai;0E2D
-obarred;0275
-obarredcyrillic;04E9
-obarreddieresiscyrillic;04EB
-obengali;0993
-obopomofo;311B
-obreve;014F
-ocandradeva;0911
-ocandragujarati;0A91
-ocandravowelsigndeva;0949
-ocandravowelsigngujarati;0AC9
-ocaron;01D2
-ocircle;24DE
-ocircumflex;00F4
-ocircumflexacute;1ED1
-ocircumflexdotbelow;1ED9
-ocircumflexgrave;1ED3
-ocircumflexhookabove;1ED5
-ocircumflextilde;1ED7
-ocyrillic;043E
-odblacute;0151
-odblgrave;020D
-odeva;0913
-odieresis;00F6
-odieresiscyrillic;04E7
-odotbelow;1ECD
-oe;0153
-oekorean;315A
-ogonek;02DB
-ogonekcmb;0328
-ograve;00F2
-ogujarati;0A93
-oharmenian;0585
-ohiragana;304A
-ohookabove;1ECF
-ohorn;01A1
-ohornacute;1EDB
-ohorndotbelow;1EE3
-ohorngrave;1EDD
-ohornhookabove;1EDF
-ohorntilde;1EE1
-ohungarumlaut;0151
-oi;01A3
-oinvertedbreve;020F
-okatakana;30AA
-okatakanahalfwidth;FF75
-okorean;3157
-olehebrew;05AB
-omacron;014D
-omacronacute;1E53
-omacrongrave;1E51
-omdeva;0950
-omega;03C9
-omega1;03D6
-omegacyrillic;0461
-omegalatinclosed;0277
-omegaroundcyrillic;047B
-omegatitlocyrillic;047D
-omegatonos;03CE
-omgujarati;0AD0
-omicron;03BF
-omicrontonos;03CC
-omonospace;FF4F
-one;0031
-onearabic;0661
-onebengali;09E7
-onecircle;2460
-onecircleinversesansserif;278A
-onedeva;0967
-onedotenleader;2024
-oneeighth;215B
-onefitted;F6DC
-onegujarati;0AE7
-onegurmukhi;0A67
-onehackarabic;0661
-onehalf;00BD
-onehangzhou;3021
-oneideographicparen;3220
-oneinferior;2081
-onemonospace;FF11
-onenumeratorbengali;09F4
-oneoldstyle;F731
-oneparen;2474
-oneperiod;2488
-onepersian;06F1
-onequarter;00BC
-oneroman;2170
-onesuperior;00B9
-onethai;0E51
-onethird;2153
-oogonek;01EB
-oogonekmacron;01ED
-oogurmukhi;0A13
-oomatragurmukhi;0A4B
-oopen;0254
-oparen;24AA
-openbullet;25E6
-option;2325
-ordfeminine;00AA
-ordmasculine;00BA
-orthogonal;221F
-oshortdeva;0912
-oshortvowelsigndeva;094A
-oslash;00F8
-oslashacute;01FF
-osmallhiragana;3049
-osmallkatakana;30A9
-osmallkatakanahalfwidth;FF6B
-ostrokeacute;01FF
-osuperior;F6F0
-otcyrillic;047F
-otilde;00F5
-otildeacute;1E4D
-otildedieresis;1E4F
-oubopomofo;3121
-overline;203E
-overlinecenterline;FE4A
-overlinecmb;0305
-overlinedashed;FE49
-overlinedblwavy;FE4C
-overlinewavy;FE4B
-overscore;00AF
-ovowelsignbengali;09CB
-ovowelsigndeva;094B
-ovowelsigngujarati;0ACB
-p;0070
-paampssquare;3380
-paasentosquare;332B
-pabengali;09AA
-pacute;1E55
-padeva;092A
-pagedown;21DF
-pageup;21DE
-pagujarati;0AAA
-pagurmukhi;0A2A
-pahiragana;3071
-paiyannoithai;0E2F
-pakatakana;30D1
-palatalizationcyrilliccmb;0484
-palochkacyrillic;04C0
-pansioskorean;317F
-paragraph;00B6
-parallel;2225
-parenleft;0028
-parenleftaltonearabic;FD3E
-parenleftbt;F8ED
-parenleftex;F8EC
-parenleftinferior;208D
-parenleftmonospace;FF08
-parenleftsmall;FE59
-parenleftsuperior;207D
-parenlefttp;F8EB
-parenleftvertical;FE35
-parenright;0029
-parenrightaltonearabic;FD3F
-parenrightbt;F8F8
-parenrightex;F8F7
-parenrightinferior;208E
-parenrightmonospace;FF09
-parenrightsmall;FE5A
-parenrightsuperior;207E
-parenrighttp;F8F6
-parenrightvertical;FE36
-partialdiff;2202
-paseqhebrew;05C0
-pashtahebrew;0599
-pasquare;33A9
-patah;05B7
-patah11;05B7
-patah1d;05B7
-patah2a;05B7
-patahhebrew;05B7
-patahnarrowhebrew;05B7
-patahquarterhebrew;05B7
-patahwidehebrew;05B7
-pazerhebrew;05A1
-pbopomofo;3106
-pcircle;24DF
-pdotaccent;1E57
-pe;05E4
-pecyrillic;043F
-pedagesh;FB44
-pedageshhebrew;FB44
-peezisquare;333B
-pefinaldageshhebrew;FB43
-peharabic;067E
-peharmenian;057A
-pehebrew;05E4
-pehfinalarabic;FB57
-pehinitialarabic;FB58
-pehiragana;307A
-pehmedialarabic;FB59
-pekatakana;30DA
-pemiddlehookcyrillic;04A7
-perafehebrew;FB4E
-percent;0025
-percentarabic;066A
-percentmonospace;FF05
-percentsmall;FE6A
-period;002E
-periodarmenian;0589
-periodcentered;00B7
-periodhalfwidth;FF61
-periodinferior;F6E7
-periodmonospace;FF0E
-periodsmall;FE52
-periodsuperior;F6E8
-perispomenigreekcmb;0342
-perpendicular;22A5
-perthousand;2030
-peseta;20A7
-pfsquare;338A
-phabengali;09AB
-phadeva;092B
-phagujarati;0AAB
-phagurmukhi;0A2B
-phi;03C6
-phi1;03D5
-phieuphacirclekorean;327A
-phieuphaparenkorean;321A
-phieuphcirclekorean;326C
-phieuphkorean;314D
-phieuphparenkorean;320C
-philatin;0278
-phinthuthai;0E3A
-phisymbolgreek;03D5
-phook;01A5
-phophanthai;0E1E
-phophungthai;0E1C
-phosamphaothai;0E20
-pi;03C0
-pieupacirclekorean;3273
-pieupaparenkorean;3213
-pieupcieuckorean;3176
-pieupcirclekorean;3265
-pieupkiyeokkorean;3172
-pieupkorean;3142
-pieupparenkorean;3205
-pieupsioskiyeokkorean;3174
-pieupsioskorean;3144
-pieupsiostikeutkorean;3175
-pieupthieuthkorean;3177
-pieuptikeutkorean;3173
-pihiragana;3074
-pikatakana;30D4
-pisymbolgreek;03D6
-piwrarmenian;0583
-plus;002B
-plusbelowcmb;031F
-pluscircle;2295
-plusminus;00B1
-plusmod;02D6
-plusmonospace;FF0B
-plussmall;FE62
-plussuperior;207A
-pmonospace;FF50
-pmsquare;33D8
-pohiragana;307D
-pointingindexdownwhite;261F
-pointingindexleftwhite;261C
-pointingindexrightwhite;261E
-pointingindexupwhite;261D
-pokatakana;30DD
-poplathai;0E1B
-postalmark;3012
-postalmarkface;3020
-pparen;24AB
-precedes;227A
-prescription;211E
-primemod;02B9
-primereversed;2035
-product;220F
-projective;2305
-prolongedkana;30FC
-propellor;2318
-propersubset;2282
-propersuperset;2283
-proportion;2237
-proportional;221D
-psi;03C8
-psicyrillic;0471
-psilipneumatacyrilliccmb;0486
-pssquare;33B0
-puhiragana;3077
-pukatakana;30D7
-pvsquare;33B4
-pwsquare;33BA
-q;0071
-qadeva;0958
-qadmahebrew;05A8
-qafarabic;0642
-qaffinalarabic;FED6
-qafinitialarabic;FED7
-qafmedialarabic;FED8
-qamats;05B8
-qamats10;05B8
-qamats1a;05B8
-qamats1c;05B8
-qamats27;05B8
-qamats29;05B8
-qamats33;05B8
-qamatsde;05B8
-qamatshebrew;05B8
-qamatsnarrowhebrew;05B8
-qamatsqatanhebrew;05B8
-qamatsqatannarrowhebrew;05B8
-qamatsqatanquarterhebrew;05B8
-qamatsqatanwidehebrew;05B8
-qamatsquarterhebrew;05B8
-qamatswidehebrew;05B8
-qarneyparahebrew;059F
-qbopomofo;3111
-qcircle;24E0
-qhook;02A0
-qmonospace;FF51
-qof;05E7
-qofdagesh;FB47
-qofdageshhebrew;FB47
-qofhatafpatah;05E7 05B2
-qofhatafpatahhebrew;05E7 05B2
-qofhatafsegol;05E7 05B1
-qofhatafsegolhebrew;05E7 05B1
-qofhebrew;05E7
-qofhiriq;05E7 05B4
-qofhiriqhebrew;05E7 05B4
-qofholam;05E7 05B9
-qofholamhebrew;05E7 05B9
-qofpatah;05E7 05B7
-qofpatahhebrew;05E7 05B7
-qofqamats;05E7 05B8
-qofqamatshebrew;05E7 05B8
-qofqubuts;05E7 05BB
-qofqubutshebrew;05E7 05BB
-qofsegol;05E7 05B6
-qofsegolhebrew;05E7 05B6
-qofsheva;05E7 05B0
-qofshevahebrew;05E7 05B0
-qoftsere;05E7 05B5
-qoftserehebrew;05E7 05B5
-qparen;24AC
-quarternote;2669
-qubuts;05BB
-qubuts18;05BB
-qubuts25;05BB
-qubuts31;05BB
-qubutshebrew;05BB
-qubutsnarrowhebrew;05BB
-qubutsquarterhebrew;05BB
-qubutswidehebrew;05BB
-question;003F
-questionarabic;061F
-questionarmenian;055E
-questiondown;00BF
-questiondownsmall;F7BF
-questiongreek;037E
-questionmonospace;FF1F
-questionsmall;F73F
-quotedbl;0022
-quotedblbase;201E
-quotedblleft;201C
-quotedblmonospace;FF02
-quotedblprime;301E
-quotedblprimereversed;301D
-quotedblright;201D
-quoteleft;2018
-quoteleftreversed;201B
-quotereversed;201B
-quoteright;2019
-quoterightn;0149
-quotesinglbase;201A
-quotesingle;0027
-quotesinglemonospace;FF07
-r;0072
-raarmenian;057C
-rabengali;09B0
-racute;0155
-radeva;0930
-radical;221A
-radicalex;F8E5
-radoverssquare;33AE
-radoverssquaredsquare;33AF
-radsquare;33AD
-rafe;05BF
-rafehebrew;05BF
-ragujarati;0AB0
-ragurmukhi;0A30
-rahiragana;3089
-rakatakana;30E9
-rakatakanahalfwidth;FF97
-ralowerdiagonalbengali;09F1
-ramiddlediagonalbengali;09F0
-ramshorn;0264
-ratio;2236
-rbopomofo;3116
-rcaron;0159
-rcedilla;0157
-rcircle;24E1
-rcommaaccent;0157
-rdblgrave;0211
-rdotaccent;1E59
-rdotbelow;1E5B
-rdotbelowmacron;1E5D
-referencemark;203B
-reflexsubset;2286
-reflexsuperset;2287
-registered;00AE
-registersans;F8E8
-registerserif;F6DA
-reharabic;0631
-reharmenian;0580
-rehfinalarabic;FEAE
-rehiragana;308C
-rehyehaleflamarabic;0631 FEF3 FE8E 0644
-rekatakana;30EC
-rekatakanahalfwidth;FF9A
-resh;05E8
-reshdageshhebrew;FB48
-reshhatafpatah;05E8 05B2
-reshhatafpatahhebrew;05E8 05B2
-reshhatafsegol;05E8 05B1
-reshhatafsegolhebrew;05E8 05B1
-reshhebrew;05E8
-reshhiriq;05E8 05B4
-reshhiriqhebrew;05E8 05B4
-reshholam;05E8 05B9
-reshholamhebrew;05E8 05B9
-reshpatah;05E8 05B7
-reshpatahhebrew;05E8 05B7
-reshqamats;05E8 05B8
-reshqamatshebrew;05E8 05B8
-reshqubuts;05E8 05BB
-reshqubutshebrew;05E8 05BB
-reshsegol;05E8 05B6
-reshsegolhebrew;05E8 05B6
-reshsheva;05E8 05B0
-reshshevahebrew;05E8 05B0
-reshtsere;05E8 05B5
-reshtserehebrew;05E8 05B5
-reversedtilde;223D
-reviahebrew;0597
-reviamugrashhebrew;0597
-revlogicalnot;2310
-rfishhook;027E
-rfishhookreversed;027F
-rhabengali;09DD
-rhadeva;095D
-rho;03C1
-rhook;027D
-rhookturned;027B
-rhookturnedsuperior;02B5
-rhosymbolgreek;03F1
-rhotichookmod;02DE
-rieulacirclekorean;3271
-rieulaparenkorean;3211
-rieulcirclekorean;3263
-rieulhieuhkorean;3140
-rieulkiyeokkorean;313A
-rieulkiyeoksioskorean;3169
-rieulkorean;3139
-rieulmieumkorean;313B
-rieulpansioskorean;316C
-rieulparenkorean;3203
-rieulphieuphkorean;313F
-rieulpieupkorean;313C
-rieulpieupsioskorean;316B
-rieulsioskorean;313D
-rieulthieuthkorean;313E
-rieultikeutkorean;316A
-rieulyeorinhieuhkorean;316D
-rightangle;221F
-righttackbelowcmb;0319
-righttriangle;22BF
-rihiragana;308A
-rikatakana;30EA
-rikatakanahalfwidth;FF98
-ring;02DA
-ringbelowcmb;0325
-ringcmb;030A
-ringhalfleft;02BF
-ringhalfleftarmenian;0559
-ringhalfleftbelowcmb;031C
-ringhalfleftcentered;02D3
-ringhalfright;02BE
-ringhalfrightbelowcmb;0339
-ringhalfrightcentered;02D2
-rinvertedbreve;0213
-rittorusquare;3351
-rlinebelow;1E5F
-rlongleg;027C
-rlonglegturned;027A
-rmonospace;FF52
-rohiragana;308D
-rokatakana;30ED
-rokatakanahalfwidth;FF9B
-roruathai;0E23
-rparen;24AD
-rrabengali;09DC
-rradeva;0931
-rragurmukhi;0A5C
-rreharabic;0691
-rrehfinalarabic;FB8D
-rrvocalicbengali;09E0
-rrvocalicdeva;0960
-rrvocalicgujarati;0AE0
-rrvocalicvowelsignbengali;09C4
-rrvocalicvowelsigndeva;0944
-rrvocalicvowelsigngujarati;0AC4
-rsuperior;F6F1
-rtblock;2590
-rturned;0279
-rturnedsuperior;02B4
-ruhiragana;308B
-rukatakana;30EB
-rukatakanahalfwidth;FF99
-rupeemarkbengali;09F2
-rupeesignbengali;09F3
-rupiah;F6DD
-ruthai;0E24
-rvocalicbengali;098B
-rvocalicdeva;090B
-rvocalicgujarati;0A8B
-rvocalicvowelsignbengali;09C3
-rvocalicvowelsigndeva;0943
-rvocalicvowelsigngujarati;0AC3
-s;0073
-sabengali;09B8
-sacute;015B
-sacutedotaccent;1E65
-sadarabic;0635
-sadeva;0938
-sadfinalarabic;FEBA
-sadinitialarabic;FEBB
-sadmedialarabic;FEBC
-sagujarati;0AB8
-sagurmukhi;0A38
-sahiragana;3055
-sakatakana;30B5
-sakatakanahalfwidth;FF7B
-sallallahoualayhewasallamarabic;FDFA
-samekh;05E1
-samekhdagesh;FB41
-samekhdageshhebrew;FB41
-samekhhebrew;05E1
-saraaathai;0E32
-saraaethai;0E41
-saraaimaimalaithai;0E44
-saraaimaimuanthai;0E43
-saraamthai;0E33
-saraathai;0E30
-saraethai;0E40
-saraiileftthai;F886
-saraiithai;0E35
-saraileftthai;F885
-saraithai;0E34
-saraothai;0E42
-saraueeleftthai;F888
-saraueethai;0E37
-saraueleftthai;F887
-sarauethai;0E36
-sarauthai;0E38
-sarauuthai;0E39
-sbopomofo;3119
-scaron;0161
-scarondotaccent;1E67
-scedilla;015F
-schwa;0259
-schwacyrillic;04D9
-schwadieresiscyrillic;04DB
-schwahook;025A
-scircle;24E2
-scircumflex;015D
-scommaaccent;0219
-sdotaccent;1E61
-sdotbelow;1E63
-sdotbelowdotaccent;1E69
-seagullbelowcmb;033C
-second;2033
-secondtonechinese;02CA
-section;00A7
-seenarabic;0633
-seenfinalarabic;FEB2
-seeninitialarabic;FEB3
-seenmedialarabic;FEB4
-segol;05B6
-segol13;05B6
-segol1f;05B6
-segol2c;05B6
-segolhebrew;05B6
-segolnarrowhebrew;05B6
-segolquarterhebrew;05B6
-segoltahebrew;0592
-segolwidehebrew;05B6
-seharmenian;057D
-sehiragana;305B
-sekatakana;30BB
-sekatakanahalfwidth;FF7E
-semicolon;003B
-semicolonarabic;061B
-semicolonmonospace;FF1B
-semicolonsmall;FE54
-semivoicedmarkkana;309C
-semivoicedmarkkanahalfwidth;FF9F
-sentisquare;3322
-sentosquare;3323
-seven;0037
-sevenarabic;0667
-sevenbengali;09ED
-sevencircle;2466
-sevencircleinversesansserif;2790
-sevendeva;096D
-seveneighths;215E
-sevengujarati;0AED
-sevengurmukhi;0A6D
-sevenhackarabic;0667
-sevenhangzhou;3027
-sevenideographicparen;3226
-seveninferior;2087
-sevenmonospace;FF17
-sevenoldstyle;F737
-sevenparen;247A
-sevenperiod;248E
-sevenpersian;06F7
-sevenroman;2176
-sevensuperior;2077
-seventeencircle;2470
-seventeenparen;2484
-seventeenperiod;2498
-seventhai;0E57
-sfthyphen;00AD
-shaarmenian;0577
-shabengali;09B6
-shacyrillic;0448
-shaddaarabic;0651
-shaddadammaarabic;FC61
-shaddadammatanarabic;FC5E
-shaddafathaarabic;FC60
-shaddafathatanarabic;0651 064B
-shaddakasraarabic;FC62
-shaddakasratanarabic;FC5F
-shade;2592
-shadedark;2593
-shadelight;2591
-shademedium;2592
-shadeva;0936
-shagujarati;0AB6
-shagurmukhi;0A36
-shalshelethebrew;0593
-shbopomofo;3115
-shchacyrillic;0449
-sheenarabic;0634
-sheenfinalarabic;FEB6
-sheeninitialarabic;FEB7
-sheenmedialarabic;FEB8
-sheicoptic;03E3
-sheqel;20AA
-sheqelhebrew;20AA
-sheva;05B0
-sheva115;05B0
-sheva15;05B0
-sheva22;05B0
-sheva2e;05B0
-shevahebrew;05B0
-shevanarrowhebrew;05B0
-shevaquarterhebrew;05B0
-shevawidehebrew;05B0
-shhacyrillic;04BB
-shimacoptic;03ED
-shin;05E9
-shindagesh;FB49
-shindageshhebrew;FB49
-shindageshshindot;FB2C
-shindageshshindothebrew;FB2C
-shindageshsindot;FB2D
-shindageshsindothebrew;FB2D
-shindothebrew;05C1
-shinhebrew;05E9
-shinshindot;FB2A
-shinshindothebrew;FB2A
-shinsindot;FB2B
-shinsindothebrew;FB2B
-shook;0282
-sigma;03C3
-sigma1;03C2
-sigmafinal;03C2
-sigmalunatesymbolgreek;03F2
-sihiragana;3057
-sikatakana;30B7
-sikatakanahalfwidth;FF7C
-siluqhebrew;05BD
-siluqlefthebrew;05BD
-similar;223C
-sindothebrew;05C2
-siosacirclekorean;3274
-siosaparenkorean;3214
-sioscieuckorean;317E
-sioscirclekorean;3266
-sioskiyeokkorean;317A
-sioskorean;3145
-siosnieunkorean;317B
-siosparenkorean;3206
-siospieupkorean;317D
-siostikeutkorean;317C
-six;0036
-sixarabic;0666
-sixbengali;09EC
-sixcircle;2465
-sixcircleinversesansserif;278F
-sixdeva;096C
-sixgujarati;0AEC
-sixgurmukhi;0A6C
-sixhackarabic;0666
-sixhangzhou;3026
-sixideographicparen;3225
-sixinferior;2086
-sixmonospace;FF16
-sixoldstyle;F736
-sixparen;2479
-sixperiod;248D
-sixpersian;06F6
-sixroman;2175
-sixsuperior;2076
-sixteencircle;246F
-sixteencurrencydenominatorbengali;09F9
-sixteenparen;2483
-sixteenperiod;2497
-sixthai;0E56
-slash;002F
-slashmonospace;FF0F
-slong;017F
-slongdotaccent;1E9B
-smileface;263A
-smonospace;FF53
-sofpasuqhebrew;05C3
-softhyphen;00AD
-softsigncyrillic;044C
-sohiragana;305D
-sokatakana;30BD
-sokatakanahalfwidth;FF7F
-soliduslongoverlaycmb;0338
-solidusshortoverlaycmb;0337
-sorusithai;0E29
-sosalathai;0E28
-sosothai;0E0B
-sosuathai;0E2A
-space;0020
-spacehackarabic;0020
-spade;2660
-spadesuitblack;2660
-spadesuitwhite;2664
-sparen;24AE
-squarebelowcmb;033B
-squarecc;33C4
-squarecm;339D
-squarediagonalcrosshatchfill;25A9
-squarehorizontalfill;25A4
-squarekg;338F
-squarekm;339E
-squarekmcapital;33CE
-squareln;33D1
-squarelog;33D2
-squaremg;338E
-squaremil;33D5
-squaremm;339C
-squaremsquared;33A1
-squareorthogonalcrosshatchfill;25A6
-squareupperlefttolowerrightfill;25A7
-squareupperrighttolowerleftfill;25A8
-squareverticalfill;25A5
-squarewhitewithsmallblack;25A3
-srsquare;33DB
-ssabengali;09B7
-ssadeva;0937
-ssagujarati;0AB7
-ssangcieuckorean;3149
-ssanghieuhkorean;3185
-ssangieungkorean;3180
-ssangkiyeokkorean;3132
-ssangnieunkorean;3165
-ssangpieupkorean;3143
-ssangsioskorean;3146
-ssangtikeutkorean;3138
-ssuperior;F6F2
-sterling;00A3
-sterlingmonospace;FFE1
-strokelongoverlaycmb;0336
-strokeshortoverlaycmb;0335
-subset;2282
-subsetnotequal;228A
-subsetorequal;2286
-succeeds;227B
-suchthat;220B
-suhiragana;3059
-sukatakana;30B9
-sukatakanahalfwidth;FF7D
-sukunarabic;0652
-summation;2211
-sun;263C
-superset;2283
-supersetnotequal;228B
-supersetorequal;2287
-svsquare;33DC
-syouwaerasquare;337C
-t;0074
-tabengali;09A4
-tackdown;22A4
-tackleft;22A3
-tadeva;0924
-tagujarati;0AA4
-tagurmukhi;0A24
-taharabic;0637
-tahfinalarabic;FEC2
-tahinitialarabic;FEC3
-tahiragana;305F
-tahmedialarabic;FEC4
-taisyouerasquare;337D
-takatakana;30BF
-takatakanahalfwidth;FF80
-tatweelarabic;0640
-tau;03C4
-tav;05EA
-tavdages;FB4A
-tavdagesh;FB4A
-tavdageshhebrew;FB4A
-tavhebrew;05EA
-tbar;0167
-tbopomofo;310A
-tcaron;0165
-tccurl;02A8
-tcedilla;0163
-tcheharabic;0686
-tchehfinalarabic;FB7B
-tchehinitialarabic;FB7C
-tchehmedialarabic;FB7D
-tchehmeeminitialarabic;FB7C FEE4
-tcircle;24E3
-tcircumflexbelow;1E71
-tcommaaccent;0163
-tdieresis;1E97
-tdotaccent;1E6B
-tdotbelow;1E6D
-tecyrillic;0442
-tedescendercyrillic;04AD
-teharabic;062A
-tehfinalarabic;FE96
-tehhahinitialarabic;FCA2
-tehhahisolatedarabic;FC0C
-tehinitialarabic;FE97
-tehiragana;3066
-tehjeeminitialarabic;FCA1
-tehjeemisolatedarabic;FC0B
-tehmarbutaarabic;0629
-tehmarbutafinalarabic;FE94
-tehmedialarabic;FE98
-tehmeeminitialarabic;FCA4
-tehmeemisolatedarabic;FC0E
-tehnoonfinalarabic;FC73
-tekatakana;30C6
-tekatakanahalfwidth;FF83
-telephone;2121
-telephoneblack;260E
-telishagedolahebrew;05A0
-telishaqetanahebrew;05A9
-tencircle;2469
-tenideographicparen;3229
-tenparen;247D
-tenperiod;2491
-tenroman;2179
-tesh;02A7
-tet;05D8
-tetdagesh;FB38
-tetdageshhebrew;FB38
-tethebrew;05D8
-tetsecyrillic;04B5
-tevirhebrew;059B
-tevirlefthebrew;059B
-thabengali;09A5
-thadeva;0925
-thagujarati;0AA5
-thagurmukhi;0A25
-thalarabic;0630
-thalfinalarabic;FEAC
-thanthakhatlowleftthai;F898
-thanthakhatlowrightthai;F897
-thanthakhatthai;0E4C
-thanthakhatupperleftthai;F896
-theharabic;062B
-thehfinalarabic;FE9A
-thehinitialarabic;FE9B
-thehmedialarabic;FE9C
-thereexists;2203
-therefore;2234
-theta;03B8
-theta1;03D1
-thetasymbolgreek;03D1
-thieuthacirclekorean;3279
-thieuthaparenkorean;3219
-thieuthcirclekorean;326B
-thieuthkorean;314C
-thieuthparenkorean;320B
-thirteencircle;246C
-thirteenparen;2480
-thirteenperiod;2494
-thonangmonthothai;0E11
-thook;01AD
-thophuthaothai;0E12
-thorn;00FE
-thothahanthai;0E17
-thothanthai;0E10
-thothongthai;0E18
-thothungthai;0E16
-thousandcyrillic;0482
-thousandsseparatorarabic;066C
-thousandsseparatorpersian;066C
-three;0033
-threearabic;0663
-threebengali;09E9
-threecircle;2462
-threecircleinversesansserif;278C
-threedeva;0969
-threeeighths;215C
-threegujarati;0AE9
-threegurmukhi;0A69
-threehackarabic;0663
-threehangzhou;3023
-threeideographicparen;3222
-threeinferior;2083
-threemonospace;FF13
-threenumeratorbengali;09F6
-threeoldstyle;F733
-threeparen;2476
-threeperiod;248A
-threepersian;06F3
-threequarters;00BE
-threequartersemdash;F6DE
-threeroman;2172
-threesuperior;00B3
-threethai;0E53
-thzsquare;3394
-tihiragana;3061
-tikatakana;30C1
-tikatakanahalfwidth;FF81
-tikeutacirclekorean;3270
-tikeutaparenkorean;3210
-tikeutcirclekorean;3262
-tikeutkorean;3137
-tikeutparenkorean;3202
-tilde;02DC
-tildebelowcmb;0330
-tildecmb;0303
-tildecomb;0303
-tildedoublecmb;0360
-tildeoperator;223C
-tildeoverlaycmb;0334
-tildeverticalcmb;033E
-timescircle;2297
-tipehahebrew;0596
-tipehalefthebrew;0596
-tippigurmukhi;0A70
-titlocyrilliccmb;0483
-tiwnarmenian;057F
-tlinebelow;1E6F
-tmonospace;FF54
-toarmenian;0569
-tohiragana;3068
-tokatakana;30C8
-tokatakanahalfwidth;FF84
-tonebarextrahighmod;02E5
-tonebarextralowmod;02E9
-tonebarhighmod;02E6
-tonebarlowmod;02E8
-tonebarmidmod;02E7
-tonefive;01BD
-tonesix;0185
-tonetwo;01A8
-tonos;0384
-tonsquare;3327
-topatakthai;0E0F
-tortoiseshellbracketleft;3014
-tortoiseshellbracketleftsmall;FE5D
-tortoiseshellbracketleftvertical;FE39
-tortoiseshellbracketright;3015
-tortoiseshellbracketrightsmall;FE5E
-tortoiseshellbracketrightvertical;FE3A
-totaothai;0E15
-tpalatalhook;01AB
-tparen;24AF
-trademark;2122
-trademarksans;F8EA
-trademarkserif;F6DB
-tretroflexhook;0288
-triagdn;25BC
-triaglf;25C4
-triagrt;25BA
-triagup;25B2
-ts;02A6
-tsadi;05E6
-tsadidagesh;FB46
-tsadidageshhebrew;FB46
-tsadihebrew;05E6
-tsecyrillic;0446
-tsere;05B5
-tsere12;05B5
-tsere1e;05B5
-tsere2b;05B5
-tserehebrew;05B5
-tserenarrowhebrew;05B5
-tserequarterhebrew;05B5
-tserewidehebrew;05B5
-tshecyrillic;045B
-tsuperior;F6F3
-ttabengali;099F
-ttadeva;091F
-ttagujarati;0A9F
-ttagurmukhi;0A1F
-tteharabic;0679
-ttehfinalarabic;FB67
-ttehinitialarabic;FB68
-ttehmedialarabic;FB69
-tthabengali;09A0
-tthadeva;0920
-tthagujarati;0AA0
-tthagurmukhi;0A20
-tturned;0287
-tuhiragana;3064
-tukatakana;30C4
-tukatakanahalfwidth;FF82
-tusmallhiragana;3063
-tusmallkatakana;30C3
-tusmallkatakanahalfwidth;FF6F
-twelvecircle;246B
-twelveparen;247F
-twelveperiod;2493
-twelveroman;217B
-twentycircle;2473
-twentyhangzhou;5344
-twentyparen;2487
-twentyperiod;249B
-two;0032
-twoarabic;0662
-twobengali;09E8
-twocircle;2461
-twocircleinversesansserif;278B
-twodeva;0968
-twodotenleader;2025
-twodotleader;2025
-twodotleadervertical;FE30
-twogujarati;0AE8
-twogurmukhi;0A68
-twohackarabic;0662
-twohangzhou;3022
-twoideographicparen;3221
-twoinferior;2082
-twomonospace;FF12
-twonumeratorbengali;09F5
-twooldstyle;F732
-twoparen;2475
-twoperiod;2489
-twopersian;06F2
-tworoman;2171
-twostroke;01BB
-twosuperior;00B2
-twothai;0E52
-twothirds;2154
-u;0075
-uacute;00FA
-ubar;0289
-ubengali;0989
-ubopomofo;3128
-ubreve;016D
-ucaron;01D4
-ucircle;24E4
-ucircumflex;00FB
-ucircumflexbelow;1E77
-ucyrillic;0443
-udattadeva;0951
-udblacute;0171
-udblgrave;0215
-udeva;0909
-udieresis;00FC
-udieresisacute;01D8
-udieresisbelow;1E73
-udieresiscaron;01DA
-udieresiscyrillic;04F1
-udieresisgrave;01DC
-udieresismacron;01D6
-udotbelow;1EE5
-ugrave;00F9
-ugujarati;0A89
-ugurmukhi;0A09
-uhiragana;3046
-uhookabove;1EE7
-uhorn;01B0
-uhornacute;1EE9
-uhorndotbelow;1EF1
-uhorngrave;1EEB
-uhornhookabove;1EED
-uhorntilde;1EEF
-uhungarumlaut;0171
-uhungarumlautcyrillic;04F3
-uinvertedbreve;0217
-ukatakana;30A6
-ukatakanahalfwidth;FF73
-ukcyrillic;0479
-ukorean;315C
-umacron;016B
-umacroncyrillic;04EF
-umacrondieresis;1E7B
-umatragurmukhi;0A41
-umonospace;FF55
-underscore;005F
-underscoredbl;2017
-underscoremonospace;FF3F
-underscorevertical;FE33
-underscorewavy;FE4F
-union;222A
-universal;2200
-uogonek;0173
-uparen;24B0
-upblock;2580
-upperdothebrew;05C4
-upsilon;03C5
-upsilondieresis;03CB
-upsilondieresistonos;03B0
-upsilonlatin;028A
-upsilontonos;03CD
-uptackbelowcmb;031D
-uptackmod;02D4
-uragurmukhi;0A73
-uring;016F
-ushortcyrillic;045E
-usmallhiragana;3045
-usmallkatakana;30A5
-usmallkatakanahalfwidth;FF69
-ustraightcyrillic;04AF
-ustraightstrokecyrillic;04B1
-utilde;0169
-utildeacute;1E79
-utildebelow;1E75
-uubengali;098A
-uudeva;090A
-uugujarati;0A8A
-uugurmukhi;0A0A
-uumatragurmukhi;0A42
-uuvowelsignbengali;09C2
-uuvowelsigndeva;0942
-uuvowelsigngujarati;0AC2
-uvowelsignbengali;09C1
-uvowelsigndeva;0941
-uvowelsigngujarati;0AC1
-v;0076
-vadeva;0935
-vagujarati;0AB5
-vagurmukhi;0A35
-vakatakana;30F7
-vav;05D5
-vavdagesh;FB35
-vavdagesh65;FB35
-vavdageshhebrew;FB35
-vavhebrew;05D5
-vavholam;FB4B
-vavholamhebrew;FB4B
-vavvavhebrew;05F0
-vavyodhebrew;05F1
-vcircle;24E5
-vdotbelow;1E7F
-vecyrillic;0432
-veharabic;06A4
-vehfinalarabic;FB6B
-vehinitialarabic;FB6C
-vehmedialarabic;FB6D
-vekatakana;30F9
-venus;2640
-verticalbar;007C
-verticallineabovecmb;030D
-verticallinebelowcmb;0329
-verticallinelowmod;02CC
-verticallinemod;02C8
-vewarmenian;057E
-vhook;028B
-vikatakana;30F8
-viramabengali;09CD
-viramadeva;094D
-viramagujarati;0ACD
-visargabengali;0983
-visargadeva;0903
-visargagujarati;0A83
-vmonospace;FF56
-voarmenian;0578
-voicediterationhiragana;309E
-voicediterationkatakana;30FE
-voicedmarkkana;309B
-voicedmarkkanahalfwidth;FF9E
-vokatakana;30FA
-vparen;24B1
-vtilde;1E7D
-vturned;028C
-vuhiragana;3094
-vukatakana;30F4
-w;0077
-wacute;1E83
-waekorean;3159
-wahiragana;308F
-wakatakana;30EF
-wakatakanahalfwidth;FF9C
-wakorean;3158
-wasmallhiragana;308E
-wasmallkatakana;30EE
-wattosquare;3357
-wavedash;301C
-wavyunderscorevertical;FE34
-wawarabic;0648
-wawfinalarabic;FEEE
-wawhamzaabovearabic;0624
-wawhamzaabovefinalarabic;FE86
-wbsquare;33DD
-wcircle;24E6
-wcircumflex;0175
-wdieresis;1E85
-wdotaccent;1E87
-wdotbelow;1E89
-wehiragana;3091
-weierstrass;2118
-wekatakana;30F1
-wekorean;315E
-weokorean;315D
-wgrave;1E81
-whitebullet;25E6
-whitecircle;25CB
-whitecircleinverse;25D9
-whitecornerbracketleft;300E
-whitecornerbracketleftvertical;FE43
-whitecornerbracketright;300F
-whitecornerbracketrightvertical;FE44
-whitediamond;25C7
-whitediamondcontainingblacksmalldiamond;25C8
-whitedownpointingsmalltriangle;25BF
-whitedownpointingtriangle;25BD
-whiteleftpointingsmalltriangle;25C3
-whiteleftpointingtriangle;25C1
-whitelenticularbracketleft;3016
-whitelenticularbracketright;3017
-whiterightpointingsmalltriangle;25B9
-whiterightpointingtriangle;25B7
-whitesmallsquare;25AB
-whitesmilingface;263A
-whitesquare;25A1
-whitestar;2606
-whitetelephone;260F
-whitetortoiseshellbracketleft;3018
-whitetortoiseshellbracketright;3019
-whiteuppointingsmalltriangle;25B5
-whiteuppointingtriangle;25B3
-wihiragana;3090
-wikatakana;30F0
-wikorean;315F
-wmonospace;FF57
-wohiragana;3092
-wokatakana;30F2
-wokatakanahalfwidth;FF66
-won;20A9
-wonmonospace;FFE6
-wowaenthai;0E27
-wparen;24B2
-wring;1E98
-wsuperior;02B7
-wturned;028D
-wynn;01BF
-x;0078
-xabovecmb;033D
-xbopomofo;3112
-xcircle;24E7
-xdieresis;1E8D
-xdotaccent;1E8B
-xeharmenian;056D
-xi;03BE
-xmonospace;FF58
-xparen;24B3
-xsuperior;02E3
-y;0079
-yaadosquare;334E
-yabengali;09AF
-yacute;00FD
-yadeva;092F
-yaekorean;3152
-yagujarati;0AAF
-yagurmukhi;0A2F
-yahiragana;3084
-yakatakana;30E4
-yakatakanahalfwidth;FF94
-yakorean;3151
-yamakkanthai;0E4E
-yasmallhiragana;3083
-yasmallkatakana;30E3
-yasmallkatakanahalfwidth;FF6C
-yatcyrillic;0463
-ycircle;24E8
-ycircumflex;0177
-ydieresis;00FF
-ydotaccent;1E8F
-ydotbelow;1EF5
-yeharabic;064A
-yehbarreearabic;06D2
-yehbarreefinalarabic;FBAF
-yehfinalarabic;FEF2
-yehhamzaabovearabic;0626
-yehhamzaabovefinalarabic;FE8A
-yehhamzaaboveinitialarabic;FE8B
-yehhamzaabovemedialarabic;FE8C
-yehinitialarabic;FEF3
-yehmedialarabic;FEF4
-yehmeeminitialarabic;FCDD
-yehmeemisolatedarabic;FC58
-yehnoonfinalarabic;FC94
-yehthreedotsbelowarabic;06D1
-yekorean;3156
-yen;00A5
-yenmonospace;FFE5
-yeokorean;3155
-yeorinhieuhkorean;3186
-yerahbenyomohebrew;05AA
-yerahbenyomolefthebrew;05AA
-yericyrillic;044B
-yerudieresiscyrillic;04F9
-yesieungkorean;3181
-yesieungpansioskorean;3183
-yesieungsioskorean;3182
-yetivhebrew;059A
-ygrave;1EF3
-yhook;01B4
-yhookabove;1EF7
-yiarmenian;0575
-yicyrillic;0457
-yikorean;3162
-yinyang;262F
-yiwnarmenian;0582
-ymonospace;FF59
-yod;05D9
-yoddagesh;FB39
-yoddageshhebrew;FB39
-yodhebrew;05D9
-yodyodhebrew;05F2
-yodyodpatahhebrew;FB1F
-yohiragana;3088
-yoikorean;3189
-yokatakana;30E8
-yokatakanahalfwidth;FF96
-yokorean;315B
-yosmallhiragana;3087
-yosmallkatakana;30E7
-yosmallkatakanahalfwidth;FF6E
-yotgreek;03F3
-yoyaekorean;3188
-yoyakorean;3187
-yoyakthai;0E22
-yoyingthai;0E0D
-yparen;24B4
-ypogegrammeni;037A
-ypogegrammenigreekcmb;0345
-yr;01A6
-yring;1E99
-ysuperior;02B8
-ytilde;1EF9
-yturned;028E
-yuhiragana;3086
-yuikorean;318C
-yukatakana;30E6
-yukatakanahalfwidth;FF95
-yukorean;3160
-yusbigcyrillic;046B
-yusbigiotifiedcyrillic;046D
-yuslittlecyrillic;0467
-yuslittleiotifiedcyrillic;0469
-yusmallhiragana;3085
-yusmallkatakana;30E5
-yusmallkatakanahalfwidth;FF6D
-yuyekorean;318B
-yuyeokorean;318A
-yyabengali;09DF
-yyadeva;095F
-z;007A
-zaarmenian;0566
-zacute;017A
-zadeva;095B
-zagurmukhi;0A5B
-zaharabic;0638
-zahfinalarabic;FEC6
-zahinitialarabic;FEC7
-zahiragana;3056
-zahmedialarabic;FEC8
-zainarabic;0632
-zainfinalarabic;FEB0
-zakatakana;30B6
-zaqefgadolhebrew;0595
-zaqefqatanhebrew;0594
-zarqahebrew;0598
-zayin;05D6
-zayindagesh;FB36
-zayindageshhebrew;FB36
-zayinhebrew;05D6
-zbopomofo;3117
-zcaron;017E
-zcircle;24E9
-zcircumflex;1E91
-zcurl;0291
-zdot;017C
-zdotaccent;017C
-zdotbelow;1E93
-zecyrillic;0437
-zedescendercyrillic;0499
-zedieresiscyrillic;04DF
-zehiragana;305C
-zekatakana;30BC
-zero;0030
-zeroarabic;0660
-zerobengali;09E6
-zerodeva;0966
-zerogujarati;0AE6
-zerogurmukhi;0A66
-zerohackarabic;0660
-zeroinferior;2080
-zeromonospace;FF10
-zerooldstyle;F730
-zeropersian;06F0
-zerosuperior;2070
-zerothai;0E50
-zerowidthjoiner;FEFF
-zerowidthnonjoiner;200C
-zerowidthspace;200B
-zeta;03B6
-zhbopomofo;3113
-zhearmenian;056A
-zhebrevecyrillic;04C2
-zhecyrillic;0436
-zhedescendercyrillic;0497
-zhedieresiscyrillic;04DD
-zihiragana;3058
-zikatakana;30B8
-zinorhebrew;05AE
-zlinebelow;1E95
-zmonospace;FF5A
-zohiragana;305E
-zokatakana;30BE
-zparen;24B5
-zretroflexhook;0290
-zstroke;01B6
-zuhiragana;305A
-zukatakana;30BA
-"""
-
-
-t1_bias    = 0
-glyph_list = []
-
-
-def adobe_glyph_names():
-  """return the list of glyph names from the adobe list"""
-
-  lines  = string.split( adobe_glyph_list, '\n' )
-  glyphs = []
-
-  for line in lines:
-    if line:
-      fields = string.split( line, ';' )
-#     print fields[1] + ' - ' + fields[0]
-      glyphs.append( fields[0] )
-
-  return glyphs
-
-
-def adobe_glyph_values():
-  """return the list of glyph names and their unicode values"""
-
-  lines  = string.split( adobe_glyph_list, '\n' )
-  glyphs = []
-  values = []
-
-  for line in lines:
-    if line:
-      fields = string.split( line, ';' )
-#     print fields[1] + ' - ' + fields[0]
-      subfields = string.split( fields[1], ' ' )
-      if len( subfields ) == 1:
-        glyphs.append( fields[0] )
-        values.append( fields[1] )
-
-  return glyphs, values
-
-
-def filter_glyph_names( alist, filter ):
-  """filter 'alist' by taking _out_ all glyph names that are in 'filter'"""
-
-  count  = 0
-  extras = []
-
-  for name in alist:
-    try:
-      filtered_index = filter.index( name )
-    except:
-      extras.append( name )
-
-  return extras
-
-
-def dump_mac_indices( file, all_glyphs ):
-  write = file.write
-
-  write( "  static const unsigned short  mac_standard_names[" + \
-         repr( len( mac_standard_names ) + 1 ) + "] =\n" )
-  write( "  {\n" )
-
-  for name in mac_standard_names:
-    write( "    " + repr( all_glyphs.index( name ) ) + ",\n" )
-
-  write( "    0\n" )
-  write( "  };\n" )
-  write( "\n" )
-  write( "\n" )
-
-
-def dump_glyph_list( file, base_list, adobe_list ):
-  write = file.write
-
-  name_list = []
-
-  write( "  static const char* const  ps_glyph_names[] =\n" )
-  write( "  {\n" )
-
-  for name in base_list:
-    write( '    "' + name + '",\n' )
-    name_list.append( name )
-
-  write( "\n" )
-  write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
-  write( "\n" )
-
-  for name in adobe_list:
-    write( '    "' + name + '",\n' )
-    name_list.append( name )
-
-  write( "\n" )
-  write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
-  write( "\n" )
-  write( "    NULL\n" )
-  write( "  };\n" )
-  write( "\n" )
-  write( "\n" )
-
-  return name_list
-
-
-def dump_unicode_values( file, sid_list, adobe_list ):
-  """build the glyph names to unicode values table"""
-
-  write = file.write
-
-  agl_names, agl_unicodes = adobe_glyph_values()
-
-  write( "\n" )
-  write( "  static const unsigned short  ps_names_to_unicode[" + \
-          repr( len( sid_list ) + len( adobe_list ) + 1 ) + "] =\n" )
-  write( "  {\n" )
-
-  for name in sid_list:
-    try:
-      index = agl_names.index( name )
-      write( "    0x" + agl_unicodes[index] + "U,\n" )
-    except:
-      write( "    0,\n" )
-
-  write( "\n" )
-  write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
-  write( "\n" )
-
-  for name in adobe_list:
-    try:
-      index = agl_names.index( name )
-      write( "    0x" + agl_unicodes[index] + "U,\n" )
-    except:
-      write( "    0,\n" )
-
-  write( "\n" )
-  write( "#endif /* FT_CONFIG_OPTION_ADOBE_GLYPH_LIST */\n" )
-  write( "    0\n" )
-  write( "  };\n" )
-  write( "\n" )
-  write( "\n" )
-  write( "\n" )
-
-
-def dump_encoding( file, encoding_name, encoding_list ):
-  """dumps a given encoding"""
-
-  write = file.write
-
-  write( "  static const unsigned short  " + encoding_name + "[" + \
-          repr( len( encoding_list ) + 1 ) + "] =\n" )
-  write( "  {\n" )
-
-  for value in encoding_list:
-    write( "    " + repr( value ) + ",\n" )
-  write( "    0\n" )
-  write( "  };\n" )
-  write( "\n" )
-  write( "\n" )
-
-
-def main():
-  """main program body"""
-
-  if len( sys.argv ) != 2:
-    print __doc__ % sys.argv[0]
-    sys.exit( 1 )
-
-  file  = open( sys.argv[1], "w\n" )
-  write = file.write
-
-  count_sid = len( sid_standard_names )
-
-  # 'mac_extras' contains the list of glyph names in the Macintosh standard
-  # encoding which are not in either the Adobe Glyph List or the SID
-  # Standard Names.
-  #
-  mac_extras = filter_glyph_names( mac_standard_names, adobe_glyph_names() )
-  mac_extras = filter_glyph_names( mac_extras, sid_standard_names )
-
-  # 'base_list' contains the first names of our final glyph names table.
-  # It consists of the 'mac_extras' glyph names, followed by the SID
-  # Standard names.
-  #
-  mac_extras_count = len( mac_extras )
-  t1_bias          = mac_extras_count
-  base_list        = mac_extras + sid_standard_names
-
-  # 'adobe_list' contains the glyph names that are in the AGL, but not in
-  # the base_list; they will be placed after base_list glyph names in
-  # our final table.
-  #
-  adobe_list  = filter_glyph_names( adobe_glyph_names(), base_list )
-  adobe_count = len( adobe_list )
-
-  write( "/***************************************************************************/\n" )
-  write( "/*                                                                         */\n" )
-
-  write( "/*  %-71s*/\n" % sys.argv[1] )
-
-  write( "/*                                                                         */\n" )
-  write( "/*    PostScript glyph names (specification only).                         */\n" )
-  write( "/*                                                                         */\n" )
-  write( "/*  Copyright 2000-2001, 2003 by                                           */\n" )
-  write( "/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */\n" )
-  write( "/*                                                                         */\n" )
-  write( "/*  This file is part of the FreeType project, and may only be used,       */\n" )
-  write( "/*  modified, and distributed under the terms of the FreeType project      */\n" )
-  write( "/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */\n" )
-  write( "/*  this file you indicate that you have read the license and              */\n" )
-  write( "/*  understand and accept it fully.                                        */\n" )
-  write( "/*                                                                         */\n" )
-  write( "/***************************************************************************/\n" )
-  write( "\n" )
-  write( "\n" )
-  write( "  /* this file has been generated automatically -- do not edit! */\n" )
-  write( "\n" )
-  write( "\n" )
-
-  # dump final glyph list (mac extras + sid standard names + AGL glyph names)
-  #
-  name_list = dump_glyph_list( file, base_list, adobe_list )
-
-  # dump t1_standard_list
-  write( "  static const char* const * const  sid_standard_names = " \
-          + "ps_glyph_names + " + repr( t1_bias ) + ";\n" )
-  write( "\n" )
-  write( "\n" )
-
-  write( "#define NUM_SID_GLYPHS " + repr( len( sid_standard_names ) ) + "\n" )
-  write( "\n" )
-  write( "#ifdef FT_CONFIG_OPTION_ADOBE_GLYPH_LIST\n" )
-  write( "#define NUM_ADOBE_GLYPHS " + \
-          repr( len( base_list ) + len( adobe_list ) - t1_bias ) + "\n" )
-  write( "#else\n" )
-  write( "#define NUM_ADOBE_GLYPHS " + \
-          repr( len( base_list ) - t1_bias )  + "\n" )
-  write( "#endif\n" )
-  write( "\n" )
-  write( "\n" )
-
-  # dump mac indices table
-  dump_mac_indices( file, name_list )
-
-  # dump unicode values table
-  dump_unicode_values( file, sid_standard_names, adobe_list )
-
-  dump_encoding( file, "t1_standard_encoding", t1_standard_encoding )
-  dump_encoding( file, "t1_expert_encoding", t1_expert_encoding )
-
-  write( "/* END */\n" )
-
-
-# Now run the main routine
-#
-main()
-
-
-# END
diff --git a/nx-X11/extras/freetype2/src/tools/test_bbox.c b/nx-X11/extras/freetype2/src/tools/test_bbox.c
deleted file mode 100644
index e085c5b3d..000000000
--- a/nx-X11/extras/freetype2/src/tools/test_bbox.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_BBOX_H
-
-
-#include <time.h>    /* for clock() */
-
-/* SunOS 4.1.* does not define CLOCKS_PER_SEC, so include <sys/param.h> */
-/* to get the HZ macro which is the equivalent.                         */
-#if defined(__sun__) && !defined(SVR4) && !defined(__SVR4)
-#include <sys/param.h>
-#define CLOCKS_PER_SEC HZ
-#endif
-
-  static long
-  get_time( void )
-  {
-    return clock() * 10000L / CLOCKS_PER_SEC;
-  }
-
-
-
-
-  /* test bbox computations */
-
-#define  XSCALE    65536
-#define  XX(x)     ((FT_Pos)(x*XSCALE))
-#define  XVEC(x,y)  { XX(x), XX(y) }
-#define  XVAL(x)   ((x)/(1.0*XSCALE))
-
-  /* dummy outline #1 */
-  static FT_Vector  dummy_vec_1[4] =
-  {
-#if 1
-    XVEC( 408.9111, 535.3164 ),
-    XVEC( 455.8887, 634.396  ),
-    XVEC( -37.8765, 786.2207 ),
-    XVEC( 164.6074, 535.3164 )
-#else
-    { (FT_Int32)0x0198E93DL , (FT_Int32)0x021750FFL },  /* 408.9111, 535.3164 */
-    { (FT_Int32)0x01C7E312L , (FT_Int32)0x027A6560L },  /* 455.8887, 634.3960 */
-    { (FT_Int32)0xFFDA1F9EL , (FT_Int32)0x0312387FL },  /* -37.8765, 786.2207 */
-    { (FT_Int32)0x00A49B7EL , (FT_Int32)0x021750FFL }   /* 164.6074, 535.3164 */
-#endif
-   };
-
-  static char  dummy_tag_1[4] =
-  {
-    FT_CURVE_TAG_ON,
-    FT_CURVE_TAG_CUBIC,
-    FT_CURVE_TAG_CUBIC,
-    FT_CURVE_TAG_ON
-  };
-
-  static short  dummy_contour_1[1] =
-  {
-    3
-  };
-
-  static FT_Outline  dummy_outline_1 =
-  {
-    1,
-    4,
-    dummy_vec_1,
-    dummy_tag_1,
-    dummy_contour_1,
-    0
-  };
-
-
-  /* dummy outline #2 */
-  static FT_Vector  dummy_vec_2[4] =
-  {
-    XVEC( 100.0, 100.0 ),
-    XVEC( 100.0, 200.0 ),
-    XVEC( 200.0, 200.0 ),
-    XVEC( 200.0, 133.0 )
-  };
-
-  static FT_Outline  dummy_outline_2 =
-  {
-    1,
-    4,
-    dummy_vec_2,
-    dummy_tag_1,
-    dummy_contour_1,
-    0
-  };
-
-
-  static void
-  dump_outline( FT_Outline*  outline )
-  {
-    FT_BBox  bbox;
-
-    /* compute and display cbox */
-    FT_Outline_Get_CBox( outline, &bbox );
-    printf( "cbox = [%.2f %.2f %.2f %.2f]\n",
-             XVAL( bbox.xMin ),
-             XVAL( bbox.yMin ),
-             XVAL( bbox.xMax ),
-             XVAL( bbox.yMax ) );
-
-    /* compute and display bbox */
-    FT_Outline_Get_BBox( outline, &bbox );
-    printf( "bbox = [%.2f %.2f %.2f %.2f]\n",
-             XVAL( bbox.xMin ),
-             XVAL( bbox.yMin ),
-             XVAL( bbox.xMax ),
-             XVAL( bbox.yMax ) );
-  }
-
-
-
-  static void
-  profile_outline( FT_Outline*   outline,
-                   long          repeat )
-  {
-    FT_BBox  bbox;
-    long     count;
-    long     time0;
-
-    time0 = get_time();
-    for ( count = repeat; count > 0; count-- )
-      FT_Outline_Get_CBox( outline, &bbox );
-
-    time0 = get_time() - time0;
-    printf( "time = %5.2f cbox = [%.2f %.2f %.2f %.2f]\n",
-             ((double)time0/10000.0),
-             XVAL( bbox.xMin ),
-             XVAL( bbox.yMin ),
-             XVAL( bbox.xMax ),
-             XVAL( bbox.yMax ) );
-
-
-    time0 = get_time();
-    for ( count = repeat; count > 0; count-- )
-      FT_Outline_Get_BBox( outline, &bbox );
-
-    time0 = get_time() - time0;
-    printf( "time = %5.2f bbox = [%.2f %.2f %.2f %.2f]\n",
-             ((double)time0/10000.0),
-             XVAL( bbox.xMin ),
-             XVAL( bbox.yMin ),
-             XVAL( bbox.xMax ),
-             XVAL( bbox.yMax ) );
-  }
-
-#define REPEAT  100000L
-
-  int  main( int  argc, char**  argv )
-  {
-    printf( "outline #1\n" );
-    profile_outline( &dummy_outline_1, REPEAT );
-
-    printf( "outline #2\n" );
-    profile_outline( &dummy_outline_2, REPEAT );
-    return 0;
-  }
-
diff --git a/nx-X11/extras/freetype2/src/tools/test_trig.c b/nx-X11/extras/freetype2/src/tools/test_trig.c
deleted file mode 100644
index 8c8a544aa..000000000
--- a/nx-X11/extras/freetype2/src/tools/test_trig.c
+++ /dev/null
@@ -1,236 +0,0 @@
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TRIGONOMETRY_H
-
-#include <math.h>
-#include <stdio.h>
-
-#define  PI   3.14159265358979323846
-#define  SPI  (PI/FT_ANGLE_PI)
-
-/* the precision in 16.16 fixed float points of the checks. Expect */
-/* between 2 and 5 noise LSB bits during operations, due to        */
-/* rounding errors..                                               */
-#define  THRESHOLD  64
-
-  static  error = 0;
-
-  static void
-  test_cos( void )
-  {
-    FT_Fixed  f1, f2;
-    double    d1, d2;
-    int       i;
-
-    for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
-    {
-      f1 = FT_Cos(i);
-      d1 = f1/65536.0;
-      d2 = cos( i*SPI );
-      f2 = (FT_Fixed)(d2*65536.0);
-
-      if ( abs( f2-f1 ) > THRESHOLD )
-      {
-        error = 1;
-        printf( "FT_Cos[%3d] = %.7f  cos[%3d] = %.7f\n",
-                (i >> 16), f1/65536.0, (i >> 16), d2 );
-      }
-    }
-  }
-
-
-
-  static void
-  test_sin( void )
-  {
-    FT_Fixed  f1, f2;
-    double    d1, d2;
-    int       i;
-
-    for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
-    {
-      f1 = FT_Sin(i);
-      d1 = f1/65536.0;
-      d2 = sin( i*SPI );
-      f2 = (FT_Fixed)(d2*65536.0);
-
-      if ( abs( f2-f1 ) > THRESHOLD )
-      {
-        error = 1;
-        printf( "FT_Sin[%3d] = %.7f  sin[%3d] = %.7f\n",
-                (i >> 16), f1/65536.0, (i >> 16), d2 );
-      }
-    }
-  }
-
-
-  static void
-  test_tan( void )
-  {
-    FT_Fixed  f1, f2;
-    double    d1, d2;
-    int       i;
-
-    for ( i = 0; i < FT_ANGLE_PI2-0x2000000; i += 0x10000 )
-    {
-      f1 = FT_Tan(i);
-      d1 = f1/65536.0;
-      d2 = tan( i*SPI );
-      f2 = (FT_Fixed)(d2*65536.0);
-
-      if ( abs( f2-f1 ) > THRESHOLD )
-      {
-        error = 1;
-        printf( "FT_Tan[%3d] = %.7f  tan[%3d] = %.7f\n",
-                (i >> 16), f1/65536.0, (i >> 16), d2 );
-      }
-    }
-  }
-
-
-  static void
-  test_atan2( void )
-  {
-    FT_Fixed  c2, s2;
-    double    l, a, c1, s1;
-    int       i, j;
-
-    for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
-    {
-      l  = 5.0;
-      a  = i*SPI;
-
-      c1 = l * cos(a);
-      s1 = l * sin(a);
-
-      c2 = (FT_Fixed)(c1*65536.0);
-      s2 = (FT_Fixed)(s1*65536.0);
-
-      j  = FT_Atan2( c2, s2 );
-      if ( j < 0 )
-        j += FT_ANGLE_2PI;
-
-      if ( abs( i - j ) > 1 )
-      {
-        printf( "FT_Atan2( %.7f, %.7f ) = %.5f, atan = %.5f\n",
-                c2/65536.0, s2/65536.0, j/65536.0, i/65536.0 );
-      }
-    }
-  }
-
-  static void
-  test_unit( void )
-  {
-    FT_Vector  v;
-    double     a, c1, s1;
-    FT_Fixed   c2, s2;
-    int        i;
-
-    for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
-    {
-      FT_Vector_Unit( &v, i );
-      a  = ( i*SPI );
-      c1 = cos(a);
-      s1 = sin(a);
-      c2 = (FT_Fixed)(c1*65536.0);
-      s2 = (FT_Fixed)(s1*65536.0);
-
-      if ( abs( v.x-c2 ) > THRESHOLD ||
-           abs( v.y-s2 ) > THRESHOLD )
-      {
-        error = 1;
-        printf( "FT_Vector_Unit[%3d] = ( %.7f, %.7f )  vec = ( %.7f, %.7f )\n",
-                (i >> 16),
-                v.x/65536.0, v.y/65536.0,
-                c1, s1 );
-      }
-    }
-  }
-
-
-  static void
-  test_length( void )
-  {
-    FT_Vector  v;
-    FT_Fixed   l, l2;
-    int        i;
-
-    for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
-    {
-      l   = (FT_Fixed)(500.0*65536.0);
-      v.x = (FT_Fixed)( l * cos( i*SPI ) );
-      v.y = (FT_Fixed)( l * sin( i*SPI ) );
-      l2  = FT_Vector_Length( &v );
-
-      if ( abs( l2-l ) > THRESHOLD )
-      {
-        error = 1;
-        printf( "FT_Length( %.7f, %.7f ) = %.5f, length = %.5f\n",
-                v.x/65536.0, v.y/65536.0, l2/65536.0, l/65536.0 );
-      }
-    }
-  }
-
-
-  static void
-  test_rotate( void )
-  {
-    FT_Fixed  c2, s2, c4, s4;
-    FT_Vector v;
-    double    l, ra, a, c1, s1, cra, sra, c3, s3;
-    int       i, j, rotate;
-
-    for ( rotate = 0; rotate < FT_ANGLE_2PI; rotate += 0x10000 )
-    {
-      ra  = rotate*SPI;
-      cra = cos( ra );
-      sra = sin( ra );
-
-      for ( i = 0; i < FT_ANGLE_2PI; i += 0x10000 )
-      {
-        l  = 500.0;
-        a  = i*SPI;
-
-        c1 = l * cos(a);
-        s1 = l * sin(a);
-
-        v.x = c2 = (FT_Fixed)(c1*65536.0);
-        v.y = s2 = (FT_Fixed)(s1*65536.0);
-
-        FT_Vector_Rotate( &v, rotate );
-
-        c3 = c1 * cra - s1 * sra;
-        s3 = c1 * sra + s1 * cra;
-
-        c4 = (FT_Fixed)(c3*65536.0);
-        s4 = (FT_Fixed)(s3*65536.0);
-
-        if ( abs( c4 - v.x ) > THRESHOLD ||
-             abs( s4 - v.y ) > THRESHOLD )
-        {
-          error = 1;
-          printf( "FT_Rotate( (%.7f,%.7f), %.5f ) = ( %.7f, %.7f ), rot = ( %.7f, %.7f )\n",
-                  c1, s1, ra,
-                  c2/65536.0, s2/65536.0,
-                  c4/65536.0, s4/65536.0 );
-        }
-      }
-    }
-  }
-
-
-  int main( void )
-  {
-    test_cos();
-    test_sin();
-    test_tan();
-    test_atan2();
-    test_unit();
-    test_length();
-    test_rotate();
-
-    if (!error)
-      printf( "trigonometry test ok !\n" );
-
-    return !error;
-  }
diff --git a/nx-X11/extras/freetype2/src/truetype/Jamfile b/nx-X11/extras/freetype2/src/truetype/Jamfile
deleted file mode 100644
index bb7e05e6e..000000000
--- a/nx-X11/extras/freetype2/src/truetype/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/truetype Jamfile (c) 2001, 2004 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) truetype ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = ttdriver ttobjs ttpload ttgload ttinterp ttgxvar ;
-  }
-  else
-  {
-    _sources = truetype ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/truetype Jamfile
diff --git a/nx-X11/extras/freetype2/src/truetype/descrip.mms b/nx-X11/extras/freetype2/src/truetype/descrip.mms
deleted file mode 100644
index e30ee1b3f..000000000
--- a/nx-X11/extras/freetype2/src/truetype/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 TrueType driver compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.truetype])
-
-OBJS=truetype.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/truetype/module.mk b/nx-X11/extras/freetype2/src/truetype/module.mk
deleted file mode 100644
index bb042beae..000000000
--- a/nx-X11/extras/freetype2/src/truetype/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 TrueType module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_truetype_driver
-
-add_truetype_driver:
-	$(OPEN_DRIVER)tt_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)truetype  $(ECHO_DRIVER_DESC)Windows/Mac font files with extension *.ttf or *.ttc$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/truetype/rules.mk b/nx-X11/extras/freetype2/src/truetype/rules.mk
deleted file mode 100644
index 74684260e..000000000
--- a/nx-X11/extras/freetype2/src/truetype/rules.mk
+++ /dev/null
@@ -1,72 +0,0 @@
-#
-# FreeType 2 TrueType driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003, 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# TrueType driver directory
-#
-TT_DIR := $(SRC_DIR)/truetype
-
-
-# compilation flags for the driver
-#
-TT_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(TT_DIR))
-
-
-# TrueType driver sources (i.e., C files)
-#
-TT_DRV_SRC := $(TT_DIR)/ttobjs.c   \
-              $(TT_DIR)/ttpload.c  \
-              $(TT_DIR)/ttgload.c  \
-              $(TT_DIR)/ttinterp.c \
-              $(TT_DIR)/ttgxvar.c \
-              $(TT_DIR)/ttdriver.c
-
-# TrueType driver headers
-#
-TT_DRV_H := $(TT_DRV_SRC:%.c=%.h) \
-            $(TT_DIR)/tterrors.h
-
-
-# TrueType driver object(s)
-#
-#   TT_DRV_OBJ_M is used during `multi' builds
-#   TT_DRV_OBJ_S is used during `single' builds
-#
-TT_DRV_OBJ_M := $(TT_DRV_SRC:$(TT_DIR)/%.c=$(OBJ_DIR)/%.$O)
-TT_DRV_OBJ_S := $(OBJ_DIR)/truetype.$O
-
-# TrueType driver source file for single build
-#
-TT_DRV_SRC_S := $(TT_DIR)/truetype.c
-
-
-# TrueType driver - single object
-#
-$(TT_DRV_OBJ_S): $(TT_DRV_SRC_S) $(TT_DRV_SRC) $(FREETYPE_H) $(TT_DRV_H)
-	$(TT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(TT_DRV_SRC_S))
-
-
-# driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(TT_DIR)/%.c $(FREETYPE_H) $(TT_DRV_H)
-	$(TT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(TT_DRV_OBJ_S)
-DRV_OBJS_M += $(TT_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/truetype/truetype.c b/nx-X11/extras/freetype2/src/truetype/truetype.c
deleted file mode 100644
index 4abb01ec5..000000000
--- a/nx-X11/extras/freetype2/src/truetype/truetype.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  truetype.c                                                             */
-/*                                                                         */
-/*    FreeType TrueType driver component (body only).                      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2004 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "ttdriver.c"   /* driver interface    */
-#include "ttpload.c"    /* tables loader       */
-#include "ttgload.c"    /* glyph loader        */
-#include "ttobjs.c"     /* object manager      */
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-#include "ttinterp.c"
-#endif
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include "ttgxvar.c"    /* gx distortable font */
-#endif
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttdriver.c b/nx-X11/extras/freetype2/src/truetype/ttdriver.c
deleted file mode 100644
index 25948839d..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttdriver.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttdriver.c                                                             */
-/*                                                                         */
-/*    TrueType font driver implementation (body).                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_IDS_H
-#include FT_SERVICE_XFREE86_NAME_H
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include FT_MULTIPLE_MASTERS_H
-#include FT_SERVICE_MULTIPLE_MASTERS_H
-#endif
-
-#include "ttdriver.h"
-#include "ttgload.h"
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include "ttgxvar.h"
-#endif
-
-#include "tterrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttdriver
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                          F A C E S                              ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-#undef  PAIR_TAG
-#define PAIR_TAG( left, right )  ( ( (FT_ULong)left << 16 ) | \
-                                     (FT_ULong)right        )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Get_Kerning                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to return the kerning vector between two      */
-  /*    glyphs of the same face.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to the source face object.                 */
-  /*                                                                       */
-  /*    left_glyph  :: The index of the left glyph in the kern pair.       */
-  /*                                                                       */
-  /*    right_glyph :: The index of the right glyph in the kern pair.      */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    kerning     :: The kerning vector.  This is in font units for      */
-  /*                   scalable formats, and in pixels for fixed-sizes     */
-  /*                   formats.                                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only horizontal layouts (left-to-right & right-to-left) are        */
-  /*    supported by this function.  Other layouts, or more sophisticated  */
-  /*    kernings, are out of scope of this method (the basic driver        */
-  /*    interface is meant to be simple).                                  */
-  /*                                                                       */
-  /*    They can be implemented by format-specific interfaces.             */
-  /*                                                                       */
-  static FT_Error
-  Get_Kerning( FT_Face     ttface,          /* TT_Face */
-               FT_UInt     left_glyph,
-               FT_UInt     right_glyph,
-               FT_Vector*  kerning )
-  {
-    TT_Face        face = (TT_Face)ttface;
-    TT_Kern0_Pair  pair;
-
-
-    if ( !face )
-      return TT_Err_Invalid_Face_Handle;
-
-    kerning->x = 0;
-    kerning->y = 0;
-
-    if ( face->kern_pairs )
-    {
-      /* there are some kerning pairs in this font file! */
-      FT_ULong  search_tag = PAIR_TAG( left_glyph, right_glyph );
-      FT_Long   left, right;
-
-
-      left  = 0;
-      right = face->num_kern_pairs - 1;
-
-      while ( left <= right )
-      {
-        FT_Long   middle = left + ( ( right - left ) >> 1 );
-        FT_ULong  cur_pair;
-
-
-        pair     = face->kern_pairs + middle;
-        cur_pair = PAIR_TAG( pair->left, pair->right );
-
-        if ( cur_pair == search_tag )
-          goto Found;
-
-        if ( cur_pair < search_tag )
-          left = middle + 1;
-        else
-          right = middle - 1;
-      }
-    }
-
-  Exit:
-    return TT_Err_Ok;
-
-  Found:
-    kerning->x = pair->value;
-    goto Exit;
-  }
-
-
-#undef PAIR_TAG
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                           S I Z E S                             ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Set_Char_Sizes                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to reset a size's character sizes (horizontal */
-  /*    and vertical) expressed in fractional points.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    char_width      :: The character width expressed in 26.6           */
-  /*                       fractional points.                              */
-  /*                                                                       */
-  /*    char_height     :: The character height expressed in 26.6          */
-  /*                       fractional points.                              */
-  /*                                                                       */
-  /*    horz_resolution :: The horizontal resolution of the output device. */
-  /*                                                                       */
-  /*    vert_resolution :: The vertical resolution of the output device.   */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    size            :: A handle to the target size object.             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Set_Char_Sizes( FT_Size     ttsize,       /* TT_Size */
-                  FT_F26Dot6  char_width,
-                  FT_F26Dot6  char_height,
-                  FT_UInt     horz_resolution,
-                  FT_UInt     vert_resolution )
-  {
-    TT_Size           size     = (TT_Size)ttsize;
-    FT_Size_Metrics*  metrics  = &size->root.metrics;
-    FT_Size_Metrics*  metrics2 = &size->metrics;
-    TT_Face           face     = (TT_Face)size->root.face;
-    FT_Long           dim_x, dim_y;
-
-
-    *metrics2 = *metrics;
-
-    /* This bit flag, when set, indicates that the pixel size must be */
-    /* truncated to an integer.  Nearly all TrueType fonts have this  */
-    /* bit set, as hinting won't work really well otherwise.          */
-    /*                                                                */
-    if ( ( face->header.Flags & 8 ) != 0 )
-    {
-     /* we need to use rounding in the following computations. Otherwise,
-      * the resulting hinted outlines will be very slightly distorted
-      */
-      dim_x = ( ( char_width  * horz_resolution + (36+32*72) ) / 72 ) & ~63;
-      dim_y = ( ( char_height * vert_resolution + (36+32*72) ) / 72 ) & ~63;
-    }
-    else
-    {
-      dim_x = ( ( char_width  * horz_resolution + 36 ) / 72 );
-      dim_y = ( ( char_height * vert_resolution + 36 ) / 72 );
-    }
-
-    /* we only modify "metrics2", not "metrics", so these changes have */
-    /* no effect on the result of the auto-hinter when it is used      */
-    /*                                                                 */
-    metrics2->x_ppem  = (FT_UShort)( dim_x >> 6 );
-    metrics2->y_ppem  = (FT_UShort)( dim_y >> 6 );
-    metrics2->x_scale = FT_DivFix( dim_x, face->root.units_per_EM );
-    metrics2->y_scale = FT_DivFix( dim_y, face->root.units_per_EM );
-
-    size->ttmetrics.valid = FALSE;
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-    size->strike_index    = 0xFFFFU;
-#endif
-
-    return tt_size_reset( size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Set_Pixel_Sizes                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to reset a size's character sizes (horizontal */
-  /*    and vertical) expressed in integer pixels.                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    size         :: A handle to the target size object.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Set_Pixel_Sizes( FT_Size  ttsize,         /* TT_Size */
-                   FT_UInt  pixel_width,
-                   FT_UInt  pixel_height )
-  {
-    TT_Size  size = (TT_Size)ttsize;
-
-    FT_UNUSED( pixel_width );
-    FT_UNUSED( pixel_height );
-
-
-    /* many things have been pre-computed by the base layer */
-
-    size->metrics         = size->root.metrics;
-    size->ttmetrics.valid = FALSE;
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-    size->strike_index    = 0xFFFFU;
-#endif
-
-    return tt_size_reset( size );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Load_Glyph                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to load a glyph within a given glyph slot.    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    slot        :: A handle to the target slot object where the glyph  */
-  /*                   will be loaded.                                     */
-  /*                                                                       */
-  /*    size        :: A handle to the source face size at which the glyph */
-  /*                   must be scaled, loaded, etc.                        */
-  /*                                                                       */
-  /*    glyph_index :: The index of the glyph in the font file.            */
-  /*                                                                       */
-  /*    load_flags  :: A flag indicating what to load for this glyph.  The */
-  /*                   FTLOAD_??? constants can be used to control the     */
-  /*                   glyph loading process (e.g., whether the outline    */
-  /*                   should be scaled, whether to load bitmaps or not,   */
-  /*                   whether to hint the outline, etc).                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Load_Glyph( FT_GlyphSlot  ttslot,         /* TT_GlyphSlot */
-              FT_Size       ttsize,         /* TT_Size      */
-              FT_UInt       glyph_index,
-              FT_Int32      load_flags )
-  {
-    TT_GlyphSlot  slot = (TT_GlyphSlot)ttslot;
-    TT_Size       size = (TT_Size)ttsize;
-    FT_Error      error;
-
-
-    if ( !slot )
-      return TT_Err_Invalid_Slot_Handle;
-
-    /* check whether we want a scaled outline or bitmap */
-    if ( !size )
-      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
-
-    if ( load_flags & FT_LOAD_NO_SCALE )
-      size = NULL;
-
-    /* reset the size object if necessary */
-    if ( size )
-    {
-      /* these two object must have the same parent */
-      if ( size->root.face != slot->face )
-        return TT_Err_Invalid_Face_Handle;
-
-      if ( !size->ttmetrics.valid )
-      {
-        if ( FT_SET_ERROR( tt_size_reset( size ) ) )
-          return error;
-      }
-    }
-
-    /* now load the glyph outline if necessary */
-    error = TT_Load_Glyph( size, slot, glyph_index, load_flags );
-
-    /* force drop-out mode to 2 - irrelevant now */
-    /* slot->outline.dropout_mode = 2; */
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /****                D R I V E R  I N T E R F A C E                   ****/
-  /****                                                                 ****/
-  /****                                                                 ****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-  static const FT_Service_MultiMastersRec  tt_service_gx_multi_masters =
-  {
-    (FT_Get_MM_Func)        NULL,
-    (FT_Set_MM_Design_Func) NULL,
-    (FT_Set_MM_Blend_Func)  TT_Set_MM_Blend,
-    (FT_Get_MM_Var_Func)    TT_Get_MM_Var,
-    (FT_Set_Var_Design_Func)TT_Set_Var_Design
-  };
-#endif
-
-
-  static const FT_ServiceDescRec  tt_services[] =
-  {
-    { FT_SERVICE_ID_XF86_NAME,     FT_XF86_FORMAT_TRUETYPE },
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-    { FT_SERVICE_ID_MULTI_MASTERS, &tt_service_gx_multi_masters },
-#endif
-    { NULL, NULL }
-  };
-
-
-  FT_CALLBACK_DEF( FT_Module_Interface )
-  tt_get_interface( FT_Module    driver,    /* TT_Driver */
-                    const char*  tt_interface )
-  {
-    FT_Module_Interface  result;
-    FT_Module            sfntd;
-    SFNT_Service         sfnt;
-
-
-    result = ft_service_list_lookup( tt_services, tt_interface );
-    if ( result != NULL )
-      return result;
-
-    /* only return the default interface from the SFNT module */
-    sfntd = FT_Get_Module( driver->library, "sfnt" );
-    if ( sfntd )
-    {
-      sfnt = (SFNT_Service)( sfntd->clazz->module_interface );
-      if ( sfnt )
-        return sfnt->get_interface( driver, tt_interface );
-    }
-
-    return 0;
-  }
-
-
-  /* The FT_DriverInterface structure is defined in ftdriver.h. */
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  tt_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER        |
-      FT_MODULE_DRIVER_SCALABLE    |
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-      FT_MODULE_DRIVER_HAS_HINTER,
-#else
-      0,
-#endif
-
-      sizeof ( TT_DriverRec ),
-
-      "truetype",      /* driver name                           */
-      0x10000L,        /* driver version == 1.0                 */
-      0x20000L,        /* driver requires FreeType 2.0 or above */
-
-      (void*)0,        /* driver specific interface */
-
-      tt_driver_init,
-      tt_driver_done,
-      tt_get_interface,
-    },
-
-    sizeof ( TT_FaceRec ),
-    sizeof ( TT_SizeRec ),
-    sizeof ( FT_GlyphSlotRec ),
-
-    tt_face_init,
-    tt_face_done,
-    tt_size_init,
-    tt_size_done,
-    0,                      /* FT_Slot_InitFunc        */
-    0,                      /* FT_Slot_DoneFunc        */
-
-    Set_Char_Sizes,
-    Set_Pixel_Sizes,
-    Load_Glyph,
-
-    Get_Kerning,
-    0,                      /* FT_Face_AttachFunc      */
-    0                       /* FT_Face_GetAdvancesFunc */
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttdriver.h b/nx-X11/extras/freetype2/src/truetype/ttdriver.h
deleted file mode 100644
index f6f26e4b5..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttdriver.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttdriver.h                                                             */
-/*                                                                         */
-/*    High-level TrueType driver interface (specification).                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTDRIVER_H__
-#define __TTDRIVER_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  tt_driver_class;
-
-
-FT_END_HEADER
-
-#endif /* __TTDRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/tterrors.h b/nx-X11/extras/freetype2/src/truetype/tterrors.h
deleted file mode 100644
index d317c70e0..000000000
--- a/nx-X11/extras/freetype2/src/truetype/tterrors.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  tterrors.h                                                             */
-/*                                                                         */
-/*    TrueType error codes (specification only).                           */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the TrueType error enumeration            */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __TTERRORS_H__
-#define __TTERRORS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  TT_Err_
-#define FT_ERR_BASE    FT_Mod_Err_TrueType
-
-#include FT_ERRORS_H
-
-#endif /* __TTERRORS_H__ */
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttgload.c b/nx-X11/extras/freetype2/src/truetype/ttgload.c
deleted file mode 100644
index 9fc2d0380..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttgload.c
+++ /dev/null
@@ -1,2039 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttgload.c                                                              */
-/*                                                                         */
-/*    TrueType Glyph Loader (body).                                        */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_OUTLINE_H
-
-#include "ttgload.h"
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include "ttgxvar.h"
-#endif
-
-#include "tterrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttgload
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Composite font flags.                                                 */
-  /*                                                                       */
-#define ARGS_ARE_WORDS             0x0001
-#define ARGS_ARE_XY_VALUES         0x0002
-#define ROUND_XY_TO_GRID           0x0004
-#define WE_HAVE_A_SCALE            0x0008
-/* reserved                        0x0010 */
-#define MORE_COMPONENTS            0x0020
-#define WE_HAVE_AN_XY_SCALE        0x0040
-#define WE_HAVE_A_2X2              0x0080
-#define WE_HAVE_INSTR              0x0100
-#define USE_MY_METRICS             0x0200
-#define OVERLAP_COMPOUND           0x0400
-#define SCALED_COMPONENT_OFFSET    0x0800
-#define UNSCALED_COMPONENT_OFFSET  0x1000
-
-
-/* Maximum recursion depth we allow for composite glyphs.
- * The TrueType spec doesn't say anything about recursion,
- * so it isn't clear that recursion is allowed at all. But
- * we'll be generous.
- */
-#define TT_MAX_COMPOSITE_RECURSE 5
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Get_Metrics                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns the horizontal or vertical metrics in font units for a     */
-  /*    given glyph.  The metrics are the left side bearing (resp. top     */
-  /*    side bearing) and advance width (resp. advance height).            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    header  :: A pointer to either the horizontal or vertical metrics  */
-  /*               structure.                                              */
-  /*                                                                       */
-  /*    idx     :: The glyph index.                                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    bearing :: The bearing, either left side or top side.              */
-  /*                                                                       */
-  /*    advance :: The advance width resp. advance height.                 */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This function will much probably move to another component in the  */
-  /*    near future, but I haven't decided which yet.                      */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  TT_Get_Metrics( TT_HoriHeader*  header,
-                  FT_UInt         idx,
-                  FT_Short*       bearing,
-                  FT_UShort*      advance )
-  {
-    TT_LongMetrics  longs_m;
-    FT_UShort       k = header->number_Of_HMetrics;
-
-
-    if ( k == 0 )
-    {
-      *bearing = *advance = 0;
-      return;
-    }
-
-    if ( idx < (FT_UInt)k )
-    {
-      longs_m  = (TT_LongMetrics )header->long_metrics + idx;
-      *bearing = longs_m->bearing;
-      *advance = longs_m->advance;
-    }
-    else
-    {
-      *bearing = ((TT_ShortMetrics*)header->short_metrics)[idx - k];
-      *advance = ((TT_LongMetrics )header->long_metrics)[k - 1].advance;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Returns the horizontal metrics in font units for a given glyph.  If   */
-  /* `check' is true, take care of monospaced fonts by returning the       */
-  /* advance width maximum.                                                */
-  /*                                                                       */
-  static void
-  Get_HMetrics( TT_Face     face,
-                FT_UInt     idx,
-                FT_Bool     check,
-                FT_Short*   lsb,
-                FT_UShort*  aw )
-  {
-    TT_Get_Metrics( &face->horizontal, idx, lsb, aw );
-
-    if ( check && face->postscript.isFixedPitch )
-      *aw = face->horizontal.advance_Width_Max;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Returns the advance width table for a given pixel size if it is found */
-  /* in the font's `hdmx' table (if any).                                  */
-  /*                                                                       */
-  static FT_Byte*
-  Get_Advance_Widths( TT_Face    face,
-                      FT_UShort  ppem )
-  {
-    FT_UShort  n;
-
-
-    for ( n = 0; n < face->hdmx.num_records; n++ )
-      if ( face->hdmx.records[n].ppem == ppem )
-        return face->hdmx.records[n].widths;
-
-    return NULL;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Returns the vertical metrics in font units for a given glyph.         */
-  /* Greg Hitchcock from Microsoft told us that if there were no `vmtx'    */
-  /* table, typoAscender/Descender from the `OS/2' table would be used     */
-  /* instead, and if there were no `OS/2' table, use ascender/descender    */
-  /* from the `hhea' table.  But that is not what Microsoft's rasterizer   */
-  /* apparently does: It uses the ppem value as the advance height, and    */
-  /* sets the top side bearing to be zero.                                 */
-  /*                                                                       */
-  /* The monospace `check' is probably not meaningful here, but we leave   */
-  /* it in for a consistent interface.                                     */
-  /*                                                                       */
-  static void
-  Get_VMetrics( TT_Face     face,
-                FT_UInt     idx,
-                FT_Bool     check,
-                FT_Short*   tsb,
-                FT_UShort*  ah )
-  {
-    FT_UNUSED( check );
-
-    if ( face->vertical_info )
-      TT_Get_Metrics( (TT_HoriHeader *)&face->vertical, idx, tsb, ah );
-
-#if 1             /* Emperically determined, at variance with what MS said */
-
-    else
-    {
-      *tsb = 0;
-      *ah  = face->root.units_per_EM;
-    }
-
-#else      /* This is what MS said to do.  It isn't what they do, however. */
-
-    else if ( face->os2.version != 0xFFFFU )
-    {
-      *tsb = face->os2.sTypoAscender;
-      *ah  = face->os2.sTypoAscender - face->os2.sTypoDescender;
-    }
-    else
-    {
-      *tsb = face->horizontal.Ascender;
-      *ah  = face->horizontal.Ascender - face->horizontal.Descender;
-    }
-
-#endif
-
-  }
-
-
-#define cur_to_org( n, zone ) \
-          FT_ARRAY_COPY( (zone)->org, (zone)->cur, (n) )
-
-#define org_to_cur( n, zone ) \
-          FT_ARRAY_COPY( (zone)->cur, (zone)->org, (n) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Translates an array of coordinates.                                   */
-  /*                                                                       */
-  static void
-  translate_array( FT_UInt     n,
-                   FT_Vector*  coords,
-                   FT_Pos      delta_x,
-                   FT_Pos      delta_y )
-  {
-    FT_UInt  k;
-
-
-    if ( delta_x )
-      for ( k = 0; k < n; k++ )
-        coords[k].x += delta_x;
-
-    if ( delta_y )
-      for ( k = 0; k < n; k++ )
-        coords[k].y += delta_y;
-  }
-
-
-  static void
-  tt_prepare_zone( TT_GlyphZone  zone,
-                   FT_GlyphLoad  load,
-                   FT_UInt       start_point,
-                   FT_UInt       start_contour )
-  {
-    zone->n_points   = (FT_UShort)( load->outline.n_points - start_point );
-    zone->n_contours = (FT_Short) ( load->outline.n_contours - start_contour );
-    zone->org        = load->extra_points + start_point;
-    zone->cur        = load->outline.points + start_point;
-    zone->tags       = (FT_Byte*)load->outline.tags + start_point;
-    zone->contours   = (FT_UShort*)load->outline.contours + start_contour;
-  }
-
-
-#undef  IS_HINTED
-#define IS_HINTED( flags )  ( ( flags & FT_LOAD_NO_HINTING ) == 0 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The following functions are used by default with TrueType fonts.      */
-  /* However, they can be replaced by alternatives if we need to support   */
-  /* TrueType-compressed formats (like MicroType) in the future.           */
-  /*                                                                       */
-  /*************************************************************************/
-
-  FT_CALLBACK_DEF( FT_Error )
-  TT_Access_Glyph_Frame( TT_Loader  loader,
-                         FT_UInt    glyph_index,
-                         FT_ULong   offset,
-                         FT_UInt    byte_count )
-  {
-    FT_Error   error;
-    FT_Stream  stream = loader->stream;
-
-    /* for non-debug mode */
-    FT_UNUSED( glyph_index );
-
-
-    FT_TRACE5(( "Glyph %ld\n", glyph_index ));
-
-    /* the following line sets the `error' variable through macros! */
-    if ( FT_STREAM_SEEK( offset ) || FT_FRAME_ENTER( byte_count ) )
-      return error;
-
-    return TT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  TT_Forget_Glyph_Frame( TT_Loader  loader )
-  {
-    FT_Stream  stream = loader->stream;
-
-
-    FT_FRAME_EXIT();
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  TT_Load_Glyph_Header( TT_Loader  loader )
-  {
-    FT_Stream  stream   = loader->stream;
-    FT_Int     byte_len = loader->byte_len - 10;
-
-
-    if ( byte_len < 0 )
-      return TT_Err_Invalid_Outline;
-
-    loader->n_contours = FT_GET_SHORT();
-
-    loader->bbox.xMin = FT_GET_SHORT();
-    loader->bbox.yMin = FT_GET_SHORT();
-    loader->bbox.xMax = FT_GET_SHORT();
-    loader->bbox.yMax = FT_GET_SHORT();
-
-    FT_TRACE5(( "  # of contours: %d\n", loader->n_contours ));
-    FT_TRACE5(( "  xMin: %4d  xMax: %4d\n", loader->bbox.xMin,
-                                            loader->bbox.xMax ));
-    FT_TRACE5(( "  yMin: %4d  yMax: %4d\n", loader->bbox.yMin,
-                                            loader->bbox.yMax ));
-    loader->byte_len = byte_len;
-
-    return TT_Err_Ok;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  TT_Load_Simple_Glyph( TT_Loader  load )
-  {
-    FT_Error        error;
-    FT_Stream       stream     = load->stream;
-    FT_GlyphLoader  gloader    = load->gloader;
-    FT_Int          n_contours = load->n_contours;
-    FT_Outline*     outline;
-    TT_Face         face       = (TT_Face)load->face;
-    TT_GlyphSlot    slot       = (TT_GlyphSlot)load->glyph;
-    FT_UShort       n_ins;
-    FT_Int          n, n_points;
-    FT_Int          byte_len   = load->byte_len;
-
-    FT_Byte         *flag, *flag_limit;
-    FT_Byte         c, count;
-    FT_Vector       *vec, *vec_limit;
-    FT_Pos          x;
-    FT_Short        *cont, *cont_limit;
-
-
-    /* reading the contours' endpoints & number of points */
-    cont       = gloader->current.outline.contours;
-    cont_limit = cont + n_contours;
-
-    /* check space for contours array + instructions count */
-    byte_len -= 2 * ( n_contours + 1 );
-    if ( byte_len < 0 )
-      goto Invalid_Outline;
-
-    for ( ; cont < cont_limit; cont++ )
-      cont[0] = FT_GET_USHORT();
-
-    n_points = 0;
-    if ( n_contours > 0 )
-      n_points = cont[-1] + 1;
-
-    error = FT_GlyphLoader_CheckPoints( gloader, n_points + 4, 0 );
-    if ( error )
-      goto Fail;
-
-    /* we'd better check the contours table right now */
-    outline = &gloader->current.outline;
-
-    for ( cont = outline->contours + 1; cont < cont_limit; cont++ )
-      if ( cont[-1] >= cont[0] )
-        goto Invalid_Outline;
-
-    /* reading the bytecode instructions */
-    slot->control_len  = 0;
-    slot->control_data = 0;
-
-    n_ins = FT_GET_USHORT();
-
-    FT_TRACE5(( "  Instructions size: %u\n", n_ins ));
-
-    if ( n_ins > face->max_profile.maxSizeOfInstructions )
-    {
-      FT_TRACE0(( "TT_Load_Simple_Glyph: Too many instructions!\n" ));
-      error = TT_Err_Too_Many_Hints;
-      goto Fail;
-    }
-
-    byte_len -= (FT_Int)n_ins;
-    if ( byte_len < 0 )
-    {
-      FT_TRACE0(( "TT_Load_Simple_Glyph: Instruction count mismatch!\n" ));
-      error = TT_Err_Too_Many_Hints;
-      goto Fail;
-    }
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    if ( ( load->load_flags                        &
-         ( FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING ) ) == 0 &&
-           load->instructions )
-    {
-      slot->control_len  = n_ins;
-      slot->control_data = load->instructions;
-
-      FT_MEM_COPY( load->instructions, stream->cursor, (FT_Long)n_ins );
-    }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    stream->cursor += (FT_Int)n_ins;
-
-    /* reading the point tags */
-    flag       = (FT_Byte*)outline->tags;
-    flag_limit = flag + n_points;
-
-    while ( flag < flag_limit )
-    {
-      if ( --byte_len < 0 )
-        goto Invalid_Outline;
-
-      *flag++ = c = FT_GET_BYTE();
-      if ( c & 8 )
-      {
-        if ( --byte_len < 0 )
-          goto Invalid_Outline;
-
-        count = FT_GET_BYTE();
-        if ( flag + (FT_Int)count > flag_limit )
-          goto Invalid_Outline;
-
-        for ( ; count > 0; count-- )
-          *flag++ = c;
-      }
-    }
-
-    /* check that there is enough room to load the coordinates */
-    for ( flag = (FT_Byte*)outline->tags; flag < flag_limit; flag++ )
-    {
-      if ( *flag & 2 )
-        byte_len -= 1;
-      else if ( ( *flag & 16 ) == 0 )
-        byte_len -= 2;
-
-      if ( *flag & 4 )
-        byte_len -= 1;
-      else if ( ( *flag & 32 ) == 0 )
-        byte_len -= 2;
-    }
-
-    if ( byte_len < 0 )
-      goto Invalid_Outline;
-
-    /* reading the X coordinates */
-
-    vec       = outline->points;
-    vec_limit = vec + n_points;
-    flag      = (FT_Byte*)outline->tags;
-    x         = 0;
-
-    for ( ; vec < vec_limit; vec++, flag++ )
-    {
-      FT_Pos  y = 0;
-
-
-      if ( *flag & 2 )
-      {
-        y = (FT_Pos)FT_GET_BYTE();
-        if ( ( *flag & 16 ) == 0 )
-          y = -y;
-      }
-      else if ( ( *flag & 16 ) == 0 )
-        y = (FT_Pos)FT_GET_SHORT();
-
-      x     += y;
-      vec->x = x;
-    }
-
-    /* reading the Y coordinates */
-
-    vec       = gloader->current.outline.points;
-    vec_limit = vec + n_points;
-    flag      = (FT_Byte*)outline->tags;
-    x         = 0;
-
-    for ( ; vec < vec_limit; vec++, flag++ )
-    {
-      FT_Pos  y = 0;
-
-
-      if ( *flag & 4 )
-      {
-        y = (FT_Pos)FT_GET_BYTE();
-        if ( ( *flag & 32 ) == 0 )
-          y = -y;
-      }
-      else if ( ( *flag & 32 ) == 0 )
-        y = (FT_Pos)FT_GET_SHORT();
-
-      x     += y;
-      vec->y = x;
-    }
-
-    /* clear the touch tags */
-    for ( n = 0; n < n_points; n++ )
-      outline->tags[n] &= FT_CURVE_TAG_ON;
-
-    outline->n_points   = (FT_UShort)n_points;
-    outline->n_contours = (FT_Short) n_contours;
-
-    load->byte_len = byte_len;
-
-  Fail:
-    return error;
-
-  Invalid_Outline:
-    error = TT_Err_Invalid_Outline;
-    goto Fail;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  TT_Load_Composite_Glyph( TT_Loader  loader )
-  {
-    FT_Error        error;
-    FT_Stream       stream  = loader->stream;
-    FT_GlyphLoader  gloader = loader->gloader;
-    FT_SubGlyph     subglyph;
-    FT_UInt         num_subglyphs;
-    FT_Int          byte_len = loader->byte_len;
-
-
-    num_subglyphs = 0;
-
-    do
-    {
-      FT_Fixed  xx, xy, yy, yx;
-
-
-      /* check that we can load a new subglyph */
-      error = FT_GlyphLoader_CheckSubGlyphs( gloader, num_subglyphs + 1 );
-      if ( error )
-        goto Fail;
-
-      /* check space */
-      byte_len -= 4;
-      if ( byte_len < 0 )
-        goto Invalid_Composite;
-
-      subglyph = gloader->current.subglyphs + num_subglyphs;
-
-      subglyph->arg1 = subglyph->arg2 = 0;
-
-      subglyph->flags = FT_GET_USHORT();
-      subglyph->index = FT_GET_USHORT();
-
-      /* check space */
-      byte_len -= 2;
-      if ( subglyph->flags & ARGS_ARE_WORDS )
-        byte_len -= 2;
-      if ( subglyph->flags & WE_HAVE_A_SCALE )
-        byte_len -= 2;
-      else if ( subglyph->flags & WE_HAVE_AN_XY_SCALE )
-        byte_len -= 4;
-      else if ( subglyph->flags & WE_HAVE_A_2X2 )
-        byte_len -= 8;
-
-      if ( byte_len < 0 )
-        goto Invalid_Composite;
-
-      /* read arguments */
-      if ( subglyph->flags & ARGS_ARE_WORDS )
-      {
-        subglyph->arg1 = FT_GET_SHORT();
-        subglyph->arg2 = FT_GET_SHORT();
-      }
-      else
-      {
-        subglyph->arg1 = FT_GET_CHAR();
-        subglyph->arg2 = FT_GET_CHAR();
-      }
-
-      /* read transform */
-      xx = yy = 0x10000L;
-      xy = yx = 0;
-
-      if ( subglyph->flags & WE_HAVE_A_SCALE )
-      {
-        xx = (FT_Fixed)FT_GET_SHORT() << 2;
-        yy = xx;
-      }
-      else if ( subglyph->flags & WE_HAVE_AN_XY_SCALE )
-      {
-        xx = (FT_Fixed)FT_GET_SHORT() << 2;
-        yy = (FT_Fixed)FT_GET_SHORT() << 2;
-      }
-      else if ( subglyph->flags & WE_HAVE_A_2X2 )
-      {
-        xx = (FT_Fixed)FT_GET_SHORT() << 2;
-        yx = (FT_Fixed)FT_GET_SHORT() << 2;
-        xy = (FT_Fixed)FT_GET_SHORT() << 2;
-        yy = (FT_Fixed)FT_GET_SHORT() << 2;
-      }
-
-      subglyph->transform.xx = xx;
-      subglyph->transform.xy = xy;
-      subglyph->transform.yx = yx;
-      subglyph->transform.yy = yy;
-
-      num_subglyphs++;
-
-    } while ( subglyph->flags & MORE_COMPONENTS );
-
-    gloader->current.num_subglyphs = num_subglyphs;
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-    {
-      /* we must undo the FT_FRAME_ENTER in order to point to the */
-      /* composite instructions, if we find some.               */
-      /* we will process them later...                          */
-      /*                                                        */
-      loader->ins_pos = (FT_ULong)( FT_STREAM_POS() +
-                                    stream->cursor - stream->limit );
-    }
-#endif
-
-    loader->byte_len = byte_len;
-
-  Fail:
-    return error;
-
-  Invalid_Composite:
-    error = TT_Err_Invalid_Composite;
-    goto Fail;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  TT_Init_Glyph_Loading( TT_Face  face )
-  {
-    face->access_glyph_frame   = TT_Access_Glyph_Frame;
-    face->read_glyph_header    = TT_Load_Glyph_Header;
-    face->read_simple_glyph    = TT_Load_Simple_Glyph;
-    face->read_composite_glyph = TT_Load_Composite_Glyph;
-    face->forget_glyph_frame   = TT_Forget_Glyph_Frame;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Process_Simple_Glyph                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Once a simple glyph has been loaded, it needs to be processed.     */
-  /*    Usually, this means scaling and hinting through bytecode           */
-  /*    interpretation.                                                    */
-  /*                                                                       */
-  static FT_Error
-  TT_Process_Simple_Glyph( TT_Loader  load,
-                           FT_Bool    debug )
-  {
-    FT_GlyphLoader  gloader  = load->gloader;
-    FT_Outline*     outline  = &gloader->current.outline;
-    FT_UInt         n_points = outline->n_points;
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-    FT_UInt         n_ins;
-#endif
-    TT_GlyphZone    zone     = &load->zone;
-    FT_Error        error    = TT_Err_Ok;
-
-    FT_UNUSED( debug );  /* used by truetype interpreter only */
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-    n_ins = load->glyph->control_len;
-#endif
-
-    /* add shadow points */
-
-    /* Add two horizontal shadow points at n and n+1.   */
-    /* We need the left side bearing and advance width. */
-    /* Add two vertical shadow points at n+2 and n+3.   */
-    /* We need the top side bearing and advance height. */
-
-    {
-      FT_Vector*  pp1;
-      FT_Vector*  pp2;
-      FT_Vector*  pp3;
-      FT_Vector*  pp4;
-
-
-      /* pp1 = xMin - lsb */
-      pp1    = outline->points + n_points;
-      pp1->x = load->bbox.xMin - load->left_bearing;
-      pp1->y = 0;
-
-      /* pp2 = pp1 + aw */
-      pp2    = pp1 + 1;
-      pp2->x = pp1->x + load->advance;
-      pp2->y = 0;
-
-      /* pp3 = top side bearing */
-      pp3    = pp1 + 2;
-      pp3->x = 0;
-      pp3->y = load->top_bearing + load->bbox.yMax;
-
-      /* pp4 = pp3 - ah */
-      pp4    = pp1 + 3;
-      pp4->x = 0;
-      pp4->y = pp3->y - load->vadvance;
-
-      outline->tags[n_points    ] = 0;
-      outline->tags[n_points + 1] = 0;
-      outline->tags[n_points + 2] = 0;
-      outline->tags[n_points + 3] = 0;
-    }
-
-    /* Note that we return four more points that are not */
-    /* part of the glyph outline.                        */
-
-    n_points += 4;
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-
-    if ( ((TT_Face)load->face)->doblend )
-    {
-      /* Deltas apply to the unscaled data. */
-      FT_Vector*    deltas;
-      FT_Memory     memory       = load->face->memory;
-      FT_StreamRec  saved_stream = *(load->stream);
-      FT_UInt       i;
-
-
-      /* TT_Vary_Get_Glyph_Deltas uses a frame, thus we have to save */
-      /* (and restore) the current one                               */
-      load->stream->cursor = 0;
-      load->stream->limit  = 0;
-
-      error = TT_Vary_Get_Glyph_Deltas( (TT_Face)(load->face),
-                                        load->glyph_index,
-                                        &deltas,
-                                        n_points );
-
-      *(load->stream) = saved_stream;
-
-      if ( error )
-        goto Exit;
-
-      for ( i = 0; i < n_points; ++i )
-      {
-        outline->points[i].x += deltas[i].x;
-        outline->points[i].y += deltas[i].y;
-      }
-
-      FT_FREE( deltas );
-    }
-
-#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */
-
-    /* set up zone for hinting */
-    tt_prepare_zone( zone, &gloader->current, 0, 0 );
-
-    /* eventually scale the glyph */
-    if ( !( load->load_flags & FT_LOAD_NO_SCALE ) )
-    {
-      FT_Vector*  vec     = zone->cur;
-      FT_Vector*  limit   = vec + n_points;
-      FT_Fixed    x_scale = ((TT_Size)load->size)->metrics.x_scale;
-      FT_Fixed    y_scale = ((TT_Size)load->size)->metrics.y_scale;
-
-      /* first scale the glyph points */
-      for ( ; vec < limit; vec++ )
-      {
-        vec->x = FT_MulFix( vec->x, x_scale );
-        vec->y = FT_MulFix( vec->y, y_scale );
-      }
-    }
-
-    cur_to_org( n_points, zone );
-
-    /* eventually hint the glyph */
-    if ( IS_HINTED( load->load_flags ) )
-    {
-      FT_Pos  x = zone->org[n_points-4].x;
-      FT_Pos  y = zone->org[n_points-2].y;
-
-
-      x = FT_PIX_ROUND( x ) - x;
-      y = FT_PIX_ROUND( y ) - y;
-      translate_array( n_points, zone->org, x, y );
-
-      org_to_cur( n_points, zone );
-
-      zone->cur[n_points - 3].x = FT_PIX_ROUND( zone->cur[n_points - 3].x );
-      zone->cur[n_points - 1].y = FT_PIX_ROUND( zone->cur[n_points - 1].y );
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-      /* now consider hinting */
-      if ( n_ins > 0 )
-      {
-        error = TT_Set_CodeRange( load->exec, tt_coderange_glyph,
-                                  load->exec->glyphIns, n_ins );
-        if ( error )
-          goto Exit;
-
-        load->exec->is_composite     = FALSE;
-        load->exec->pedantic_hinting = (FT_Bool)( load->load_flags &
-                                                  FT_LOAD_PEDANTIC );
-        load->exec->pts              = *zone;
-        load->exec->pts.n_points    += 4;
-
-        error = TT_Run_Context( load->exec, debug );
-        if ( error && load->exec->pedantic_hinting )
-          goto Exit;
-
-        error = TT_Err_Ok;  /* ignore bytecode errors in non-pedantic mode */
-      }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    }
-
-    /* save glyph phantom points */
-    if ( !load->preserve_pps )
-    {
-      load->pp1 = zone->cur[n_points - 4];
-      load->pp2 = zone->cur[n_points - 3];
-      load->pp3 = zone->cur[n_points - 2];
-      load->pp4 = zone->cur[n_points - 1];
-    }
-
-#if defined( TT_CONFIG_OPTION_BYTECODE_INTERPRETER ) || \
-    defined( TT_CONFIG_OPTION_GX_VAR_SUPPORT )
-  Exit:
-#endif
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    load_truetype_glyph                                                */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads a given truetype glyph.  Handles composites and uses a       */
-  /*    TT_Loader object.                                                  */
-  /*                                                                       */
-  static FT_Error
-  load_truetype_glyph( TT_Loader  loader,
-                       FT_UInt    glyph_index,
-                       FT_UInt    recurse_count )
-  {
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-    FT_Stream       stream = loader->stream;
-#endif
-
-    FT_Error        error;
-    TT_Face         face = (TT_Face)loader->face;
-    FT_ULong        offset;
-    FT_Int          contours_count;
-    FT_UInt         num_points, count;
-    FT_Fixed        x_scale, y_scale;
-    FT_GlyphLoader  gloader = loader->gloader;
-    FT_Bool         opened_frame = 0;
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    FT_StreamRec    inc_stream;
-    FT_Data         glyph_data;
-    FT_Bool         glyph_data_loaded = 0;
-#endif
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-    FT_Vector      *deltas;
-#endif
-
-
-    if ( recurse_count >= TT_MAX_COMPOSITE_RECURSE )
-    {
-      error = TT_Err_Invalid_Composite;
-      goto Exit;
-    }
-
-    /* check glyph index */
-    if ( glyph_index >= (FT_UInt)face->root.num_glyphs )
-    {
-      error = TT_Err_Invalid_Glyph_Index;
-      goto Exit;
-    }
-
-    loader->glyph_index = glyph_index;
-    num_points          = 0;
-
-    x_scale = 0x10000L;
-    y_scale = 0x10000L;
-    if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
-    {
-      x_scale = ((TT_Size)loader->size)->metrics.x_scale;
-      y_scale = ((TT_Size)loader->size)->metrics.y_scale;
-    }
-
-    /* get metrics, horizontal and vertical */
-    {
-      FT_Short   left_bearing = 0, top_bearing = 0;
-      FT_UShort  advance_width = 0, advance_height = 0;
-
-
-      Get_HMetrics( face, glyph_index,
-                    (FT_Bool)!( loader->load_flags &
-                                FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ),
-                    &left_bearing,
-                    &advance_width );
-      Get_VMetrics( face, glyph_index,
-                    (FT_Bool)!( loader->load_flags &
-                                FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ),
-                    &top_bearing,
-                    &advance_height );
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-      /* If this is an incrementally loaded font see if there are */
-      /* overriding metrics for this glyph.                       */
-      if ( face->root.internal->incremental_interface &&
-           face->root.internal->incremental_interface->funcs->get_glyph_metrics )
-      {
-        FT_Incremental_MetricsRec  metrics;
-
-
-        metrics.bearing_x = left_bearing;
-        metrics.bearing_y = 0;
-        metrics.advance = advance_width;
-        error = face->root.internal->incremental_interface->funcs->get_glyph_metrics(
-                  face->root.internal->incremental_interface->object,
-                  glyph_index, FALSE, &metrics );
-        if ( error )
-          goto Exit;
-        left_bearing  = (FT_Short)metrics.bearing_x;
-        advance_width = (FT_UShort)metrics.advance;
-      }
-
-# if 0
-      /* GWW: Do I do the same for vertical metrics ??? */
-      if ( face->root.internal->incremental_interface &&
-           face->root.internal->incremental_interface->funcs->get_glyph_metrics )
-      {
-        FT_Incremental_MetricsRec  metrics;
-
-
-        metrics.bearing_x = 0;
-        metrics.bearing_y = top_bearing;
-        metrics.advance = advance_height;
-        error = face->root.internal->incremental_interface->funcs->get_glyph_metrics(
-                  face->root.internal->incremental_interface->object,
-                  glyph_index, TRUE, &metrics );
-        if ( error )
-          goto Exit;
-        top_bearing  = (FT_Short)metrics.bearing_y;
-        advance_height = (FT_UShort)metrics.advance;
-      }
-# endif
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-      loader->left_bearing = left_bearing;
-      loader->advance      = advance_width;
-      loader->top_bearing  = top_bearing;
-      loader->vadvance     = advance_height;
-
-      if ( !loader->linear_def )
-      {
-        loader->linear_def = 1;
-        loader->linear     = advance_width;
-      }
-    }
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* Set `offset' to the start of the glyph program relative to the  */
-    /* start of the 'glyf' table, and `count' to the length of the     */
-    /* glyph program in bytes.                                         */
-    /*                                                                 */
-    /* If we are loading glyph data via the incremental interface, set */
-    /* the loader stream to a memory stream reading the data returned  */
-    /* by the interface.                                               */
-
-    if ( face->root.internal->incremental_interface )
-    {
-      error = face->root.internal->incremental_interface->funcs->get_glyph_data(
-                face->root.internal->incremental_interface->object,
-                glyph_index, &glyph_data );
-      if ( error )
-        goto Exit;
-
-      glyph_data_loaded = 1;
-      offset            = 0;
-      count             = glyph_data.length;
-
-      FT_MEM_ZERO( &inc_stream, sizeof ( inc_stream ) );
-      FT_Stream_OpenMemory( &inc_stream,
-                            glyph_data.pointer, glyph_data.length );
-
-      loader->stream = &inc_stream;
-    }
-    else
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    {
-      offset = face->glyph_locations[glyph_index];
-      count  = 0;
-
-      if ( glyph_index < (FT_UInt)face->num_locations - 1 )
-        count = (FT_UInt)( face->glyph_locations[glyph_index + 1] - offset );
-    }
-
-    if ( count == 0 )
-    {
-      /* as described by Frederic Loyer, these are spaces, and */
-      /* not the unknown glyph.                                */
-      loader->bbox.xMin = 0;
-      loader->bbox.xMax = 0;
-      loader->bbox.yMin = 0;
-      loader->bbox.yMax = 0;
-
-      loader->pp1.x = 0;
-      loader->pp2.x = loader->advance;
-      loader->pp3.y = 0;
-      loader->pp4.y = loader->pp3.y-loader->vadvance;
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-      if ( ((TT_Face)(loader->face))->doblend )
-      {
-        /* this must be done before scaling */
-        FT_Memory  memory = loader->face->memory;
-
-
-        if ( (error = TT_Vary_Get_Glyph_Deltas( (TT_Face)(loader->face),
-                                                glyph_index,
-                                                &deltas,
-                                                4 ) ) )
-          goto Exit;
-
-        loader->pp1.x += deltas[0].x; loader->pp1.y += deltas[0].y;
-        loader->pp2.x += deltas[1].x; loader->pp2.y += deltas[1].y;
-        loader->pp3.x += deltas[2].x; loader->pp3.y += deltas[2].y;
-        loader->pp4.x += deltas[3].x; loader->pp4.y += deltas[3].y;
-
-        FT_FREE( deltas );
-      }
-#endif
-
-      if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
-      {
-        loader->pp2.x = FT_MulFix( loader->pp2.x, x_scale );
-        loader->pp4.y = FT_MulFix( loader->pp4.y, y_scale );
-      }
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-      if ( loader->exec )
-        loader->exec->glyphSize = 0;
-
-#endif
-
-      error = TT_Err_Ok;
-      goto Exit;
-    }
-
-    loader->byte_len = (FT_Int)count;
-
-    offset = loader->glyf_offset + offset;
-
-    /* access glyph frame */
-    error = face->access_glyph_frame( loader, glyph_index, offset, count );
-    if ( error )
-      goto Exit;
-
-    opened_frame = 1;
-
-    /* read first glyph header */
-    error = face->read_glyph_header( loader );
-    if ( error )
-      goto Fail;
-
-    contours_count = loader->n_contours;
-
-    count -= 10;
-
-    loader->pp1.x = loader->bbox.xMin - loader->left_bearing;
-    loader->pp1.y = 0;
-    loader->pp2.x = loader->pp1.x + loader->advance;
-    loader->pp2.y = 0;
-
-    loader->pp3.x = 0;
-    loader->pp3.y = loader->top_bearing + loader->bbox.yMax;
-    loader->pp4.x = 0;
-    loader->pp4.y = loader->pp3.y - loader->vadvance;
-
-    /***********************************************************************/
-    /***********************************************************************/
-    /***********************************************************************/
-
-    /* if it is a simple glyph, load it */
-
-    if ( contours_count >= 0 )
-    {
-      /* check that we can add the contours to the glyph */
-      error = FT_GlyphLoader_CheckPoints( gloader, 0, contours_count );
-      if ( error )
-        goto Fail;
-
-      error = face->read_simple_glyph( loader );
-      if ( error )
-        goto Fail;
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-      {
-        TT_Size  size = (TT_Size)loader->size;
-
-
-        error = TT_Process_Simple_Glyph( loader,
-                                         (FT_Bool)( size && size->debug ) );
-      }
-
-#else
-
-      error = TT_Process_Simple_Glyph( loader, 0 );
-
-#endif
-
-      if ( error )
-        goto Fail;
-
-      FT_GlyphLoader_Add( gloader );
-
-      /* Note: We could have put the simple loader source there */
-      /*       but the code is fat enough already :-)           */
-    }
-
-    /***********************************************************************/
-    /***********************************************************************/
-    /***********************************************************************/
-
-    /* otherwise, load a composite! */
-    else if ( contours_count == -1 )
-    {
-      TT_GlyphSlot  glyph = (TT_GlyphSlot)loader->glyph;
-      FT_UInt       start_point;
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-      FT_UInt       start_contour;
-      FT_ULong      ins_pos;  /* position of composite instructions, if any */
-#endif
-
-
-      /* for each subglyph, read composite header */
-      start_point   = gloader->base.outline.n_points;
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-      start_contour = gloader->base.outline.n_contours;
-#endif
-
-      error = face->read_composite_glyph( loader );
-      if ( error )
-        goto Fail;
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-      ins_pos = loader->ins_pos;
-#endif
-      face->forget_glyph_frame( loader );
-      opened_frame = 0;
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-
-      if ( face->doblend )
-      {
-        FT_Int       i, limit;
-        FT_SubGlyph  subglyph;
-        FT_Memory    memory = face->root.memory;
-
-
-        /* this provides additional offsets */
-        /* for each component's translation */
-
-        if ( (error = TT_Vary_Get_Glyph_Deltas(
-                        face,
-                        glyph_index,
-                        &deltas,
-                        gloader->current.num_subglyphs + 4 ) ) )
-          goto Exit;
-
-        /* Note: No subglyph reallocation here, our pointers are stable. */
-        subglyph = gloader->current.subglyphs + gloader->base.num_subglyphs;
-        limit    = gloader->current.num_subglyphs;
-
-        for ( i = 0; i < limit; ++i, ++subglyph )
-        {
-          if ( subglyph->flags & ARGS_ARE_XY_VALUES )
-          {
-            subglyph->arg1 += deltas[i].x;
-            subglyph->arg2 += deltas[i].y;
-          }
-        }
-
-        loader->pp1.x += deltas[i + 0].x; loader->pp1.y += deltas[i + 0].y;
-        loader->pp2.x += deltas[i + 1].x; loader->pp2.y += deltas[i + 1].y;
-        loader->pp3.x += deltas[i + 2].x; loader->pp3.y += deltas[i + 2].y;
-        loader->pp4.x += deltas[i + 3].x; loader->pp4.y += deltas[i + 3].y;
-
-        FT_FREE( deltas );
-      }
-
-#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */
-
-      if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
-      {
-        loader->pp1.x = FT_MulFix( loader->pp1.x, x_scale );
-        loader->pp2.x = FT_MulFix( loader->pp2.x, x_scale );
-        loader->pp3.y = FT_MulFix( loader->pp3.y, y_scale );
-        loader->pp4.y = FT_MulFix( loader->pp4.y, y_scale );
-      }
-
-      /* if the flag FT_LOAD_NO_RECURSE is set, we return the subglyph */
-      /* `as is' in the glyph slot (the client application will be     */
-      /* responsible for interpreting these data)...                   */
-      /*                                                               */
-      if ( loader->load_flags & FT_LOAD_NO_RECURSE )
-      {
-        /* set up remaining glyph fields */
-        FT_GlyphLoader_Add( gloader );
-
-        glyph->num_subglyphs = gloader->base.num_subglyphs;
-        glyph->format        = FT_GLYPH_FORMAT_COMPOSITE;
-        glyph->subglyphs     = gloader->base.subglyphs;
-
-        goto Exit;
-      }
-
-      /*********************************************************************/
-      /*********************************************************************/
-      /*********************************************************************/
-
-      /* Now, read each subglyph independently. */
-      {
-        FT_Int       n, num_base_points, num_new_points;
-        FT_SubGlyph  subglyph       = 0;
-
-        FT_UInt      num_subglyphs  = gloader->current.num_subglyphs;
-        FT_UInt      num_base_subgs = gloader->base.num_subglyphs;
-
-
-        FT_GlyphLoader_Add( gloader );
-
-        for ( n = 0; n < (FT_Int)num_subglyphs; n++ )
-        {
-          FT_Vector  pp1, pp2, pp3, pp4;
-          FT_Pos     x, y;
-
-
-          /* Each time we call load_truetype_glyph in this loop, the   */
-          /* value of `gloader.base.subglyphs' can change due to table */
-          /* reallocations.  We thus need to recompute the subglyph    */
-          /* pointer on each iteration.                                */
-          subglyph = gloader->base.subglyphs + num_base_subgs + n;
-
-          pp1 = loader->pp1;
-          pp2 = loader->pp2;
-          pp3 = loader->pp3;
-          pp4 = loader->pp4;
-
-          num_base_points = gloader->base.outline.n_points;
-
-          error = load_truetype_glyph( loader, subglyph->index,
-                                       recurse_count + 1 );
-          if ( error )
-            goto Fail;
-
-          /* restore subglyph pointer */
-          subglyph = gloader->base.subglyphs + num_base_subgs + n;
-
-          if ( subglyph->flags & USE_MY_METRICS )
-          {
-            pp1 = loader->pp1;
-            pp2 = loader->pp2;
-            pp3 = loader->pp3;
-            pp4 = loader->pp4;
-          }
-          else
-          {
-            loader->pp1 = pp1;
-            loader->pp2 = pp2;
-            loader->pp3 = pp3;
-            loader->pp4 = pp4;
-          }
-
-          num_points = gloader->base.outline.n_points;
-
-          num_new_points = num_points - num_base_points;
-
-          /* now perform the transform required for this subglyph */
-
-          if ( subglyph->flags & ( WE_HAVE_A_SCALE     |
-                                   WE_HAVE_AN_XY_SCALE |
-                                   WE_HAVE_A_2X2       ) )
-          {
-            FT_Vector*  cur   = gloader->base.outline.points +
-                                  num_base_points;
-            FT_Vector*  org   = gloader->base.extra_points +
-                                  num_base_points;
-            FT_Vector*  limit = cur + num_new_points;
-
-
-            for ( ; cur < limit; cur++, org++ )
-            {
-              FT_Vector_Transform( cur, &subglyph->transform );
-              FT_Vector_Transform( org, &subglyph->transform );
-            }
-          }
-
-          /* apply offset */
-
-          if ( !( subglyph->flags & ARGS_ARE_XY_VALUES ) )
-          {
-            FT_UInt     k = subglyph->arg1;
-            FT_UInt     l = subglyph->arg2;
-            FT_Vector*  p1;
-            FT_Vector*  p2;
-
-
-            if ( start_point + k >= (FT_UInt)num_base_points ||
-                               l >= (FT_UInt)num_new_points  )
-            {
-              error = TT_Err_Invalid_Composite;
-              goto Fail;
-            }
-
-            l += num_base_points;
-
-            p1 = gloader->base.outline.points + start_point + k;
-            p2 = gloader->base.outline.points + start_point + l;
-
-            x = p1->x - p2->x;
-            y = p1->y - p2->y;
-          }
-          else
-          {
-            x = subglyph->arg1;
-            y = subglyph->arg2;
-
-  /* Use a default value dependent on                                     */
-  /* TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED.  This is useful for old TT */
-  /* fonts which don't set the xxx_COMPONENT_OFFSET bit.                  */
-
-#ifdef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
-            if ( !( subglyph->flags & UNSCALED_COMPONENT_OFFSET ) &&
-#else
-            if (  ( subglyph->flags & SCALED_COMPONENT_OFFSET ) &&
-#endif
-                  ( subglyph->flags & ( WE_HAVE_A_SCALE     |
-                                        WE_HAVE_AN_XY_SCALE |
-                                        WE_HAVE_A_2X2       )) )
-            {
-#if 0
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This algorithm is what Apple documents.  But it doesn't work.         */
-  /*                                                                       */
-              int  a = subglyph->transform.xx > 0 ?  subglyph->transform.xx
-                                                  : -subglyph->transform.xx;
-              int  b = subglyph->transform.yx > 0 ?  subglyph->transform.yx
-                                                  : -subglyph->transform.yx;
-              int  c = subglyph->transform.xy > 0 ?  subglyph->transform.xy
-                                                  : -subglyph->transform.xy;
-              int  d = subglyph->transform.yy > 0 ? subglyph->transform.yy
-                                                  : -subglyph->transform.yy;
-              int  m = a > b ? a : b;
-              int  n = c > d ? c : d;
-
-
-              if ( a - b <= 33 && a - b >= -33 )
-                m *= 2;
-              if ( c - d <= 33 && c - d >= -33 )
-                n *= 2;
-              x = FT_MulFix( x, m );
-              y = FT_MulFix( y, n );
-
-#else /* 0 */
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This algorithm is a guess and works much better than the above.       */
-  /*                                                                       */
-              FT_Fixed  mac_xscale = FT_SqrtFixed(
-                                       FT_MulFix( subglyph->transform.xx,
-                                                  subglyph->transform.xx ) +
-                                       FT_MulFix( subglyph->transform.xy,
-                                                  subglyph->transform.xy) );
-              FT_Fixed  mac_yscale = FT_SqrtFixed(
-                                       FT_MulFix( subglyph->transform.yy,
-                                                  subglyph->transform.yy ) +
-                                       FT_MulFix( subglyph->transform.yx,
-                                                  subglyph->transform.yx ) );
-
-
-              x = FT_MulFix( x, mac_xscale );
-              y = FT_MulFix( y, mac_yscale );
-#endif /* 0 */
-
-            }
-
-            if ( !( loader->load_flags & FT_LOAD_NO_SCALE ) )
-            {
-              x = FT_MulFix( x, x_scale );
-              y = FT_MulFix( y, y_scale );
-
-              if ( subglyph->flags & ROUND_XY_TO_GRID )
-              {
-                x = FT_PIX_ROUND( x );
-                y = FT_PIX_ROUND( y );
-              }
-            }
-          }
-
-          if ( x || y )
-          {
-            translate_array( num_new_points,
-                             gloader->base.outline.points + num_base_points,
-                             x, y );
-
-            translate_array( num_new_points,
-                             gloader->base.extra_points + num_base_points,
-                             x, y );
-          }
-        }
-
-        /*******************************************************************/
-        /*******************************************************************/
-        /*******************************************************************/
-
-        /* we have finished loading all sub-glyphs; now, look for */
-        /* instructions for this composite!                       */
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-        if ( num_subglyphs > 0               &&
-             loader->exec                    &&
-             ins_pos > 0                     &&
-             subglyph->flags & WE_HAVE_INSTR )
-        {
-          FT_UShort       n_ins;
-          TT_ExecContext  exec = loader->exec;
-          TT_GlyphZone    pts;
-          FT_Vector*      pp1;
-
-
-          /* read size of instructions */
-          if ( FT_STREAM_SEEK( ins_pos ) ||
-               FT_READ_USHORT( n_ins ) )
-            goto Fail;
-          FT_TRACE5(( "  Instructions size = %d\n", n_ins ));
-
-          /* in some fonts? */
-          if ( n_ins == 0xFFFFU )
-            n_ins = 0;
-
-          /* check it */
-          if ( n_ins > face->max_profile.maxSizeOfInstructions )
-          {
-            FT_TRACE0(( "Too many instructions (%d) in composite glyph %ld\n",
-                        n_ins, subglyph->index ));
-            error = TT_Err_Too_Many_Hints;
-            goto Fail;
-          }
-
-          /* read the instructions */
-          if ( FT_STREAM_READ( exec->glyphIns, n_ins ) )
-            goto Fail;
-
-          glyph->control_data = exec->glyphIns;
-          glyph->control_len  = n_ins;
-
-          error = TT_Set_CodeRange( exec,
-                                    tt_coderange_glyph,
-                                    exec->glyphIns,
-                                    n_ins );
-          if ( error )
-            goto Fail;
-
-          error = FT_GlyphLoader_CheckPoints( gloader, num_points + 4, 0 );
-          if ( error )
-            goto Fail;
-
-          /* prepare the execution context */
-          tt_prepare_zone( &exec->pts, &gloader->base,
-                           start_point, start_contour );
-          pts = &exec->pts;
-
-          pts->n_points   = (short)( num_points + 4 );
-          pts->n_contours = gloader->base.outline.n_contours;
-
-          /* add phantom points */
-          pp1    = pts->cur + num_points;
-          pp1[0] = loader->pp1;
-          pp1[1] = loader->pp2;
-          pp1[2] = loader->pp3;
-          pp1[3] = loader->pp4;
-
-          pts->tags[num_points    ] = 0;
-          pts->tags[num_points + 1] = 0;
-          pts->tags[num_points + 2] = 0;
-          pts->tags[num_points + 3] = 0;
-
-          /* if hinting, round the phantom points */
-          if ( IS_HINTED( loader->load_flags ) )
-          {
-            pp1[0].x = FT_PIX_ROUND( loader->pp1.x );
-            pp1[1].x = FT_PIX_ROUND( loader->pp2.x );
-            pp1[2].y = FT_PIX_ROUND( loader->pp3.y );
-            pp1[3].y = FT_PIX_ROUND( loader->pp4.y );
-          }
-
-          {
-            FT_UInt  k;
-
-
-            for ( k = 0; k < num_points; k++ )
-              pts->tags[k] &= FT_CURVE_TAG_ON;
-          }
-
-          cur_to_org( num_points + 4, pts );
-
-          /* now consider hinting */
-          if ( IS_HINTED( loader->load_flags ) && n_ins > 0 )
-          {
-            exec->is_composite     = TRUE;
-            exec->pedantic_hinting =
-              (FT_Bool)( loader->load_flags & FT_LOAD_PEDANTIC );
-            error = TT_Run_Context( exec, ((TT_Size)loader->size)->debug );
-            if ( error && exec->pedantic_hinting )
-              goto Fail;
-          }
-
-          /* save glyph origin and advance points */
-          loader->pp1 = pp1[0];
-          loader->pp2 = pp1[1];
-          loader->pp3 = pp1[2];
-          loader->pp4 = pp1[3];
-        }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-      }
-      /* end of composite loading */
-    }
-    else
-    {
-      /* invalid composite count ( negative but not -1 ) */
-      error = TT_Err_Invalid_Outline;
-      goto Fail;
-    }
-
-    /***********************************************************************/
-    /***********************************************************************/
-    /***********************************************************************/
-
-  Fail:
-    if ( opened_frame )
-      face->forget_glyph_frame( loader );
-
-  Exit:
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    if ( glyph_data_loaded )
-      face->root.internal->incremental_interface->funcs->free_glyph_data(
-        face->root.internal->incremental_interface->object,
-        &glyph_data );
-#endif
-
-    return error;
-  }
-
-
-  static FT_Error
-  compute_glyph_metrics( TT_Loader   loader,
-                         FT_UInt     glyph_index )
-  {
-    FT_BBox       bbox;
-    TT_Face       face = (TT_Face)loader->face;
-    FT_Fixed      y_scale;
-    TT_GlyphSlot  glyph = loader->glyph;
-    TT_Size       size = (TT_Size)loader->size;
-
-
-    y_scale = 0x10000L;
-    if ( ( loader->load_flags & FT_LOAD_NO_SCALE ) == 0 )
-      y_scale = size->root.metrics.y_scale;
-
-    if ( glyph->format != FT_GLYPH_FORMAT_COMPOSITE )
-    {
-      glyph->outline.flags &= ~FT_OUTLINE_SINGLE_PASS;
-
-      /* copy outline to our glyph slot */
-      FT_GlyphLoader_CopyPoints( glyph->internal->loader, loader->gloader );
-      glyph->outline = glyph->internal->loader->base.outline;
-
-      /* translate array so that (0,0) is the glyph's origin */
-      FT_Outline_Translate( &glyph->outline, -loader->pp1.x, 0 );
-
-      FT_Outline_Get_CBox( &glyph->outline, &bbox );
-
-      if ( IS_HINTED( loader->load_flags ) )
-      {
-        /* grid-fit the bounding box */
-        bbox.xMin = FT_PIX_FLOOR( bbox.xMin );
-        bbox.yMin = FT_PIX_FLOOR( bbox.yMin );
-        bbox.xMax = FT_PIX_CEIL( bbox.xMax );
-        bbox.yMax = FT_PIX_CEIL( bbox.yMax );
-      }
-    }
-    else
-      bbox = loader->bbox;
-
-    /* get the device-independent horizontal advance.  It is scaled later */
-    /* by the base layer.                                                 */
-    {
-      FT_Pos  advance = loader->linear;
-
-
-      /* the flag FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH was introduced to */
-      /* correctly support DynaLab fonts, which have an incorrect       */
-      /* `advance_Width_Max' field!  It is used, to my knowledge,       */
-      /* exclusively in the X-TrueType font server.                     */
-      /*                                                                */
-      if ( face->postscript.isFixedPitch                                     &&
-           ( loader->load_flags & FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH ) == 0 )
-        advance = face->horizontal.advance_Width_Max;
-
-      /* we need to return the advance in font units in linearHoriAdvance, */
-      /* it will be scaled later by the base layer.                        */
-      glyph->linearHoriAdvance = advance;
-    }
-
-    glyph->metrics.horiBearingX = bbox.xMin;
-    glyph->metrics.horiBearingY = bbox.yMax;
-    glyph->metrics.horiAdvance  = loader->pp2.x - loader->pp1.x;
-
-    /* don't forget to hint the advance when we need to */
-    if ( IS_HINTED( loader->load_flags ) )
-      glyph->metrics.horiAdvance = FT_PIX_ROUND( glyph->metrics.horiAdvance );
-
-    /* Now take care of vertical metrics.  In the case where there is    */
-    /* no vertical information within the font (relatively common), make */
-    /* up some metrics by `hand'...                                      */
-
-    {
-      FT_Short   top_bearing;    /* vertical top side bearing (EM units) */
-      FT_UShort  advance_height; /* vertical advance height   (EM units) */
-
-      FT_Pos     left;     /* scaled vertical left side bearing */
-      FT_Pos     top;      /* scaled vertical top side bearing  */
-      FT_Pos     advance;  /* scaled vertical advance height    */
-
-
-      /* Get the unscaled top bearing and advance height. */
-      if ( face->vertical_info &&
-           face->vertical.number_Of_VMetrics > 0 )
-      {
-        advance_height = (FT_UShort)( loader->pp4.y - loader->pp3.y );
-        top_bearing    = (FT_Short)( loader->pp3.y - bbox.yMax );
-      }
-      else
-      {
-        /* Make up the distances from the horizontal header.   */
-
-        /* NOTE: The OS/2 values are the only `portable' ones, */
-        /*       which is why we use them, if there is an OS/2 */
-        /*       table in the font.  Otherwise, we use the     */
-        /*       values defined in the horizontal header.      */
-        /*                                                     */
-        /* NOTE2: The sTypoDescender is negative, which is why */
-        /*        we compute the baseline-to-baseline distance */
-        /*        here with:                                   */
-        /*             ascender - descender + linegap          */
-        /*                                                     */
-        /* NOTE3: This is different from what MS's rasterizer  */
-        /*        appears to do when getting default values    */
-        /*        for the vertical phantom points.  We leave   */
-        /*        the old code untouched, but relying on       */
-        /*        phantom points alone might be reasonable     */
-        /*        (i.e., removing the `if' above).             */
-        if ( face->os2.version != 0xFFFFU )
-        {
-          top_bearing    = (FT_Short)( face->os2.sTypoLineGap / 2 );
-          advance_height = (FT_UShort)( face->os2.sTypoAscender -
-                                        face->os2.sTypoDescender +
-                                        face->os2.sTypoLineGap );
-        }
-        else
-        {
-          top_bearing    = (FT_Short)( face->horizontal.Line_Gap / 2 );
-          advance_height = (FT_UShort)( face->horizontal.Ascender  +
-                                        face->horizontal.Descender +
-                                        face->horizontal.Line_Gap );
-        }
-      }
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-      /* If this is an incrementally loaded font see if there are */
-      /* overriding metrics for this glyph.                       */
-      if ( face->root.internal->incremental_interface &&
-           face->root.internal->incremental_interface->funcs->get_glyph_metrics )
-      {
-        FT_Incremental_MetricsRec  metrics;
-        FT_Error                   error = 0;
-
-
-        metrics.bearing_x = 0;
-        metrics.bearing_y = top_bearing;
-        metrics.advance = advance_height;
-        error =
-          face->root.internal->incremental_interface->funcs->get_glyph_metrics(
-            face->root.internal->incremental_interface->object,
-            glyph_index, TRUE, &metrics );
-
-        if ( error )
-          return error;
-
-        top_bearing    = (FT_Short)metrics.bearing_y;
-        advance_height = (FT_UShort)metrics.advance;
-      }
-
-      /* GWW: Do vertical metrics get loaded incrementally too? */
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-      /* We must adjust the top_bearing value from the bounding box given */
-      /* in the glyph header to the bounding box calculated with          */
-      /* FT_Get_Outline_CBox().                                           */
-
-      /* scale the metrics */
-      if ( !( loader->load_flags & FT_LOAD_NO_SCALE ) )
-      {
-        top     = FT_MulFix( top_bearing + loader->bbox.yMax, y_scale )
-                    - bbox.yMax;
-        advance = FT_MulFix( advance_height, y_scale );
-      }
-      else
-      {
-        top     = top_bearing + loader->bbox.yMax - bbox.yMax;
-        advance = advance_height;
-      }
-
-      /* set the advance height in design units.  It is scaled later by */
-      /* the base layer.                                                */
-      glyph->linearVertAdvance = advance_height;
-
-      /* XXX: for now, we have no better algorithm for the lsb, but it */
-      /*      should work fine.                                        */
-      /*                                                               */
-      left = ( bbox.xMin - bbox.xMax ) / 2;
-
-      /* grid-fit them if necessary */
-      if ( IS_HINTED( loader->load_flags ) )
-      {
-        left    = FT_PIX_FLOOR( left );
-        top     = FT_PIX_CEIL( top );
-        advance = FT_PIX_ROUND( advance );
-      }
-
-      glyph->metrics.vertBearingX = left;
-      glyph->metrics.vertBearingY = top;
-      glyph->metrics.vertAdvance  = advance;
-    }
-
-    /* adjust advance width to the value contained in the hdmx table */
-    if ( !face->postscript.isFixedPitch && size &&
-         IS_HINTED( loader->load_flags )        )
-    {
-      FT_Byte*  widths = Get_Advance_Widths( face,
-                                             size->root.metrics.x_ppem );
-
-
-      if ( widths )
-        glyph->metrics.horiAdvance = widths[glyph_index] << 6;
-    }
-
-    /* set glyph dimensions */
-    glyph->metrics.width  = bbox.xMax - bbox.xMin;
-    glyph->metrics.height = bbox.yMax - bbox.yMin;
-
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Load_Glyph                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A function used to load a single glyph within a given glyph slot,  */
-  /*    for a given size.                                                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    glyph       :: A handle to a target slot object where the glyph    */
-  /*                   will be loaded.                                     */
-  /*                                                                       */
-  /*    size        :: A handle to the source face size at which the glyph */
-  /*                   must be scaled/loaded.                              */
-  /*                                                                       */
-  /*    glyph_index :: The index of the glyph in the font file.            */
-  /*                                                                       */
-  /*    load_flags  :: A flag indicating what to load for this glyph.  The */
-  /*                   FT_LOAD_XXX constants can be used to control the    */
-  /*                   glyph loading process (e.g., whether the outline    */
-  /*                   should be scaled, whether to load bitmaps or not,   */
-  /*                   whether to hint the outline, etc).                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Load_Glyph( TT_Size       size,
-                 TT_GlyphSlot  glyph,
-                 FT_UInt       glyph_index,
-                 FT_Int32      load_flags )
-  {
-    SFNT_Service  sfnt;
-    TT_Face       face;
-    FT_Stream     stream;
-    FT_Error      error;
-    TT_LoaderRec  loader;
-
-
-    face   = (TT_Face)glyph->face;
-    sfnt   = (SFNT_Service)face->sfnt;
-    stream = face->root.stream;
-    error  = 0;
-
-    if ( !size || ( load_flags & FT_LOAD_NO_SCALE )   ||
-                  ( load_flags & FT_LOAD_NO_RECURSE ) )
-    {
-      size        = NULL;
-      load_flags |= FT_LOAD_NO_SCALE   |
-                    FT_LOAD_NO_HINTING |
-                    FT_LOAD_NO_BITMAP;
-    }
-
-    glyph->num_subglyphs = 0;
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    /* try to load embedded bitmap if any              */
-    /*                                                 */
-    /* XXX: The convention should be emphasized in     */
-    /*      the documents because it can be confusing. */
-    if ( size                                    &&
-         size->strike_index != 0xFFFFU           &&
-         sfnt->load_sbits                        &&
-         ( load_flags & FT_LOAD_NO_BITMAP ) == 0 )
-
-    {
-      TT_SBit_MetricsRec  metrics;
-
-
-      error = sfnt->load_sbit_image( face,
-                                     (FT_ULong)size->strike_index,
-                                     glyph_index,
-                                     (FT_Int)load_flags,
-                                     stream,
-                                     &glyph->bitmap,
-                                     &metrics );
-      if ( !error )
-      {
-        glyph->outline.n_points   = 0;
-        glyph->outline.n_contours = 0;
-
-        glyph->metrics.width  = (FT_Pos)metrics.width  << 6;
-        glyph->metrics.height = (FT_Pos)metrics.height << 6;
-
-        glyph->metrics.horiBearingX = (FT_Pos)metrics.horiBearingX << 6;
-        glyph->metrics.horiBearingY = (FT_Pos)metrics.horiBearingY << 6;
-        glyph->metrics.horiAdvance  = (FT_Pos)metrics.horiAdvance  << 6;
-
-        glyph->metrics.vertBearingX = (FT_Pos)metrics.vertBearingX << 6;
-        glyph->metrics.vertBearingY = (FT_Pos)metrics.vertBearingY << 6;
-        glyph->metrics.vertAdvance  = (FT_Pos)metrics.vertAdvance  << 6;
-
-        glyph->format = FT_GLYPH_FORMAT_BITMAP;
-        if ( load_flags & FT_LOAD_VERTICAL_LAYOUT )
-        {
-          glyph->bitmap_left = metrics.vertBearingX;
-          glyph->bitmap_top  = metrics.vertBearingY;
-        }
-        else
-        {
-          glyph->bitmap_left = metrics.horiBearingX;
-          glyph->bitmap_top  = metrics.horiBearingY;
-        }
-        return error;
-      }
-    }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-    /* return immediately if we only want the embedded bitmaps */
-    if ( load_flags & FT_LOAD_SBITS_ONLY )
-      return TT_Err_Invalid_Argument;
-
-    /* seek to the beginning of the glyph table.  For Type 42 fonts      */
-    /* the table might be accessed from a Postscript stream or something */
-    /* else...                                                           */
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* Don't look for the glyph table if this is an incremental font. */
-    if ( !face->root.internal->incremental_interface )
-
-#endif
-
-    {
-      error = face->goto_table( face, TTAG_glyf, stream, 0 );
-      if ( error )
-      {
-        FT_ERROR(( "TT_Load_Glyph: could not access glyph table\n" ));
-        goto Exit;
-      }
-    }
-
-    FT_MEM_ZERO( &loader, sizeof ( loader ) );
-
-    /* update the glyph zone bounds */
-    {
-      FT_GlyphLoader  gloader = FT_FACE_DRIVER(face)->glyph_loader;
-
-
-      loader.gloader = gloader;
-
-      FT_GlyphLoader_Rewind( gloader );
-
-      tt_prepare_zone( &loader.zone, &gloader->base, 0, 0 );
-      tt_prepare_zone( &loader.base, &gloader->base, 0, 0 );
-    }
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    if ( size )
-    {
-      /* query new execution context */
-      loader.exec = size->debug ? size->context : TT_New_Context( face );
-      if ( !loader.exec )
-        return TT_Err_Could_Not_Find_Context;
-
-      TT_Load_Context( loader.exec, face, size );
-      loader.instructions = loader.exec->glyphIns;
-
-      /* load default graphics state - if needed */
-      if ( size->GS.instruct_control & 2 )
-        loader.exec->GS = tt_default_graphics_state;
-    }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    /* clear all outline flags, except the `owner' one */
-    glyph->outline.flags = 0;
-
-    /* let's initialize the rest of our loader now */
-
-    loader.load_flags    = load_flags;
-
-    loader.face   = (FT_Face)face;
-    loader.size   = (FT_Size)size;
-    loader.glyph  = (FT_GlyphSlot)glyph;
-    loader.stream = stream;
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    if ( face->root.internal->incremental_interface )
-      loader.glyf_offset = 0;
-    else
-
-#endif
-
-      loader.glyf_offset = FT_STREAM_POS();
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    /* if the cvt program has disabled hinting, the argument */
-    /* is ignored.                                           */
-    if ( size && ( size->GS.instruct_control & 1 ) )
-      loader.load_flags |= FT_LOAD_NO_HINTING;
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    /* Main loading loop */
-    glyph->format        = FT_GLYPH_FORMAT_OUTLINE;
-    glyph->num_subglyphs = 0;
-
-    error = load_truetype_glyph( &loader, glyph_index, 0 );
-    if ( !error )
-      compute_glyph_metrics( &loader, glyph_index );
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    if ( !size || !size->debug )
-      TT_Done_Context( loader.exec );
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    /* Set the `high precision' bit flag.                           */
-    /* This is _critical_ to get correct output for monochrome      */
-    /* TrueType glyphs at all sizes using the bytecode interpreter. */
-    /*                                                              */
-    if ( size && size->root.metrics.y_ppem < 24 )
-      glyph->outline.flags |= FT_OUTLINE_HIGH_PRECISION;
-
-  Exit:
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttgload.h b/nx-X11/extras/freetype2/src/truetype/ttgload.h
deleted file mode 100644
index dfa2a60a5..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttgload.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttgload.h                                                              */
-/*                                                                         */
-/*    TrueType Glyph Loader (specification).                               */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTGLOAD_H__
-#define __TTGLOAD_H__
-
-
-#include <ft2build.h>
-#include "ttobjs.h"
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-#include "ttinterp.h"
-#endif
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( void )
-  TT_Get_Metrics( TT_HoriHeader*  header,
-                  FT_UInt         idx,
-                  FT_Short*       bearing,
-                  FT_UShort*      advance );
-
-  FT_LOCAL( void )
-  TT_Init_Glyph_Loading( TT_Face  face );
-
-  FT_LOCAL( FT_Error )
-  TT_Load_Glyph( TT_Size       size,
-                 TT_GlyphSlot  glyph,
-                 FT_UInt       glyph_index,
-                 FT_Int32      load_flags );
-
-
-FT_END_HEADER
-
-#endif /* __TTGLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttgxvar.c b/nx-X11/extras/freetype2/src/truetype/ttgxvar.c
deleted file mode 100644
index e48bb5054..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttgxvar.c
+++ /dev/null
@@ -1,1520 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttgxvar.c                                                              */
-/*                                                                         */
-/*    TrueType GX Font Variation loader                                    */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  David Turner, Robert Wilhelm, Werner Lemberg, and George Williams.     */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-/***************************************************************************/
-/*                                                                         */
-/* Apple documents the `fvar', `gvar', `cvar', and `avar' tables at        */
-/*                                                                         */
-/*   http://developer.apple.com/fonts/TTRefMan/RM06/Chap6[fgca]var.html    */
-/*                                                                         */
-/* The documentation for `fvar' is inconsistant.  At one point it says     */
-/* that `countSizePairs' should be 3, at another point 2.  It should be 2. */
-/*                                                                         */
-/* The documentation for `gvar' is not intelligible; `cvar' refers you to  */
-/* `gvar' and is thus also incomprehensible.                               */
-/*                                                                         */
-/* The documentation for `avar' appears correct, but Apple has no fonts    */
-/* with an `avar' table, so it is hard to test.                            */
-/*                                                                         */
-/* Many thanks to John Jenkins (at Apple) in figuring this out.            */
-/*                                                                         */
-/*                                                                         */
-/* Apple's `kern' table has some references to tuple indices, but as there */
-/* is no indication where these indices are defined, nor how to            */
-/* interpolate the kerning values (different tuples have different         */
-/* classes) this issue is ignored.                                         */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_SFNT_H
-#include FT_TRUETYPE_IDS_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_MULTIPLE_MASTERS_H
-
-#include "ttdriver.h"
-#include "ttpload.h"
-#include "ttgxvar.h"
-
-#include "tterrors.h"
-
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-
-
-#define FT_Stream_FTell( stream )  \
-          ( (stream)->cursor - (stream)->base )
-#define FT_Stream_SeekSet( stream, off ) \
-              ( (stream)->cursor = (stream)->base+(off) )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttgxvar
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                       Internal Routines                       *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro ALL_POINTS is used in `ft_var_readpackedpoints'.  It        */
-  /* indicates that there is a delta for every point without needing to    */
-  /* enumerate all of them.                                                */
-  /*                                                                       */
-#define ALL_POINTS  (FT_UShort*)(-1)
-
-
-  enum
-  {
-    GX_PT_POINTS_ARE_WORDS     = 0x80,
-    GX_PT_POINT_RUN_COUNT_MASK = 0x7F
-  };
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_var_readpackedpoints                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Read a set of points to which the following deltas will apply.     */
-  /*    Points are packed with a run length encoding.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream    :: The data stream.                                      */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    point_cnt :: The number of points read.  A zero value means that   */
-  /*                 all points in the glyph will be affected, without     */
-  /*                 enumerating them individually.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    An array of FT_UShort containing the affected points or the        */
-  /*    special value ALL_POINTS.                                          */
-  /*                                                                       */
-  static FT_UShort*
-  ft_var_readpackedpoints( FT_Stream  stream,
-                           FT_UInt   *point_cnt )
-  {
-    FT_UShort *points;
-    FT_Int     n;
-    FT_Int     runcnt;
-    FT_Int     i;
-    FT_Int     j;
-    FT_Int     first;
-    FT_Memory  memory = stream->memory;
-    FT_Error   error;
-
-
-    *point_cnt = n = FT_GET_BYTE();
-    if ( n == 0 )
-      return ALL_POINTS;
-
-    if ( n & GX_PT_POINTS_ARE_WORDS )
-      n = FT_GET_BYTE() | ( ( n & GX_PT_POINT_RUN_COUNT_MASK ) << 8 );
-
-    if ( FT_NEW_ARRAY( points, n ) )
-      return NULL;
-
-    i = 0;
-    while ( i < n )
-    {
-      runcnt = FT_GET_BYTE();
-      if ( runcnt & GX_PT_POINTS_ARE_WORDS )
-      {
-        runcnt = runcnt & GX_PT_POINT_RUN_COUNT_MASK;
-        points[i++] = first = FT_GET_USHORT();
-
-        /* first point not included in runcount */
-        for ( j = 0; j < runcnt; ++j )
-          points[i++] = ( first += FT_GET_USHORT() );
-      }
-      else
-      {
-        points[i++] = first = FT_GET_BYTE();
-
-        for ( j = 0; j < runcnt; ++j )
-          points[i++] = ( first += FT_GET_BYTE() );
-      }
-    }
-
-    return points;
-  }
-
-
-  enum
-  {
-    GX_DT_DELTAS_ARE_ZERO      = 0x80,
-    GX_DT_DELTAS_ARE_WORDS     = 0x40,
-    GX_DT_DELTA_RUN_COUNT_MASK = 0x3F
-  };
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_var_readpackeddeltas                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Read a set of deltas.  These are packed slightly differently than  */
-  /*    points.  In particular there is no overall count.                  */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream    :: The data stream.                                      */
-  /*                                                                       */
-  /*    delta_cnt :: The number of to be read.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    An array of FT_Short containing the deltas for the affected        */
-  /*    points.  (This only gets the deltas for one dimension.  It will    */
-  /*    generally be called twice, once for x, once for y.  When used in   */
-  /*    cvt table, it will only be called once.)                           */
-  /*                                                                       */
-  static FT_Short*
-  ft_var_readpackeddeltas( FT_Stream  stream,
-                           FT_Int     delta_cnt )
-  {
-    FT_Short  *deltas;
-    FT_Int     runcnt;
-    FT_Int     i;
-    FT_Int     j;
-    FT_Memory  memory = stream->memory;
-    FT_Error   error;
-
-
-    if ( FT_NEW_ARRAY( deltas, delta_cnt ) )
-      return NULL;
-
-    i = 0;
-    while ( i < delta_cnt )
-    {
-      runcnt = FT_GET_BYTE();
-      if ( runcnt & GX_DT_DELTAS_ARE_ZERO )
-      {
-        /* runcnt zeroes get added */
-        for ( j = 0;
-              j <= ( runcnt & GX_DT_DELTA_RUN_COUNT_MASK ) && i < delta_cnt;
-              ++j )
-          deltas[i++] = 0;
-      }
-      else if ( runcnt & GX_DT_DELTAS_ARE_WORDS )
-      {
-        /* runcnt shorts from the stack */
-        for ( j = 0;
-              j <= ( runcnt & GX_DT_DELTA_RUN_COUNT_MASK ) && i < delta_cnt;
-              ++j )
-          deltas[i++] = FT_GET_SHORT();
-      }
-      else
-      {
-        /* runcnt signed bytes from the stack */
-        for ( j = 0;
-              j <= ( runcnt & GX_DT_DELTA_RUN_COUNT_MASK ) && i < delta_cnt;
-              ++j )
-          deltas[i++] = FT_GET_CHAR();
-      }
-
-      if ( j <= ( runcnt & GX_DT_DELTA_RUN_COUNT_MASK ) )
-      {
-        /* Bad format */
-        FT_FREE( deltas );
-        return NULL;
-      }
-    }
-
-    return deltas;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_var_load_avar                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Parse the `avar' table if present.  It need not be, so we return   */
-  /*    nothing.                                                           */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face :: The font face.                                             */
-  /*                                                                       */
-  static void
-  ft_var_load_avar( TT_Face  face )
-  {
-    FT_Stream       stream = FT_FACE_STREAM(face);
-    FT_Memory       memory = stream->memory;
-    GX_Blend        blend  = face->blend;
-    GX_AVarSegment  segment;
-    FT_Error        error;
-    FT_ULong        version;
-    FT_Long         axisCount;
-    FT_Int          i, j;
-    FT_ULong        table_len;
-
-
-    blend->avar_checked = TRUE;
-    if ( ( error = face->goto_table( face, TTAG_avar, stream, &table_len ) ) )
-      return;
-    if ( FT_FRAME_ENTER( table_len ) )
-      return;
-
-    version   = FT_GET_LONG();
-    axisCount = FT_GET_LONG();
-
-    if ( version != 0x00010000L                       ||
-         axisCount != (FT_Long)blend->mmvar->num_axis )
-      goto Exit;
-
-    if ( FT_NEW_ARRAY( blend->avar_segment, axisCount ) )
-      goto Exit;
-
-    segment = &blend->avar_segment[0];
-    for ( i = 0; i < axisCount; ++i, ++segment )
-    {
-      segment->pairCount = FT_GET_USHORT();
-      if ( FT_NEW_ARRAY( segment->correspondence, segment->pairCount ) )
-      {
-        /* Failure.  Free everything we have done so far.  We must do */
-        /* it right now since loading the `avar' table is optional.   */
-
-        for ( j = i - 1; j >= 0; --j )
-          FT_FREE( blend->avar_segment[j].correspondence );
-
-        FT_FREE( blend->avar_segment );
-        blend->avar_segment = NULL;
-        goto Exit;
-      }
-
-      for ( j = 0; j < segment->pairCount; ++j )
-      {
-        segment->correspondence[j].fromCoord =
-          FT_GET_SHORT() << 2;    /* convert to Fixed */
-        segment->correspondence[j].toCoord =
-          FT_GET_SHORT()<<2;    /* convert to Fixed */
-      }
-    }
-
-  Exit:
-    FT_FRAME_EXIT();
-  }
-
-
-  typedef struct  GX_GVar_Head_ {
-    FT_Long    version;
-    FT_UShort  axisCount;
-    FT_UShort  globalCoordCount;
-    FT_ULong   offsetToCoord;
-    FT_UShort  glyphCount;
-    FT_UShort  flags;
-    FT_ULong   offsetToData;
-
-  } GX_GVar_Head;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_var_load_gvar                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Parses the `gvar' table if present.  If `fvar' is there, `gvar'    */
-  /*    had better be there too.                                           */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face :: The font face.                                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  ft_var_load_gvar( TT_Face  face )
-  {
-    FT_Stream     stream = FT_FACE_STREAM(face);
-    FT_Memory     memory = stream->memory;
-    GX_Blend      blend  = face->blend;
-    FT_Error      error;
-    FT_UInt       i, j;
-    FT_ULong      table_len;
-    FT_ULong      gvar_start;
-    FT_ULong      offsetToData;
-    GX_GVar_Head  gvar_head;
-
-    static const FT_Frame_Field  gvar_fields[] =
-    {
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  GX_GVar_Head
-
-      FT_FRAME_START( 20 ),
-        FT_FRAME_LONG  ( version ),
-        FT_FRAME_USHORT( axisCount ),
-        FT_FRAME_USHORT( globalCoordCount ),
-        FT_FRAME_ULONG ( offsetToCoord ),
-        FT_FRAME_USHORT( glyphCount ),
-        FT_FRAME_USHORT( flags ),
-        FT_FRAME_ULONG ( offsetToData ),
-      FT_FRAME_END
-    };
-
-    if ( ( error = face->goto_table( face, TTAG_gvar, stream, &table_len ) ) )
-      goto Exit;
-
-    gvar_start = FT_STREAM_POS( );
-    if ( FT_STREAM_READ_FIELDS( gvar_fields, &gvar_head ) )
-      goto Exit;
-
-    blend->tuplecount  = gvar_head.globalCoordCount;
-    blend->gv_glyphcnt = gvar_head.glyphCount;
-    offsetToData       = gvar_start + gvar_head.offsetToData;
-
-    if ( gvar_head.version != 0x00010000L              ||
-         gvar_head.axisCount != blend->mmvar->num_axis )
-    {
-      error = TT_Err_Invalid_Table;
-      goto Exit;
-    }
-
-    if ( FT_NEW_ARRAY( blend->glyphoffsets, blend->gv_glyphcnt + 1 ) )
-      goto Exit;
-
-    if ( gvar_head.flags & 1 )
-    {
-      /* long offsets (one more offset than glyphs, to mark size of last) */
-      if ( FT_FRAME_ENTER( ( blend->gv_glyphcnt + 1 ) * 4L ) )
-        goto Exit;
-
-      for ( i = 0; i <= blend->gv_glyphcnt; ++i )
-        blend->glyphoffsets[i] = offsetToData + FT_GET_LONG();
-
-      FT_FRAME_EXIT();
-    }
-    else
-    {
-      /* short offsets (one more offset than glyphs, to mark size of last) */
-      if ( FT_FRAME_ENTER( ( blend->gv_glyphcnt + 1 ) * 2L ) )
-        goto Exit;
-
-      for ( i = 0; i <= blend->gv_glyphcnt; ++i )
-        blend->glyphoffsets[i] = offsetToData + FT_GET_USHORT() * 2;
-                                              /* XXX: Undocumented: `*2'! */
-
-      FT_FRAME_EXIT();
-    }
-
-    if ( blend->tuplecount != 0 )
-    {
-      if ( FT_NEW_ARRAY( blend->tuplecoords,
-                         gvar_head.axisCount * blend->tuplecount ) )
-        goto Exit;
-
-      if ( FT_STREAM_SEEK( gvar_start + gvar_head.offsetToCoord )       ||
-           FT_FRAME_ENTER( blend->tuplecount * gvar_head.axisCount * 2L )                   )
-        goto Exit;
-
-      for ( i = 0; i < blend->tuplecount; ++i )
-        for ( j = 0 ; j < gvar_head.axisCount; ++j )
-          blend->tuplecoords[i * gvar_head.axisCount + j] =
-            FT_GET_SHORT() << 2;                /* convert to FT_Fixed */
-
-      FT_FRAME_EXIT();
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ft_var_apply_tuple                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Figure out whether a given tuple (design) applies to the current   */
-  /*    blend, and if so, what is the scaling factor.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    blend           :: The current blend of the font.                  */
-  /*                                                                       */
-  /*    tupleIndex      :: A flag saying whether this is an intermediate   */
-  /*                       tuple or not.                                   */
-  /*                                                                       */
-  /*    tuple_coords    :: The coordinates of the tuple in normalized axis */
-  /*                       units.                                          */
-  /*                                                                       */
-  /*    im_start_coords :: The initial coordinates where this tuple starts */
-  /*                       to apply (for intermediate coordinates).        */
-  /*                                                                       */
-  /*    im_end_coords   :: The final coordinates after which this tuple no */
-  /*                       longer applies (for intermediate coordinates).  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    An FT_Fixed value containing the scaling factor.                   */
-  /*                                                                       */
-  static FT_Fixed
-  ft_var_apply_tuple( GX_Blend   blend,
-                      FT_UShort  tupleIndex,
-                      FT_Fixed*  tuple_coords,
-                      FT_Fixed*  im_start_coords,
-                      FT_Fixed*  im_end_coords )
-  {
-    FT_UInt   i;
-    FT_Fixed  apply;
-    FT_Fixed  temp;
-
-
-    apply = 0x10000L;
-    for ( i = 0; i < blend->num_axis; ++i )
-    {
-      if ( tuple_coords[i] == 0 )
-        /* It's not clear why (for intermediate tuples) we don't need     */
-        /* to check against start/end -- the documentation says we don't. */
-        /* Similarly, it's unclear why we don't need to scale along the   */
-        /* axis.                                                          */
-        continue;
-
-      else if ( blend->normalizedcoords[i] == 0                           ||
-                ( blend->normalizedcoords[i] < 0 && tuple_coords[i] > 0 ) ||
-                ( blend->normalizedcoords[i] > 0 && tuple_coords[i] < 0 ) )
-      {
-        apply = 0;
-        break;
-      }
-
-      else if ( !( tupleIndex & GX_TI_INTERMEDIATE_TUPLE ) )
-        /* not an intermediate tuple */
-        apply = FT_MulDiv( apply,
-                           blend->normalizedcoords[i] > 0
-                             ? blend->normalizedcoords[i]
-                             : -blend->normalizedcoords[i],
-                           0x10000L );
-
-      else if ( blend->normalizedcoords[i] <= im_start_coords[i] ||
-                blend->normalizedcoords[i] >= im_end_coords[i]   )
-      {
-        apply = 0;
-        break;
-      }
-
-      else if ( blend->normalizedcoords[i] < tuple_coords[i] )
-      {
-        temp = FT_MulDiv( blend->normalizedcoords[i] - im_start_coords[i],
-                          0x10000L,
-                          tuple_coords[i] - im_start_coords[i]);
-        apply = FT_MulDiv( apply, temp, 0x10000L );
-      }
-
-      else
-      {
-        temp = FT_MulDiv( im_end_coords[i] - blend->normalizedcoords[i],
-                          0x10000L,
-                          im_end_coords[i] - tuple_coords[i] );
-        apply = FT_MulDiv( apply, temp, 0x10000L );
-      }
-    }
-
-    return apply;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****               MULTIPLE MASTERS SERVICE FUNCTIONS              *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  typedef struct  GX_FVar_Head_ {
-    FT_Long    version;
-    FT_UShort  offsetToData;
-    FT_UShort  countSizePairs;
-    FT_UShort  axisCount;
-    FT_UShort  axisSize;
-    FT_UShort  instanceCount;
-    FT_UShort  instanceSize;
-
-  } GX_FVar_Head;
-
-
-  typedef struct  fvar_axis {
-    FT_ULong   axisTag;
-    FT_ULong   minValue;
-    FT_ULong   defaultValue;
-    FT_ULong   maxValue;
-    FT_UShort  flags;
-    FT_UShort  nameID;
-
-  } GX_FVar_Axis;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Get_MM_Var                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Check that the font's `fvar' table is valid, parse it, and return  */
-  /*    those data.                                                        */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: The font face.                                           */
-  /*              TT_Get_MM_Var initializes the blend structure.           */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    master :: The `fvar' data (must be freed by caller).               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Get_MM_Var( TT_Face      face,
-                 FT_MM_Var*  *master )
-  {
-    FT_Stream            stream = face->root.stream;
-    FT_Memory            memory = face->root.memory;
-    FT_ULong             table_len;
-    FT_Error             error  = TT_Err_Ok;
-    FT_ULong             fvar_start;
-    FT_Int               i, j;
-    FT_MM_Var*           mmvar;
-    FT_Fixed*            next_coords;
-    FT_String*           next_name;
-    FT_Var_Axis*         a;
-    FT_Var_Named_Style*  ns;
-    GX_FVar_Head         fvar_head;
-
-    static const FT_Frame_Field  fvar_fields[] =
-    {
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  GX_FVar_Head
-
-      FT_FRAME_START( 16 ),
-        FT_FRAME_LONG  ( version ),
-        FT_FRAME_USHORT( offsetToData ),
-        FT_FRAME_USHORT( countSizePairs ),
-        FT_FRAME_USHORT( axisCount ),
-        FT_FRAME_USHORT( axisSize ),
-        FT_FRAME_USHORT( instanceCount ),
-        FT_FRAME_USHORT( instanceSize ),
-      FT_FRAME_END
-    };
-
-    static const FT_Frame_Field  fvaraxis_fields[] =
-    {
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  GX_FVar_Axis
-
-      FT_FRAME_START( 20 ),
-        FT_FRAME_ULONG ( axisTag ),
-        FT_FRAME_ULONG ( minValue ),
-        FT_FRAME_ULONG ( defaultValue ),
-        FT_FRAME_ULONG ( maxValue ),
-        FT_FRAME_USHORT( flags ),
-        FT_FRAME_USHORT( nameID ),
-      FT_FRAME_END
-    };
-
-
-    if ( face->blend == NULL )
-    {
-      /* both `fvar' and `gvar' must be present */
-      if ( ( error = face->goto_table( face, TTAG_gvar,
-                                       stream, &table_len ) ) )
-        goto Exit;
-      if ( ( error = face->goto_table( face, TTAG_fvar,
-                                       stream, &table_len ) ) )
-        goto Exit;
-
-      fvar_start = FT_STREAM_POS( );
-
-      if ( FT_STREAM_READ_FIELDS( fvar_fields, &fvar_head ) )
-        goto Exit;
-
-      if ( fvar_head.version != 0x00010000UL                              ||
-           fvar_head.countSizePairs != 2                                  ||
-           fvar_head.axisSize != 20                                       ||
-           fvar_head.instanceSize != 4 + 4 * fvar_head.axisCount          ||
-           fvar_head.offsetToData + fvar_head.axisCount * 20U +
-             fvar_head.instanceCount * fvar_head.instanceSize > table_len )
-      {
-        error = TT_Err_Invalid_Table;
-        goto Exit;
-      }
-
-      if ( FT_ALLOC( face->blend, sizeof ( GX_BlendRec ) ) )
-        goto Exit;
-
-      face->blend->mmvar_len =
-        sizeof ( FT_MM_Var ) +
-        fvar_head.axisCount * sizeof ( FT_Var_Axis ) +
-        fvar_head.instanceCount * sizeof ( FT_Var_Named_Style ) +
-        fvar_head.instanceCount * fvar_head.axisCount * sizeof ( FT_Fixed ) +
-        5 * fvar_head.axisCount;
-      if ( FT_ALLOC( mmvar, face->blend->mmvar_len ) )
-        goto Exit;
-      face->blend->mmvar = mmvar;
-
-      mmvar->num_axis =
-        fvar_head.axisCount;
-      mmvar->num_designs =
-        (FT_UInt)-1;           /* meaningless in this context; each glyph */
-                               /* may have a different number of designs  */
-                               /* (or tuples, as called by Apple)         */
-      mmvar->num_namedstyles =
-        fvar_head.instanceCount;
-      mmvar->axis =
-        (FT_Var_Axis*)&(mmvar[1]);
-      mmvar->namedstyle =
-        (FT_Var_Named_Style*)&(mmvar->axis[fvar_head.axisCount]);
-
-      next_coords =
-        (FT_Fixed*)&(mmvar->namedstyle[fvar_head.instanceCount]);
-      for ( i = 0; i < fvar_head.instanceCount; ++i )
-      {
-        mmvar->namedstyle[i].coords  = next_coords;
-        next_coords                 += fvar_head.axisCount;
-      }
-
-      next_name = (FT_String*)next_coords;
-      for ( i = 0; i < fvar_head.axisCount; ++i )
-      {
-        mmvar->axis[i].name  = next_name;
-        next_name           += 5;
-      }
-
-      if ( FT_STREAM_SEEK( fvar_start + fvar_head.offsetToData ) )
-        goto Exit;
-
-      a = mmvar->axis;
-      for ( i = 0; i < fvar_head.axisCount; ++i )
-      {
-        GX_FVar_Axis  axis_rec;
-
-
-        if ( FT_STREAM_READ_FIELDS( fvaraxis_fields, &axis_rec ) )
-          goto Exit;
-        a->tag     = axis_rec.axisTag;
-        a->minimum = axis_rec.minValue;     /* A Fixed */
-        a->def     = axis_rec.defaultValue; /* A Fixed */
-        a->maximum = axis_rec.maxValue;     /* A Fixed */
-        a->strid   = axis_rec.nameID;
-
-        a->name[0] =   a->tag >> 24;
-        a->name[1] = ( a->tag >> 16 ) & 0xFF;
-        a->name[2] = ( a->tag >>  8 ) & 0xFF;
-        a->name[3] = ( a->tag       ) & 0xFF;
-        a->name[4] = 0;
-
-        ++a;
-      }
-
-      ns = mmvar->namedstyle;
-      for ( i = 0; i < fvar_head.instanceCount; ++i )
-      {
-        if ( FT_FRAME_ENTER( 4L + 4L * fvar_head.axisCount ) )
-          goto Exit;
-
-        ns->strid       =    FT_GET_USHORT();
-        (void) /* flags = */ FT_GET_USHORT();
-
-        for ( j = 0; j < fvar_head.axisCount; ++j )
-          ns->coords[j] = FT_GET_ULONG();     /* A Fixed */
-
-        FT_FRAME_EXIT();
-      }
-    }
-
-    if ( master != NULL )
-    {
-      FT_UInt  n;
-
-
-      if ( FT_ALLOC( mmvar, face->blend->mmvar_len ) )
-        goto Exit;
-      FT_MEM_COPY( mmvar, face->blend->mmvar, face->blend->mmvar_len );
-
-      mmvar->axis =
-        (FT_Var_Axis*)&(mmvar[1]);
-      mmvar->namedstyle =
-        (FT_Var_Named_Style*)&(mmvar->axis[mmvar->num_axis]);
-      next_coords =
-        (FT_Fixed*)&(mmvar->namedstyle[mmvar->num_namedstyles]);
-
-      for ( n = 0; n < mmvar->num_namedstyles; ++n )
-      {
-        mmvar->namedstyle[n].coords  = next_coords;
-        next_coords                 += mmvar->num_axis;
-      }
-
-      a = mmvar->axis;
-      next_name = (FT_String*)next_coords;
-      for ( n = 0; n < mmvar->num_axis; ++n )
-      {
-        a->name = next_name;
-
-        /* standard PostScript names for some standard apple tags */
-        if ( a->tag == TTAG_wght )
-          a->name = (char *)"Weight";
-        else if ( a->tag == TTAG_wdth )
-          a->name = (char *)"Width";
-        else if ( a->tag == TTAG_opsz )
-          a->name = (char *)"OpticalSize";
-        else if ( a->tag == TTAG_slnt )
-          a->name = (char *)"Slant";
-
-        next_name += 5;
-        ++a;
-      }
-
-      *master = mmvar;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Set_MM_Blend                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Set the blend (normalized) coordinates for this instance of the    */
-  /*    font.  Check that the `gvar' table is reasonable and does some     */
-  /*    initial preparation.                                               */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: The font.                                            */
-  /*                  Initialize the blend structure with `gvar' data.     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    num_coords :: Must be the axis count of the font.                  */
-  /*                                                                       */
-  /*    coords     :: An array of num_coords, each between [-1,1].         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Set_MM_Blend( TT_Face    face,
-                   FT_UInt    num_coords,
-                   FT_Fixed*  coords )
-  {
-    FT_Error    error = TT_Err_Ok;
-    GX_Blend    blend;
-    FT_MM_Var*  mmvar;
-    FT_UInt     i;
-    FT_Memory   memory = face->root.memory;
-
-    enum
-    {
-      mcvt_retain,
-      mcvt_modify,
-      mcvt_load
-
-    } manageCvt;
-
-
-    face->doblend = FALSE;
-
-    if ( face->blend == NULL )
-    {
-      if ( ( error = TT_Get_MM_Var( face, NULL) ) )
-        goto Exit;
-    }
-
-    blend = face->blend;
-    mmvar = blend->mmvar;
-
-    if ( num_coords != mmvar->num_axis )
-    {
-      error = TT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    for ( i = 0; i < num_coords; ++i )
-      if ( coords[i] < -0x00010000L || coords[i] > 0x00010000L )
-      {
-        error = TT_Err_Invalid_Argument;
-        goto Exit;
-      }
-
-    if ( blend->glyphoffsets == NULL )
-      if ( ( error = ft_var_load_gvar( face ) ) )
-        goto Exit;
-
-    if ( blend->normalizedcoords == NULL )
-    {
-      if ( FT_NEW_ARRAY( blend->normalizedcoords, num_coords ) )
-        goto Exit;
-
-      manageCvt = mcvt_modify;
-
-      /* If we have not set the blend coordinates before this, then the  */
-      /* cvt table will still be what we read from the `cvt ' table and  */
-      /* we don't need to reload it.  We may need to change it though... */
-    }
-    else
-    {
-      for ( i = 0;
-            i < num_coords && blend->normalizedcoords[i] == coords[i];
-            ++i );
-        if ( i == num_coords )
-          manageCvt = mcvt_retain;
-        else
-          manageCvt = mcvt_load;
-
-      /* If we don't change the blend coords then we don't need to do  */
-      /* anything to the cvt table.  It will be correct.  Otherwise we */
-      /* no longer have the original cvt (it was modified when we set  */
-      /* the blend last time), so we must reload and then modify it.   */
-    }
-
-    blend->num_axis = num_coords;
-    FT_MEM_COPY( blend->normalizedcoords,
-                 coords,
-                 num_coords * sizeof ( FT_Fixed ) );
-
-    face->doblend = TRUE;
-
-    if ( face->cvt != NULL )
-    {
-      switch ( manageCvt )
-      {
-      case mcvt_load:
-        /* The cvt table has been loaded already; every time we change the */
-        /* blend we may need to reload and remodify the cvt table.         */
-        FT_FREE( face->cvt );
-        face->cvt = NULL;
-
-        tt_face_load_cvt( face, face->root.stream );
-        break;
-
-      case mcvt_modify:
-        /* The original cvt table is in memory.  All we need to do is */
-        /* apply the `cvar' table (if any).                           */
-        tt_face_vary_cvt( face, face->root.stream );
-        break;
-
-      case mcvt_retain:
-        /* The cvt table is correct for this set of coordinates. */
-        break;
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Set_Var_Design                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Set the coordinates for the instance, measured in the user         */
-  /*    coordinate system.  Parse the `avar' table (if present) to convert */
-  /*    from user to normalized coordinates.                               */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: The font face.                                       */
-  /*                  Initialize the blend struct with `gvar' data.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    num_coords :: This must be the axis count of the font.             */
-  /*                                                                       */
-  /*    coords     :: A coordinate array with `num_coords' elements.       */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Set_Var_Design( TT_Face    face,
-                     FT_UInt    num_coords,
-                     FT_Fixed*  coords )
-  {
-    FT_Error        error      = TT_Err_Ok;
-    FT_Fixed*       normalized = NULL;
-    GX_Blend        blend;
-    FT_MM_Var*      mmvar;
-    FT_UInt         i, j;
-    FT_Var_Axis*    a;
-    GX_AVarSegment  av;
-    FT_Memory       memory = face->root.memory;
-
-
-    if ( face->blend == NULL )
-    {
-      if ( ( error = TT_Get_MM_Var( face, NULL ) ) )
-        goto Exit;
-    }
-
-    blend = face->blend;
-    mmvar = blend->mmvar;
-
-    if ( num_coords != mmvar->num_axis )
-    {
-      error = TT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* Axis normalization is a two stage process.  First we normalize */
-    /* based on the [min,def,max] values for the axis to be [-1,0,1]. */
-    /* Then, if there's an `avar' table, we renormalize this range.   */
-
-    if ( FT_NEW_ARRAY( normalized, mmvar->num_axis ) )
-      goto Exit;
-
-    a = mmvar->axis;
-    for ( i = 0; i < mmvar->num_axis; ++i, ++a )
-    {
-      if ( coords[i] > a->maximum || coords[i] < a->minimum )
-      {
-        error = TT_Err_Invalid_Argument;
-        goto Exit;
-      }
-
-      if ( coords[i] < a->def )
-      {
-        normalized[i] = -FT_MulDiv( coords[i] - a->def,
-                                    0x10000L,
-                                    a->minimum - a->def );
-      }
-      else if ( a->maximum == a->def )
-        normalized[i] = 0;
-      else
-      {
-        normalized[i] = FT_MulDiv( coords[i] - a->def,
-                                   0x10000L,
-                                   a->maximum - a->def );
-      }
-    }
-
-    if ( !blend->avar_checked )
-      ft_var_load_avar( face );
-
-    if ( blend->avar_segment != NULL )
-    {
-      av = blend->avar_segment;
-      for ( i = 0; i < mmvar->num_axis; ++i, ++av )
-      {
-        for ( j = 1; j < av->pairCount; ++j )
-          if ( normalized[i] < av->correspondence[j].fromCoord )
-          {
-            normalized[i] =
-              FT_MulDiv(
-                FT_MulDiv(
-                  normalized[i] - av->correspondence[j - 1].fromCoord,
-                  0x10000L,
-                  av->correspondence[j].fromCoord -
-                    av->correspondence[j - 1].fromCoord ),
-                av->correspondence[j].toCoord -
-                  av->correspondence[j - 1].toCoord,
-                0x10000L ) +
-              av->correspondence[j - 1].toCoord;
-            break;
-          }
-      }
-    }
-
-    error = TT_Set_MM_Blend( face, num_coords, normalized );
-
-  Exit:
-    FT_FREE( normalized );
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                     GX VAR PARSING ROUTINES                   *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_vary_cvt                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Modify the loaded cvt table according to the `cvar' table and the  */
-  /*    font's blend.                                                      */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /*    Most errors are ignored.  It is perfectly valid not to have a      */
-  /*    `cvar' table even if there is a `gvar' and `fvar' table.           */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_vary_cvt( TT_Face    face,
-                    FT_Stream  stream )
-  {
-    FT_Error    error;
-    FT_Memory   memory = stream->memory;
-    FT_ULong    table_start;
-    FT_ULong    table_len;
-    FT_UInt     tupleCount;
-    FT_ULong    offsetToData;
-    FT_ULong    here;
-    FT_UInt     i, j;
-    FT_Fixed*   tuple_coords    = NULL;
-    FT_Fixed*   im_start_coords = NULL;
-    FT_Fixed*   im_end_coords   = NULL;
-    GX_Blend    blend           = face->blend;
-    FT_UInt     point_count;
-    FT_UShort*  localpoints;
-    FT_Short*   deltas;
-
-
-    FT_TRACE2(( "CVAR " ));
-
-    if ( blend == NULL )
-    {
-      FT_TRACE2(( "no blend specified!\n" ));
-
-      error = TT_Err_Ok;
-      goto Exit;
-    }
-
-    if ( face->cvt == NULL )
-    {
-      FT_TRACE2(( "no `cvt ' table!\n" ));
-
-      error = TT_Err_Ok;
-      goto Exit;
-    }
-
-    error = face->goto_table( face, TTAG_cvar, stream, &table_len );
-    if ( error )
-    {
-      FT_TRACE2(( "is missing!\n" ));
-
-      error = TT_Err_Ok;
-      goto Exit;
-    }
-
-    if ( FT_FRAME_ENTER( table_len ) )
-    {
-      error = TT_Err_Ok;
-      goto Exit;
-    }
-
-    table_start = FT_Stream_FTell( stream );
-    if ( FT_GET_LONG() != 0x00010000L )
-    {
-      FT_TRACE2(( "bad table version!\n" ));
-
-      error = TT_Err_Ok;
-      goto FExit;
-    }
-
-    if ( FT_NEW_ARRAY( tuple_coords, blend->num_axis )    ||
-         FT_NEW_ARRAY( im_start_coords, blend->num_axis ) ||
-         FT_NEW_ARRAY( im_end_coords, blend->num_axis )   )
-      goto FExit;
-
-    tupleCount   = FT_GET_USHORT();
-    offsetToData = table_start + FT_GET_USHORT();
-
-    /* The documentation implies there are flags packed into the        */
-    /* tuplecount, but John Jenkins says that shared points don't apply */
-    /* to `cvar', and no other flags are defined.                       */
-
-    for ( i = 0; i < ( tupleCount & 0xFFF ); ++i )
-    {
-      FT_UInt   tupleDataSize;
-      FT_UInt   tupleIndex;
-      FT_Fixed  apply;
-
-
-      tupleDataSize = FT_GET_USHORT();
-      tupleIndex    = FT_GET_USHORT();
-
-      /* There is no provision here for a global tuple coordinate section, */
-      /* so John says.  There are no tuple indices, just embedded tuples.  */
-
-      if ( tupleIndex & GX_TI_EMBEDDED_TUPLE_COORD )
-      {
-        for ( j = 0; j < blend->num_axis; ++j )
-          tuple_coords[j] = FT_GET_SHORT() << 2; /* convert from        */
-                                                 /* short frac to fixed */
-      }
-      else
-      {
-        /* skip this tuple; it makes no sense */
-
-        if ( tupleIndex & GX_TI_INTERMEDIATE_TUPLE )
-          for ( j = 0; j < 2 * blend->num_axis; ++j )
-            (void)FT_GET_SHORT();
-
-        offsetToData += tupleDataSize;
-        continue;
-      }
-
-      if ( tupleIndex & GX_TI_INTERMEDIATE_TUPLE )
-      {
-        for ( j = 0; j < blend->num_axis; ++j )
-          im_start_coords[j] = FT_GET_SHORT() << 2;
-        for ( j = 0; j < blend->num_axis; ++j )
-          im_end_coords[j] = FT_GET_SHORT() << 2;
-      }
-
-      apply = ft_var_apply_tuple( blend,
-                                  tupleIndex,
-                                  tuple_coords,
-                                  im_start_coords,
-                                  im_end_coords );
-      if ( /* tuple isn't active for our blend */
-           apply == 0                                    ||
-           /* global points not allowed,           */
-           /* if they aren't local, makes no sense */
-           !( tupleIndex & GX_TI_PRIVATE_POINT_NUMBERS ) )
-      {
-        offsetToData += tupleDataSize;
-        continue;
-      }
-
-      here = FT_Stream_FTell( stream );
-
-      FT_Stream_SeekSet( stream, offsetToData );
-
-      localpoints = ft_var_readpackedpoints( stream, &point_count );
-      deltas      = ft_var_readpackeddeltas( stream,
-                                             point_count == 0 ? face->cvt_size
-                                                              : point_count );
-      if ( localpoints == NULL || deltas == NULL )
-        /* failure, ignore it */;
-
-      else if ( localpoints == ALL_POINTS )
-      {
-        /* this means that there are deltas for every entry in cvt */
-        for ( j = 0; j < face->cvt_size; ++j )
-          face->cvt[j] += FT_MulFix( deltas[j], apply );
-      }
-
-      else
-      {
-        for ( j = 0; j < point_count; ++j )
-          face->cvt[localpoints[j]] += FT_MulFix( deltas[j], apply );
-      }
-
-      if ( localpoints != ALL_POINTS )
-        FT_FREE( localpoints );
-      FT_FREE( deltas );
-
-      offsetToData += tupleDataSize;
-
-      FT_Stream_SeekSet( stream, here );
-    }
-
-  FExit:
-    FT_FRAME_EXIT();
-
-  Exit:
-    FT_FREE( tuple_coords );
-    FT_FREE( im_start_coords );
-    FT_FREE( im_end_coords );
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Vary_Get_Glyph_Deltas                                           */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Load the appropriate deltas for the current glyph.                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to the target face object.                 */
-  /*                                                                       */
-  /*    glyph_index :: The index of the glyph being modified.              */
-  /*                                                                       */
-  /*    n_points    :: The number of the points in the glyph, including    */
-  /*                   phantom points.                                     */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    deltas      :: The array of points to change.                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Vary_Get_Glyph_Deltas( TT_Face      face,
-                            FT_UInt      glyph_index,
-                            FT_Vector*  *deltas,
-                            FT_UInt      n_points )
-  {
-    FT_Stream   stream = face->root.stream;
-    FT_Memory   memory = stream->memory;
-    GX_Blend    blend  = face->blend;
-    FT_Vector*  delta_xy;
-
-    FT_Error    error;
-    FT_ULong    glyph_start;
-    FT_UInt     tupleCount;
-    FT_ULong    offsetToData;
-    FT_ULong    here;
-    FT_UInt     i, j;
-    FT_Fixed*   tuple_coords    = NULL;
-    FT_Fixed*   im_start_coords = NULL;
-    FT_Fixed*   im_end_coords   = NULL;
-    FT_UInt     point_count, spoint_count = 0;
-    FT_UShort*  sharedpoints = NULL;
-    FT_UShort*  localpoints;
-    FT_UShort*  points;
-    FT_Short    *deltas_x, *deltas_y;
-
-
-    if ( !face->doblend || blend == NULL )
-      return TT_Err_Invalid_Argument;
-
-    /* to be freed by the caller */
-    if ( ( error = FT_NEW_ARRAY( delta_xy, n_points ) ) )
-      goto Exit;
-    *deltas = delta_xy;
-
-    if ( glyph_index >= blend->gv_glyphcnt      ||
-         blend->glyphoffsets[glyph_index] ==
-           blend->glyphoffsets[glyph_index + 1] )
-      return TT_Err_Ok;               /* no variation data for this glyph */
-
-    if ( FT_STREAM_SEEK( blend->glyphoffsets[glyph_index] )   ||
-         FT_FRAME_ENTER( blend->glyphoffsets[glyph_index + 1] -
-                           blend->glyphoffsets[glyph_index] ) )
-      goto Fail1;
-
-    glyph_start = FT_Stream_FTell( stream );
-
-    /* each set of glyph variation data is formatted similarly to `cvar' */
-    /* (except we get shared points and global tuples)                   */
-
-    if ( FT_NEW_ARRAY( tuple_coords, blend->num_axis )    ||
-         FT_NEW_ARRAY( im_start_coords, blend->num_axis ) ||
-         FT_NEW_ARRAY( im_end_coords, blend->num_axis )   )
-      goto Fail2;
-
-    tupleCount   = FT_GET_USHORT();
-    offsetToData = glyph_start + FT_GET_USHORT();
-
-    if ( tupleCount & GX_TC_TUPLES_SHARE_POINT_NUMBERS )
-    {
-      here = FT_Stream_FTell( stream );
-
-      FT_Stream_SeekSet( stream, offsetToData );
-
-      sharedpoints = ft_var_readpackedpoints( stream, &spoint_count );
-      offsetToData = FT_Stream_FTell( stream );
-
-      FT_Stream_SeekSet( stream, here );
-    }
-
-    for ( i = 0; i < ( tupleCount & GX_TC_TUPLE_COUNT_MASK ); ++i )
-    {
-      FT_UInt   tupleDataSize;
-      FT_UInt   tupleIndex;
-      FT_Fixed  apply;
-
-
-      tupleDataSize = FT_GET_USHORT();
-      tupleIndex    = FT_GET_USHORT();
-
-      if ( tupleIndex & GX_TI_EMBEDDED_TUPLE_COORD )
-      {
-        for ( j = 0; j < blend->num_axis; ++j )
-          tuple_coords[j] = FT_GET_SHORT() << 2;  /* convert from        */
-                                                  /* short frac to fixed */
-      }
-      else if ( ( tupleIndex & GX_TI_TUPLE_INDEX_MASK ) >= blend->tuplecount )
-      {
-        error = TT_Err_Invalid_Table;
-        goto Fail3;
-      }
-      else
-      {
-        FT_MEM_COPY(
-          tuple_coords,
-          &blend->tuplecoords[(tupleIndex & 0xFFF) * blend->num_axis],
-          blend->num_axis * sizeof ( FT_Fixed ) );
-      }
-
-      if ( tupleIndex & GX_TI_INTERMEDIATE_TUPLE )
-      {
-        for ( j = 0; j < blend->num_axis; ++j )
-          im_start_coords[j] = FT_GET_SHORT() << 2;
-        for ( j = 0; j < blend->num_axis; ++j )
-          im_end_coords[j] = FT_GET_SHORT() << 2;
-      }
-
-      apply = ft_var_apply_tuple( blend,
-                                  tupleIndex,
-                                  tuple_coords,
-                                  im_start_coords,
-                                  im_end_coords );
-
-      if ( apply == 0 )              /* tuple isn't active for our blend */
-      {
-        offsetToData += tupleDataSize;
-        continue;
-      }
-
-      here = FT_Stream_FTell( stream );
-
-      if ( tupleIndex & GX_TI_PRIVATE_POINT_NUMBERS )
-      {
-        FT_Stream_SeekSet( stream, offsetToData );
-
-        localpoints = ft_var_readpackedpoints( stream, &point_count );
-        points      = localpoints;
-      }
-      else
-      {
-        points      = sharedpoints;
-        point_count = spoint_count;
-      }
-
-      deltas_x = ft_var_readpackeddeltas( stream,
-                                          point_count == 0 ? n_points
-                                                           : point_count );
-      deltas_y = ft_var_readpackeddeltas( stream,
-                                          point_count == 0 ? n_points
-                                                           : point_count );
-
-      if ( points == NULL || deltas_y == NULL || deltas_x == NULL )
-        ; /* failure, ignore it */
-
-      else if ( points == ALL_POINTS )
-      {
-        /* this means that there are deltas for every point in the glyph */
-        for ( j = 0; j < n_points; ++j )
-        {
-          delta_xy[j].x += FT_MulFix( deltas_x[j], apply );
-          delta_xy[j].y += FT_MulFix( deltas_y[j], apply );
-        }
-      }
-
-      else
-      {
-        for ( j = 0; j < point_count; ++j )
-        {
-          delta_xy[localpoints[j]].x += FT_MulFix( deltas_x[j], apply );
-          delta_xy[localpoints[j]].y += FT_MulFix( deltas_y[j], apply );
-        }
-      }
-
-      if ( localpoints != ALL_POINTS )
-        FT_FREE( localpoints );
-      FT_FREE( deltas_x );
-      FT_FREE( deltas_y );
-
-      offsetToData += tupleDataSize;
-
-      FT_Stream_SeekSet( stream, here );
-    }
-
-  Fail3:
-    FT_FREE( tuple_coords );
-    FT_FREE( im_start_coords );
-    FT_FREE( im_end_coords );
-
-  Fail2:
-    FT_FRAME_EXIT();
-
-  Fail1:
-    if ( error )
-    {
-      FT_FREE( delta_xy );
-      *deltas = NULL;
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_done_blend                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Frees the blend internal data structure.                           */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_done_blend( FT_Memory  memory,
-                 GX_Blend   blend )
-  {
-    if ( blend != NULL )
-    {
-      FT_UInt  i;
-
-
-      FT_FREE( blend->normalizedcoords );
-      FT_FREE( blend->mmvar );
-
-      if ( blend->avar_segment != NULL )
-      {
-        for ( i = 0; i < blend->num_axis; ++i )
-          FT_FREE( blend->avar_segment[i].correspondence );
-        FT_FREE( blend->avar_segment );
-      }
-
-      FT_FREE( blend->tuplecoords );
-      FT_FREE( blend->glyphoffsets );
-      FT_FREE( blend );
-    }
-  }
-
-#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttgxvar.h b/nx-X11/extras/freetype2/src/truetype/ttgxvar.h
deleted file mode 100644
index e86c7eecc..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttgxvar.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttgxvar.h                                                              */
-/*                                                                         */
-/*    TrueType GX Font Variation loader (specification)                    */
-/*                                                                         */
-/*  Copyright 2004 by                                                      */
-/*  David Turner, Robert Wilhelm, Werner Lemberg and George Williams.      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTGXVAR_H__
-#define __TTGXVAR_H__
-
-
-#include <ft2build.h>
-#include "ttobjs.h"
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    GX_AVarCorrespondenceRec                                           */
-  /*                                                                       */
-  /* <Description>                                                         */  
-  /*    A data structure representing `shortFracCorrespondence' in `avar'  */
-  /*    table according to the specifications from Apple.                  */
-  /*                                                                       */
-  typedef struct  GX_AVarCorrespondenceRec_
-  {
-    FT_Fixed  fromCoord;
-    FT_Fixed  toCoord;
-
-  } GX_AVarCorrespondenceRec_, *GX_AVarCorrespondence;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    GX_AVarRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Data from the segment field of `avar' table.                       */
-  /*    There is one of these for each axis.                               */
-  /*                                                                       */
-  typedef struct  GX_AVarSegmentRec_
-  {
-    FT_UShort              pairCount;
-    GX_AVarCorrespondence  correspondence; /* array with pairCount entries */
-
-  } GX_AVarSegmentRec, *GX_AVarSegment;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    GX_BlendRec                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Data for interpolating a font from a distortable font specified    */
-  /*    by the GX *var tables ([fgca]var).                                 */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    num_axis         :: The number of axes along which interpolation   */
-  /*                         may happen                                    */
-  /*                                                                       */
-  /*    normalizedcoords :: A normalized value (between [-1,1]) indicating */
-  /*                        the contribution along each axis to the final  */
-  /*                        interpolated font.                             */
-  /*                                                                       */
-  typedef struct  GX_BlendRec_
-  {
-    FT_UInt         num_axis;
-    FT_Fixed*       normalizedcoords;
-
-    FT_MM_Var*      mmvar;
-    FT_Int          mmvar_len;
-
-    FT_Bool         avar_checked;
-    GX_AVarSegment  avar_segment;
-
-    FT_UInt         tuplecount;      /* shared tuples in `gvar'           */
-    FT_Fixed*       tuplecoords;     /* tuplecoords[tuplecount][num_axis] */
-
-    FT_UInt         gv_glyphcnt;
-    FT_ULong*       glyphoffsets;
-    
-  } GX_BlendRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <enum>                                                                */
-  /*    GX_TupleCountFlags                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Flags used within the `TupleCount' field of the `gvar' table.      */
-  /*                                                                       */
-  typedef enum  GX_TupleCountFlags_
-  {
-    GX_TC_TUPLES_SHARE_POINT_NUMBERS = 0x8000,
-    GX_TC_RESERVED_TUPLE_FLAGS       = 0x7000,
-    GX_TC_TUPLE_COUNT_MASK           = 0x0FFF
-
-  } GX_TupleCountFlags;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <enum>                                                                */
-  /*    GX_TupleIndexFlags                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Flags used within the `TupleIndex' field of the `gvar' and `cvar'  */
-  /*    tables.                                                            */
-  /*                                                                       */
-  typedef enum  GX_TupleIndexFlags_
-  {
-    GX_TI_EMBEDDED_TUPLE_COORD  = 0x8000,
-    GX_TI_INTERMEDIATE_TUPLE    = 0x4000,
-    GX_TI_PRIVATE_POINT_NUMBERS = 0x2000,
-    GX_TI_RESERVED_TUPLE_FLAG   = 0x1000,
-    GX_TI_TUPLE_INDEX_MASK      = 0x0FFF
-
-  } GX_TupleIndexFlags;
-
-
-#define TTAG_wght  FT_MAKE_TAG( 'w', 'g', 'h', 't' )
-#define TTAG_wdth  FT_MAKE_TAG( 'w', 'd', 't', 'h' )
-#define TTAG_opsz  FT_MAKE_TAG( 'o', 'p', 's', 'z' )
-#define TTAG_slnt  FT_MAKE_TAG( 's', 'l', 'n', 't' )
-
-
-  FT_LOCAL( FT_Error )
-  TT_Set_MM_Blend( TT_Face    face,
-                   FT_UInt    num_coords,
-                   FT_Fixed*  coords );
-
-  FT_LOCAL( FT_Error )
-  TT_Set_Var_Design( TT_Face    face,
-                     FT_UInt    num_coords,
-                     FT_Fixed*  coords );
-
-  FT_LOCAL( FT_Error )
-  TT_Get_MM_Var( TT_Face      face,
-                 FT_MM_Var*  *master );
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_vary_cvt( TT_Face    face,
-                    FT_Stream  stream );
-
-
-  FT_LOCAL( FT_Error )
-  TT_Vary_Get_Glyph_Deltas( TT_Face      face,
-                            FT_UInt      glyph_index,
-                            FT_Vector*  *deltas,
-                            FT_UInt      n_points );
-
-
-  FT_LOCAL( void )
-  tt_done_blend( FT_Memory  memory,
-                 GX_Blend   blend );
-
-
-FT_END_HEADER
-
-
-#endif /* __TTGXVAR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttinterp.c b/nx-X11/extras/freetype2/src/truetype/ttinterp.c
deleted file mode 100644
index 889ebbf4f..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttinterp.c
+++ /dev/null
@@ -1,7742 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttinterp.c                                                             */
-/*                                                                         */
-/*    TrueType bytecode interpreter (body).                                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_TRIGONOMETRY_H
-#include FT_SYSTEM_H
-
-#include "ttinterp.h"
-
-#include "tterrors.h"
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-
-#define TT_MULFIX           FT_MulFix
-#define TT_MULDIV           FT_MulDiv
-#define TT_MULDIV_NO_ROUND  FT_MulDiv_No_Round
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttinterp
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* In order to detect infinite loops in the code, we set up a counter    */
-  /* within the run loop.  A single stroke of interpretation is now        */
-  /* limitet to a maximal number of opcodes defined below.                 */
-  /*                                                                       */
-#define MAX_RUNNABLE_OPCODES  1000000L
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* There are two kinds of implementations:                               */
-  /*                                                                       */
-  /* a. static implementation                                              */
-  /*                                                                       */
-  /*    The current execution context is a static variable, which fields   */
-  /*    are accessed directly by the interpreter during execution.  The    */
-  /*    context is named `cur'.                                            */
-  /*                                                                       */
-  /*    This version is non-reentrant, of course.                          */
-  /*                                                                       */
-  /* b. indirect implementation                                            */
-  /*                                                                       */
-  /*    The current execution context is passed to _each_ function as its  */
-  /*    first argument, and each field is thus accessed indirectly.        */
-  /*                                                                       */
-  /*    This version is fully re-entrant.                                  */
-  /*                                                                       */
-  /* The idea is that an indirect implementation may be slower to execute  */
-  /* on low-end processors that are used in some systems (like 386s or     */
-  /* even 486s).                                                           */
-  /*                                                                       */
-  /* As a consequence, the indirect implementation is now the default, as  */
-  /* its performance costs can be considered negligible in our context.    */
-  /* Note, however, that we kept the same source with macros because:      */
-  /*                                                                       */
-  /* - The code is kept very close in design to the Pascal code used for   */
-  /*   development.                                                        */
-  /*                                                                       */
-  /* - It's much more readable that way!                                   */
-  /*                                                                       */
-  /* - It's still open to experimentation and tuning.                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER     /* indirect implementation */
-
-#define CUR  (*exc)                             /* see ttobjs.h */
-
-#else                                           /* static implementation */
-
-#define CUR  cur
-
-  static
-  TT_ExecContextRec  cur;   /* static exec. context variable */
-
-  /* apparently, we have a _lot_ of direct indexing when accessing  */
-  /* the static `cur', which makes the code bigger (due to all the  */
-  /* four bytes addresses).                                         */
-
-#endif /* TT_CONFIG_OPTION_STATIC_INTERPRETER */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The instruction argument stack.                                       */
-  /*                                                                       */
-#define INS_ARG  EXEC_OP_ FT_Long*  args    /* see ttobjs.h for EXEC_OP_ */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This macro is used whenever `exec' is unused in a function, to avoid  */
-  /* stupid warnings from pedantic compilers.                              */
-  /*                                                                       */
-#define FT_UNUSED_EXEC  FT_UNUSED( CUR )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This macro is used whenever `args' is unused in a function, to avoid  */
-  /* stupid warnings from pedantic compilers.                              */
-  /*                                                                       */
-#define FT_UNUSED_ARG  FT_UNUSED_EXEC; FT_UNUSED( args )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The following macros hide the use of EXEC_ARG and EXEC_ARG_ to        */
-  /* increase readabilty of the code.                                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define SKIP_Code() \
-          SkipCode( EXEC_ARG )
-
-#define GET_ShortIns() \
-          GetShortIns( EXEC_ARG )
-
-#define NORMalize( x, y, v ) \
-          Normalize( EXEC_ARG_ x, y, v )
-
-#define SET_SuperRound( scale, flags ) \
-          SetSuperRound( EXEC_ARG_ scale, flags )
-
-#define ROUND_None( d, c ) \
-          Round_None( EXEC_ARG_ d, c )
-
-#define INS_Goto_CodeRange( range, ip ) \
-          Ins_Goto_CodeRange( EXEC_ARG_ range, ip )
-
-#define CUR_Func_project( x, y ) \
-          CUR.func_project( EXEC_ARG_ x, y )
-
-#define CUR_Func_move( z, p, d ) \
-          CUR.func_move( EXEC_ARG_ z, p, d )
-
-#define CUR_Func_move_orig( z, p, d ) \
-          CUR.func_move_orig( EXEC_ARG_ z, p, d )
-
-#define CUR_Func_dualproj( x, y ) \
-          CUR.func_dualproj( EXEC_ARG_ x, y )
-
-#define CUR_Func_round( d, c ) \
-          CUR.func_round( EXEC_ARG_ d, c )
-
-#define CUR_Func_read_cvt( index ) \
-          CUR.func_read_cvt( EXEC_ARG_ index )
-
-#define CUR_Func_write_cvt( index, val ) \
-          CUR.func_write_cvt( EXEC_ARG_ index, val )
-
-#define CUR_Func_move_cvt( index, val ) \
-          CUR.func_move_cvt( EXEC_ARG_ index, val )
-
-#define CURRENT_Ratio() \
-          Current_Ratio( EXEC_ARG )
-
-#define CURRENT_Ppem() \
-          Current_Ppem( EXEC_ARG )
-
-#define CUR_Ppem() \
-          Cur_PPEM( EXEC_ARG )
-
-#define INS_SxVTL( a, b, c, d ) \
-          Ins_SxVTL( EXEC_ARG_ a, b, c, d )
-
-#define COMPUTE_Funcs() \
-          Compute_Funcs( EXEC_ARG )
-
-#define COMPUTE_Round( a ) \
-          Compute_Round( EXEC_ARG_ a )
-
-#define COMPUTE_Point_Displacement( a, b, c, d ) \
-          Compute_Point_Displacement( EXEC_ARG_ a, b, c, d )
-
-#define MOVE_Zp2_Point( a, b, c, t ) \
-          Move_Zp2_Point( EXEC_ARG_ a, b, c, t )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Instruction dispatch function, as used by the interpreter.            */
-  /*                                                                       */
-  typedef void  (*TInstruction_Function)( INS_ARG );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A simple bounds-checking macro.                                       */
-  /*                                                                       */
-#define BOUNDS( x, n )  ( (FT_UInt)(x) >= (FT_UInt)(n) )
-
-#undef  SUCCESS
-#define SUCCESS  0
-
-#undef  FAILURE
-#define FAILURE  1
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-#define GUESS_VECTOR( V )                                         \
-  if ( CUR.face->unpatented_hinting )                             \
-  {                                                               \
-    CUR.GS.V.x = (FT_F2Dot14)( CUR.GS.both_x_axis ? 0x4000 : 0 ); \
-    CUR.GS.V.y = (FT_F2Dot14)( CUR.GS.both_x_axis ? 0 : 0x4000 ); \
-  }
-#else
-#define GUESS_VECTOR( V )
-#endif
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                        CODERANGE FUNCTIONS                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Goto_CodeRange                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Switches to a new code range (updates the code related elements in */
-  /*    `exec', and `IP').                                                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    range :: The new execution code range.                             */
-  /*                                                                       */
-  /*    IP    :: The new IP in the new code range.                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    exec  :: The target execution context.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Goto_CodeRange( TT_ExecContext  exec,
-                     FT_Int          range,
-                     FT_Long         IP )
-  {
-    TT_CodeRange*  coderange;
-
-
-    FT_ASSERT( range >= 1 && range <= 3 );
-
-    coderange = &exec->codeRangeTable[range - 1];
-
-    FT_ASSERT( coderange->base != NULL );
-
-    /* NOTE: Because the last instruction of a program may be a CALL */
-    /*       which will return to the first byte *after* the code    */
-    /*       range, we test for IP <= Size instead of IP < Size.     */
-    /*                                                               */
-    FT_ASSERT( (FT_ULong)IP <= coderange->size );
-
-    exec->code     = coderange->base;
-    exec->codeSize = coderange->size;
-    exec->IP       = IP;
-    exec->curRange = range;
-
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Set_CodeRange                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets a code range.                                                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    range  :: The code range index.                                    */
-  /*                                                                       */
-  /*    base   :: The new code base.                                       */
-  /*                                                                       */
-  /*    length :: The range size in bytes.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    exec   :: The target execution context.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Set_CodeRange( TT_ExecContext  exec,
-                    FT_Int          range,
-                    void*           base,
-                    FT_Long         length )
-  {
-    FT_ASSERT( range >= 1 && range <= 3 );
-
-    exec->codeRangeTable[range - 1].base = (FT_Byte*)base;
-    exec->codeRangeTable[range - 1].size = length;
-
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Clear_CodeRange                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Clears a code range.                                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    range :: The code range index.                                     */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    exec  :: The target execution context.                             */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Does not set the Error variable.                                   */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Clear_CodeRange( TT_ExecContext  exec,
-                      FT_Int          range )
-  {
-    FT_ASSERT( range >= 1 && range <= 3 );
-
-    exec->codeRangeTable[range - 1].base = NULL;
-    exec->codeRangeTable[range - 1].size = 0;
-
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                   EXECUTION CONTEXT ROUTINES                          */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Destroy_Context                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Destroys a given context.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    exec   :: A handle to the target execution context.                */
-  /*                                                                       */
-  /*    memory :: A handle to the parent memory object.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the glyph loader and debugger should call this function.      */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Destroy_Context( TT_ExecContext  exec,
-                      FT_Memory       memory )
-  {
-    /* free composite load stack */
-    FT_FREE( exec->loadStack );
-    exec->loadSize = 0;
-
-    /* points zone */
-    exec->maxPoints   = 0;
-    exec->maxContours = 0;
-
-    /* free stack */
-    FT_FREE( exec->stack );
-    exec->stackSize = 0;
-
-    /* free call stack */
-    FT_FREE( exec->callStack );
-    exec->callSize = 0;
-    exec->callTop  = 0;
-
-    /* free glyph code range */
-    FT_FREE( exec->glyphIns );
-    exec->glyphSize = 0;
-
-    exec->size = NULL;
-    exec->face = NULL;
-
-    FT_FREE( exec );
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Init_Context                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a context object.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory :: A handle to the parent memory object.                    */
-  /*                                                                       */
-  /*    face   :: A handle to the source TrueType face object.             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    exec   :: A handle to the target execution context.                */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Init_Context( TT_ExecContext  exec,
-                TT_Face         face,
-                FT_Memory       memory )
-  {
-    FT_Error  error;
-
-
-    FT_TRACE1(( "Init_Context: new object at 0x%08p, parent = 0x%08p\n",
-                exec, face ));
-
-    exec->memory   = memory;
-    exec->callSize = 32;
-
-    if ( FT_NEW_ARRAY( exec->callStack, exec->callSize ) )
-      goto Fail_Memory;
-
-    /* all values in the context are set to 0 already, but this is */
-    /* here as a remainder                                         */
-    exec->maxPoints   = 0;
-    exec->maxContours = 0;
-
-    exec->stackSize = 0;
-    exec->loadSize  = 0;
-    exec->glyphSize = 0;
-
-    exec->stack     = NULL;
-    exec->loadStack = NULL;
-    exec->glyphIns  = NULL;
-
-    exec->face = face;
-    exec->size = NULL;
-
-    return TT_Err_Ok;
-
-  Fail_Memory:
-    FT_ERROR(( "Init_Context: not enough memory for 0x%08lx\n",
-               (FT_Long)exec ));
-    TT_Destroy_Context( exec, memory );
-
-    return error;
- }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Update_Max                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Checks the size of a buffer and reallocates it if necessary.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory     :: A handle to the parent memory object.                */
-  /*                                                                       */
-  /*    multiplier :: The size in bytes of each element in the buffer.     */
-  /*                                                                       */
-  /*    new_max    :: The new capacity (size) of the buffer.               */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    size       :: The address of the buffer's current size expressed   */
-  /*                  in elements.                                         */
-  /*                                                                       */
-  /*    buff       :: The address of the buffer base pointer.              */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  static FT_Error
-  Update_Max( FT_Memory  memory,
-              FT_ULong*  size,
-              FT_Long    multiplier,
-              void**     buff,
-              FT_ULong   new_max )
-  {
-    FT_Error  error;
-
-
-    if ( *size < new_max )
-    {
-      if ( FT_REALLOC( *buff, *size, new_max * multiplier ) )
-        return error;
-      *size = new_max;
-    }
-
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Load_Context                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Prepare an execution context for glyph hinting.                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the source face object.                        */
-  /*                                                                       */
-  /*    size :: A handle to the source size object.                        */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    exec :: A handle to the target execution context.                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the glyph loader and debugger should call this function.      */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Load_Context( TT_ExecContext  exec,
-                   TT_Face         face,
-                   TT_Size         size )
-  {
-    FT_Int          i;
-    FT_ULong        tmp;
-    TT_MaxProfile*  maxp;
-    FT_Error        error;
-
-
-    exec->face = face;
-    maxp       = &face->max_profile;
-    exec->size = size;
-
-    if ( size )
-    {
-      exec->numFDefs   = size->num_function_defs;
-      exec->maxFDefs   = size->max_function_defs;
-      exec->numIDefs   = size->num_instruction_defs;
-      exec->maxIDefs   = size->max_instruction_defs;
-      exec->FDefs      = size->function_defs;
-      exec->IDefs      = size->instruction_defs;
-      exec->tt_metrics = size->ttmetrics;
-      exec->metrics    = size->metrics;
-
-      exec->maxFunc    = size->max_func;
-      exec->maxIns     = size->max_ins;
-
-      for ( i = 0; i < TT_MAX_CODE_RANGES; i++ )
-        exec->codeRangeTable[i] = size->codeRangeTable[i];
-
-      /* set graphics state */
-      exec->GS = size->GS;
-
-      exec->cvtSize = size->cvt_size;
-      exec->cvt     = size->cvt;
-
-      exec->storeSize = size->storage_size;
-      exec->storage   = size->storage;
-
-      exec->twilight  = size->twilight;
-    }
-
-    error = Update_Max( exec->memory,
-                        &exec->loadSize,
-                        sizeof ( TT_SubGlyphRec ),
-                        (void**)&exec->loadStack,
-                        exec->face->max_components + 1 );
-    if ( error )
-      return error;
-
-    /* XXX: We reserve a little more elements on the stack to deal safely */
-    /*      with broken fonts like arialbs, courbs, timesbs, etc.         */
-    tmp = exec->stackSize;
-    error = Update_Max( exec->memory,
-                        &tmp,
-                        sizeof ( FT_F26Dot6 ),
-                        (void**)&exec->stack,
-                        maxp->maxStackElements + 32 );
-    exec->stackSize = (FT_UInt)tmp;
-    if ( error )
-      return error;
-
-    tmp = exec->glyphSize;
-    error = Update_Max( exec->memory,
-                        &tmp,
-                        sizeof ( FT_Byte ),
-                        (void**)&exec->glyphIns,
-                        maxp->maxSizeOfInstructions );
-    exec->glyphSize = (FT_UShort)tmp;
-    if ( error )
-      return error;
-
-    exec->pts.n_points   = 0;
-    exec->pts.n_contours = 0;
-
-    exec->instruction_trap = FALSE;
-
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Save_Context                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Saves the code ranges in a `size' object.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    exec :: A handle to the source execution context.                  */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    size :: A handle to the target size object.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the glyph loader and debugger should call this function.      */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Save_Context( TT_ExecContext  exec,
-                   TT_Size         size )
-  {
-    FT_Int  i;
-
-
-    /* XXXX: Will probably disappear soon with all the code range */
-    /*       management, which is now rather obsolete.            */
-    /*                                                            */
-    size->num_function_defs    = exec->numFDefs;
-    size->num_instruction_defs = exec->numIDefs;
-
-    size->max_func = exec->maxFunc;
-    size->max_ins  = exec->maxIns;
-
-    for ( i = 0; i < TT_MAX_CODE_RANGES; i++ )
-      size->codeRangeTable[i] = exec->codeRangeTable[i];
-
-    return TT_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Run_Context                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Executes one or more instructions in the execution context.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    debug :: A Boolean flag.  If set, the function sets some internal  */
-  /*             variables and returns immediately, otherwise TT_RunIns()  */
-  /*             is called.                                                */
-  /*                                                                       */
-  /*             This is commented out currently.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    exec  :: A handle to the target execution context.                 */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    TrueTyoe error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the glyph loader and debugger should call this function.      */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Run_Context( TT_ExecContext  exec,
-                  FT_Bool         debug )
-  {
-    FT_Error  error;
-
-
-    if ( ( error = TT_Goto_CodeRange( exec, tt_coderange_glyph, 0  ) )
-           != TT_Err_Ok )
-      return error;
-
-    exec->zp0 = exec->pts;
-    exec->zp1 = exec->pts;
-    exec->zp2 = exec->pts;
-
-    exec->GS.gep0 = 1;
-    exec->GS.gep1 = 1;
-    exec->GS.gep2 = 1;
-
-    exec->GS.projVector.x = 0x4000;
-    exec->GS.projVector.y = 0x0000;
-
-    exec->GS.freeVector = exec->GS.projVector;
-    exec->GS.dualVector = exec->GS.projVector;
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    exec->GS.both_x_axis = TRUE;
-#endif
-
-    exec->GS.round_state = 1;
-    exec->GS.loop        = 1;
-
-    /* some glyphs leave something on the stack. so we clean it */
-    /* before a new execution.                                  */
-    exec->top     = 0;
-    exec->callTop = 0;
-
-#if 1
-    FT_UNUSED( debug );
-
-    return exec->face->interpreter( exec );
-#else
-    if ( !debug )
-      return TT_RunIns( exec );
-    else
-      return TT_Err_Ok;
-#endif
-  }
-
-
-  const TT_GraphicsState  tt_default_graphics_state =
-  {
-    0, 0, 0,
-    { 0x4000, 0 },
-    { 0x4000, 0 },
-    { 0x4000, 0 },
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    TRUE,
-#endif
-
-    1, 64, 1,
-    TRUE, 68, 0, 0, 9, 3,
-    0, FALSE, 2, 1, 1, 1
-  };
-
-
-  /* documentation is in ttinterp.h */
-
-  FT_EXPORT_DEF( TT_ExecContext )
-  TT_New_Context( TT_Face  face )
-  {
-    TT_Driver       driver;
-    TT_ExecContext  exec;
-    FT_Memory       memory;
-
-
-    if ( !face )
-      return 0;
-
-    driver = (TT_Driver)face->root.driver;
-
-    memory = driver->root.root.memory;
-    exec   = driver->context;
-
-    if ( !driver->context )
-    {
-      FT_Error  error;
-
-
-      /* allocate object */
-      if ( FT_NEW( exec ) )
-        goto Exit;
-
-      /* initialize it */
-      error = Init_Context( exec, face, memory );
-      if ( error )
-        goto Fail;
-
-      /* store it into the driver */
-      driver->context = exec;
-    }
-
-  Exit:
-    return driver->context;
-
-  Fail:
-    FT_FREE( exec );
-
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_Done_Context                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Discards an execution context.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    exec :: A handle to the target execution context.                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the glyph loader and debugger should call this function.      */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  TT_Done_Context( TT_ExecContext  exec )
-  {
-    /* Nothing at all for now */
-    FT_UNUSED( exec );
-
-    return TT_Err_Ok;
-  }
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Before an opcode is executed, the interpreter verifies that there are */
-  /* enough arguments on the stack, with the help of the Pop_Push_Count    */
-  /* table.                                                                */
-  /*                                                                       */
-  /* For each opcode, the first column gives the number of arguments that  */
-  /* are popped from the stack; the second one gives the number of those   */
-  /* that are pushed in result.                                            */
-  /*                                                                       */
-  /* Note that for opcodes with a varying number of parameters, either 0   */
-  /* or 1 arg is verified before execution, depending on the nature of the */
-  /* instruction:                                                          */
-  /*                                                                       */
-  /* - if the number of arguments is given by the bytecode stream or the   */
-  /*   loop variable, 0 is chosen.                                         */
-  /*                                                                       */
-  /* - if the first argument is a count n that is followed by arguments    */
-  /*   a1 .. an, then 1 is chosen.                                         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#undef  PACK
-#define PACK( x, y )  ( ( x << 4 ) | y )
-
-
-  static
-  const FT_Byte  Pop_Push_Count[256] =
-  {
-    /* opcodes are gathered in groups of 16 */
-    /* please keep the spaces as they are   */
-
-    /*  SVTCA  y  */  PACK( 0, 0 ),
-    /*  SVTCA  x  */  PACK( 0, 0 ),
-    /*  SPvTCA y  */  PACK( 0, 0 ),
-    /*  SPvTCA x  */  PACK( 0, 0 ),
-    /*  SFvTCA y  */  PACK( 0, 0 ),
-    /*  SFvTCA x  */  PACK( 0, 0 ),
-    /*  SPvTL //  */  PACK( 2, 0 ),
-    /*  SPvTL +   */  PACK( 2, 0 ),
-    /*  SFvTL //  */  PACK( 2, 0 ),
-    /*  SFvTL +   */  PACK( 2, 0 ),
-    /*  SPvFS     */  PACK( 2, 0 ),
-    /*  SFvFS     */  PACK( 2, 0 ),
-    /*  GPV       */  PACK( 0, 2 ),
-    /*  GFV       */  PACK( 0, 2 ),
-    /*  SFvTPv    */  PACK( 0, 0 ),
-    /*  ISECT     */  PACK( 5, 0 ),
-
-    /*  SRP0      */  PACK( 1, 0 ),
-    /*  SRP1      */  PACK( 1, 0 ),
-    /*  SRP2      */  PACK( 1, 0 ),
-    /*  SZP0      */  PACK( 1, 0 ),
-    /*  SZP1      */  PACK( 1, 0 ),
-    /*  SZP2      */  PACK( 1, 0 ),
-    /*  SZPS      */  PACK( 1, 0 ),
-    /*  SLOOP     */  PACK( 1, 0 ),
-    /*  RTG       */  PACK( 0, 0 ),
-    /*  RTHG      */  PACK( 0, 0 ),
-    /*  SMD       */  PACK( 1, 0 ),
-    /*  ELSE      */  PACK( 0, 0 ),
-    /*  JMPR      */  PACK( 1, 0 ),
-    /*  SCvTCi    */  PACK( 1, 0 ),
-    /*  SSwCi     */  PACK( 1, 0 ),
-    /*  SSW       */  PACK( 1, 0 ),
-
-    /*  DUP       */  PACK( 1, 2 ),
-    /*  POP       */  PACK( 1, 0 ),
-    /*  CLEAR     */  PACK( 0, 0 ),
-    /*  SWAP      */  PACK( 2, 2 ),
-    /*  DEPTH     */  PACK( 0, 1 ),
-    /*  CINDEX    */  PACK( 1, 1 ),
-    /*  MINDEX    */  PACK( 1, 0 ),
-    /*  AlignPTS  */  PACK( 2, 0 ),
-    /*  INS_$28   */  PACK( 0, 0 ),
-    /*  UTP       */  PACK( 1, 0 ),
-    /*  LOOPCALL  */  PACK( 2, 0 ),
-    /*  CALL      */  PACK( 1, 0 ),
-    /*  FDEF      */  PACK( 1, 0 ),
-    /*  ENDF      */  PACK( 0, 0 ),
-    /*  MDAP[0]   */  PACK( 1, 0 ),
-    /*  MDAP[1]   */  PACK( 1, 0 ),
-
-    /*  IUP[0]    */  PACK( 0, 0 ),
-    /*  IUP[1]    */  PACK( 0, 0 ),
-    /*  SHP[0]    */  PACK( 0, 0 ),
-    /*  SHP[1]    */  PACK( 0, 0 ),
-    /*  SHC[0]    */  PACK( 1, 0 ),
-    /*  SHC[1]    */  PACK( 1, 0 ),
-    /*  SHZ[0]    */  PACK( 1, 0 ),
-    /*  SHZ[1]    */  PACK( 1, 0 ),
-    /*  SHPIX     */  PACK( 1, 0 ),
-    /*  IP        */  PACK( 0, 0 ),
-    /*  MSIRP[0]  */  PACK( 2, 0 ),
-    /*  MSIRP[1]  */  PACK( 2, 0 ),
-    /*  AlignRP   */  PACK( 0, 0 ),
-    /*  RTDG      */  PACK( 0, 0 ),
-    /*  MIAP[0]   */  PACK( 2, 0 ),
-    /*  MIAP[1]   */  PACK( 2, 0 ),
-
-    /*  NPushB    */  PACK( 0, 0 ),
-    /*  NPushW    */  PACK( 0, 0 ),
-    /*  WS        */  PACK( 2, 0 ),
-    /*  RS        */  PACK( 1, 1 ),
-    /*  WCvtP     */  PACK( 2, 0 ),
-    /*  RCvt      */  PACK( 1, 1 ),
-    /*  GC[0]     */  PACK( 1, 1 ),
-    /*  GC[1]     */  PACK( 1, 1 ),
-    /*  SCFS      */  PACK( 2, 0 ),
-    /*  MD[0]     */  PACK( 2, 1 ),
-    /*  MD[1]     */  PACK( 2, 1 ),
-    /*  MPPEM     */  PACK( 0, 1 ),
-    /*  MPS       */  PACK( 0, 1 ),
-    /*  FlipON    */  PACK( 0, 0 ),
-    /*  FlipOFF   */  PACK( 0, 0 ),
-    /*  DEBUG     */  PACK( 1, 0 ),
-
-    /*  LT        */  PACK( 2, 1 ),
-    /*  LTEQ      */  PACK( 2, 1 ),
-    /*  GT        */  PACK( 2, 1 ),
-    /*  GTEQ      */  PACK( 2, 1 ),
-    /*  EQ        */  PACK( 2, 1 ),
-    /*  NEQ       */  PACK( 2, 1 ),
-    /*  ODD       */  PACK( 1, 1 ),
-    /*  EVEN      */  PACK( 1, 1 ),
-    /*  IF        */  PACK( 1, 0 ),
-    /*  EIF       */  PACK( 0, 0 ),
-    /*  AND       */  PACK( 2, 1 ),
-    /*  OR        */  PACK( 2, 1 ),
-    /*  NOT       */  PACK( 1, 1 ),
-    /*  DeltaP1   */  PACK( 1, 0 ),
-    /*  SDB       */  PACK( 1, 0 ),
-    /*  SDS       */  PACK( 1, 0 ),
-
-    /*  ADD       */  PACK( 2, 1 ),
-    /*  SUB       */  PACK( 2, 1 ),
-    /*  DIV       */  PACK( 2, 1 ),
-    /*  MUL       */  PACK( 2, 1 ),
-    /*  ABS       */  PACK( 1, 1 ),
-    /*  NEG       */  PACK( 1, 1 ),
-    /*  FLOOR     */  PACK( 1, 1 ),
-    /*  CEILING   */  PACK( 1, 1 ),
-    /*  ROUND[0]  */  PACK( 1, 1 ),
-    /*  ROUND[1]  */  PACK( 1, 1 ),
-    /*  ROUND[2]  */  PACK( 1, 1 ),
-    /*  ROUND[3]  */  PACK( 1, 1 ),
-    /*  NROUND[0] */  PACK( 1, 1 ),
-    /*  NROUND[1] */  PACK( 1, 1 ),
-    /*  NROUND[2] */  PACK( 1, 1 ),
-    /*  NROUND[3] */  PACK( 1, 1 ),
-
-    /*  WCvtF     */  PACK( 2, 0 ),
-    /*  DeltaP2   */  PACK( 1, 0 ),
-    /*  DeltaP3   */  PACK( 1, 0 ),
-    /*  DeltaCn[0] */ PACK( 1, 0 ),
-    /*  DeltaCn[1] */ PACK( 1, 0 ),
-    /*  DeltaCn[2] */ PACK( 1, 0 ),
-    /*  SROUND    */  PACK( 1, 0 ),
-    /*  S45Round  */  PACK( 1, 0 ),
-    /*  JROT      */  PACK( 2, 0 ),
-    /*  JROF      */  PACK( 2, 0 ),
-    /*  ROFF      */  PACK( 0, 0 ),
-    /*  INS_$7B   */  PACK( 0, 0 ),
-    /*  RUTG      */  PACK( 0, 0 ),
-    /*  RDTG      */  PACK( 0, 0 ),
-    /*  SANGW     */  PACK( 1, 0 ),
-    /*  AA        */  PACK( 1, 0 ),
-
-    /*  FlipPT    */  PACK( 0, 0 ),
-    /*  FlipRgON  */  PACK( 2, 0 ),
-    /*  FlipRgOFF */  PACK( 2, 0 ),
-    /*  INS_$83   */  PACK( 0, 0 ),
-    /*  INS_$84   */  PACK( 0, 0 ),
-    /*  ScanCTRL  */  PACK( 1, 0 ),
-    /*  SDVPTL[0] */  PACK( 2, 0 ),
-    /*  SDVPTL[1] */  PACK( 2, 0 ),
-    /*  GetINFO   */  PACK( 1, 1 ),
-    /*  IDEF      */  PACK( 1, 0 ),
-    /*  ROLL      */  PACK( 3, 3 ),
-    /*  MAX       */  PACK( 2, 1 ),
-    /*  MIN       */  PACK( 2, 1 ),
-    /*  ScanTYPE  */  PACK( 1, 0 ),
-    /*  InstCTRL  */  PACK( 2, 0 ),
-    /*  INS_$8F   */  PACK( 0, 0 ),
-
-    /*  INS_$90  */   PACK( 0, 0 ),
-    /*  INS_$91  */   PACK( 0, 0 ),
-    /*  INS_$92  */   PACK( 0, 0 ),
-    /*  INS_$93  */   PACK( 0, 0 ),
-    /*  INS_$94  */   PACK( 0, 0 ),
-    /*  INS_$95  */   PACK( 0, 0 ),
-    /*  INS_$96  */   PACK( 0, 0 ),
-    /*  INS_$97  */   PACK( 0, 0 ),
-    /*  INS_$98  */   PACK( 0, 0 ),
-    /*  INS_$99  */   PACK( 0, 0 ),
-    /*  INS_$9A  */   PACK( 0, 0 ),
-    /*  INS_$9B  */   PACK( 0, 0 ),
-    /*  INS_$9C  */   PACK( 0, 0 ),
-    /*  INS_$9D  */   PACK( 0, 0 ),
-    /*  INS_$9E  */   PACK( 0, 0 ),
-    /*  INS_$9F  */   PACK( 0, 0 ),
-
-    /*  INS_$A0  */   PACK( 0, 0 ),
-    /*  INS_$A1  */   PACK( 0, 0 ),
-    /*  INS_$A2  */   PACK( 0, 0 ),
-    /*  INS_$A3  */   PACK( 0, 0 ),
-    /*  INS_$A4  */   PACK( 0, 0 ),
-    /*  INS_$A5  */   PACK( 0, 0 ),
-    /*  INS_$A6  */   PACK( 0, 0 ),
-    /*  INS_$A7  */   PACK( 0, 0 ),
-    /*  INS_$A8  */   PACK( 0, 0 ),
-    /*  INS_$A9  */   PACK( 0, 0 ),
-    /*  INS_$AA  */   PACK( 0, 0 ),
-    /*  INS_$AB  */   PACK( 0, 0 ),
-    /*  INS_$AC  */   PACK( 0, 0 ),
-    /*  INS_$AD  */   PACK( 0, 0 ),
-    /*  INS_$AE  */   PACK( 0, 0 ),
-    /*  INS_$AF  */   PACK( 0, 0 ),
-
-    /*  PushB[0]  */  PACK( 0, 1 ),
-    /*  PushB[1]  */  PACK( 0, 2 ),
-    /*  PushB[2]  */  PACK( 0, 3 ),
-    /*  PushB[3]  */  PACK( 0, 4 ),
-    /*  PushB[4]  */  PACK( 0, 5 ),
-    /*  PushB[5]  */  PACK( 0, 6 ),
-    /*  PushB[6]  */  PACK( 0, 7 ),
-    /*  PushB[7]  */  PACK( 0, 8 ),
-    /*  PushW[0]  */  PACK( 0, 1 ),
-    /*  PushW[1]  */  PACK( 0, 2 ),
-    /*  PushW[2]  */  PACK( 0, 3 ),
-    /*  PushW[3]  */  PACK( 0, 4 ),
-    /*  PushW[4]  */  PACK( 0, 5 ),
-    /*  PushW[5]  */  PACK( 0, 6 ),
-    /*  PushW[6]  */  PACK( 0, 7 ),
-    /*  PushW[7]  */  PACK( 0, 8 ),
-
-    /*  MDRP[00]  */  PACK( 1, 0 ),
-    /*  MDRP[01]  */  PACK( 1, 0 ),
-    /*  MDRP[02]  */  PACK( 1, 0 ),
-    /*  MDRP[03]  */  PACK( 1, 0 ),
-    /*  MDRP[04]  */  PACK( 1, 0 ),
-    /*  MDRP[05]  */  PACK( 1, 0 ),
-    /*  MDRP[06]  */  PACK( 1, 0 ),
-    /*  MDRP[07]  */  PACK( 1, 0 ),
-    /*  MDRP[08]  */  PACK( 1, 0 ),
-    /*  MDRP[09]  */  PACK( 1, 0 ),
-    /*  MDRP[10]  */  PACK( 1, 0 ),
-    /*  MDRP[11]  */  PACK( 1, 0 ),
-    /*  MDRP[12]  */  PACK( 1, 0 ),
-    /*  MDRP[13]  */  PACK( 1, 0 ),
-    /*  MDRP[14]  */  PACK( 1, 0 ),
-    /*  MDRP[15]  */  PACK( 1, 0 ),
-
-    /*  MDRP[16]  */  PACK( 1, 0 ),
-    /*  MDRP[17]  */  PACK( 1, 0 ),
-    /*  MDRP[18]  */  PACK( 1, 0 ),
-    /*  MDRP[19]  */  PACK( 1, 0 ),
-    /*  MDRP[20]  */  PACK( 1, 0 ),
-    /*  MDRP[21]  */  PACK( 1, 0 ),
-    /*  MDRP[22]  */  PACK( 1, 0 ),
-    /*  MDRP[23]  */  PACK( 1, 0 ),
-    /*  MDRP[24]  */  PACK( 1, 0 ),
-    /*  MDRP[25]  */  PACK( 1, 0 ),
-    /*  MDRP[26]  */  PACK( 1, 0 ),
-    /*  MDRP[27]  */  PACK( 1, 0 ),
-    /*  MDRP[28]  */  PACK( 1, 0 ),
-    /*  MDRP[29]  */  PACK( 1, 0 ),
-    /*  MDRP[30]  */  PACK( 1, 0 ),
-    /*  MDRP[31]  */  PACK( 1, 0 ),
-
-    /*  MIRP[00]  */  PACK( 2, 0 ),
-    /*  MIRP[01]  */  PACK( 2, 0 ),
-    /*  MIRP[02]  */  PACK( 2, 0 ),
-    /*  MIRP[03]  */  PACK( 2, 0 ),
-    /*  MIRP[04]  */  PACK( 2, 0 ),
-    /*  MIRP[05]  */  PACK( 2, 0 ),
-    /*  MIRP[06]  */  PACK( 2, 0 ),
-    /*  MIRP[07]  */  PACK( 2, 0 ),
-    /*  MIRP[08]  */  PACK( 2, 0 ),
-    /*  MIRP[09]  */  PACK( 2, 0 ),
-    /*  MIRP[10]  */  PACK( 2, 0 ),
-    /*  MIRP[11]  */  PACK( 2, 0 ),
-    /*  MIRP[12]  */  PACK( 2, 0 ),
-    /*  MIRP[13]  */  PACK( 2, 0 ),
-    /*  MIRP[14]  */  PACK( 2, 0 ),
-    /*  MIRP[15]  */  PACK( 2, 0 ),
-
-    /*  MIRP[16]  */  PACK( 2, 0 ),
-    /*  MIRP[17]  */  PACK( 2, 0 ),
-    /*  MIRP[18]  */  PACK( 2, 0 ),
-    /*  MIRP[19]  */  PACK( 2, 0 ),
-    /*  MIRP[20]  */  PACK( 2, 0 ),
-    /*  MIRP[21]  */  PACK( 2, 0 ),
-    /*  MIRP[22]  */  PACK( 2, 0 ),
-    /*  MIRP[23]  */  PACK( 2, 0 ),
-    /*  MIRP[24]  */  PACK( 2, 0 ),
-    /*  MIRP[25]  */  PACK( 2, 0 ),
-    /*  MIRP[26]  */  PACK( 2, 0 ),
-    /*  MIRP[27]  */  PACK( 2, 0 ),
-    /*  MIRP[28]  */  PACK( 2, 0 ),
-    /*  MIRP[29]  */  PACK( 2, 0 ),
-    /*  MIRP[30]  */  PACK( 2, 0 ),
-    /*  MIRP[31]  */  PACK( 2, 0 )
-  };
-
-
-  static
-  const FT_Char  opcode_length[256] =
-  {
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-
-   -1,-1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    2, 3, 4, 5,  6, 7, 8, 9,  3, 5, 7, 9, 11,13,15,17,
-
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,
-    1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1,  1, 1, 1, 1
-  };
-
-  static
-  const FT_Vector  Null_Vector = {0,0};
-
-
-#undef PACK
-
-
-#undef  NULL_Vector
-#define NULL_Vector  (FT_Vector*)&Null_Vector
-
-
-  /* compute (a*b)/2^14 with maximal accuracy and rounding */
-  static FT_Int32
-  TT_MulFix14( FT_Int32  a,
-               FT_Int    b )
-  {
-    FT_Int32   m, s, hi;
-    FT_UInt32  l, lo;
-
-
-    /* compute ax*bx as 64-bit value */
-    l  = (FT_UInt32)( ( a & 0xFFFFU ) * b );
-    m  = ( a >> 16 ) * b;
-
-    lo = l + (FT_UInt32)( m << 16 );
-    hi = ( m >> 16 ) + ( (FT_Int32)l >> 31 ) + ( lo < l );
-
-    /* divide the result by 2^14 with rounding */
-    s   = hi >> 31;
-    l   = lo + (FT_UInt32)s;
-    hi += s + ( l < lo );
-    lo  = l;
-
-    l   = lo + 0x2000U;
-    hi += (l < lo);
-
-    return ( hi << 18 ) | ( l >> 14 );
-  }
-
-
-  /* compute (ax*bx+ay*by)/2^14 with maximal accuracy and rounding */
-  static FT_Int32
-  TT_DotFix14( FT_Int32  ax,
-               FT_Int32  ay,
-               FT_Int    bx,
-               FT_Int    by )
-  {
-    FT_Int32   m, s, hi1, hi2, hi;
-    FT_UInt32  l, lo1, lo2, lo;
-
-
-    /* compute ax*bx as 64-bit value */
-    l = (FT_UInt32)( ( ax & 0xFFFFU ) * bx );
-    m = ( ax >> 16 ) * bx;
-
-    lo1 = l + (FT_UInt32)( m << 16 );
-    hi1 = ( m >> 16 ) + ( (FT_Int32)l >> 31 ) + ( lo1 < l );
-
-    /* compute ay*by as 64-bit value */
-    l = (FT_UInt32)( ( ay & 0xFFFFU ) * by );
-    m = ( ay >> 16 ) * by;
-
-    lo2 = l + (FT_UInt32)( m << 16 );
-    hi2 = ( m >> 16 ) + ( (FT_Int32)l >> 31 ) + ( lo2 < l );
-
-    /* add them */
-    lo = lo1 + lo2;
-    hi = hi1 + hi2 + ( lo < lo1 );
-
-    /* divide the result by 2^14 with rounding */
-    s   = hi >> 31;
-    l   = lo + (FT_UInt32)s;
-    hi += s + ( l < lo );
-    lo  = l;
-
-    l   = lo + 0x2000U;
-    hi += ( l < lo );
-
-    return ( hi << 18 ) | ( l >> 14 );
-  }
-
-
-  /* return length of given vector */
-
-#if 0
-
-  static FT_Int32
-  TT_VecLen( FT_Int32  x,
-             FT_Int32  y )
-  {
-    FT_Int32   m, hi1, hi2, hi;
-    FT_UInt32  l, lo1, lo2, lo;
-
-
-    /* compute x*x as 64-bit value */
-    lo = (FT_UInt32)( x & 0xFFFFU );
-    hi = x >> 16;
-
-    l  = lo * lo;
-    m  = hi * lo;
-    hi = hi * hi;
-
-    lo1 = l + (FT_UInt32)( m << 17 );
-    hi1 = hi + ( m >> 15 ) + ( lo1 < l );
-
-    /* compute y*y as 64-bit value */
-    lo = (FT_UInt32)( y & 0xFFFFU );
-    hi = y >> 16;
-
-    l  = lo * lo;
-    m  = hi * lo;
-    hi = hi * hi;
-
-    lo2 = l + (FT_UInt32)( m << 17 );
-    hi2 = hi + ( m >> 15 ) + ( lo2 < l );
-
-    /* add them to get 'x*x+y*y' as 64-bit value */
-    lo = lo1 + lo2;
-    hi = hi1 + hi2 + ( lo < lo1 );
-
-    /* compute the square root of this value */
-    {
-      FT_UInt32  root, rem, test_div;
-      FT_Int     count;
-
-
-      root = 0;
-
-      {
-        rem   = 0;
-        count = 32;
-        do
-        {
-          rem      = ( rem << 2 ) | ( (FT_UInt32)hi >> 30 );
-          hi       = (  hi << 2 ) | (            lo >> 30 );
-          lo     <<= 2;
-          root   <<= 1;
-          test_div = ( root << 1 ) + 1;
-
-          if ( rem >= test_div )
-          {
-            rem  -= test_div;
-            root += 1;
-          }
-        } while ( --count );
-      }
-
-      return (FT_Int32)root;
-    }
-  }
-
-#else
-
-  /* this version uses FT_Vector_Length which computes the same value */
-  /* much, much faster..                                              */
-  /*                                                                  */
-  static FT_F26Dot6
-  TT_VecLen( FT_F26Dot6  X,
-             FT_F26Dot6  Y )
-  {
-    FT_Vector  v;
-
-
-    v.x = X;
-    v.y = Y;
-
-    return FT_Vector_Length( &v );
-  }
-
-#endif
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Current_Ratio                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns the current aspect ratio scaling factor depending on the   */
-  /*    projection vector's state and device resolutions.                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The aspect ratio in 16.16 format, always <= 1.0 .                  */
-  /*                                                                       */
-  static FT_Long
-  Current_Ratio( EXEC_OP )
-  {
-    if ( !CUR.tt_metrics.ratio )
-    {
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-      if ( CUR.face->unpatented_hinting )
-      {
-        if ( CUR.GS.both_x_axis )
-          CUR.tt_metrics.ratio = CUR.tt_metrics.x_ratio;
-        else
-          CUR.tt_metrics.ratio = CUR.tt_metrics.y_ratio;
-      }
-      else
-#endif
-      {
-        if ( CUR.GS.projVector.y == 0 )
-          CUR.tt_metrics.ratio = CUR.tt_metrics.x_ratio;
-
-        else if ( CUR.GS.projVector.x == 0 )
-          CUR.tt_metrics.ratio = CUR.tt_metrics.y_ratio;
-
-        else
-        {
-          FT_Long  x, y;
-
-
-          x = TT_MULDIV( CUR.GS.projVector.x,
-                         CUR.tt_metrics.x_ratio, 0x4000 );
-          y = TT_MULDIV( CUR.GS.projVector.y,
-                         CUR.tt_metrics.y_ratio, 0x4000 );
-          CUR.tt_metrics.ratio = TT_VecLen( x, y );
-        }
-      }
-    }
-    return CUR.tt_metrics.ratio;
-  }
-
-
-  static FT_Long
-  Current_Ppem( EXEC_OP )
-  {
-    return TT_MULFIX( CUR.tt_metrics.ppem, CURRENT_Ratio() );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Functions related to the control value table (CVT).                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  FT_CALLBACK_DEF( FT_F26Dot6 )
-  Read_CVT( EXEC_OP_ FT_ULong  idx )
-  {
-    return CUR.cvt[idx];
-  }
-
-
-  FT_CALLBACK_DEF( FT_F26Dot6 )
-  Read_CVT_Stretched( EXEC_OP_ FT_ULong  idx )
-  {
-    return TT_MULFIX( CUR.cvt[idx], CURRENT_Ratio() );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  Write_CVT( EXEC_OP_ FT_ULong    idx,
-                      FT_F26Dot6  value )
-  {
-    CUR.cvt[idx] = value;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  Write_CVT_Stretched( EXEC_OP_ FT_ULong    idx,
-                                FT_F26Dot6  value )
-  {
-    CUR.cvt[idx] = FT_DivFix( value, CURRENT_Ratio() );
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  Move_CVT( EXEC_OP_ FT_ULong    idx,
-                     FT_F26Dot6  value )
-  {
-    CUR.cvt[idx] += value;
-  }
-
-
-  FT_CALLBACK_DEF( void )
-  Move_CVT_Stretched( EXEC_OP_ FT_ULong    idx,
-                               FT_F26Dot6  value )
-  {
-    CUR.cvt[idx] += FT_DivFix( value, CURRENT_Ratio() );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    GetShortIns                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Returns a short integer taken from the instruction stream at       */
-  /*    address IP.                                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Short read at code[IP].                                            */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This one could become a macro.                                     */
-  /*                                                                       */
-  static FT_Short
-  GetShortIns( EXEC_OP )
-  {
-    /* Reading a byte stream so there is no endianess (DaveP) */
-    CUR.IP += 2;
-    return (FT_Short)( ( CUR.code[CUR.IP - 2] << 8 ) +
-                         CUR.code[CUR.IP - 1]      );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Ins_Goto_CodeRange                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Goes to a certain code range in the instruction stream.            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    aRange :: The index of the code range.                             */
-  /*                                                                       */
-  /*    aIP    :: The new IP address in the code range.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    SUCCESS or FAILURE.                                                */
-  /*                                                                       */
-  static FT_Bool
-  Ins_Goto_CodeRange( EXEC_OP_ FT_Int    aRange,
-                               FT_ULong  aIP )
-  {
-    TT_CodeRange*  range;
-
-
-    if ( aRange < 1 || aRange > 3 )
-    {
-      CUR.error = TT_Err_Bad_Argument;
-      return FAILURE;
-    }
-
-    range = &CUR.codeRangeTable[aRange - 1];
-
-    if ( range->base == NULL )     /* invalid coderange */
-    {
-      CUR.error = TT_Err_Invalid_CodeRange;
-      return FAILURE;
-    }
-
-    /* NOTE: Because the last instruction of a program may be a CALL */
-    /*       which will return to the first byte *after* the code    */
-    /*       range, we test for AIP <= Size, instead of AIP < Size.  */
-
-    if ( aIP > range->size )
-    {
-      CUR.error = TT_Err_Code_Overflow;
-      return FAILURE;
-    }
-
-    CUR.code     = range->base;
-    CUR.codeSize = range->size;
-    CUR.IP       = aIP;
-    CUR.curRange = aRange;
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Direct_Move                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Moves a point by a given distance along the freedom vector.  The   */
-  /*    point will be `touched'.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    point    :: The index of the point to move.                        */
-  /*                                                                       */
-  /*    distance :: The distance to apply.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    zone     :: The affected glyph zone.                               */
-  /*                                                                       */
-  static void
-  Direct_Move( EXEC_OP_ TT_GlyphZone  zone,
-                        FT_UShort     point,
-                        FT_F26Dot6    distance )
-  {
-    FT_F26Dot6  v;
-
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    FT_ASSERT( !CUR.face->unpatented_hinting );
-#endif
-
-    v = CUR.GS.freeVector.x;
-
-    if ( v != 0 )
-    {
-      zone->cur[point].x += TT_MULDIV( distance,
-                                       v * 0x10000L,
-                                       CUR.F_dot_P );
-
-      zone->tags[point] |= FT_CURVE_TAG_TOUCH_X;
-    }
-
-    v = CUR.GS.freeVector.y;
-
-    if ( v != 0 )
-    {
-      zone->cur[point].y += TT_MULDIV( distance,
-                                       v * 0x10000L,
-                                       CUR.F_dot_P );
-
-      zone->tags[point] |= FT_CURVE_TAG_TOUCH_Y;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Direct_Move_Orig                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Moves the *original* position of a point by a given distance along */
-  /*    the freedom vector.  Obviously, the point will not be `touched'.   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    point    :: The index of the point to move.                        */
-  /*                                                                       */
-  /*    distance :: The distance to apply.                                 */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    zone     :: The affected glyph zone.                               */
-  /*                                                                       */
-  static void
-  Direct_Move_Orig( EXEC_OP_ TT_GlyphZone  zone,
-                             FT_UShort     point,
-                             FT_F26Dot6    distance )
-  {
-    FT_F26Dot6  v;
-
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    FT_ASSERT( !CUR.face->unpatented_hinting );
-#endif
-
-    v = CUR.GS.freeVector.x;
-
-    if ( v != 0 )
-      zone->org[point].x += TT_MULDIV( distance,
-                                       v * 0x10000L,
-                                       CUR.F_dot_P );
-
-    v = CUR.GS.freeVector.y;
-
-    if ( v != 0 )
-      zone->org[point].y += TT_MULDIV( distance,
-                                       v * 0x10000L,
-                                       CUR.F_dot_P );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Special versions of Direct_Move()                                     */
-  /*                                                                       */
-  /*   The following versions are used whenever both vectors are both      */
-  /*   along one of the coordinate unit vectors, i.e. in 90% of the cases. */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static void
-  Direct_Move_X( EXEC_OP_ TT_GlyphZone  zone,
-                          FT_UShort     point,
-                          FT_F26Dot6    distance )
-  {
-    FT_UNUSED_EXEC;
-
-    zone->cur[point].x += distance;
-    zone->tags[point]  |= FT_CURVE_TAG_TOUCH_X;
-  }
-
-
-  static void
-  Direct_Move_Y( EXEC_OP_ TT_GlyphZone  zone,
-                          FT_UShort     point,
-                          FT_F26Dot6    distance )
-  {
-    FT_UNUSED_EXEC;
-
-    zone->cur[point].y += distance;
-    zone->tags[point]  |= FT_CURVE_TAG_TOUCH_Y;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Special versions of Direct_Move_Orig()                                */
-  /*                                                                       */
-  /*   The following versions are used whenever both vectors are both      */
-  /*   along one of the coordinate unit vectors, i.e. in 90% of the cases. */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static void
-  Direct_Move_Orig_X( EXEC_OP_ TT_GlyphZone  zone,
-                               FT_UShort     point,
-                               FT_F26Dot6    distance )
-  {
-    FT_UNUSED_EXEC;
-
-    zone->org[point].x += distance;
-  }
-
-
-  static void
-  Direct_Move_Orig_Y( EXEC_OP_ TT_GlyphZone  zone,
-                               FT_UShort     point,
-                               FT_F26Dot6    distance )
-  {
-    FT_UNUSED_EXEC;
-
-    zone->org[point].y += distance;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_None                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Does not round, but adds engine compensation.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance (not) to round.                       */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The compensated distance.                                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The TrueType specification says very few about the relationship    */
-  /*    between rounding and engine compensation.  However, it seems from  */
-  /*    the description of super round that we should add the compensation */
-  /*    before rounding.                                                   */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_None( EXEC_OP_ FT_F26Dot6  distance,
-                       FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-    FT_UNUSED_EXEC;
-
-
-    if ( distance >= 0 )
-    {
-      val = distance + compensation;
-      if ( distance && val < 0 )
-        val = 0;
-    }
-    else {
-      val = distance - compensation;
-      if ( val > 0 )
-        val = 0;
-    }
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_To_Grid                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Rounds value to grid after adding engine compensation.             */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_To_Grid( EXEC_OP_ FT_F26Dot6  distance,
-                          FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-    FT_UNUSED_EXEC;
-
-
-    if ( distance >= 0 )
-    {
-      val = distance + compensation + 32;
-      if ( distance && val > 0 )
-        val &= ~63;
-      else
-        val = 0;
-    }
-    else
-    {
-      val = -FT_PIX_ROUND( compensation - distance );
-      if ( val > 0 )
-        val = 0;
-    }
-
-    return  val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_To_Half_Grid                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Rounds value to half grid after adding engine compensation.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_To_Half_Grid( EXEC_OP_ FT_F26Dot6  distance,
-                               FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-    FT_UNUSED_EXEC;
-
-
-    if ( distance >= 0 )
-    {
-      val = FT_PIX_FLOOR( distance + compensation ) + 32;
-      if ( distance && val < 0 )
-        val = 0;
-    }
-    else
-    {
-      val = -( FT_PIX_FLOOR( compensation - distance ) + 32 );
-      if ( val > 0 )
-        val = 0;
-    }
-
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_Down_To_Grid                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Rounds value down to grid after adding engine compensation.        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_Down_To_Grid( EXEC_OP_ FT_F26Dot6  distance,
-                               FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-    FT_UNUSED_EXEC;
-
-
-    if ( distance >= 0 )
-    {
-      val = distance + compensation;
-      if ( distance && val > 0 )
-        val &= ~63;
-      else
-        val = 0;
-    }
-    else
-    {
-      val = -( ( compensation - distance ) & -64 );
-      if ( val > 0 )
-        val = 0;
-    }
-
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_Up_To_Grid                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Rounds value up to grid after adding engine compensation.          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_Up_To_Grid( EXEC_OP_ FT_F26Dot6  distance,
-                             FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-
-    FT_UNUSED_EXEC;
-
-    if ( distance >= 0 )
-    {
-      val = distance + compensation + 63;
-      if ( distance && val > 0 )
-        val &= ~63;
-      else
-        val = 0;
-    }
-    else
-    {
-      val = - FT_PIX_CEIL( compensation - distance );
-      if ( val > 0 )
-        val = 0;
-    }
-
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_To_Double_Grid                                               */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Rounds value to double grid after adding engine compensation.      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_To_Double_Grid( EXEC_OP_ FT_F26Dot6  distance,
-                                 FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6 val;
-
-    FT_UNUSED_EXEC;
-
-
-    if ( distance >= 0 )
-    {
-      val = distance + compensation + 16;
-      if ( distance && val > 0 )
-        val &= ~31;
-      else
-        val = 0;
-    }
-    else
-    {
-      val = -FT_PAD_ROUND( compensation - distance, 32 );
-      if ( val > 0 )
-        val = 0;
-    }
-
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_Super                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Super-rounds value to grid after adding engine compensation.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The TrueType specification says very few about the relationship    */
-  /*    between rounding and engine compensation.  However, it seems from  */
-  /*    the description of super round that we should add the compensation */
-  /*    before rounding.                                                   */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_Super( EXEC_OP_ FT_F26Dot6  distance,
-                        FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-
-    if ( distance >= 0 )
-    {
-      val = ( distance - CUR.phase + CUR.threshold + compensation ) &
-              -CUR.period;
-      if ( distance && val < 0 )
-        val = 0;
-      val += CUR.phase;
-    }
-    else
-    {
-      val = -( ( CUR.threshold - CUR.phase - distance + compensation ) &
-               -CUR.period );
-      if ( val > 0 )
-        val = 0;
-      val -= CUR.phase;
-    }
-
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Round_Super_45                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Super-rounds value to grid after adding engine compensation.       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    distance     :: The distance to round.                             */
-  /*                                                                       */
-  /*    compensation :: The engine compensation.                           */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Rounded distance.                                                  */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    There is a separate function for Round_Super_45() as we may need   */
-  /*    greater precision.                                                 */
-  /*                                                                       */
-  static FT_F26Dot6
-  Round_Super_45( EXEC_OP_ FT_F26Dot6  distance,
-                           FT_F26Dot6  compensation )
-  {
-    FT_F26Dot6  val;
-
-
-    if ( distance >= 0 )
-    {
-      val = ( ( distance - CUR.phase + CUR.threshold + compensation ) /
-                CUR.period ) * CUR.period;
-      if ( distance && val < 0 )
-        val = 0;
-      val += CUR.phase;
-    }
-    else
-    {
-      val = -( ( ( CUR.threshold - CUR.phase - distance + compensation ) /
-                   CUR.period ) * CUR.period );
-      if ( val > 0 )
-        val = 0;
-      val -= CUR.phase;
-    }
-
-    return val;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Compute_Round                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets the rounding mode.                                            */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    round_mode :: The rounding mode to be used.                        */
-  /*                                                                       */
-  static void
-  Compute_Round( EXEC_OP_ FT_Byte  round_mode )
-  {
-    switch ( round_mode )
-    {
-    case TT_Round_Off:
-      CUR.func_round = (TT_Round_Func)Round_None;
-      break;
-
-    case TT_Round_To_Grid:
-      CUR.func_round = (TT_Round_Func)Round_To_Grid;
-      break;
-
-    case TT_Round_Up_To_Grid:
-      CUR.func_round = (TT_Round_Func)Round_Up_To_Grid;
-      break;
-
-    case TT_Round_Down_To_Grid:
-      CUR.func_round = (TT_Round_Func)Round_Down_To_Grid;
-      break;
-
-    case TT_Round_To_Half_Grid:
-      CUR.func_round = (TT_Round_Func)Round_To_Half_Grid;
-      break;
-
-    case TT_Round_To_Double_Grid:
-      CUR.func_round = (TT_Round_Func)Round_To_Double_Grid;
-      break;
-
-    case TT_Round_Super:
-      CUR.func_round = (TT_Round_Func)Round_Super;
-      break;
-
-    case TT_Round_Super_45:
-      CUR.func_round = (TT_Round_Func)Round_Super_45;
-      break;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    SetSuperRound                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Sets Super Round parameters.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    GridPeriod :: Grid period                                          */
-  /*    selector   :: SROUND opcode                                        */
-  /*                                                                       */
-  static void
-  SetSuperRound( EXEC_OP_ FT_F26Dot6  GridPeriod,
-                          FT_Long     selector )
-  {
-    switch ( (FT_Int)( selector & 0xC0 ) )
-    {
-      case 0:
-        CUR.period = GridPeriod / 2;
-        break;
-
-      case 0x40:
-        CUR.period = GridPeriod;
-        break;
-
-      case 0x80:
-        CUR.period = GridPeriod * 2;
-        break;
-
-      /* This opcode is reserved, but... */
-
-      case 0xC0:
-        CUR.period = GridPeriod;
-        break;
-    }
-
-    switch ( (FT_Int)( selector & 0x30 ) )
-    {
-    case 0:
-      CUR.phase = 0;
-      break;
-
-    case 0x10:
-      CUR.phase = CUR.period / 4;
-      break;
-
-    case 0x20:
-      CUR.phase = CUR.period / 2;
-      break;
-
-    case 0x30:
-      CUR.phase = CUR.period * 3 / 4;
-      break;
-    }
-
-    if ( (selector & 0x0F) == 0 )
-      CUR.threshold = CUR.period - 1;
-    else
-      CUR.threshold = ( (FT_Int)( selector & 0x0F ) - 4 ) * CUR.period / 8;
-
-    CUR.period    /= 256;
-    CUR.phase     /= 256;
-    CUR.threshold /= 256;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Project                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the projection of vector given by (v2-v1) along the       */
-  /*    current projection vector.                                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    v1 :: First input vector.                                          */
-  /*    v2 :: Second input vector.                                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The distance in F26dot6 format.                                    */
-  /*                                                                       */
-  static FT_F26Dot6
-  Project( EXEC_OP_ FT_Vector*  v1,
-                    FT_Vector*  v2 )
-  {
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    FT_ASSERT( !CUR.face->unpatented_hinting );
-#endif
-
-    return TT_DotFix14( v1->x - v2->x,
-                        v1->y - v2->y,
-                        CUR.GS.projVector.x,
-                        CUR.GS.projVector.y );
-  }
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Dual_Project                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the projection of the vector given by (v2-v1) along the   */
-  /*    current dual vector.                                               */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    v1 :: First input vector.                                          */
-  /*    v2 :: Second input vector.                                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The distance in F26dot6 format.                                    */
-  /*                                                                       */
-  static FT_F26Dot6
-  Dual_Project( EXEC_OP_ FT_Vector*  v1,
-                         FT_Vector*  v2 )
-  {
-    return TT_DotFix14( v1->x - v2->x,
-                        v1->y - v2->y,
-                        CUR.GS.dualVector.x,
-                        CUR.GS.dualVector.y );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Project_x                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the projection of the vector given by (v2-v1) along the   */
-  /*    horizontal axis.                                                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    v1 :: First input vector.                                          */
-  /*    v2 :: Second input vector.                                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The distance in F26dot6 format.                                    */
-  /*                                                                       */
-  static FT_F26Dot6
-  Project_x( EXEC_OP_ FT_Vector*  v1,
-                      FT_Vector*  v2 )
-  {
-    FT_UNUSED_EXEC;
-
-    return ( v1->x - v2->x );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Project_y                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the projection of the vector given by (v2-v1) along the   */
-  /*    vertical axis.                                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    v1 :: First input vector.                                          */
-  /*    v2 :: Second input vector.                                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    The distance in F26dot6 format.                                    */
-  /*                                                                       */
-  static FT_F26Dot6
-  Project_y( EXEC_OP_ FT_Vector*  v1,
-                      FT_Vector*  v2 )
-  {
-    FT_UNUSED_EXEC;
-
-   return ( v1->y - v2->y );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Compute_Funcs                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Computes the projection and movement function pointers according   */
-  /*    to the current graphics state.                                     */
-  /*                                                                       */
-  static void
-  Compute_Funcs( EXEC_OP )
-  {
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    if ( CUR.face->unpatented_hinting )
-    {
-      /* If both vectors point rightwards along the x axis, set             */
-      /* `both-x-axis' true, otherwise set it false.  The x values only     */
-      /* need be tested because the vector has been normalised to a unit    */
-      /* vector of length 0x4000 = unity.                                   */
-      CUR.GS.both_x_axis = (FT_Bool)( CUR.GS.projVector.x == 0x4000 &&
-                                      CUR.GS.freeVector.x == 0x4000 );
-
-      /* Throw away projection and freedom vector information */
-      /* because the patents don't allow them to be stored.   */
-      /* The relevant US Patents are 5155805 and 5325479.     */
-      CUR.GS.projVector.x = 0;
-      CUR.GS.projVector.y = 0;
-      CUR.GS.freeVector.x = 0;
-      CUR.GS.freeVector.y = 0;
-
-      if ( CUR.GS.both_x_axis )
-      {
-        CUR.func_project   = Project_x;
-        CUR.func_move      = Direct_Move_X;
-        CUR.func_move_orig = Direct_Move_Orig_X;
-      }
-      else
-      {
-        CUR.func_project   = Project_y;
-        CUR.func_move      = Direct_Move_Y;
-        CUR.func_move_orig = Direct_Move_Orig_Y;
-      }
-
-      if ( CUR.GS.dualVector.x == 0x4000 )
-        CUR.func_dualproj = Project_x;
-      else
-      {
-        if ( CUR.GS.dualVector.y == 0x4000 )
-          CUR.func_dualproj = Project_y;
-        else
-          CUR.func_dualproj = Dual_Project;
-      }
-
-      /* Force recalculation of cached aspect ratio */
-      CUR.tt_metrics.ratio = 0;
-
-      return;
-    }
-#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
-
-    if ( CUR.GS.freeVector.x == 0x4000 )
-      CUR.F_dot_P       = CUR.GS.projVector.x * 0x10000L;
-    else
-    {
-      if ( CUR.GS.freeVector.y == 0x4000 )
-        CUR.F_dot_P       = CUR.GS.projVector.y * 0x10000L;
-      else
-        CUR.F_dot_P = (FT_Long)CUR.GS.projVector.x * CUR.GS.freeVector.x * 4 +
-                      (FT_Long)CUR.GS.projVector.y * CUR.GS.freeVector.y * 4;
-    }
-
-    if ( CUR.GS.projVector.x == 0x4000 )
-      CUR.func_project = (TT_Project_Func)Project_x;
-    else
-    {
-      if ( CUR.GS.projVector.y == 0x4000 )
-        CUR.func_project = (TT_Project_Func)Project_y;
-      else
-        CUR.func_project = (TT_Project_Func)Project;
-    }
-
-    if ( CUR.GS.dualVector.x == 0x4000 )
-      CUR.func_dualproj = (TT_Project_Func)Project_x;
-    else
-    {
-      if ( CUR.GS.dualVector.y == 0x4000 )
-        CUR.func_dualproj = (TT_Project_Func)Project_y;
-      else
-        CUR.func_dualproj = (TT_Project_Func)Dual_Project;
-    }
-
-    CUR.func_move      = (TT_Move_Func)Direct_Move;
-    CUR.func_move_orig = (TT_Move_Func)Direct_Move_Orig;
-
-    if ( CUR.F_dot_P == 0x40000000L )
-    {
-      if ( CUR.GS.freeVector.x == 0x4000 )
-      {
-        CUR.func_move      = (TT_Move_Func)Direct_Move_X;
-        CUR.func_move_orig = (TT_Move_Func)Direct_Move_Orig_X;
-      }
-      else
-      {
-        if ( CUR.GS.freeVector.y == 0x4000 )
-        {
-          CUR.func_move      = (TT_Move_Func)Direct_Move_Y;
-          CUR.func_move_orig = (TT_Move_Func)Direct_Move_Orig_Y;
-        }
-      }
-    }
-
-    /* at small sizes, F_dot_P can become too small, resulting   */
-    /* in overflows and `spikes' in a number of glyphs like `w'. */
-
-    if ( FT_ABS( CUR.F_dot_P ) < 0x4000000L )
-      CUR.F_dot_P = 0x40000000L;
-
-    /* Disable cached aspect ratio */
-    CUR.tt_metrics.ratio = 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Normalize                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Norms a vector.                                                    */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    Vx :: The horizontal input vector coordinate.                      */
-  /*    Vy :: The vertical input vector coordinate.                        */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    R  :: The normed unit vector.                                      */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    Returns FAILURE if a vector parameter is zero.                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    In case Vx and Vy are both zero, Normalize() returns SUCCESS, and  */
-  /*    R is undefined.                                                    */
-  /*                                                                       */
-
-
-  static FT_Bool
-  Normalize( EXEC_OP_ FT_F26Dot6      Vx,
-                      FT_F26Dot6      Vy,
-                      FT_UnitVector*  R )
-  {
-    FT_F26Dot6  W;
-    FT_Bool     S1, S2;
-
-    FT_UNUSED_EXEC;
-
-
-    if ( FT_ABS( Vx ) < 0x10000L && FT_ABS( Vy ) < 0x10000L )
-    {
-      Vx *= 0x100;
-      Vy *= 0x100;
-
-      W = TT_VecLen( Vx, Vy );
-
-      if ( W == 0 )
-      {
-        /* XXX: UNDOCUMENTED! It seems that it is possible to try   */
-        /*      to normalize the vector (0,0).  Return immediately. */
-        return SUCCESS;
-      }
-
-      R->x = (FT_F2Dot14)FT_MulDiv( Vx, 0x4000L, W );
-      R->y = (FT_F2Dot14)FT_MulDiv( Vy, 0x4000L, W );
-
-      return SUCCESS;
-    }
-
-    W = TT_VecLen( Vx, Vy );
-
-    Vx = FT_MulDiv( Vx, 0x4000L, W );
-    Vy = FT_MulDiv( Vy, 0x4000L, W );
-
-    W = Vx * Vx + Vy * Vy;
-
-    /* Now, we want that Sqrt( W ) = 0x4000 */
-    /* Or 0x1000000 <= W < 0x1004000        */
-
-    if ( Vx < 0 )
-    {
-      Vx = -Vx;
-      S1 = TRUE;
-    }
-    else
-      S1 = FALSE;
-
-    if ( Vy < 0 )
-    {
-      Vy = -Vy;
-      S2 = TRUE;
-    }
-    else
-      S2 = FALSE;
-
-    while ( W < 0x1000000L )
-    {
-      /* We need to increase W by a minimal amount */
-      if ( Vx < Vy )
-        Vx++;
-      else
-        Vy++;
-
-      W = Vx * Vx + Vy * Vy;
-    }
-
-    while ( W >= 0x1004000L )
-    {
-      /* We need to decrease W by a minimal amount */
-      if ( Vx < Vy )
-        Vx--;
-      else
-        Vy--;
-
-      W = Vx * Vx + Vy * Vy;
-    }
-
-    /* Note that in various cases, we can only  */
-    /* compute a Sqrt(W) of 0x3FFF, eg. Vx = Vy */
-
-    if ( S1 )
-      Vx = -Vx;
-
-    if ( S2 )
-      Vy = -Vy;
-
-    R->x = (FT_F2Dot14)Vx;   /* Type conversion */
-    R->y = (FT_F2Dot14)Vy;   /* Type conversion */
-
-    return SUCCESS;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Here we start with the implementation of the various opcodes.         */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static FT_Bool
-  Ins_SxVTL( EXEC_OP_ FT_UShort       aIdx1,
-                      FT_UShort       aIdx2,
-                      FT_Int          aOpc,
-                      FT_UnitVector*  Vec )
-  {
-    FT_Long     A, B, C;
-    FT_Vector*  p1;
-    FT_Vector*  p2;
-
-
-    if ( BOUNDS( aIdx1, CUR.zp2.n_points ) ||
-         BOUNDS( aIdx2, CUR.zp1.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return FAILURE;
-    }
-
-    p1 = CUR.zp1.cur + aIdx2;
-    p2 = CUR.zp2.cur + aIdx1;
-
-    A = p1->x - p2->x;
-    B = p1->y - p2->y;
-
-    if ( ( aOpc & 1 ) != 0 )
-    {
-      C =  B;   /* counter clockwise rotation */
-      B =  A;
-      A = -C;
-    }
-
-    NORMalize( A, B, Vec );
-
-    return SUCCESS;
-  }
-
-
-  /* When not using the big switch statements, the interpreter uses a */
-  /* call table defined later below in this source.  Each opcode must */
-  /* thus have a corresponding function, even trivial ones.           */
-  /*                                                                  */
-  /* They are all defined there.                                      */
-
-#define DO_SVTCA                            \
-  {                                         \
-    FT_Short  A, B;                         \
-                                            \
-                                            \
-    A = (FT_Short)( CUR.opcode & 1 ) << 14; \
-    B = A ^ (FT_Short)0x4000;               \
-                                            \
-    CUR.GS.freeVector.x = A;                \
-    CUR.GS.projVector.x = A;                \
-    CUR.GS.dualVector.x = A;                \
-                                            \
-    CUR.GS.freeVector.y = B;                \
-    CUR.GS.projVector.y = B;                \
-    CUR.GS.dualVector.y = B;                \
-                                            \
-    COMPUTE_Funcs();                        \
-  }
-
-
-#define DO_SPVTCA                           \
-  {                                         \
-    FT_Short  A, B;                         \
-                                            \
-                                            \
-    A = (FT_Short)( CUR.opcode & 1 ) << 14; \
-    B = A ^ (FT_Short)0x4000;               \
-                                            \
-    CUR.GS.projVector.x = A;                \
-    CUR.GS.dualVector.x = A;                \
-                                            \
-    CUR.GS.projVector.y = B;                \
-    CUR.GS.dualVector.y = B;                \
-                                            \
-    GUESS_VECTOR( freeVector );             \
-                                            \
-    COMPUTE_Funcs();                        \
-  }
-
-
-#define DO_SFVTCA                           \
-  {                                         \
-    FT_Short  A, B;                         \
-                                            \
-                                            \
-    A = (FT_Short)( CUR.opcode & 1 ) << 14; \
-    B = A ^ (FT_Short)0x4000;               \
-                                            \
-    CUR.GS.freeVector.x = A;                \
-    CUR.GS.freeVector.y = B;                \
-                                            \
-    GUESS_VECTOR( projVector );             \
-                                            \
-    COMPUTE_Funcs();                        \
-  }
-
-
-#define DO_SPVTL                                      \
-    if ( INS_SxVTL( (FT_UShort)args[1],               \
-                    (FT_UShort)args[0],               \
-                    CUR.opcode,                       \
-                    &CUR.GS.projVector ) == SUCCESS ) \
-    {                                                 \
-      CUR.GS.dualVector = CUR.GS.projVector;          \
-      GUESS_VECTOR( freeVector );                     \
-      COMPUTE_Funcs();                                \
-    }
-
-
-#define DO_SFVTL                                      \
-    if ( INS_SxVTL( (FT_UShort)args[1],               \
-                    (FT_UShort)args[0],               \
-                    CUR.opcode,                       \
-                    &CUR.GS.freeVector ) == SUCCESS ) \
-    {                                                 \
-      GUESS_VECTOR( projVector );                     \
-      COMPUTE_Funcs();                                \
-    }
-
-
-#define DO_SFVTPV                          \
-    GUESS_VECTOR( projVector );            \
-    CUR.GS.freeVector = CUR.GS.projVector; \
-    COMPUTE_Funcs();
-
-
-#define DO_SPVFS                                \
-  {                                             \
-    FT_Short  S;                                \
-    FT_Long   X, Y;                             \
-                                                \
-                                                \
-    /* Only use low 16bits, then sign extend */ \
-    S = (FT_Short)args[1];                      \
-    Y = (FT_Long)S;                             \
-    S = (FT_Short)args[0];                      \
-    X = (FT_Long)S;                             \
-                                                \
-    NORMalize( X, Y, &CUR.GS.projVector );      \
-                                                \
-    CUR.GS.dualVector = CUR.GS.projVector;      \
-    GUESS_VECTOR( freeVector );                 \
-    COMPUTE_Funcs();                            \
-  }
-
-
-#define DO_SFVFS                                \
-  {                                             \
-    FT_Short  S;                                \
-    FT_Long   X, Y;                             \
-                                                \
-                                                \
-    /* Only use low 16bits, then sign extend */ \
-    S = (FT_Short)args[1];                      \
-    Y = (FT_Long)S;                             \
-    S = (FT_Short)args[0];                      \
-    X = S;                                      \
-                                                \
-    NORMalize( X, Y, &CUR.GS.freeVector );      \
-    GUESS_VECTOR( projVector );                 \
-    COMPUTE_Funcs();                            \
-  }
-
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-#define DO_GPV                                   \
-    if ( CUR.face->unpatented_hinting )          \
-    {                                            \
-      args[0] = CUR.GS.both_x_axis ? 0x4000 : 0; \
-      args[1] = CUR.GS.both_x_axis ? 0 : 0x4000; \
-    }                                            \
-    else                                         \
-    {                                            \
-      args[0] = CUR.GS.projVector.x;             \
-      args[1] = CUR.GS.projVector.y;             \
-    }
-#else
-#define DO_GPV                                   \
-    args[0] = CUR.GS.projVector.x;               \
-    args[1] = CUR.GS.projVector.y;
-#endif
-
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-#define DO_GFV                                   \
-    if ( CUR.face->unpatented_hinting )          \
-    {                                            \
-      args[0] = CUR.GS.both_x_axis ? 0x4000 : 0; \
-      args[1] = CUR.GS.both_x_axis ? 0 : 0x4000; \
-    }                                            \
-    else                                         \
-    {                                            \
-      args[0] = CUR.GS.freeVector.x;             \
-      args[1] = CUR.GS.freeVector.y;             \
-    }
-#else
-#define DO_GFV                                   \
-    args[0] = CUR.GS.freeVector.x;               \
-    args[1] = CUR.GS.freeVector.y;
-#endif
-
-
-#define DO_SRP0                      \
-    CUR.GS.rp0 = (FT_UShort)args[0];
-
-
-#define DO_SRP1                      \
-    CUR.GS.rp1 = (FT_UShort)args[0];
-
-
-#define DO_SRP2                      \
-    CUR.GS.rp2 = (FT_UShort)args[0];
-
-
-#define DO_RTHG                                         \
-    CUR.GS.round_state = TT_Round_To_Half_Grid;         \
-    CUR.func_round = (TT_Round_Func)Round_To_Half_Grid;
-
-
-#define DO_RTG                                     \
-    CUR.GS.round_state = TT_Round_To_Grid;         \
-    CUR.func_round = (TT_Round_Func)Round_To_Grid;
-
-
-#define DO_RTDG                                           \
-    CUR.GS.round_state = TT_Round_To_Double_Grid;         \
-    CUR.func_round = (TT_Round_Func)Round_To_Double_Grid;
-
-
-#define DO_RUTG                                       \
-    CUR.GS.round_state = TT_Round_Up_To_Grid;         \
-    CUR.func_round = (TT_Round_Func)Round_Up_To_Grid;
-
-
-#define DO_RDTG                                         \
-    CUR.GS.round_state = TT_Round_Down_To_Grid;         \
-    CUR.func_round = (TT_Round_Func)Round_Down_To_Grid;
-
-
-#define DO_ROFF                                 \
-    CUR.GS.round_state = TT_Round_Off;          \
-    CUR.func_round = (TT_Round_Func)Round_None;
-
-
-#define DO_SROUND                                \
-    SET_SuperRound( 0x4000, args[0] );           \
-    CUR.GS.round_state = TT_Round_Super;         \
-    CUR.func_round = (TT_Round_Func)Round_Super;
-
-
-#define DO_S45ROUND                                 \
-    SET_SuperRound( 0x2D41, args[0] );              \
-    CUR.GS.round_state = TT_Round_Super_45;         \
-    CUR.func_round = (TT_Round_Func)Round_Super_45;
-
-
-#define DO_SLOOP                       \
-    if ( args[0] < 0 )                 \
-      CUR.error = TT_Err_Bad_Argument; \
-    else                               \
-      CUR.GS.loop = args[0];
-
-
-#define DO_SMD                         \
-    CUR.GS.minimum_distance = args[0];
-
-
-#define DO_SCVTCI                                     \
-    CUR.GS.control_value_cutin = (FT_F26Dot6)args[0];
-
-
-#define DO_SSWCI                                     \
-    CUR.GS.single_width_cutin = (FT_F26Dot6)args[0];
-
-
-    /* XXX: UNDOCUMENTED! or bug in the Windows engine? */
-    /*                                                  */
-    /* It seems that the value that is read here is     */
-    /* expressed in 16.16 format rather than in font    */
-    /* units.                                           */
-    /*                                                  */
-#define DO_SSW                                                 \
-    CUR.GS.single_width_value = (FT_F26Dot6)( args[0] >> 10 );
-
-
-#define DO_FLIPON            \
-    CUR.GS.auto_flip = TRUE;
-
-
-#define DO_FLIPOFF            \
-    CUR.GS.auto_flip = FALSE;
-
-
-#define DO_SDB                             \
-    CUR.GS.delta_base = (FT_Short)args[0];
-
-
-#define DO_SDS                              \
-    CUR.GS.delta_shift = (FT_Short)args[0];
-
-
-#define DO_MD  /* nothing */
-
-
-#define DO_MPPEM              \
-    args[0] = CURRENT_Ppem();
-
-
-  /* Note: The pointSize should be irrelevant in a given font program; */
-  /*       we thus decide to return only the ppem.                     */
-#if 0
-
-#define DO_MPS                       \
-    args[0] = CUR.metrics.pointSize;
-
-#else
-
-#define DO_MPS                \
-    args[0] = CURRENT_Ppem();
-
-#endif /* 0 */
-
-
-#define DO_DUP         \
-    args[1] = args[0];
-
-
-#define DO_CLEAR     \
-    CUR.new_top = 0;
-
-
-#define DO_SWAP        \
-  {                    \
-    FT_Long  L;        \
-                       \
-                       \
-    L       = args[0]; \
-    args[0] = args[1]; \
-    args[1] = L;       \
-  }
-
-
-#define DO_DEPTH       \
-    args[0] = CUR.top;
-
-
-#define DO_CINDEX                           \
-  {                                         \
-    FT_Long  L;                             \
-                                            \
-                                            \
-    L = args[0];                            \
-                                            \
-    if ( L <= 0 || L > CUR.args )           \
-      CUR.error = TT_Err_Invalid_Reference; \
-    else                                    \
-      args[0] = CUR.stack[CUR.args - L];    \
-  }
-
-
-#define DO_JROT               \
-    if ( args[1] != 0 )       \
-    {                         \
-      CUR.IP      += args[0]; \
-      CUR.step_ins = FALSE;   \
-    }
-
-
-#define DO_JMPR             \
-    CUR.IP      += args[0]; \
-    CUR.step_ins = FALSE;
-
-
-#define DO_JROF               \
-    if ( args[1] == 0 )       \
-    {                         \
-      CUR.IP      += args[0]; \
-      CUR.step_ins = FALSE;   \
-    }
-
-
-#define DO_LT                        \
-    args[0] = ( args[0] < args[1] );
-
-
-#define DO_LTEQ                       \
-    args[0] = ( args[0] <= args[1] );
-
-
-#define DO_GT                        \
-    args[0] = ( args[0] > args[1] );
-
-
-#define DO_GTEQ                       \
-    args[0] = ( args[0] >= args[1] );
-
-
-#define DO_EQ                         \
-    args[0] = ( args[0] == args[1] );
-
-
-#define DO_NEQ                        \
-    args[0] = ( args[0] != args[1] );
-
-
-#define DO_ODD                                                  \
-    args[0] = ( ( CUR_Func_round( args[0], 0 ) & 127 ) == 64 );
-
-
-#define DO_EVEN                                                \
-    args[0] = ( ( CUR_Func_round( args[0], 0 ) & 127 ) == 0 );
-
-
-#define DO_AND                        \
-    args[0] = ( args[0] && args[1] );
-
-
-#define DO_OR                         \
-    args[0] = ( args[0] || args[1] );
-
-
-#define DO_NOT          \
-    args[0] = !args[0];
-
-
-#define DO_ADD          \
-    args[0] += args[1];
-
-
-#define DO_SUB          \
-    args[0] -= args[1];
-
-
-#define DO_DIV                                               \
-    if ( args[1] == 0 )                                      \
-      CUR.error = TT_Err_Divide_By_Zero;                     \
-    else                                                     \
-      args[0] = TT_MULDIV_NO_ROUND( args[0], 64L, args[1] );
-
-
-#define DO_MUL                                    \
-    args[0] = TT_MULDIV( args[0], args[1], 64L );
-
-
-#define DO_ABS                   \
-    args[0] = FT_ABS( args[0] );
-
-
-#define DO_NEG          \
-    args[0] = -args[0];
-
-
-#define DO_FLOOR    \
-    args[0] = FT_PIX_FLOOR( args[0] );
-
-
-#define DO_CEILING                    \
-    args[0] = FT_PIX_CEIL( args[0] );
-
-
-#define DO_RS                          \
-   {                                   \
-     FT_ULong  I = (FT_ULong)args[0];  \
-                                       \
-                                       \
-     if ( BOUNDS( I, CUR.storeSize ) ) \
-     {                                 \
-       if ( CUR.pedantic_hinting )     \
-       {                               \
-         ARRAY_BOUND_ERROR;            \
-       }                               \
-       else                            \
-         args[0] = 0;                  \
-     }                                 \
-     else                              \
-       args[0] = CUR.storage[I];       \
-   }
-
-
-#define DO_WS                          \
-   {                                   \
-     FT_ULong  I = (FT_ULong)args[0];  \
-                                       \
-                                       \
-     if ( BOUNDS( I, CUR.storeSize ) ) \
-     {                                 \
-       if ( CUR.pedantic_hinting )     \
-       {                               \
-         ARRAY_BOUND_ERROR;            \
-       }                               \
-     }                                 \
-     else                              \
-       CUR.storage[I] = args[1];       \
-   }
-
-
-#define DO_RCVT                          \
-   {                                     \
-     FT_ULong  I = (FT_ULong)args[0];    \
-                                         \
-                                         \
-     if ( BOUNDS( I, CUR.cvtSize ) )     \
-     {                                   \
-       if ( CUR.pedantic_hinting )       \
-       {                                 \
-         ARRAY_BOUND_ERROR;              \
-       }                                 \
-       else                              \
-         args[0] = 0;                    \
-     }                                   \
-     else                                \
-       args[0] = CUR_Func_read_cvt( I ); \
-   }
-
-
-#define DO_WCVTP                         \
-   {                                     \
-     FT_ULong  I = (FT_ULong)args[0];    \
-                                         \
-                                         \
-     if ( BOUNDS( I, CUR.cvtSize ) )     \
-     {                                   \
-       if ( CUR.pedantic_hinting )       \
-       {                                 \
-         ARRAY_BOUND_ERROR;              \
-       }                                 \
-     }                                   \
-     else                                \
-       CUR_Func_write_cvt( I, args[1] ); \
-   }
-
-
-#define DO_WCVTF                                                \
-   {                                                            \
-     FT_ULong  I = (FT_ULong)args[0];                           \
-                                                                \
-                                                                \
-     if ( BOUNDS( I, CUR.cvtSize ) )                            \
-     {                                                          \
-       if ( CUR.pedantic_hinting )                              \
-       {                                                        \
-         ARRAY_BOUND_ERROR;                                     \
-       }                                                        \
-     }                                                          \
-     else                                                       \
-       CUR.cvt[I] = TT_MULFIX( args[1], CUR.tt_metrics.scale ); \
-   }
-
-
-#define DO_DEBUG                     \
-    CUR.error = TT_Err_Debug_OpCode;
-
-
-#define DO_ROUND                                                   \
-    args[0] = CUR_Func_round(                                      \
-                args[0],                                           \
-                CUR.tt_metrics.compensations[CUR.opcode - 0x68] );
-
-
-#define DO_NROUND                                                            \
-    args[0] = ROUND_None( args[0],                                           \
-                          CUR.tt_metrics.compensations[CUR.opcode - 0x6C] );
-
-
-#define DO_MAX               \
-    if ( args[1] > args[0] ) \
-      args[0] = args[1];
-
-
-#define DO_MIN               \
-    if ( args[1] < args[0] ) \
-      args[0] = args[1];
-
-
-#ifndef TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-#undef  ARRAY_BOUND_ERROR
-#define ARRAY_BOUND_ERROR                   \
-    {                                       \
-      CUR.error = TT_Err_Invalid_Reference; \
-      return;                               \
-    }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SVTCA[a]:     Set (F and P) Vectors to Coordinate Axis                */
-  /* Opcode range: 0x00-0x01                                               */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_SVTCA( INS_ARG )
-  {
-    DO_SVTCA
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SPVTCA[a]:    Set PVector to Coordinate Axis                          */
-  /* Opcode range: 0x02-0x03                                               */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_SPVTCA( INS_ARG )
-  {
-    DO_SPVTCA
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SFVTCA[a]:    Set FVector to Coordinate Axis                          */
-  /* Opcode range: 0x04-0x05                                               */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_SFVTCA( INS_ARG )
-  {
-    DO_SFVTCA
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SPVTL[a]:     Set PVector To Line                                     */
-  /* Opcode range: 0x06-0x07                                               */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_SPVTL( INS_ARG )
-  {
-    DO_SPVTL
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SFVTL[a]:     Set FVector To Line                                     */
-  /* Opcode range: 0x08-0x09                                               */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_SFVTL( INS_ARG )
-  {
-    DO_SFVTL
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SFVTPV[]:     Set FVector To PVector                                  */
-  /* Opcode range: 0x0E                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_SFVTPV( INS_ARG )
-  {
-    DO_SFVTPV
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SPVFS[]:      Set PVector From Stack                                  */
-  /* Opcode range: 0x0A                                                    */
-  /* Stack:        f2.14 f2.14 -->                                         */
-  /*                                                                       */
-  static void
-  Ins_SPVFS( INS_ARG )
-  {
-    DO_SPVFS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SFVFS[]:      Set FVector From Stack                                  */
-  /* Opcode range: 0x0B                                                    */
-  /* Stack:        f2.14 f2.14 -->                                         */
-  /*                                                                       */
-  static void
-  Ins_SFVFS( INS_ARG )
-  {
-    DO_SFVFS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* GPV[]:        Get Projection Vector                                   */
-  /* Opcode range: 0x0C                                                    */
-  /* Stack:        ef2.14 --> ef2.14                                       */
-  /*                                                                       */
-  static void
-  Ins_GPV( INS_ARG )
-  {
-    DO_GPV
-  }
-
-
-  /*************************************************************************/
-  /* GFV[]:        Get Freedom Vector                                      */
-  /* Opcode range: 0x0D                                                    */
-  /* Stack:        ef2.14 --> ef2.14                                       */
-  /*                                                                       */
-  static void
-  Ins_GFV( INS_ARG )
-  {
-    DO_GFV
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SRP0[]:       Set Reference Point 0                                   */
-  /* Opcode range: 0x10                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SRP0( INS_ARG )
-  {
-    DO_SRP0
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SRP1[]:       Set Reference Point 1                                   */
-  /* Opcode range: 0x11                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SRP1( INS_ARG )
-  {
-    DO_SRP1
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SRP2[]:       Set Reference Point 2                                   */
-  /* Opcode range: 0x12                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SRP2( INS_ARG )
-  {
-    DO_SRP2
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* RTHG[]:       Round To Half Grid                                      */
-  /* Opcode range: 0x19                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_RTHG( INS_ARG )
-  {
-    DO_RTHG
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* RTG[]:        Round To Grid                                           */
-  /* Opcode range: 0x18                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_RTG( INS_ARG )
-  {
-    DO_RTG
-  }
-
-
-  /*************************************************************************/
-  /* RTDG[]:       Round To Double Grid                                    */
-  /* Opcode range: 0x3D                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_RTDG( INS_ARG )
-  {
-    DO_RTDG
-  }
-
-
-  /*************************************************************************/
-  /* RUTG[]:       Round Up To Grid                                        */
-  /* Opcode range: 0x7C                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_RUTG( INS_ARG )
-  {
-    DO_RUTG
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* RDTG[]:       Round Down To Grid                                      */
-  /* Opcode range: 0x7D                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_RDTG( INS_ARG )
-  {
-    DO_RDTG
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ROFF[]:       Round OFF                                               */
-  /* Opcode range: 0x7A                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_ROFF( INS_ARG )
-  {
-    DO_ROFF
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SROUND[]:     Super ROUND                                             */
-  /* Opcode range: 0x76                                                    */
-  /* Stack:        Eint8 -->                                               */
-  /*                                                                       */
-  static void
-  Ins_SROUND( INS_ARG )
-  {
-    DO_SROUND
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* S45ROUND[]:   Super ROUND 45 degrees                                  */
-  /* Opcode range: 0x77                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_S45ROUND( INS_ARG )
-  {
-    DO_S45ROUND
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SLOOP[]:      Set LOOP variable                                       */
-  /* Opcode range: 0x17                                                    */
-  /* Stack:        int32? -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SLOOP( INS_ARG )
-  {
-    DO_SLOOP
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SMD[]:        Set Minimum Distance                                    */
-  /* Opcode range: 0x1A                                                    */
-  /* Stack:        f26.6 -->                                               */
-  /*                                                                       */
-  static void
-  Ins_SMD( INS_ARG )
-  {
-    DO_SMD
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SCVTCI[]:     Set Control Value Table Cut In                          */
-  /* Opcode range: 0x1D                                                    */
-  /* Stack:        f26.6 -->                                               */
-  /*                                                                       */
-  static void
-  Ins_SCVTCI( INS_ARG )
-  {
-    DO_SCVTCI
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SSWCI[]:      Set Single Width Cut In                                 */
-  /* Opcode range: 0x1E                                                    */
-  /* Stack:        f26.6 -->                                               */
-  /*                                                                       */
-  static void
-  Ins_SSWCI( INS_ARG )
-  {
-    DO_SSWCI
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SSW[]:        Set Single Width                                        */
-  /* Opcode range: 0x1F                                                    */
-  /* Stack:        int32? -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SSW( INS_ARG )
-  {
-    DO_SSW
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FLIPON[]:     Set auto-FLIP to ON                                     */
-  /* Opcode range: 0x4D                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_FLIPON( INS_ARG )
-  {
-    DO_FLIPON
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FLIPOFF[]:    Set auto-FLIP to OFF                                    */
-  /* Opcode range: 0x4E                                                    */
-  /* Stack: -->                                                            */
-  /*                                                                       */
-  static void
-  Ins_FLIPOFF( INS_ARG )
-  {
-    DO_FLIPOFF
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SANGW[]:      Set ANGle Weight                                        */
-  /* Opcode range: 0x7E                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SANGW( INS_ARG )
-  {
-    /* instruction not supported anymore */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SDB[]:        Set Delta Base                                          */
-  /* Opcode range: 0x5E                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SDB( INS_ARG )
-  {
-    DO_SDB
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SDS[]:        Set Delta Shift                                         */
-  /* Opcode range: 0x5F                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SDS( INS_ARG )
-  {
-    DO_SDS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MPPEM[]:      Measure Pixel Per EM                                    */
-  /* Opcode range: 0x4B                                                    */
-  /* Stack:        --> Euint16                                             */
-  /*                                                                       */
-  static void
-  Ins_MPPEM( INS_ARG )
-  {
-    DO_MPPEM
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MPS[]:        Measure Point Size                                      */
-  /* Opcode range: 0x4C                                                    */
-  /* Stack:        --> Euint16                                             */
-  /*                                                                       */
-  static void
-  Ins_MPS( INS_ARG )
-  {
-    DO_MPS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DUP[]:        DUPlicate the top stack's element                       */
-  /* Opcode range: 0x20                                                    */
-  /* Stack:        StkElt --> StkElt StkElt                                */
-  /*                                                                       */
-  static void
-  Ins_DUP( INS_ARG )
-  {
-    DO_DUP
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* POP[]:        POP the stack's top element                             */
-  /* Opcode range: 0x21                                                    */
-  /* Stack:        StkElt -->                                              */
-  /*                                                                       */
-  static void
-  Ins_POP( INS_ARG )
-  {
-    /* nothing to do */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* CLEAR[]:      CLEAR the entire stack                                  */
-  /* Opcode range: 0x22                                                    */
-  /* Stack:        StkElt... -->                                           */
-  /*                                                                       */
-  static void
-  Ins_CLEAR( INS_ARG )
-  {
-    DO_CLEAR
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SWAP[]:       SWAP the stack's top two elements                       */
-  /* Opcode range: 0x23                                                    */
-  /* Stack:        2 * StkElt --> 2 * StkElt                               */
-  /*                                                                       */
-  static void
-  Ins_SWAP( INS_ARG )
-  {
-    DO_SWAP
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DEPTH[]:      return the stack DEPTH                                  */
-  /* Opcode range: 0x24                                                    */
-  /* Stack:        --> uint32                                              */
-  /*                                                                       */
-  static void
-  Ins_DEPTH( INS_ARG )
-  {
-    DO_DEPTH
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* CINDEX[]:     Copy INDEXed element                                    */
-  /* Opcode range: 0x25                                                    */
-  /* Stack:        int32 --> StkElt                                        */
-  /*                                                                       */
-  static void
-  Ins_CINDEX( INS_ARG )
-  {
-    DO_CINDEX
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* EIF[]:        End IF                                                  */
-  /* Opcode range: 0x59                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_EIF( INS_ARG )
-  {
-    /* nothing to do */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* JROT[]:       Jump Relative On True                                   */
-  /* Opcode range: 0x78                                                    */
-  /* Stack:        StkElt int32 -->                                        */
-  /*                                                                       */
-  static void
-  Ins_JROT( INS_ARG )
-  {
-    DO_JROT
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* JMPR[]:       JuMP Relative                                           */
-  /* Opcode range: 0x1C                                                    */
-  /* Stack:        int32 -->                                               */
-  /*                                                                       */
-  static void
-  Ins_JMPR( INS_ARG )
-  {
-    DO_JMPR
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* JROF[]:       Jump Relative On False                                  */
-  /* Opcode range: 0x79                                                    */
-  /* Stack:        StkElt int32 -->                                        */
-  /*                                                                       */
-  static void
-  Ins_JROF( INS_ARG )
-  {
-    DO_JROF
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* LT[]:         Less Than                                               */
-  /* Opcode range: 0x50                                                    */
-  /* Stack:        int32? int32? --> bool                                  */
-  /*                                                                       */
-  static void
-  Ins_LT( INS_ARG )
-  {
-    DO_LT
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* LTEQ[]:       Less Than or EQual                                      */
-  /* Opcode range: 0x51                                                    */
-  /* Stack:        int32? int32? --> bool                                  */
-  /*                                                                       */
-  static void
-  Ins_LTEQ( INS_ARG )
-  {
-    DO_LTEQ
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* GT[]:         Greater Than                                            */
-  /* Opcode range: 0x52                                                    */
-  /* Stack:        int32? int32? --> bool                                  */
-  /*                                                                       */
-  static void
-  Ins_GT( INS_ARG )
-  {
-    DO_GT
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* GTEQ[]:       Greater Than or EQual                                   */
-  /* Opcode range: 0x53                                                    */
-  /* Stack:        int32? int32? --> bool                                  */
-  /*                                                                       */
-  static void
-  Ins_GTEQ( INS_ARG )
-  {
-    DO_GTEQ
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* EQ[]:         EQual                                                   */
-  /* Opcode range: 0x54                                                    */
-  /* Stack:        StkElt StkElt --> bool                                  */
-  /*                                                                       */
-  static void
-  Ins_EQ( INS_ARG )
-  {
-    DO_EQ
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* NEQ[]:        Not EQual                                               */
-  /* Opcode range: 0x55                                                    */
-  /* Stack:        StkElt StkElt --> bool                                  */
-  /*                                                                       */
-  static void
-  Ins_NEQ( INS_ARG )
-  {
-    DO_NEQ
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ODD[]:        Is ODD                                                  */
-  /* Opcode range: 0x56                                                    */
-  /* Stack:        f26.6 --> bool                                          */
-  /*                                                                       */
-  static void
-  Ins_ODD( INS_ARG )
-  {
-    DO_ODD
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* EVEN[]:       Is EVEN                                                 */
-  /* Opcode range: 0x57                                                    */
-  /* Stack:        f26.6 --> bool                                          */
-  /*                                                                       */
-  static void
-  Ins_EVEN( INS_ARG )
-  {
-    DO_EVEN
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* AND[]:        logical AND                                             */
-  /* Opcode range: 0x5A                                                    */
-  /* Stack:        uint32 uint32 --> uint32                                */
-  /*                                                                       */
-  static void
-  Ins_AND( INS_ARG )
-  {
-    DO_AND
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* OR[]:         logical OR                                              */
-  /* Opcode range: 0x5B                                                    */
-  /* Stack:        uint32 uint32 --> uint32                                */
-  /*                                                                       */
-  static void
-  Ins_OR( INS_ARG )
-  {
-    DO_OR
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* NOT[]:        logical NOT                                             */
-  /* Opcode range: 0x5C                                                    */
-  /* Stack:        StkElt --> uint32                                       */
-  /*                                                                       */
-  static void
-  Ins_NOT( INS_ARG )
-  {
-    DO_NOT
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ADD[]:        ADD                                                     */
-  /* Opcode range: 0x60                                                    */
-  /* Stack:        f26.6 f26.6 --> f26.6                                   */
-  /*                                                                       */
-  static void
-  Ins_ADD( INS_ARG )
-  {
-    DO_ADD
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SUB[]:        SUBtract                                                */
-  /* Opcode range: 0x61                                                    */
-  /* Stack:        f26.6 f26.6 --> f26.6                                   */
-  /*                                                                       */
-  static void
-  Ins_SUB( INS_ARG )
-  {
-    DO_SUB
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DIV[]:        DIVide                                                  */
-  /* Opcode range: 0x62                                                    */
-  /* Stack:        f26.6 f26.6 --> f26.6                                   */
-  /*                                                                       */
-  static void
-  Ins_DIV( INS_ARG )
-  {
-    DO_DIV
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MUL[]:        MULtiply                                                */
-  /* Opcode range: 0x63                                                    */
-  /* Stack:        f26.6 f26.6 --> f26.6                                   */
-  /*                                                                       */
-  static void
-  Ins_MUL( INS_ARG )
-  {
-    DO_MUL
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ABS[]:        ABSolute value                                          */
-  /* Opcode range: 0x64                                                    */
-  /* Stack:        f26.6 --> f26.6                                         */
-  /*                                                                       */
-  static void
-  Ins_ABS( INS_ARG )
-  {
-    DO_ABS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* NEG[]:        NEGate                                                  */
-  /* Opcode range: 0x65                                                    */
-  /* Stack: f26.6 --> f26.6                                                */
-  /*                                                                       */
-  static void
-  Ins_NEG( INS_ARG )
-  {
-    DO_NEG
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FLOOR[]:      FLOOR                                                   */
-  /* Opcode range: 0x66                                                    */
-  /* Stack:        f26.6 --> f26.6                                         */
-  /*                                                                       */
-  static void
-  Ins_FLOOR( INS_ARG )
-  {
-    DO_FLOOR
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* CEILING[]:    CEILING                                                 */
-  /* Opcode range: 0x67                                                    */
-  /* Stack:        f26.6 --> f26.6                                         */
-  /*                                                                       */
-  static void
-  Ins_CEILING( INS_ARG )
-  {
-    DO_CEILING
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* RS[]:         Read Store                                              */
-  /* Opcode range: 0x43                                                    */
-  /* Stack:        uint32 --> uint32                                       */
-  /*                                                                       */
-  static void
-  Ins_RS( INS_ARG )
-  {
-    DO_RS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* WS[]:         Write Store                                             */
-  /* Opcode range: 0x42                                                    */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_WS( INS_ARG )
-  {
-    DO_WS
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* WCVTP[]:      Write CVT in Pixel units                                */
-  /* Opcode range: 0x44                                                    */
-  /* Stack:        f26.6 uint32 -->                                        */
-  /*                                                                       */
-  static void
-  Ins_WCVTP( INS_ARG )
-  {
-    DO_WCVTP
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* WCVTF[]:      Write CVT in Funits                                     */
-  /* Opcode range: 0x70                                                    */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_WCVTF( INS_ARG )
-  {
-    DO_WCVTF
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* RCVT[]:       Read CVT                                                */
-  /* Opcode range: 0x45                                                    */
-  /* Stack:        uint32 --> f26.6                                        */
-  /*                                                                       */
-  static void
-  Ins_RCVT( INS_ARG )
-  {
-    DO_RCVT
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* AA[]:         Adjust Angle                                            */
-  /* Opcode range: 0x7F                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_AA( INS_ARG )
-  {
-    /* intentionally no longer supported */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DEBUG[]:      DEBUG.  Unsupported.                                    */
-  /* Opcode range: 0x4F                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  /* Note: The original instruction pops a value from the stack.           */
-  /*                                                                       */
-  static void
-  Ins_DEBUG( INS_ARG )
-  {
-    DO_DEBUG
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ROUND[ab]:    ROUND value                                             */
-  /* Opcode range: 0x68-0x6B                                               */
-  /* Stack:        f26.6 --> f26.6                                         */
-  /*                                                                       */
-  static void
-  Ins_ROUND( INS_ARG )
-  {
-    DO_ROUND
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* NROUND[ab]:   No ROUNDing of value                                    */
-  /* Opcode range: 0x6C-0x6F                                               */
-  /* Stack:        f26.6 --> f26.6                                         */
-  /*                                                                       */
-  static void
-  Ins_NROUND( INS_ARG )
-  {
-    DO_NROUND
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MAX[]:        MAXimum                                                 */
-  /* Opcode range: 0x68                                                    */
-  /* Stack:        int32? int32? --> int32                                 */
-  /*                                                                       */
-  static void
-  Ins_MAX( INS_ARG )
-  {
-    DO_MAX
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MIN[]:        MINimum                                                 */
-  /* Opcode range: 0x69                                                    */
-  /* Stack:        int32? int32? --> int32                                 */
-  /*                                                                       */
-  static void
-  Ins_MIN( INS_ARG )
-  {
-    DO_MIN
-  }
-
-
-#endif  /* !TT_CONFIG_OPTION_INTERPRETER_SWITCH */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The following functions are called as is within the switch statement. */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MINDEX[]:     Move INDEXed element                                    */
-  /* Opcode range: 0x26                                                    */
-  /* Stack:        int32? --> StkElt                                       */
-  /*                                                                       */
-  static void
-  Ins_MINDEX( INS_ARG )
-  {
-    FT_Long  L, K;
-
-
-    L = args[0];
-
-    if ( L <= 0 || L > CUR.args )
-    {
-      CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    K = CUR.stack[CUR.args - L];
-
-    FT_ARRAY_MOVE( &CUR.stack[CUR.args - L    ],
-                   &CUR.stack[CUR.args - L + 1],
-                   ( L - 1 ) );
-
-    CUR.stack[CUR.args - 1] = K;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ROLL[]:       ROLL top three elements                                 */
-  /* Opcode range: 0x8A                                                    */
-  /* Stack:        3 * StkElt --> 3 * StkElt                               */
-  /*                                                                       */
-  static void
-  Ins_ROLL( INS_ARG )
-  {
-    FT_Long  A, B, C;
-
-    FT_UNUSED_EXEC;
-
-
-    A = args[2];
-    B = args[1];
-    C = args[0];
-
-    args[2] = C;
-    args[1] = A;
-    args[0] = B;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MANAGING THE FLOW OF CONTROL                                          */
-  /*                                                                       */
-  /*   Instructions appear in the specification's order.                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static FT_Bool
-  SkipCode( EXEC_OP )
-  {
-    CUR.IP += CUR.length;
-
-    if ( CUR.IP < CUR.codeSize )
-    {
-      CUR.opcode = CUR.code[CUR.IP];
-
-      CUR.length = opcode_length[CUR.opcode];
-      if ( CUR.length < 0 )
-      {
-        if ( CUR.IP + 1 > CUR.codeSize )
-          goto Fail_Overflow;
-        CUR.length = CUR.code[CUR.IP + 1] + 2;
-      }
-
-      if ( CUR.IP + CUR.length <= CUR.codeSize )
-        return SUCCESS;
-    }
-
-  Fail_Overflow:
-    CUR.error = TT_Err_Code_Overflow;
-    return FAILURE;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IF[]:         IF test                                                 */
-  /* Opcode range: 0x58                                                    */
-  /* Stack:        StkElt -->                                              */
-  /*                                                                       */
-  static void
-  Ins_IF( INS_ARG )
-  {
-    FT_Int   nIfs;
-    FT_Bool  Out;
-
-
-    if ( args[0] != 0 )
-      return;
-
-    nIfs = 1;
-    Out = 0;
-
-    do
-    {
-      if ( SKIP_Code() == FAILURE )
-        return;
-
-      switch ( CUR.opcode )
-      {
-      case 0x58:      /* IF */
-        nIfs++;
-        break;
-
-      case 0x1B:      /* ELSE */
-        Out = FT_BOOL( nIfs == 1 );
-        break;
-
-      case 0x59:      /* EIF */
-        nIfs--;
-        Out = FT_BOOL( nIfs == 0 );
-        break;
-      }
-    } while ( Out == 0 );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ELSE[]:       ELSE                                                    */
-  /* Opcode range: 0x1B                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_ELSE( INS_ARG )
-  {
-    FT_Int  nIfs;
-
-    FT_UNUSED_ARG;
-
-
-    nIfs = 1;
-
-    do
-    {
-      if ( SKIP_Code() == FAILURE )
-        return;
-
-      switch ( CUR.opcode )
-      {
-      case 0x58:    /* IF */
-        nIfs++;
-        break;
-
-      case 0x59:    /* EIF */
-        nIfs--;
-        break;
-      }
-    } while ( nIfs != 0 );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DEFINING AND USING FUNCTIONS AND INSTRUCTIONS                         */
-  /*                                                                       */
-  /*   Instructions appear in the specification's order.                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FDEF[]:       Function DEFinition                                     */
-  /* Opcode range: 0x2C                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_FDEF( INS_ARG )
-  {
-    FT_ULong       n;
-    TT_DefRecord*  rec;
-    TT_DefRecord*  limit;
-
-
-    /* some font programs are broken enough to redefine functions! */
-    /* We will then parse the current table.                       */
-
-    rec   = CUR.FDefs;
-    limit = rec + CUR.numFDefs;
-    n     = args[0];
-
-    for ( ; rec < limit; rec++ )
-    {
-      if ( rec->opc == n )
-        break;
-    }
-
-    if ( rec == limit )
-    {
-      /* check that there is enough room for new functions */
-      if ( CUR.numFDefs >= CUR.maxFDefs )
-      {
-        CUR.error = TT_Err_Too_Many_Function_Defs;
-        return;
-      }
-      CUR.numFDefs++;
-    }
-
-    rec->range  = CUR.curRange;
-    rec->opc    = n;
-    rec->start  = CUR.IP + 1;
-    rec->active = TRUE;
-
-    if ( n > CUR.maxFunc )
-      CUR.maxFunc = n;
-
-    /* Now skip the whole function definition. */
-    /* We don't allow nested IDEFS & FDEFs.    */
-
-    while ( SKIP_Code() == SUCCESS )
-    {
-      switch ( CUR.opcode )
-      {
-      case 0x89:    /* IDEF */
-      case 0x2C:    /* FDEF */
-        CUR.error = TT_Err_Nested_DEFS;
-        return;
-
-      case 0x2D:   /* ENDF */
-        return;
-      }
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ENDF[]:       END Function definition                                 */
-  /* Opcode range: 0x2D                                                    */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_ENDF( INS_ARG )
-  {
-    TT_CallRec*  pRec;
-
-    FT_UNUSED_ARG;
-
-
-    if ( CUR.callTop <= 0 )     /* We encountered an ENDF without a call */
-    {
-      CUR.error = TT_Err_ENDF_In_Exec_Stream;
-      return;
-    }
-
-    CUR.callTop--;
-
-    pRec = &CUR.callStack[CUR.callTop];
-
-    pRec->Cur_Count--;
-
-    CUR.step_ins = FALSE;
-
-    if ( pRec->Cur_Count > 0 )
-    {
-      CUR.callTop++;
-      CUR.IP = pRec->Cur_Restart;
-    }
-    else
-      /* Loop through the current function */
-      INS_Goto_CodeRange( pRec->Caller_Range,
-                          pRec->Caller_IP );
-
-    /* Exit the current call frame.                      */
-
-    /* NOTE: If the last intruction of a program is a    */
-    /*       CALL or LOOPCALL, the return address is     */
-    /*       always out of the code range.  This is a    */
-    /*       valid address, and it is why we do not test */
-    /*       the result of Ins_Goto_CodeRange() here!    */
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* CALL[]:       CALL function                                           */
-  /* Opcode range: 0x2B                                                    */
-  /* Stack:        uint32? -->                                             */
-  /*                                                                       */
-  static void
-  Ins_CALL( INS_ARG )
-  {
-    FT_ULong       F;
-    TT_CallRec*    pCrec;
-    TT_DefRecord*  def;
-
-
-    /* first of all, check the index */
-
-    F = args[0];
-    if ( BOUNDS( F, CUR.maxFunc + 1 ) )
-      goto Fail;
-
-    /* Except for some old Apple fonts, all functions in a TrueType */
-    /* font are defined in increasing order, starting from 0.  This */
-    /* means that we normally have                                  */
-    /*                                                              */
-    /*    CUR.maxFunc+1 == CUR.numFDefs                             */
-    /*    CUR.FDefs[n].opc == n for n in 0..CUR.maxFunc             */
-    /*                                                              */
-    /* If this isn't true, we need to look up the function table.   */
-
-    def = CUR.FDefs + F;
-    if ( CUR.maxFunc + 1 != CUR.numFDefs || def->opc != F )
-    {
-      /* look up the FDefs table */
-      TT_DefRecord*  limit;
-
-
-      def   = CUR.FDefs;
-      limit = def + CUR.numFDefs;
-
-      while ( def < limit && def->opc != F )
-        def++;
-
-      if ( def == limit )
-        goto Fail;
-    }
-
-    /* check that the function is active */
-    if ( !def->active )
-      goto Fail;
-
-    /* check the call stack */
-    if ( CUR.callTop >= CUR.callSize )
-    {
-      CUR.error = TT_Err_Stack_Overflow;
-      return;
-    }
-
-    pCrec = CUR.callStack + CUR.callTop;
-
-    pCrec->Caller_Range = CUR.curRange;
-    pCrec->Caller_IP    = CUR.IP + 1;
-    pCrec->Cur_Count    = 1;
-    pCrec->Cur_Restart  = def->start;
-
-    CUR.callTop++;
-
-    INS_Goto_CodeRange( def->range,
-                        def->start );
-
-    CUR.step_ins = FALSE;
-    return;
-
-  Fail:
-    CUR.error = TT_Err_Invalid_Reference;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* LOOPCALL[]:   LOOP and CALL function                                  */
-  /* Opcode range: 0x2A                                                    */
-  /* Stack:        uint32? Eint16? -->                                     */
-  /*                                                                       */
-  static void
-  Ins_LOOPCALL( INS_ARG )
-  {
-    FT_ULong       F;
-    TT_CallRec*    pCrec;
-    TT_DefRecord*  def;
-
-
-    /* first of all, check the index */
-    F = args[1];
-    if ( BOUNDS( F, CUR.maxFunc + 1 ) )
-      goto Fail;
-
-    /* Except for some old Apple fonts, all functions in a TrueType */
-    /* font are defined in increasing order, starting from 0.  This */
-    /* means that we normally have                                  */
-    /*                                                              */
-    /*    CUR.maxFunc+1 == CUR.numFDefs                             */
-    /*    CUR.FDefs[n].opc == n for n in 0..CUR.maxFunc             */
-    /*                                                              */
-    /* If this isn't true, we need to look up the function table.   */
-
-    def = CUR.FDefs + F;
-    if ( CUR.maxFunc + 1 != CUR.numFDefs || def->opc != F )
-    {
-      /* look up the FDefs table */
-      TT_DefRecord*  limit;
-
-
-      def   = CUR.FDefs;
-      limit = def + CUR.numFDefs;
-
-      while ( def < limit && def->opc != F )
-        def++;
-
-      if ( def == limit )
-        goto Fail;
-    }
-
-    /* check that the function is active */
-    if ( !def->active )
-      goto Fail;
-
-    /* check stack */
-    if ( CUR.callTop >= CUR.callSize )
-    {
-      CUR.error = TT_Err_Stack_Overflow;
-      return;
-    }
-
-    if ( args[0] > 0 )
-    {
-      pCrec = CUR.callStack + CUR.callTop;
-
-      pCrec->Caller_Range = CUR.curRange;
-      pCrec->Caller_IP    = CUR.IP + 1;
-      pCrec->Cur_Count    = (FT_Int)args[0];
-      pCrec->Cur_Restart  = def->start;
-
-      CUR.callTop++;
-
-      INS_Goto_CodeRange( def->range, def->start );
-
-      CUR.step_ins = FALSE;
-    }
-    return;
-
-  Fail:
-    CUR.error = TT_Err_Invalid_Reference;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IDEF[]:       Instruction DEFinition                                  */
-  /* Opcode range: 0x89                                                    */
-  /* Stack:        Eint8 -->                                               */
-  /*                                                                       */
-  static void
-  Ins_IDEF( INS_ARG )
-  {
-    TT_DefRecord*  def;
-    TT_DefRecord*  limit;
-
-
-    /*  First of all, look for the same function in our table */
-
-    def   = CUR.IDefs;
-    limit = def + CUR.numIDefs;
-
-    for ( ; def < limit; def++ )
-      if ( def->opc == (FT_ULong)args[0] )
-        break;
-
-    if ( def == limit )
-    {
-      /* check that there is enough room for a new instruction */
-      if ( CUR.numIDefs >= CUR.maxIDefs )
-      {
-        CUR.error = TT_Err_Too_Many_Instruction_Defs;
-        return;
-      }
-      CUR.numIDefs++;
-    }
-
-    def->opc    = args[0];
-    def->start  = CUR.IP+1;
-    def->range  = CUR.curRange;
-    def->active = TRUE;
-
-    if ( (FT_ULong)args[0] > CUR.maxIns )
-      CUR.maxIns = args[0];
-
-    /* Now skip the whole function definition. */
-    /* We don't allow nested IDEFs & FDEFs.    */
-
-    while ( SKIP_Code() == SUCCESS )
-    {
-      switch ( CUR.opcode )
-      {
-      case 0x89:   /* IDEF */
-      case 0x2C:   /* FDEF */
-        CUR.error = TT_Err_Nested_DEFS;
-        return;
-      case 0x2D:   /* ENDF */
-        return;
-      }
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* PUSHING DATA ONTO THE INTERPRETER STACK                               */
-  /*                                                                       */
-  /*   Instructions appear in the specification's order.                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* NPUSHB[]:     PUSH N Bytes                                            */
-  /* Opcode range: 0x40                                                    */
-  /* Stack:        --> uint32...                                           */
-  /*                                                                       */
-  static void
-  Ins_NPUSHB( INS_ARG )
-  {
-    FT_UShort  L, K;
-
-
-    L = (FT_UShort)CUR.code[CUR.IP + 1];
-
-    if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) )
-    {
-      CUR.error = TT_Err_Stack_Overflow;
-      return;
-    }
-
-    for ( K = 1; K <= L; K++ )
-      args[K - 1] = CUR.code[CUR.IP + K + 1];
-
-    CUR.new_top += L;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* NPUSHW[]:     PUSH N Words                                            */
-  /* Opcode range: 0x41                                                    */
-  /* Stack:        --> int32...                                            */
-  /*                                                                       */
-  static void
-  Ins_NPUSHW( INS_ARG )
-  {
-    FT_UShort  L, K;
-
-
-    L = (FT_UShort)CUR.code[CUR.IP + 1];
-
-    if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) )
-    {
-      CUR.error = TT_Err_Stack_Overflow;
-      return;
-    }
-
-    CUR.IP += 2;
-
-    for ( K = 0; K < L; K++ )
-      args[K] = GET_ShortIns();
-
-    CUR.step_ins = FALSE;
-    CUR.new_top += L;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* PUSHB[abc]:   PUSH Bytes                                              */
-  /* Opcode range: 0xB0-0xB7                                               */
-  /* Stack:        --> uint32...                                           */
-  /*                                                                       */
-  static void
-  Ins_PUSHB( INS_ARG )
-  {
-    FT_UShort  L, K;
-
-
-    L = (FT_UShort)(CUR.opcode - 0xB0 + 1);
-
-    if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) )
-    {
-      CUR.error = TT_Err_Stack_Overflow;
-      return;
-    }
-
-    for ( K = 1; K <= L; K++ )
-      args[K - 1] = CUR.code[CUR.IP + K];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* PUSHW[abc]:   PUSH Words                                              */
-  /* Opcode range: 0xB8-0xBF                                               */
-  /* Stack:        --> int32...                                            */
-  /*                                                                       */
-  static void
-  Ins_PUSHW( INS_ARG )
-  {
-    FT_UShort  L, K;
-
-
-    L = (FT_UShort)(CUR.opcode - 0xB8 + 1);
-
-    if ( BOUNDS( L, CUR.stackSize + 1 - CUR.top ) )
-    {
-      CUR.error = TT_Err_Stack_Overflow;
-      return;
-    }
-
-    CUR.IP++;
-
-    for ( K = 0; K < L; K++ )
-      args[K] = GET_ShortIns();
-
-    CUR.step_ins = FALSE;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MANAGING THE GRAPHICS STATE                                           */
-  /*                                                                       */
-  /*  Instructions appear in the specs' order.                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* GC[a]:        Get Coordinate projected onto                           */
-  /* Opcode range: 0x46-0x47                                               */
-  /* Stack:        uint32 --> f26.6                                        */
-  /*                                                                       */
-  /* BULLSHIT: Measures from the original glyph must be taken along the    */
-  /*           dual projection vector!                                     */
-  /*                                                                       */
-  static void
-  Ins_GC( INS_ARG )
-  {
-    FT_ULong    L;
-    FT_F26Dot6  R;
-
-
-    L = (FT_ULong)args[0];
-
-    if ( BOUNDS( L, CUR.zp2.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-      {
-        CUR.error = TT_Err_Invalid_Reference;
-        return;
-      }
-      else
-        R = 0;
-    }
-    else
-    {
-      if ( CUR.opcode & 1 )
-        R = CUR_Func_dualproj( CUR.zp2.org + L, NULL_Vector );
-      else
-        R = CUR_Func_project( CUR.zp2.cur + L, NULL_Vector );
-    }
-
-    args[0] = R;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SCFS[]:       Set Coordinate From Stack                               */
-  /* Opcode range: 0x48                                                    */
-  /* Stack:        f26.6 uint32 -->                                        */
-  /*                                                                       */
-  /* Formula:                                                              */
-  /*                                                                       */
-  /*   OA := OA + ( value - OA.p )/( f.p ) * f                             */
-  /*                                                                       */
-  static void
-  Ins_SCFS( INS_ARG )
-  {
-    FT_Long    K;
-    FT_UShort  L;
-
-
-    L = (FT_UShort)args[0];
-
-    if ( BOUNDS( L, CUR.zp2.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    K = CUR_Func_project( CUR.zp2.cur + L, NULL_Vector );
-
-    CUR_Func_move( &CUR.zp2, L, args[1] - K );
-
-    /* not part of the specs, but here for safety */
-
-    if ( CUR.GS.gep2 == 0 )
-      CUR.zp2.org[L] = CUR.zp2.cur[L];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MD[a]:        Measure Distance                                        */
-  /* Opcode range: 0x49-0x4A                                               */
-  /* Stack:        uint32 uint32 --> f26.6                                 */
-  /*                                                                       */
-  /* BULLSHIT: Measure taken in the original glyph must be along the dual  */
-  /*           projection vector.                                          */
-  /*                                                                       */
-  /* Second BULLSHIT: Flag attributes are inverted!                        */
-  /*                  0 => measure distance in original outline            */
-  /*                  1 => measure distance in grid-fitted outline         */
-  /*                                                                       */
-  /* Third one: `zp0 - zp1', and not `zp2 - zp1!                           */
-  /*                                                                       */
-  static void
-  Ins_MD( INS_ARG )
-  {
-    FT_UShort   K, L;
-    FT_F26Dot6  D;
-
-
-    K = (FT_UShort)args[1];
-    L = (FT_UShort)args[0];
-
-    if( BOUNDS( L, CUR.zp0.n_points ) ||
-        BOUNDS( K, CUR.zp1.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-      {
-        CUR.error = TT_Err_Invalid_Reference;
-        return;
-      }
-      D = 0;
-    }
-    else
-    {
-      if ( CUR.opcode & 1 )
-        D = CUR_Func_project( CUR.zp0.cur + L, CUR.zp1.cur + K );
-      else
-        D = CUR_Func_dualproj( CUR.zp0.org + L, CUR.zp1.org + K );
-    }
-
-    args[0] = D;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SDPVTL[a]:    Set Dual PVector to Line                                */
-  /* Opcode range: 0x86-0x87                                               */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_SDPVTL( INS_ARG )
-  {
-    FT_Long    A, B, C;
-    FT_UShort  p1, p2;   /* was FT_Int in pas type ERROR */
-
-
-    p1 = (FT_UShort)args[1];
-    p2 = (FT_UShort)args[0];
-
-    if ( BOUNDS( p2, CUR.zp1.n_points ) ||
-         BOUNDS( p1, CUR.zp2.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    {
-      FT_Vector* v1 = CUR.zp1.org + p2;
-      FT_Vector* v2 = CUR.zp2.org + p1;
-
-
-      A = v1->x - v2->x;
-      B = v1->y - v2->y;
-    }
-
-    if ( ( CUR.opcode & 1 ) != 0 )
-    {
-      C =  B;   /* counter clockwise rotation */
-      B =  A;
-      A = -C;
-    }
-
-    NORMalize( A, B, &CUR.GS.dualVector );
-
-    {
-      FT_Vector*  v1 = CUR.zp1.cur + p2;
-      FT_Vector*  v2 = CUR.zp2.cur + p1;
-
-
-      A = v1->x - v2->x;
-      B = v1->y - v2->y;
-    }
-
-    if ( ( CUR.opcode & 1 ) != 0 )
-    {
-      C =  B;   /* counter clockwise rotation */
-      B =  A;
-      A = -C;
-    }
-
-    NORMalize( A, B, &CUR.GS.projVector );
-
-    GUESS_VECTOR( freeVector );
-
-    COMPUTE_Funcs();
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SZP0[]:       Set Zone Pointer 0                                      */
-  /* Opcode range: 0x13                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SZP0( INS_ARG )
-  {
-    switch ( (FT_Int)args[0] )
-    {
-    case 0:
-      CUR.zp0 = CUR.twilight;
-      break;
-
-    case 1:
-      CUR.zp0 = CUR.pts;
-      break;
-
-    default:
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    CUR.GS.gep0 = (FT_UShort)args[0];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SZP1[]:       Set Zone Pointer 1                                      */
-  /* Opcode range: 0x14                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SZP1( INS_ARG )
-  {
-    switch ( (FT_Int)args[0] )
-    {
-    case 0:
-      CUR.zp1 = CUR.twilight;
-      break;
-
-    case 1:
-      CUR.zp1 = CUR.pts;
-      break;
-
-    default:
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    CUR.GS.gep1 = (FT_UShort)args[0];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SZP2[]:       Set Zone Pointer 2                                      */
-  /* Opcode range: 0x15                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SZP2( INS_ARG )
-  {
-    switch ( (FT_Int)args[0] )
-    {
-    case 0:
-      CUR.zp2 = CUR.twilight;
-      break;
-
-    case 1:
-      CUR.zp2 = CUR.pts;
-      break;
-
-    default:
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    CUR.GS.gep2 = (FT_UShort)args[0];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SZPS[]:       Set Zone PointerS                                       */
-  /* Opcode range: 0x16                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SZPS( INS_ARG )
-  {
-    switch ( (FT_Int)args[0] )
-    {
-    case 0:
-      CUR.zp0 = CUR.twilight;
-      break;
-
-    case 1:
-      CUR.zp0 = CUR.pts;
-      break;
-
-    default:
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    CUR.zp1 = CUR.zp0;
-    CUR.zp2 = CUR.zp0;
-
-    CUR.GS.gep0 = (FT_UShort)args[0];
-    CUR.GS.gep1 = (FT_UShort)args[0];
-    CUR.GS.gep2 = (FT_UShort)args[0];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* INSTCTRL[]:   INSTruction ConTRoL                                     */
-  /* Opcode range: 0x8e                                                    */
-  /* Stack:        int32 int32 -->                                         */
-  /*                                                                       */
-  static void
-  Ins_INSTCTRL( INS_ARG )
-  {
-    FT_Long  K, L;
-
-
-    K = args[1];
-    L = args[0];
-
-    if ( K < 1 || K > 2 )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    if ( L != 0 )
-        L = K;
-
-    CUR.GS.instruct_control = FT_BOOL(
-      ( (FT_Byte)CUR.GS.instruct_control & ~(FT_Byte)K ) | (FT_Byte)L );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SCANCTRL[]:   SCAN ConTRoL                                            */
-  /* Opcode range: 0x85                                                    */
-  /* Stack:        uint32? -->                                             */
-  /*                                                                       */
-  static void
-  Ins_SCANCTRL( INS_ARG )
-  {
-    FT_Int  A;
-
-
-    /* Get Threshold */
-    A = (FT_Int)( args[0] & 0xFF );
-
-    if ( A == 0xFF )
-    {
-      CUR.GS.scan_control = TRUE;
-      return;
-    }
-    else if ( A == 0 )
-    {
-      CUR.GS.scan_control = FALSE;
-      return;
-    }
-
-    A *= 64;
-
-#if 0
-    if ( (args[0] & 0x100) != 0 && CUR.metrics.pointSize <= A )
-      CUR.GS.scan_control = TRUE;
-#endif
-
-    if ( (args[0] & 0x200) != 0 && CUR.tt_metrics.rotated )
-      CUR.GS.scan_control = TRUE;
-
-    if ( (args[0] & 0x400) != 0 && CUR.tt_metrics.stretched )
-      CUR.GS.scan_control = TRUE;
-
-#if 0
-    if ( (args[0] & 0x800) != 0 && CUR.metrics.pointSize > A )
-      CUR.GS.scan_control = FALSE;
-#endif
-
-    if ( (args[0] & 0x1000) != 0 && CUR.tt_metrics.rotated )
-      CUR.GS.scan_control = FALSE;
-
-    if ( (args[0] & 0x2000) != 0 && CUR.tt_metrics.stretched )
-      CUR.GS.scan_control = FALSE;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SCANTYPE[]:   SCAN TYPE                                               */
-  /* Opcode range: 0x8D                                                    */
-  /* Stack:        uint32? -->                                             */
-  /*                                                                       */
-  static void
-  Ins_SCANTYPE( INS_ARG )
-  {
-    /* for compatibility with future enhancements, */
-    /* we must ignore new modes                    */
-
-    if ( args[0] >= 0 && args[0] <= 5 )
-    {
-      if ( args[0] == 3 )
-        args[0] = 2;
-
-      CUR.GS.scan_type = (FT_Int)args[0];
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MANAGING OUTLINES                                                     */
-  /*                                                                       */
-  /*   Instructions appear in the specification's order.                   */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FLIPPT[]:     FLIP PoinT                                              */
-  /* Opcode range: 0x80                                                    */
-  /* Stack:        uint32... -->                                           */
-  /*                                                                       */
-  static void
-  Ins_FLIPPT( INS_ARG )
-  {
-    FT_UShort  point;
-
-    FT_UNUSED_ARG;
-
-
-    if ( CUR.top < CUR.GS.loop )
-    {
-      CUR.error = TT_Err_Too_Few_Arguments;
-      return;
-    }
-
-    while ( CUR.GS.loop > 0 )
-    {
-      CUR.args--;
-
-      point = (FT_UShort)CUR.stack[CUR.args];
-
-      if ( BOUNDS( point, CUR.pts.n_points ) )
-      {
-        if ( CUR.pedantic_hinting )
-        {
-          CUR.error = TT_Err_Invalid_Reference;
-          return;
-        }
-      }
-      else
-        CUR.pts.tags[point] ^= FT_CURVE_TAG_ON;
-
-      CUR.GS.loop--;
-    }
-
-    CUR.GS.loop = 1;
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FLIPRGON[]:   FLIP RanGe ON                                           */
-  /* Opcode range: 0x81                                                    */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_FLIPRGON( INS_ARG )
-  {
-    FT_UShort  I, K, L;
-
-
-    K = (FT_UShort)args[1];
-    L = (FT_UShort)args[0];
-
-    if ( BOUNDS( K, CUR.pts.n_points ) ||
-         BOUNDS( L, CUR.pts.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    for ( I = L; I <= K; I++ )
-      CUR.pts.tags[I] |= FT_CURVE_TAG_ON;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* FLIPRGOFF:    FLIP RanGe OFF                                          */
-  /* Opcode range: 0x82                                                    */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_FLIPRGOFF( INS_ARG )
-  {
-    FT_UShort  I, K, L;
-
-
-    K = (FT_UShort)args[1];
-    L = (FT_UShort)args[0];
-
-    if ( BOUNDS( K, CUR.pts.n_points ) ||
-         BOUNDS( L, CUR.pts.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    for ( I = L; I <= K; I++ )
-      CUR.pts.tags[I] &= ~FT_CURVE_TAG_ON;
-  }
-
-
-  static FT_Bool
-  Compute_Point_Displacement( EXEC_OP_ FT_F26Dot6*   x,
-                                       FT_F26Dot6*   y,
-                                       TT_GlyphZone  zone,
-                                       FT_UShort*    refp )
-  {
-    TT_GlyphZoneRec  zp;
-    FT_UShort        p;
-    FT_F26Dot6       d;
-
-
-    if ( CUR.opcode & 1 )
-    {
-      zp = CUR.zp0;
-      p  = CUR.GS.rp1;
-    }
-    else
-    {
-      zp = CUR.zp1;
-      p  = CUR.GS.rp2;
-    }
-
-    if ( BOUNDS( p, zp.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return FAILURE;
-    }
-
-    *zone = zp;
-    *refp = p;
-
-    d = CUR_Func_project( zp.cur + p, zp.org + p );
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    if ( CUR.face->unpatented_hinting )
-    {
-      if ( CUR.GS.both_x_axis )
-      {
-        *x = d;
-        *y = 0;
-      }
-      else
-      {
-        *x = 0;
-        *y = d;
-      }
-    }
-    else
-#endif
-    {
-      *x = TT_MULDIV( d,
-                      (FT_Long)CUR.GS.freeVector.x * 0x10000L,
-                      CUR.F_dot_P );
-      *y = TT_MULDIV( d,
-                      (FT_Long)CUR.GS.freeVector.y * 0x10000L,
-                      CUR.F_dot_P );
-    }
-
-    return SUCCESS;
-  }
-
-
-  static void
-  Move_Zp2_Point( EXEC_OP_ FT_UShort   point,
-                           FT_F26Dot6  dx,
-                           FT_F26Dot6  dy,
-                           FT_Bool     touch )
-  {
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    if ( CUR.face->unpatented_hinting )
-    {
-      if ( CUR.GS.both_x_axis )
-      {
-        CUR.zp2.cur[point].x += dx;
-        if ( touch )
-          CUR.zp2.tags[point] |= FT_CURVE_TAG_TOUCH_X;
-      }
-      else
-      {
-        CUR.zp2.cur[point].y += dy;
-        if ( touch )
-          CUR.zp2.tags[point] |= FT_CURVE_TAG_TOUCH_Y;
-      }
-      return;
-    }
-#endif
-
-    if ( CUR.GS.freeVector.x != 0 )
-    {
-      CUR.zp2.cur[point].x += dx;
-      if ( touch )
-        CUR.zp2.tags[point] |= FT_CURVE_TAG_TOUCH_X;
-    }
-
-    if ( CUR.GS.freeVector.y != 0 )
-    {
-      CUR.zp2.cur[point].y += dy;
-      if ( touch )
-        CUR.zp2.tags[point] |= FT_CURVE_TAG_TOUCH_Y;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SHP[a]:       SHift Point by the last point                           */
-  /* Opcode range: 0x32-0x33                                               */
-  /* Stack:        uint32... -->                                           */
-  /*                                                                       */
-  static void
-  Ins_SHP( INS_ARG )
-  {
-    TT_GlyphZoneRec  zp;
-    FT_UShort        refp;
-
-    FT_F26Dot6       dx,
-                     dy;
-    FT_UShort        point;
-
-    FT_UNUSED_ARG;
-
-
-    if ( CUR.top < CUR.GS.loop )
-    {
-      CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) )
-      return;
-
-    while ( CUR.GS.loop > 0 )
-    {
-      CUR.args--;
-      point = (FT_UShort)CUR.stack[CUR.args];
-
-      if ( BOUNDS( point, CUR.zp2.n_points ) )
-      {
-        if ( CUR.pedantic_hinting )
-        {
-          CUR.error = TT_Err_Invalid_Reference;
-          return;
-        }
-      }
-      else
-        /* XXX: UNDOCUMENTED! SHP touches the points */
-        MOVE_Zp2_Point( point, dx, dy, TRUE );
-
-      CUR.GS.loop--;
-    }
-
-    CUR.GS.loop = 1;
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SHC[a]:       SHift Contour                                           */
-  /* Opcode range: 0x34-35                                                 */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SHC( INS_ARG )
-  {
-    TT_GlyphZoneRec zp;
-    FT_UShort       refp;
-    FT_F26Dot6      dx,
-                    dy;
-
-    FT_Short        contour;
-    FT_UShort       first_point, last_point, i;
-
-
-    contour = (FT_UShort)args[0];
-
-    if ( BOUNDS( contour, CUR.pts.n_contours ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) )
-      return;
-
-    if ( contour == 0 )
-      first_point = 0;
-    else
-      first_point = (FT_UShort)(CUR.pts.contours[contour - 1] + 1);
-
-    last_point = CUR.pts.contours[contour];
-
-    /* XXX: this is probably wrong... at least it prevents memory */
-    /*      corruption when zp2 is the twilight zone              */
-    if ( last_point > CUR.zp2.n_points )
-    {
-      if ( CUR.zp2.n_points > 0 )
-        last_point = (FT_UShort)(CUR.zp2.n_points - 1);
-      else
-        last_point = 0;
-    }
-
-    /* XXX: UNDOCUMENTED! SHC does touch the points */
-    for ( i = first_point; i <= last_point; i++ )
-    {
-      if ( zp.cur != CUR.zp2.cur || refp != i )
-        MOVE_Zp2_Point( i, dx, dy, TRUE );
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SHZ[a]:       SHift Zone                                              */
-  /* Opcode range: 0x36-37                                                 */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_SHZ( INS_ARG )
-  {
-    TT_GlyphZoneRec zp;
-    FT_UShort       refp;
-    FT_F26Dot6      dx,
-                    dy;
-
-    FT_UShort       last_point, i;
-
-
-    if ( BOUNDS( args[0], 2 ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) )
-      return;
-
-    if ( CUR.zp2.n_points > 0 )
-      last_point = (FT_UShort)(CUR.zp2.n_points - 1);
-    else
-      last_point = 0;
-
-    /* XXX: UNDOCUMENTED! SHZ doesn't touch the points */
-    for ( i = 0; i <= last_point; i++ )
-    {
-      if ( zp.cur != CUR.zp2.cur || refp != i )
-        MOVE_Zp2_Point( i, dx, dy, FALSE );
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* SHPIX[]:      SHift points by a PIXel amount                          */
-  /* Opcode range: 0x38                                                    */
-  /* Stack:        f26.6 uint32... -->                                     */
-  /*                                                                       */
-  static void
-  Ins_SHPIX( INS_ARG )
-  {
-    FT_F26Dot6  dx, dy;
-    FT_UShort   point;
-
-
-    if ( CUR.top < CUR.GS.loop + 1 )
-    {
-      CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    if ( CUR.face->unpatented_hinting )
-    {
-      if ( CUR.GS.both_x_axis )
-      {
-        dx = TT_MulFix14( args[0], 0x4000 );
-        dy = 0;
-      }
-      else
-      {
-        dx = 0;
-        dy = TT_MulFix14( args[0], 0x4000 );
-      }
-    }
-    else
-#endif
-    {
-      dx = TT_MulFix14( args[0], CUR.GS.freeVector.x );
-      dy = TT_MulFix14( args[0], CUR.GS.freeVector.y );
-    }
-
-    while ( CUR.GS.loop > 0 )
-    {
-      CUR.args--;
-
-      point = (FT_UShort)CUR.stack[CUR.args];
-
-      if ( BOUNDS( point, CUR.zp2.n_points ) )
-      {
-        if ( CUR.pedantic_hinting )
-        {
-          CUR.error = TT_Err_Invalid_Reference;
-          return;
-        }
-      }
-      else
-        MOVE_Zp2_Point( point, dx, dy, TRUE );
-
-      CUR.GS.loop--;
-    }
-
-    CUR.GS.loop = 1;
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MSIRP[a]:     Move Stack Indirect Relative Position                   */
-  /* Opcode range: 0x3A-0x3B                                               */
-  /* Stack:        f26.6 uint32 -->                                        */
-  /*                                                                       */
-  static void
-  Ins_MSIRP( INS_ARG )
-  {
-    FT_UShort   point;
-    FT_F26Dot6  distance;
-
-
-    point = (FT_UShort)args[0];
-
-    if ( BOUNDS( point,      CUR.zp1.n_points ) ||
-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    /* XXX: UNDOCUMENTED! behaviour */
-    if ( CUR.GS.gep1 == 0 )   /* if the point that is to be moved */
-                              /* is in twilight zone              */
-    {
-      CUR.zp1.org[point] = CUR.zp0.org[CUR.GS.rp0];
-      CUR_Func_move_orig( &CUR.zp1, point, args[1] );
-      CUR.zp1.cur[point] = CUR.zp1.org[point];
-    }
-
-    distance = CUR_Func_project( CUR.zp1.cur + point,
-                                 CUR.zp0.cur + CUR.GS.rp0 );
-
-    CUR_Func_move( &CUR.zp1, point, args[1] - distance );
-
-    CUR.GS.rp1 = CUR.GS.rp0;
-    CUR.GS.rp2 = point;
-
-    if ( (CUR.opcode & 1) != 0 )
-      CUR.GS.rp0 = point;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MDAP[a]:      Move Direct Absolute Point                              */
-  /* Opcode range: 0x2E-0x2F                                               */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_MDAP( INS_ARG )
-  {
-    FT_UShort   point;
-    FT_F26Dot6  cur_dist,
-                distance;
-
-
-    point = (FT_UShort)args[0];
-
-    if ( BOUNDS( point, CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    /* XXX: Is there some undocumented feature while in the */
-    /*      twilight zone? ?                                */
-    if ( ( CUR.opcode & 1 ) != 0 )
-    {
-      cur_dist = CUR_Func_project( CUR.zp0.cur + point, NULL_Vector );
-      distance = CUR_Func_round( cur_dist,
-                                 CUR.tt_metrics.compensations[0] ) - cur_dist;
-    }
-    else
-      distance = 0;
-
-    CUR_Func_move( &CUR.zp0, point, distance );
-
-    CUR.GS.rp0 = point;
-    CUR.GS.rp1 = point;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MIAP[a]:      Move Indirect Absolute Point                            */
-  /* Opcode range: 0x3E-0x3F                                               */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_MIAP( INS_ARG )
-  {
-    FT_ULong    cvtEntry;
-    FT_UShort   point;
-    FT_F26Dot6  distance,
-                org_dist;
-
-
-    cvtEntry = (FT_ULong)args[1];
-    point    = (FT_UShort)args[0];
-
-    if ( BOUNDS( point,    CUR.zp0.n_points ) ||
-         BOUNDS( cvtEntry, CUR.cvtSize )      )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    /* UNDOCUMENTED!                                     */
-    /*                                                   */
-    /* The behaviour of an MIAP instruction is quite     */
-    /* different when used in the twilight zone.         */
-    /*                                                   */
-    /* First, no control value cutin test is performed   */
-    /* as it would fail anyway.  Second, the original    */
-    /* point, i.e. (org_x,org_y) of zp0.point, is set    */
-    /* to the absolute, unrounded distance found in      */
-    /* the CVT.                                          */
-    /*                                                   */
-    /* This is used in the CVT programs of the Microsoft */
-    /* fonts Arial, Times, etc., in order to re-adjust   */
-    /* some key font heights.  It allows the use of the  */
-    /* IP instruction in the twilight zone, which        */
-    /* otherwise would be `illegal' according to the     */
-    /* specification.                                    */
-    /*                                                   */
-    /* We implement it with a special sequence for the   */
-    /* twilight zone.  This is a bad hack, but it seems  */
-    /* to work.                                          */
-
-    distance = CUR_Func_read_cvt( cvtEntry );
-
-    if ( CUR.GS.gep0 == 0 )   /* If in twilight zone */
-    {
-      CUR.zp0.org[point].x = TT_MulFix14( distance, CUR.GS.freeVector.x );
-      CUR.zp0.org[point].y = TT_MulFix14( distance, CUR.GS.freeVector.y ),
-      CUR.zp0.cur[point]   = CUR.zp0.org[point];
-    }
-
-    org_dist = CUR_Func_project( CUR.zp0.cur + point, NULL_Vector );
-
-    if ( ( CUR.opcode & 1 ) != 0 )   /* rounding and control cutin flag */
-    {
-      if ( FT_ABS( distance - org_dist ) > CUR.GS.control_value_cutin )
-        distance = org_dist;
-
-      distance = CUR_Func_round( distance, CUR.tt_metrics.compensations[0] );
-    }
-
-    CUR_Func_move( &CUR.zp0, point, distance - org_dist );
-
-    CUR.GS.rp0 = point;
-    CUR.GS.rp1 = point;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MDRP[abcde]:  Move Direct Relative Point                              */
-  /* Opcode range: 0xC0-0xDF                                               */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_MDRP( INS_ARG )
-  {
-    FT_UShort   point;
-    FT_F26Dot6  org_dist, distance;
-
-
-    point = (FT_UShort)args[0];
-
-    if ( BOUNDS( point,      CUR.zp1.n_points ) ||
-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    /* XXX: Is there some undocumented feature while in the */
-    /*      twilight zone?                                  */
-
-    org_dist = CUR_Func_dualproj( CUR.zp1.org + point,
-                                  CUR.zp0.org + CUR.GS.rp0 );
-
-    /* single width cutin test */
-
-    if ( FT_ABS( org_dist - CUR.GS.single_width_value ) <
-         CUR.GS.single_width_cutin )
-    {
-      if ( org_dist >= 0 )
-        org_dist = CUR.GS.single_width_value;
-      else
-        org_dist = -CUR.GS.single_width_value;
-    }
-
-    /* round flag */
-
-    if ( ( CUR.opcode & 4 ) != 0 )
-      distance = CUR_Func_round(
-                   org_dist,
-                   CUR.tt_metrics.compensations[CUR.opcode & 3] );
-    else
-      distance = ROUND_None(
-                   org_dist,
-                   CUR.tt_metrics.compensations[CUR.opcode & 3] );
-
-    /* minimum distance flag */
-
-    if ( ( CUR.opcode & 8 ) != 0 )
-    {
-      if ( org_dist >= 0 )
-      {
-        if ( distance < CUR.GS.minimum_distance )
-          distance = CUR.GS.minimum_distance;
-      }
-      else
-      {
-        if ( distance > -CUR.GS.minimum_distance )
-          distance = -CUR.GS.minimum_distance;
-      }
-    }
-
-    /* now move the point */
-
-    org_dist = CUR_Func_project( CUR.zp1.cur + point,
-                                 CUR.zp0.cur + CUR.GS.rp0 );
-
-    CUR_Func_move( &CUR.zp1, point, distance - org_dist );
-
-    CUR.GS.rp1 = CUR.GS.rp0;
-    CUR.GS.rp2 = point;
-
-    if ( ( CUR.opcode & 16 ) != 0 )
-      CUR.GS.rp0 = point;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MIRP[abcde]:  Move Indirect Relative Point                            */
-  /* Opcode range: 0xE0-0xFF                                               */
-  /* Stack:        int32? uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_MIRP( INS_ARG )
-  {
-    FT_UShort   point;
-    FT_ULong    cvtEntry;
-
-    FT_F26Dot6  cvt_dist,
-                distance,
-                cur_dist,
-                org_dist;
-
-
-    point    = (FT_UShort)args[0];
-    cvtEntry = (FT_ULong)( args[1] + 1 );
-
-    /* XXX: UNDOCUMENTED! cvt[-1] = 0 always */
-
-    if ( BOUNDS( point,      CUR.zp1.n_points ) ||
-         BOUNDS( cvtEntry,   CUR.cvtSize + 1 )  ||
-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    if ( !cvtEntry )
-      cvt_dist = 0;
-    else
-      cvt_dist = CUR_Func_read_cvt( cvtEntry - 1 );
-
-    /* single width test */
-
-    if ( FT_ABS( cvt_dist - CUR.GS.single_width_value ) <
-         CUR.GS.single_width_cutin )
-    {
-      if ( cvt_dist >= 0 )
-        cvt_dist =  CUR.GS.single_width_value;
-      else
-        cvt_dist = -CUR.GS.single_width_value;
-    }
-
-    /* XXX: UNDOCUMENTED! -- twilight zone */
-
-    if ( CUR.GS.gep1 == 0 )
-    {
-      CUR.zp1.org[point].x = CUR.zp0.org[CUR.GS.rp0].x +
-                             TT_MulFix14( cvt_dist, CUR.GS.freeVector.x );
-
-      CUR.zp1.org[point].y = CUR.zp0.org[CUR.GS.rp0].y +
-                             TT_MulFix14( cvt_dist, CUR.GS.freeVector.y );
-
-      CUR.zp1.cur[point] = CUR.zp1.org[point];
-    }
-
-    org_dist = CUR_Func_dualproj( CUR.zp1.org + point,
-                                  CUR.zp0.org + CUR.GS.rp0 );
-
-    cur_dist = CUR_Func_project( CUR.zp1.cur + point,
-                                 CUR.zp0.cur + CUR.GS.rp0 );
-
-    /* auto-flip test */
-
-    if ( CUR.GS.auto_flip )
-    {
-      if ( ( org_dist ^ cvt_dist ) < 0 )
-        cvt_dist = -cvt_dist;
-    }
-
-    /* control value cutin and round */
-
-    if ( ( CUR.opcode & 4 ) != 0 )
-    {
-      /* XXX: UNDOCUMENTED!  Only perform cut-in test when both points */
-      /*      refer to the same zone.                                  */
-
-      if ( CUR.GS.gep0 == CUR.GS.gep1 )
-        if ( FT_ABS( cvt_dist - org_dist ) >= CUR.GS.control_value_cutin )
-          cvt_dist = org_dist;
-
-      distance = CUR_Func_round(
-                   cvt_dist,
-                   CUR.tt_metrics.compensations[CUR.opcode & 3] );
-    }
-    else
-      distance = ROUND_None(
-                   cvt_dist,
-                   CUR.tt_metrics.compensations[CUR.opcode & 3] );
-
-    /* minimum distance test */
-
-    if ( ( CUR.opcode & 8 ) != 0 )
-    {
-      if ( org_dist >= 0 )
-      {
-        if ( distance < CUR.GS.minimum_distance )
-          distance = CUR.GS.minimum_distance;
-      }
-      else
-      {
-        if ( distance > -CUR.GS.minimum_distance )
-          distance = -CUR.GS.minimum_distance;
-      }
-    }
-
-    CUR_Func_move( &CUR.zp1, point, distance - cur_dist );
-
-    CUR.GS.rp1 = CUR.GS.rp0;
-
-    if ( ( CUR.opcode & 16 ) != 0 )
-      CUR.GS.rp0 = point;
-
-    /* XXX: UNDOCUMENTED! */
-
-    CUR.GS.rp2 = point;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ALIGNRP[]:    ALIGN Relative Point                                    */
-  /* Opcode range: 0x3C                                                    */
-  /* Stack:        uint32 uint32... -->                                    */
-  /*                                                                       */
-  static void
-  Ins_ALIGNRP( INS_ARG )
-  {
-    FT_UShort   point;
-    FT_F26Dot6  distance;
-
-    FT_UNUSED_ARG;
-
-
-    if ( CUR.top < CUR.GS.loop ||
-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    while ( CUR.GS.loop > 0 )
-    {
-      CUR.args--;
-
-      point = (FT_UShort)CUR.stack[CUR.args];
-
-      if ( BOUNDS( point, CUR.zp1.n_points ) )
-      {
-        if ( CUR.pedantic_hinting )
-        {
-          CUR.error = TT_Err_Invalid_Reference;
-          return;
-        }
-      }
-      else
-      {
-        distance = CUR_Func_project( CUR.zp1.cur + point,
-                                     CUR.zp0.cur + CUR.GS.rp0 );
-
-        CUR_Func_move( &CUR.zp1, point, -distance );
-      }
-
-      CUR.GS.loop--;
-    }
-
-    CUR.GS.loop = 1;
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ISECT[]:      moves point to InterSECTion                             */
-  /* Opcode range: 0x0F                                                    */
-  /* Stack:        5 * uint32 -->                                          */
-  /*                                                                       */
-  static void
-  Ins_ISECT( INS_ARG )
-  {
-    FT_UShort   point,
-                a0, a1,
-                b0, b1;
-
-    FT_F26Dot6  discriminant;
-
-    FT_F26Dot6  dx,  dy,
-                dax, day,
-                dbx, dby;
-
-    FT_F26Dot6  val;
-
-    FT_Vector   R;
-
-
-    point = (FT_UShort)args[0];
-
-    a0 = (FT_UShort)args[1];
-    a1 = (FT_UShort)args[2];
-    b0 = (FT_UShort)args[3];
-    b1 = (FT_UShort)args[4];
-
-    if ( BOUNDS( b0, CUR.zp0.n_points )  ||
-         BOUNDS( b1, CUR.zp0.n_points )  ||
-         BOUNDS( a0, CUR.zp1.n_points )  ||
-         BOUNDS( a1, CUR.zp1.n_points )  ||
-         BOUNDS( point, CUR.zp2.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    dbx = CUR.zp0.cur[b1].x - CUR.zp0.cur[b0].x;
-    dby = CUR.zp0.cur[b1].y - CUR.zp0.cur[b0].y;
-
-    dax = CUR.zp1.cur[a1].x - CUR.zp1.cur[a0].x;
-    day = CUR.zp1.cur[a1].y - CUR.zp1.cur[a0].y;
-
-    dx = CUR.zp0.cur[b0].x - CUR.zp1.cur[a0].x;
-    dy = CUR.zp0.cur[b0].y - CUR.zp1.cur[a0].y;
-
-    CUR.zp2.tags[point] |= FT_CURVE_TAG_TOUCH_BOTH;
-
-    discriminant = TT_MULDIV( dax, -dby, 0x40 ) +
-                   TT_MULDIV( day, dbx, 0x40 );
-
-    if ( FT_ABS( discriminant ) >= 0x40 )
-    {
-      val = TT_MULDIV( dx, -dby, 0x40 ) + TT_MULDIV( dy, dbx, 0x40 );
-
-      R.x = TT_MULDIV( val, dax, discriminant );
-      R.y = TT_MULDIV( val, day, discriminant );
-
-      CUR.zp2.cur[point].x = CUR.zp1.cur[a0].x + R.x;
-      CUR.zp2.cur[point].y = CUR.zp1.cur[a0].y + R.y;
-    }
-    else
-    {
-      /* else, take the middle of the middles of A and B */
-
-      CUR.zp2.cur[point].x = ( CUR.zp1.cur[a0].x +
-                               CUR.zp1.cur[a1].x +
-                               CUR.zp0.cur[b0].x +
-                               CUR.zp0.cur[b1].x ) / 4;
-      CUR.zp2.cur[point].y = ( CUR.zp1.cur[a0].y +
-                               CUR.zp1.cur[a1].y +
-                               CUR.zp0.cur[b0].y +
-                               CUR.zp0.cur[b1].y ) / 4;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* ALIGNPTS[]:   ALIGN PoinTS                                            */
-  /* Opcode range: 0x27                                                    */
-  /* Stack:        uint32 uint32 -->                                       */
-  /*                                                                       */
-  static void
-  Ins_ALIGNPTS( INS_ARG )
-  {
-    FT_UShort   p1, p2;
-    FT_F26Dot6  distance;
-
-
-    p1 = (FT_UShort)args[0];
-    p2 = (FT_UShort)args[1];
-
-    if ( BOUNDS( args[0], CUR.zp1.n_points ) ||
-         BOUNDS( args[1], CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    distance = CUR_Func_project( CUR.zp0.cur + p2,
-                                 CUR.zp1.cur + p1 ) / 2;
-
-    CUR_Func_move( &CUR.zp1, p1, distance );
-    CUR_Func_move( &CUR.zp0, p2, -distance );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IP[]:         Interpolate Point                                       */
-  /* Opcode range: 0x39                                                    */
-  /* Stack:        uint32... -->                                           */
-  /*                                                                       */
-  static void
-  Ins_IP( INS_ARG )
-  {
-    FT_F26Dot6  org_a, org_b, org_x,
-                cur_a, cur_b, cur_x,
-                distance;
-    FT_UShort   point;
-
-    FT_UNUSED_ARG;
-
-
-    if ( CUR.top < CUR.GS.loop )
-    {
-      CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    /* XXX: There are some glyphs in some braindead but popular  */
-    /*      fonts out there (e.g. [aeu]grave in monotype.ttf)    */
-    /*      calling IP[] with bad values of rp[12].              */
-    /*      Do something sane when this odd thing happens.       */
-
-    if ( BOUNDS( CUR.GS.rp1, CUR.zp0.n_points ) ||
-         BOUNDS( CUR.GS.rp2, CUR.zp1.n_points ) )
-    {
-      org_a = cur_a = 0;
-      org_b = cur_b = 0;
-    }
-    else
-    {
-      org_a = CUR_Func_dualproj( CUR.zp0.org + CUR.GS.rp1, NULL_Vector );
-      org_b = CUR_Func_dualproj( CUR.zp1.org + CUR.GS.rp2, NULL_Vector );
-
-      cur_a = CUR_Func_project( CUR.zp0.cur + CUR.GS.rp1, NULL_Vector );
-      cur_b = CUR_Func_project( CUR.zp1.cur + CUR.GS.rp2, NULL_Vector );
-    }
-
-    while ( CUR.GS.loop > 0 )
-    {
-      CUR.args--;
-
-      point = (FT_UShort)CUR.stack[CUR.args];
-      if ( BOUNDS( point, CUR.zp2.n_points ) )
-      {
-        if ( CUR.pedantic_hinting )
-        {
-          CUR.error = TT_Err_Invalid_Reference;
-          return;
-        }
-      }
-      else
-      {
-        org_x = CUR_Func_dualproj( CUR.zp2.org + point, NULL_Vector );
-        cur_x = CUR_Func_project ( CUR.zp2.cur + point, NULL_Vector );
-
-        if ( ( org_a <= org_b && org_x <= org_a ) ||
-             ( org_a >  org_b && org_x >= org_a ) )
-
-          distance = ( cur_a - org_a ) + ( org_x - cur_x );
-
-        else if ( ( org_a <= org_b  &&  org_x >= org_b ) ||
-                  ( org_a >  org_b  &&  org_x <  org_b ) )
-
-          distance = ( cur_b - org_b ) + ( org_x - cur_x );
-
-        else
-           /* note: it seems that rounding this value isn't a good */
-           /*       idea (cf. width of capital `S' in Times)       */
-
-           distance = TT_MULDIV( cur_b - cur_a,
-                                 org_x - org_a,
-                                 org_b - org_a ) + ( cur_a - cur_x );
-
-        CUR_Func_move( &CUR.zp2, point, distance );
-      }
-
-      CUR.GS.loop--;
-    }
-
-    CUR.GS.loop = 1;
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* UTP[a]:       UnTouch Point                                           */
-  /* Opcode range: 0x29                                                    */
-  /* Stack:        uint32 -->                                              */
-  /*                                                                       */
-  static void
-  Ins_UTP( INS_ARG )
-  {
-    FT_UShort  point;
-    FT_Byte    mask;
-
-
-    point = (FT_UShort)args[0];
-
-    if ( BOUNDS( point, CUR.zp0.n_points ) )
-    {
-      if ( CUR.pedantic_hinting )
-        CUR.error = TT_Err_Invalid_Reference;
-      return;
-    }
-
-    mask = 0xFF;
-
-    if ( CUR.GS.freeVector.x != 0 )
-      mask &= ~FT_CURVE_TAG_TOUCH_X;
-
-    if ( CUR.GS.freeVector.y != 0 )
-      mask &= ~FT_CURVE_TAG_TOUCH_Y;
-
-    CUR.zp0.tags[point] &= mask;
-  }
-
-
-  /* Local variables for Ins_IUP: */
-  struct  LOC_Ins_IUP
-  {
-    FT_Vector*  orgs;   /* original and current coordinate */
-    FT_Vector*  curs;   /* arrays                          */
-  };
-
-
-  static void
-  Shift( FT_UInt              p1,
-         FT_UInt              p2,
-         FT_UInt              p,
-         struct LOC_Ins_IUP*  LINK )
-  {
-    FT_UInt     i;
-    FT_F26Dot6  x;
-
-
-    x = LINK->curs[p].x - LINK->orgs[p].x;
-
-    for ( i = p1; i < p; i++ )
-      LINK->curs[i].x += x;
-
-    for ( i = p + 1; i <= p2; i++ )
-      LINK->curs[i].x += x;
-  }
-
-
-  static void
-  Interp( FT_UInt              p1,
-          FT_UInt              p2,
-          FT_UInt              ref1,
-          FT_UInt              ref2,
-          struct LOC_Ins_IUP*  LINK )
-  {
-    FT_UInt     i;
-    FT_F26Dot6  x, x1, x2, d1, d2;
-
-
-    if ( p1 > p2 )
-      return;
-
-    x1 = LINK->orgs[ref1].x;
-    d1 = LINK->curs[ref1].x - LINK->orgs[ref1].x;
-    x2 = LINK->orgs[ref2].x;
-    d2 = LINK->curs[ref2].x - LINK->orgs[ref2].x;
-
-    if ( x1 == x2 )
-    {
-      for ( i = p1; i <= p2; i++ )
-      {
-        x = LINK->orgs[i].x;
-
-        if ( x <= x1 )
-          x += d1;
-        else
-          x += d2;
-
-        LINK->curs[i].x = x;
-      }
-      return;
-    }
-
-    if ( x1 < x2 )
-    {
-      for ( i = p1; i <= p2; i++ )
-      {
-        x = LINK->orgs[i].x;
-
-        if ( x <= x1 )
-          x += d1;
-        else
-        {
-          if ( x >= x2 )
-            x += d2;
-          else
-            x = LINK->curs[ref1].x +
-                  TT_MULDIV( x - x1,
-                             LINK->curs[ref2].x - LINK->curs[ref1].x,
-                             x2 - x1 );
-        }
-        LINK->curs[i].x = x;
-      }
-      return;
-    }
-
-    /* x2 < x1 */
-
-    for ( i = p1; i <= p2; i++ )
-    {
-      x = LINK->orgs[i].x;
-      if ( x <= x2 )
-        x += d2;
-      else
-      {
-        if ( x >= x1 )
-          x += d1;
-        else
-          x = LINK->curs[ref1].x +
-              TT_MULDIV( x - x1,
-                         LINK->curs[ref2].x - LINK->curs[ref1].x,
-                         x2 - x1 );
-      }
-      LINK->curs[i].x = x;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* IUP[a]:       Interpolate Untouched Points                            */
-  /* Opcode range: 0x30-0x31                                               */
-  /* Stack:        -->                                                     */
-  /*                                                                       */
-  static void
-  Ins_IUP( INS_ARG )
-  {
-    struct LOC_Ins_IUP  V;
-    FT_Byte             mask;
-
-    FT_UInt   first_point;   /* first point of contour        */
-    FT_UInt   end_point;     /* end point (last+1) of contour */
-
-    FT_UInt   first_touched; /* first touched point in contour   */
-    FT_UInt   cur_touched;   /* current touched point in contour */
-
-    FT_UInt   point;         /* current point   */
-    FT_Short  contour;       /* current contour */
-
-    FT_UNUSED_ARG;
-
-
-    if ( CUR.opcode & 1 )
-    {
-      mask   = FT_CURVE_TAG_TOUCH_X;
-      V.orgs = CUR.pts.org;
-      V.curs = CUR.pts.cur;
-    }
-    else
-    {
-      mask   = FT_CURVE_TAG_TOUCH_Y;
-      V.orgs = (FT_Vector*)( (FT_Pos*)CUR.pts.org + 1 );
-      V.curs = (FT_Vector*)( (FT_Pos*)CUR.pts.cur + 1 );
-    }
-
-    contour = 0;
-    point   = 0;
-
-    do
-    {
-      end_point   = CUR.pts.contours[contour];
-      first_point = point;
-
-      while ( point <= end_point && (CUR.pts.tags[point] & mask) == 0 )
-        point++;
-
-      if ( point <= end_point )
-      {
-        first_touched = point;
-        cur_touched   = point;
-
-        point++;
-
-        while ( point <= end_point )
-        {
-          if ( ( CUR.pts.tags[point] & mask ) != 0 )
-          {
-            if ( point > 0 )
-              Interp( cur_touched + 1,
-                      point - 1,
-                      cur_touched,
-                      point,
-                      &V );
-            cur_touched = point;
-          }
-
-          point++;
-        }
-
-        if ( cur_touched == first_touched )
-          Shift( first_point, end_point, cur_touched, &V );
-        else
-        {
-          Interp( (FT_UShort)( cur_touched + 1 ),
-                  end_point,
-                  cur_touched,
-                  first_touched,
-                  &V );
-
-          if ( first_touched > 0 )
-            Interp( first_point,
-                    first_touched - 1,
-                    cur_touched,
-                    first_touched,
-                    &V );
-        }
-      }
-      contour++;
-    } while ( contour < CUR.pts.n_contours );
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DELTAPn[]:    DELTA exceptions P1, P2, P3                             */
-  /* Opcode range: 0x5D,0x71,0x72                                          */
-  /* Stack:        uint32 (2 * uint32)... -->                              */
-  /*                                                                       */
-  static void
-  Ins_DELTAP( INS_ARG )
-  {
-    FT_ULong   k, nump;
-    FT_UShort  A;
-    FT_ULong   C;
-    FT_Long    B;
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    /* Delta hinting is covered by US Patent 5159668. */
-    if ( CUR.face->unpatented_hinting )
-      {
-      FT_Long n = args[0] * 2;
-      if ( CUR.args < n )
-      {
-        CUR.error = TT_Err_Too_Few_Arguments;
-        return;
-      }
-
-      CUR.args -= n;
-      CUR.new_top = CUR.args;
-      return;
-    }
-#endif
-
-    nump = (FT_ULong)args[0];   /* some points theoretically may occur more
-                                   than once, thus UShort isn't enough */
-
-    for ( k = 1; k <= nump; k++ )
-    {
-      if ( CUR.args < 2 )
-      {
-        CUR.error = TT_Err_Too_Few_Arguments;
-        return;
-      }
-
-      CUR.args -= 2;
-
-      A = (FT_UShort)CUR.stack[CUR.args + 1];
-      B = CUR.stack[CUR.args];
-
-      /* XXX: Because some popular fonts contain some invalid DeltaP */
-      /*      instructions, we simply ignore them when the stacked   */
-      /*      point reference is off limit, rather than returning an */
-      /*      error.  As a delta instruction doesn't change a glyph  */
-      /*      in great ways, this shouldn't be a problem.            */
-
-      if ( !BOUNDS( A, CUR.zp0.n_points ) )
-      {
-        C = ( (FT_ULong)B & 0xF0 ) >> 4;
-
-        switch ( CUR.opcode )
-        {
-        case 0x5D:
-          break;
-
-        case 0x71:
-          C += 16;
-          break;
-
-        case 0x72:
-          C += 32;
-          break;
-        }
-
-        C += CUR.GS.delta_base;
-
-        if ( CURRENT_Ppem() == (FT_Long)C )
-        {
-          B = ( (FT_ULong)B & 0xF ) - 8;
-          if ( B >= 0 )
-            B++;
-          B = B * 64 / ( 1L << CUR.GS.delta_shift );
-
-          CUR_Func_move( &CUR.zp0, A, B );
-        }
-      }
-      else
-        if ( CUR.pedantic_hinting )
-          CUR.error = TT_Err_Invalid_Reference;
-    }
-
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* DELTACn[]:    DELTA exceptions C1, C2, C3                             */
-  /* Opcode range: 0x73,0x74,0x75                                          */
-  /* Stack:        uint32 (2 * uint32)... -->                              */
-  /*                                                                       */
-  static void
-  Ins_DELTAC( INS_ARG )
-  {
-    FT_ULong  nump, k;
-    FT_ULong  A, C;
-    FT_Long   B;
-
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    /* Delta hinting is covered by US Patent 5159668. */
-    if ( CUR.face->unpatented_hinting )
-    {
-      FT_Long  n = args[0] * 2;
-
-
-      if ( CUR.args < n )
-      {
-        CUR.error = TT_Err_Too_Few_Arguments;
-        return;
-      }
-
-      CUR.args -= n;
-      CUR.new_top = CUR.args;
-      return;
-    }
-#endif
-
-    nump = (FT_ULong)args[0];
-
-    for ( k = 1; k <= nump; k++ )
-    {
-      if ( CUR.args < 2 )
-      {
-        CUR.error = TT_Err_Too_Few_Arguments;
-        return;
-      }
-
-      CUR.args -= 2;
-
-      A = (FT_ULong)CUR.stack[CUR.args + 1];
-      B = CUR.stack[CUR.args];
-
-      if ( BOUNDS( A, CUR.cvtSize ) )
-      {
-        if ( CUR.pedantic_hinting )
-        {
-          CUR.error = TT_Err_Invalid_Reference;
-          return;
-        }
-      }
-      else
-      {
-        C = ( (FT_ULong)B & 0xF0 ) >> 4;
-
-        switch ( CUR.opcode )
-        {
-        case 0x73:
-          break;
-
-        case 0x74:
-          C += 16;
-          break;
-
-        case 0x75:
-          C += 32;
-          break;
-        }
-
-        C += CUR.GS.delta_base;
-
-        if ( CURRENT_Ppem() == (FT_Long)C )
-        {
-          B = ( (FT_ULong)B & 0xF ) - 8;
-          if ( B >= 0 )
-            B++;
-          B = B * 64 / ( 1L << CUR.GS.delta_shift );
-
-          CUR_Func_move_cvt( A, B );
-        }
-      }
-    }
-
-    CUR.new_top = CUR.args;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* MISC. INSTRUCTIONS                                                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* GETINFO[]:    GET INFOrmation                                         */
-  /* Opcode range: 0x88                                                    */
-  /* Stack:        uint32 --> uint32                                       */
-  /*                                                                       */
-  /* XXX: According to Apple specs, bits 1 & 2 of the argument ought to be */
-  /*      consulted before rotated/stretched info is returned.             */
-  static void
-  Ins_GETINFO( INS_ARG )
-  {
-    FT_Long  K;
-
-
-    K = 0;
-
-    /* We return then Windows 3.1 version number */
-    /* for the font scaler                       */
-    if ( ( args[0] & 1 ) != 0 )
-      K = 3;
-
-    /* Has the glyph been rotated ? */
-    if ( CUR.tt_metrics.rotated )
-      K |= 0x80;
-
-    /* Has the glyph been stretched ? */
-    if ( CUR.tt_metrics.stretched )
-      K |= 0x100;
-
-    args[0] = K;
-  }
-
-
-  static void
-  Ins_UNKNOWN( INS_ARG )
-  {
-    TT_DefRecord*  def   = CUR.IDefs;
-    TT_DefRecord*  limit = def + CUR.numIDefs;
-
-    FT_UNUSED_ARG;
-
-
-    for ( ; def < limit; def++ )
-    {
-      if ( (FT_Byte)def->opc == CUR.opcode && def->active )
-      {
-        TT_CallRec*  call;
-
-
-        if ( CUR.callTop >= CUR.callSize )
-        {
-          CUR.error = TT_Err_Stack_Overflow;
-          return;
-        }
-
-        call = CUR.callStack + CUR.callTop++;
-
-        call->Caller_Range = CUR.curRange;
-        call->Caller_IP    = CUR.IP+1;
-        call->Cur_Count    = 1;
-        call->Cur_Restart  = def->start;
-
-        INS_Goto_CodeRange( def->range, def->start );
-
-        CUR.step_ins = FALSE;
-        return;
-      }
-    }
-
-    CUR.error = TT_Err_Invalid_Opcode;
-  }
-
-
-#ifndef TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-  static
-  TInstruction_Function  Instruct_Dispatch[256] =
-  {
-    /* Opcodes are gathered in groups of 16. */
-    /* Please keep the spaces as they are.   */
-
-    /*  SVTCA  y  */  Ins_SVTCA,
-    /*  SVTCA  x  */  Ins_SVTCA,
-    /*  SPvTCA y  */  Ins_SPVTCA,
-    /*  SPvTCA x  */  Ins_SPVTCA,
-    /*  SFvTCA y  */  Ins_SFVTCA,
-    /*  SFvTCA x  */  Ins_SFVTCA,
-    /*  SPvTL //  */  Ins_SPVTL,
-    /*  SPvTL +   */  Ins_SPVTL,
-    /*  SFvTL //  */  Ins_SFVTL,
-    /*  SFvTL +   */  Ins_SFVTL,
-    /*  SPvFS     */  Ins_SPVFS,
-    /*  SFvFS     */  Ins_SFVFS,
-    /*  GPV       */  Ins_GPV,
-    /*  GFV       */  Ins_GFV,
-    /*  SFvTPv    */  Ins_SFVTPV,
-    /*  ISECT     */  Ins_ISECT,
-
-    /*  SRP0      */  Ins_SRP0,
-    /*  SRP1      */  Ins_SRP1,
-    /*  SRP2      */  Ins_SRP2,
-    /*  SZP0      */  Ins_SZP0,
-    /*  SZP1      */  Ins_SZP1,
-    /*  SZP2      */  Ins_SZP2,
-    /*  SZPS      */  Ins_SZPS,
-    /*  SLOOP     */  Ins_SLOOP,
-    /*  RTG       */  Ins_RTG,
-    /*  RTHG      */  Ins_RTHG,
-    /*  SMD       */  Ins_SMD,
-    /*  ELSE      */  Ins_ELSE,
-    /*  JMPR      */  Ins_JMPR,
-    /*  SCvTCi    */  Ins_SCVTCI,
-    /*  SSwCi     */  Ins_SSWCI,
-    /*  SSW       */  Ins_SSW,
-
-    /*  DUP       */  Ins_DUP,
-    /*  POP       */  Ins_POP,
-    /*  CLEAR     */  Ins_CLEAR,
-    /*  SWAP      */  Ins_SWAP,
-    /*  DEPTH     */  Ins_DEPTH,
-    /*  CINDEX    */  Ins_CINDEX,
-    /*  MINDEX    */  Ins_MINDEX,
-    /*  AlignPTS  */  Ins_ALIGNPTS,
-    /*  INS_0x28  */  Ins_UNKNOWN,
-    /*  UTP       */  Ins_UTP,
-    /*  LOOPCALL  */  Ins_LOOPCALL,
-    /*  CALL      */  Ins_CALL,
-    /*  FDEF      */  Ins_FDEF,
-    /*  ENDF      */  Ins_ENDF,
-    /*  MDAP[0]   */  Ins_MDAP,
-    /*  MDAP[1]   */  Ins_MDAP,
-
-    /*  IUP[0]    */  Ins_IUP,
-    /*  IUP[1]    */  Ins_IUP,
-    /*  SHP[0]    */  Ins_SHP,
-    /*  SHP[1]    */  Ins_SHP,
-    /*  SHC[0]    */  Ins_SHC,
-    /*  SHC[1]    */  Ins_SHC,
-    /*  SHZ[0]    */  Ins_SHZ,
-    /*  SHZ[1]    */  Ins_SHZ,
-    /*  SHPIX     */  Ins_SHPIX,
-    /*  IP        */  Ins_IP,
-    /*  MSIRP[0]  */  Ins_MSIRP,
-    /*  MSIRP[1]  */  Ins_MSIRP,
-    /*  AlignRP   */  Ins_ALIGNRP,
-    /*  RTDG      */  Ins_RTDG,
-    /*  MIAP[0]   */  Ins_MIAP,
-    /*  MIAP[1]   */  Ins_MIAP,
-
-    /*  NPushB    */  Ins_NPUSHB,
-    /*  NPushW    */  Ins_NPUSHW,
-    /*  WS        */  Ins_WS,
-    /*  RS        */  Ins_RS,
-    /*  WCvtP     */  Ins_WCVTP,
-    /*  RCvt      */  Ins_RCVT,
-    /*  GC[0]     */  Ins_GC,
-    /*  GC[1]     */  Ins_GC,
-    /*  SCFS      */  Ins_SCFS,
-    /*  MD[0]     */  Ins_MD,
-    /*  MD[1]     */  Ins_MD,
-    /*  MPPEM     */  Ins_MPPEM,
-    /*  MPS       */  Ins_MPS,
-    /*  FlipON    */  Ins_FLIPON,
-    /*  FlipOFF   */  Ins_FLIPOFF,
-    /*  DEBUG     */  Ins_DEBUG,
-
-    /*  LT        */  Ins_LT,
-    /*  LTEQ      */  Ins_LTEQ,
-    /*  GT        */  Ins_GT,
-    /*  GTEQ      */  Ins_GTEQ,
-    /*  EQ        */  Ins_EQ,
-    /*  NEQ       */  Ins_NEQ,
-    /*  ODD       */  Ins_ODD,
-    /*  EVEN      */  Ins_EVEN,
-    /*  IF        */  Ins_IF,
-    /*  EIF       */  Ins_EIF,
-    /*  AND       */  Ins_AND,
-    /*  OR        */  Ins_OR,
-    /*  NOT       */  Ins_NOT,
-    /*  DeltaP1   */  Ins_DELTAP,
-    /*  SDB       */  Ins_SDB,
-    /*  SDS       */  Ins_SDS,
-
-    /*  ADD       */  Ins_ADD,
-    /*  SUB       */  Ins_SUB,
-    /*  DIV       */  Ins_DIV,
-    /*  MUL       */  Ins_MUL,
-    /*  ABS       */  Ins_ABS,
-    /*  NEG       */  Ins_NEG,
-    /*  FLOOR     */  Ins_FLOOR,
-    /*  CEILING   */  Ins_CEILING,
-    /*  ROUND[0]  */  Ins_ROUND,
-    /*  ROUND[1]  */  Ins_ROUND,
-    /*  ROUND[2]  */  Ins_ROUND,
-    /*  ROUND[3]  */  Ins_ROUND,
-    /*  NROUND[0] */  Ins_NROUND,
-    /*  NROUND[1] */  Ins_NROUND,
-    /*  NROUND[2] */  Ins_NROUND,
-    /*  NROUND[3] */  Ins_NROUND,
-
-    /*  WCvtF     */  Ins_WCVTF,
-    /*  DeltaP2   */  Ins_DELTAP,
-    /*  DeltaP3   */  Ins_DELTAP,
-    /*  DeltaCn[0] */ Ins_DELTAC,
-    /*  DeltaCn[1] */ Ins_DELTAC,
-    /*  DeltaCn[2] */ Ins_DELTAC,
-    /*  SROUND    */  Ins_SROUND,
-    /*  S45Round  */  Ins_S45ROUND,
-    /*  JROT      */  Ins_JROT,
-    /*  JROF      */  Ins_JROF,
-    /*  ROFF      */  Ins_ROFF,
-    /*  INS_0x7B  */  Ins_UNKNOWN,
-    /*  RUTG      */  Ins_RUTG,
-    /*  RDTG      */  Ins_RDTG,
-    /*  SANGW     */  Ins_SANGW,
-    /*  AA        */  Ins_AA,
-
-    /*  FlipPT    */  Ins_FLIPPT,
-    /*  FlipRgON  */  Ins_FLIPRGON,
-    /*  FlipRgOFF */  Ins_FLIPRGOFF,
-    /*  INS_0x83  */  Ins_UNKNOWN,
-    /*  INS_0x84  */  Ins_UNKNOWN,
-    /*  ScanCTRL  */  Ins_SCANCTRL,
-    /*  SDPVTL[0] */  Ins_SDPVTL,
-    /*  SDPVTL[1] */  Ins_SDPVTL,
-    /*  GetINFO   */  Ins_GETINFO,
-    /*  IDEF      */  Ins_IDEF,
-    /*  ROLL      */  Ins_ROLL,
-    /*  MAX       */  Ins_MAX,
-    /*  MIN       */  Ins_MIN,
-    /*  ScanTYPE  */  Ins_SCANTYPE,
-    /*  InstCTRL  */  Ins_INSTCTRL,
-    /*  INS_0x8F  */  Ins_UNKNOWN,
-
-    /*  INS_0x90  */   Ins_UNKNOWN,
-    /*  INS_0x91  */   Ins_UNKNOWN,
-    /*  INS_0x92  */   Ins_UNKNOWN,
-    /*  INS_0x93  */   Ins_UNKNOWN,
-    /*  INS_0x94  */   Ins_UNKNOWN,
-    /*  INS_0x95  */   Ins_UNKNOWN,
-    /*  INS_0x96  */   Ins_UNKNOWN,
-    /*  INS_0x97  */   Ins_UNKNOWN,
-    /*  INS_0x98  */   Ins_UNKNOWN,
-    /*  INS_0x99  */   Ins_UNKNOWN,
-    /*  INS_0x9A  */   Ins_UNKNOWN,
-    /*  INS_0x9B  */   Ins_UNKNOWN,
-    /*  INS_0x9C  */   Ins_UNKNOWN,
-    /*  INS_0x9D  */   Ins_UNKNOWN,
-    /*  INS_0x9E  */   Ins_UNKNOWN,
-    /*  INS_0x9F  */   Ins_UNKNOWN,
-
-    /*  INS_0xA0  */   Ins_UNKNOWN,
-    /*  INS_0xA1  */   Ins_UNKNOWN,
-    /*  INS_0xA2  */   Ins_UNKNOWN,
-    /*  INS_0xA3  */   Ins_UNKNOWN,
-    /*  INS_0xA4  */   Ins_UNKNOWN,
-    /*  INS_0xA5  */   Ins_UNKNOWN,
-    /*  INS_0xA6  */   Ins_UNKNOWN,
-    /*  INS_0xA7  */   Ins_UNKNOWN,
-    /*  INS_0xA8  */   Ins_UNKNOWN,
-    /*  INS_0xA9  */   Ins_UNKNOWN,
-    /*  INS_0xAA  */   Ins_UNKNOWN,
-    /*  INS_0xAB  */   Ins_UNKNOWN,
-    /*  INS_0xAC  */   Ins_UNKNOWN,
-    /*  INS_0xAD  */   Ins_UNKNOWN,
-    /*  INS_0xAE  */   Ins_UNKNOWN,
-    /*  INS_0xAF  */   Ins_UNKNOWN,
-
-    /*  PushB[0]  */  Ins_PUSHB,
-    /*  PushB[1]  */  Ins_PUSHB,
-    /*  PushB[2]  */  Ins_PUSHB,
-    /*  PushB[3]  */  Ins_PUSHB,
-    /*  PushB[4]  */  Ins_PUSHB,
-    /*  PushB[5]  */  Ins_PUSHB,
-    /*  PushB[6]  */  Ins_PUSHB,
-    /*  PushB[7]  */  Ins_PUSHB,
-    /*  PushW[0]  */  Ins_PUSHW,
-    /*  PushW[1]  */  Ins_PUSHW,
-    /*  PushW[2]  */  Ins_PUSHW,
-    /*  PushW[3]  */  Ins_PUSHW,
-    /*  PushW[4]  */  Ins_PUSHW,
-    /*  PushW[5]  */  Ins_PUSHW,
-    /*  PushW[6]  */  Ins_PUSHW,
-    /*  PushW[7]  */  Ins_PUSHW,
-
-    /*  MDRP[00]  */  Ins_MDRP,
-    /*  MDRP[01]  */  Ins_MDRP,
-    /*  MDRP[02]  */  Ins_MDRP,
-    /*  MDRP[03]  */  Ins_MDRP,
-    /*  MDRP[04]  */  Ins_MDRP,
-    /*  MDRP[05]  */  Ins_MDRP,
-    /*  MDRP[06]  */  Ins_MDRP,
-    /*  MDRP[07]  */  Ins_MDRP,
-    /*  MDRP[08]  */  Ins_MDRP,
-    /*  MDRP[09]  */  Ins_MDRP,
-    /*  MDRP[10]  */  Ins_MDRP,
-    /*  MDRP[11]  */  Ins_MDRP,
-    /*  MDRP[12]  */  Ins_MDRP,
-    /*  MDRP[13]  */  Ins_MDRP,
-    /*  MDRP[14]  */  Ins_MDRP,
-    /*  MDRP[15]  */  Ins_MDRP,
-
-    /*  MDRP[16]  */  Ins_MDRP,
-    /*  MDRP[17]  */  Ins_MDRP,
-    /*  MDRP[18]  */  Ins_MDRP,
-    /*  MDRP[19]  */  Ins_MDRP,
-    /*  MDRP[20]  */  Ins_MDRP,
-    /*  MDRP[21]  */  Ins_MDRP,
-    /*  MDRP[22]  */  Ins_MDRP,
-    /*  MDRP[23]  */  Ins_MDRP,
-    /*  MDRP[24]  */  Ins_MDRP,
-    /*  MDRP[25]  */  Ins_MDRP,
-    /*  MDRP[26]  */  Ins_MDRP,
-    /*  MDRP[27]  */  Ins_MDRP,
-    /*  MDRP[28]  */  Ins_MDRP,
-    /*  MDRP[29]  */  Ins_MDRP,
-    /*  MDRP[30]  */  Ins_MDRP,
-    /*  MDRP[31]  */  Ins_MDRP,
-
-    /*  MIRP[00]  */  Ins_MIRP,
-    /*  MIRP[01]  */  Ins_MIRP,
-    /*  MIRP[02]  */  Ins_MIRP,
-    /*  MIRP[03]  */  Ins_MIRP,
-    /*  MIRP[04]  */  Ins_MIRP,
-    /*  MIRP[05]  */  Ins_MIRP,
-    /*  MIRP[06]  */  Ins_MIRP,
-    /*  MIRP[07]  */  Ins_MIRP,
-    /*  MIRP[08]  */  Ins_MIRP,
-    /*  MIRP[09]  */  Ins_MIRP,
-    /*  MIRP[10]  */  Ins_MIRP,
-    /*  MIRP[11]  */  Ins_MIRP,
-    /*  MIRP[12]  */  Ins_MIRP,
-    /*  MIRP[13]  */  Ins_MIRP,
-    /*  MIRP[14]  */  Ins_MIRP,
-    /*  MIRP[15]  */  Ins_MIRP,
-
-    /*  MIRP[16]  */  Ins_MIRP,
-    /*  MIRP[17]  */  Ins_MIRP,
-    /*  MIRP[18]  */  Ins_MIRP,
-    /*  MIRP[19]  */  Ins_MIRP,
-    /*  MIRP[20]  */  Ins_MIRP,
-    /*  MIRP[21]  */  Ins_MIRP,
-    /*  MIRP[22]  */  Ins_MIRP,
-    /*  MIRP[23]  */  Ins_MIRP,
-    /*  MIRP[24]  */  Ins_MIRP,
-    /*  MIRP[25]  */  Ins_MIRP,
-    /*  MIRP[26]  */  Ins_MIRP,
-    /*  MIRP[27]  */  Ins_MIRP,
-    /*  MIRP[28]  */  Ins_MIRP,
-    /*  MIRP[29]  */  Ins_MIRP,
-    /*  MIRP[30]  */  Ins_MIRP,
-    /*  MIRP[31]  */  Ins_MIRP
-  };
-
-
-#endif /* !TT_CONFIG_OPTION_INTERPRETER_SWITCH */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* RUN                                                                   */
-  /*                                                                       */
-  /*  This function executes a run of opcodes.  It will exit in the        */
-  /*  following cases:                                                     */
-  /*                                                                       */
-  /*  - Errors (in which case it returns FALSE).                           */
-  /*                                                                       */
-  /*  - Reaching the end of the main code range (returns TRUE).            */
-  /*    Reaching the end of a code range within a function call is an      */
-  /*    error.                                                             */
-  /*                                                                       */
-  /*  - After executing one single opcode, if the flag `Instruction_Trap'  */
-  /*    is set to TRUE (returns TRUE).                                     */
-  /*                                                                       */
-  /*  On exit whith TRUE, test IP < CodeSize to know wether it comes from  */
-  /*  an instruction trap or a normal termination.                         */
-  /*                                                                       */
-  /*                                                                       */
-  /*  Note: The documented DEBUG opcode pops a value from the stack.  This */
-  /*        behaviour is unsupported; here a DEBUG opcode is always an     */
-  /*        error.                                                         */
-  /*                                                                       */
-  /*                                                                       */
-  /* THIS IS THE INTERPRETER'S MAIN LOOP.                                  */
-  /*                                                                       */
-  /*  Instructions appear in the specification's order.                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /* documentation is in ttinterp.h */
-
-  FT_EXPORT_DEF( FT_Error )
-  TT_RunIns( TT_ExecContext  exc )
-  {
-    FT_Long  ins_counter = 0;  /* executed instructions counter */
-
-
-#ifdef TT_CONFIG_OPTION_STATIC_RASTER
-    cur = *exc;
-#endif
-
-    /* set CVT functions */
-    CUR.tt_metrics.ratio = 0;
-    if ( CUR.metrics.x_ppem != CUR.metrics.y_ppem )
-    {
-      /* non-square pixels, use the stretched routines */
-      CUR.func_read_cvt  = Read_CVT_Stretched;
-      CUR.func_write_cvt = Write_CVT_Stretched;
-      CUR.func_move_cvt  = Move_CVT_Stretched;
-    }
-    else
-    {
-      /* square pixels, use normal routines */
-      CUR.func_read_cvt  = Read_CVT;
-      CUR.func_write_cvt = Write_CVT;
-      CUR.func_move_cvt  = Move_CVT;
-    }
-
-    COMPUTE_Funcs();
-    COMPUTE_Round( (FT_Byte)exc->GS.round_state );
-
-    do
-    {
-      CUR.opcode = CUR.code[CUR.IP];
-
-      if ( ( CUR.length = opcode_length[CUR.opcode] ) < 0 )
-      {
-        if ( CUR.IP + 1 > CUR.codeSize )
-          goto LErrorCodeOverflow_;
-
-        CUR.length = CUR.code[CUR.IP + 1] + 2;
-      }
-
-      if ( CUR.IP + CUR.length > CUR.codeSize )
-        goto LErrorCodeOverflow_;
-
-      /* First, let's check for empty stack and overflow */
-      CUR.args = CUR.top - ( Pop_Push_Count[CUR.opcode] >> 4 );
-
-      /* `args' is the top of the stack once arguments have been popped. */
-      /* One can also interpret it as the index of the last argument.    */
-      if ( CUR.args < 0 )
-      {
-        CUR.error = TT_Err_Too_Few_Arguments;
-        goto LErrorLabel_;
-      }
-
-      CUR.new_top = CUR.args + ( Pop_Push_Count[CUR.opcode] & 15 );
-
-      /* `new_top' is the new top of the stack, after the instruction's */
-      /* execution.  `top' will be set to `new_top' after the `switch'  */
-      /* statement.                                                     */
-      if ( CUR.new_top > CUR.stackSize )
-      {
-        CUR.error = TT_Err_Stack_Overflow;
-        goto LErrorLabel_;
-      }
-
-      CUR.step_ins = TRUE;
-      CUR.error    = TT_Err_Ok;
-
-#ifdef TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-      {
-        FT_Long*  args   = CUR.stack + CUR.args;
-        FT_Byte   opcode = CUR.opcode;
-
-
-#undef  ARRAY_BOUND_ERROR
-#define ARRAY_BOUND_ERROR  goto Set_Invalid_Ref
-
-
-        switch ( opcode )
-        {
-        case 0x00:  /* SVTCA y  */
-        case 0x01:  /* SVTCA x  */
-        case 0x02:  /* SPvTCA y */
-        case 0x03:  /* SPvTCA x */
-        case 0x04:  /* SFvTCA y */
-        case 0x05:  /* SFvTCA x */
-          {
-            FT_Short AA, BB;
-
-
-            AA = (FT_Short)( ( opcode & 1 ) << 14 );
-            BB = (FT_Short)( AA ^ 0x4000 );
-
-            if ( opcode < 4 )
-            {
-              CUR.GS.projVector.x = AA;
-              CUR.GS.projVector.y = BB;
-
-              CUR.GS.dualVector.x = AA;
-              CUR.GS.dualVector.y = BB;
-            }
-            else
-            {
-              GUESS_VECTOR( projVector );
-            }
-
-            if ( ( opcode & 2 ) == 0 )
-            {
-              CUR.GS.freeVector.x = AA;
-              CUR.GS.freeVector.y = BB;
-            }
-            else
-            {
-              GUESS_VECTOR( freeVector );
-            }
-
-            COMPUTE_Funcs();
-          }
-          break;
-
-        case 0x06:  /* SPvTL // */
-        case 0x07:  /* SPvTL +  */
-          DO_SPVTL
-          break;
-
-        case 0x08:  /* SFvTL // */
-        case 0x09:  /* SFvTL +  */
-          DO_SFVTL
-          break;
-
-        case 0x0A:  /* SPvFS */
-          DO_SPVFS
-          break;
-
-        case 0x0B:  /* SFvFS */
-          DO_SFVFS
-          break;
-
-        case 0x0C:  /* GPV */
-          DO_GPV
-          break;
-
-        case 0x0D:  /* GFV */
-          DO_GFV
-          break;
-
-        case 0x0E:  /* SFvTPv */
-          DO_SFVTPV
-          break;
-
-        case 0x0F:  /* ISECT  */
-          Ins_ISECT( EXEC_ARG_ args );
-          break;
-
-        case 0x10:  /* SRP0 */
-          DO_SRP0
-          break;
-
-        case 0x11:  /* SRP1 */
-          DO_SRP1
-          break;
-
-        case 0x12:  /* SRP2 */
-          DO_SRP2
-          break;
-
-        case 0x13:  /* SZP0 */
-          Ins_SZP0( EXEC_ARG_ args );
-          break;
-
-        case 0x14:  /* SZP1 */
-          Ins_SZP1( EXEC_ARG_ args );
-          break;
-
-        case 0x15:  /* SZP2 */
-          Ins_SZP2( EXEC_ARG_ args );
-          break;
-
-        case 0x16:  /* SZPS */
-          Ins_SZPS( EXEC_ARG_ args );
-          break;
-
-        case 0x17:  /* SLOOP */
-          DO_SLOOP
-          break;
-
-        case 0x18:  /* RTG */
-          DO_RTG
-          break;
-
-        case 0x19:  /* RTHG */
-          DO_RTHG
-          break;
-
-        case 0x1A:  /* SMD */
-          DO_SMD
-          break;
-
-        case 0x1B:  /* ELSE */
-          Ins_ELSE( EXEC_ARG_ args );
-          break;
-
-        case 0x1C:  /* JMPR */
-          DO_JMPR
-          break;
-
-        case 0x1D:  /* SCVTCI */
-          DO_SCVTCI
-          break;
-
-        case 0x1E:  /* SSWCI */
-          DO_SSWCI
-          break;
-
-        case 0x1F:  /* SSW */
-          DO_SSW
-          break;
-
-        case 0x20:  /* DUP */
-          DO_DUP
-          break;
-
-        case 0x21:  /* POP */
-          /* nothing :-) */
-          break;
-
-        case 0x22:  /* CLEAR */
-          DO_CLEAR
-          break;
-
-        case 0x23:  /* SWAP */
-          DO_SWAP
-          break;
-
-        case 0x24:  /* DEPTH */
-          DO_DEPTH
-          break;
-
-        case 0x25:  /* CINDEX */
-          DO_CINDEX
-          break;
-
-        case 0x26:  /* MINDEX */
-          Ins_MINDEX( EXEC_ARG_ args );
-          break;
-
-        case 0x27:  /* ALIGNPTS */
-          Ins_ALIGNPTS( EXEC_ARG_ args );
-          break;
-
-        case 0x28:  /* ???? */
-          Ins_UNKNOWN( EXEC_ARG_ args );
-          break;
-
-        case 0x29:  /* UTP */
-          Ins_UTP( EXEC_ARG_ args );
-          break;
-
-        case 0x2A:  /* LOOPCALL */
-          Ins_LOOPCALL( EXEC_ARG_ args );
-          break;
-
-        case 0x2B:  /* CALL */
-          Ins_CALL( EXEC_ARG_ args );
-          break;
-
-        case 0x2C:  /* FDEF */
-          Ins_FDEF( EXEC_ARG_ args );
-          break;
-
-        case 0x2D:  /* ENDF */
-          Ins_ENDF( EXEC_ARG_ args );
-          break;
-
-        case 0x2E:  /* MDAP */
-        case 0x2F:  /* MDAP */
-          Ins_MDAP( EXEC_ARG_ args );
-          break;
-
-
-        case 0x30:  /* IUP */
-        case 0x31:  /* IUP */
-          Ins_IUP( EXEC_ARG_ args );
-          break;
-
-        case 0x32:  /* SHP */
-        case 0x33:  /* SHP */
-          Ins_SHP( EXEC_ARG_ args );
-          break;
-
-        case 0x34:  /* SHC */
-        case 0x35:  /* SHC */
-          Ins_SHC( EXEC_ARG_ args );
-          break;
-
-        case 0x36:  /* SHZ */
-        case 0x37:  /* SHZ */
-          Ins_SHZ( EXEC_ARG_ args );
-          break;
-
-        case 0x38:  /* SHPIX */
-          Ins_SHPIX( EXEC_ARG_ args );
-          break;
-
-        case 0x39:  /* IP    */
-          Ins_IP( EXEC_ARG_ args );
-          break;
-
-        case 0x3A:  /* MSIRP */
-        case 0x3B:  /* MSIRP */
-          Ins_MSIRP( EXEC_ARG_ args );
-          break;
-
-        case 0x3C:  /* AlignRP */
-          Ins_ALIGNRP( EXEC_ARG_ args );
-          break;
-
-        case 0x3D:  /* RTDG */
-          DO_RTDG
-          break;
-
-        case 0x3E:  /* MIAP */
-        case 0x3F:  /* MIAP */
-          Ins_MIAP( EXEC_ARG_ args );
-          break;
-
-        case 0x40:  /* NPUSHB */
-          Ins_NPUSHB( EXEC_ARG_ args );
-          break;
-
-        case 0x41:  /* NPUSHW */
-          Ins_NPUSHW( EXEC_ARG_ args );
-          break;
-
-        case 0x42:  /* WS */
-          DO_WS
-          break;
-
-      Set_Invalid_Ref:
-            CUR.error = TT_Err_Invalid_Reference;
-          break;
-
-        case 0x43:  /* RS */
-          DO_RS
-          break;
-
-        case 0x44:  /* WCVTP */
-          DO_WCVTP
-          break;
-
-        case 0x45:  /* RCVT */
-          DO_RCVT
-          break;
-
-        case 0x46:  /* GC */
-        case 0x47:  /* GC */
-          Ins_GC( EXEC_ARG_ args );
-          break;
-
-        case 0x48:  /* SCFS */
-          Ins_SCFS( EXEC_ARG_ args );
-          break;
-
-        case 0x49:  /* MD */
-        case 0x4A:  /* MD */
-          Ins_MD( EXEC_ARG_ args );
-          break;
-
-        case 0x4B:  /* MPPEM */
-          DO_MPPEM
-          break;
-
-        case 0x4C:  /* MPS */
-          DO_MPS
-          break;
-
-        case 0x4D:  /* FLIPON */
-          DO_FLIPON
-          break;
-
-        case 0x4E:  /* FLIPOFF */
-          DO_FLIPOFF
-          break;
-
-        case 0x4F:  /* DEBUG */
-          DO_DEBUG
-          break;
-
-        case 0x50:  /* LT */
-          DO_LT
-          break;
-
-        case 0x51:  /* LTEQ */
-          DO_LTEQ
-          break;
-
-        case 0x52:  /* GT */
-          DO_GT
-          break;
-
-        case 0x53:  /* GTEQ */
-          DO_GTEQ
-          break;
-
-        case 0x54:  /* EQ */
-          DO_EQ
-          break;
-
-        case 0x55:  /* NEQ */
-          DO_NEQ
-          break;
-
-        case 0x56:  /* ODD */
-          DO_ODD
-          break;
-
-        case 0x57:  /* EVEN */
-          DO_EVEN
-          break;
-
-        case 0x58:  /* IF */
-          Ins_IF( EXEC_ARG_ args );
-          break;
-
-        case 0x59:  /* EIF */
-          /* do nothing */
-          break;
-
-        case 0x5A:  /* AND */
-          DO_AND
-          break;
-
-        case 0x5B:  /* OR */
-          DO_OR
-          break;
-
-        case 0x5C:  /* NOT */
-          DO_NOT
-          break;
-
-        case 0x5D:  /* DELTAP1 */
-          Ins_DELTAP( EXEC_ARG_ args );
-          break;
-
-        case 0x5E:  /* SDB */
-          DO_SDB
-          break;
-
-        case 0x5F:  /* SDS */
-          DO_SDS
-          break;
-
-        case 0x60:  /* ADD */
-          DO_ADD
-          break;
-
-        case 0x61:  /* SUB */
-          DO_SUB
-          break;
-
-        case 0x62:  /* DIV */
-          DO_DIV
-          break;
-
-        case 0x63:  /* MUL */
-          DO_MUL
-          break;
-
-        case 0x64:  /* ABS */
-          DO_ABS
-          break;
-
-        case 0x65:  /* NEG */
-          DO_NEG
-          break;
-
-        case 0x66:  /* FLOOR */
-          DO_FLOOR
-          break;
-
-        case 0x67:  /* CEILING */
-          DO_CEILING
-          break;
-
-        case 0x68:  /* ROUND */
-        case 0x69:  /* ROUND */
-        case 0x6A:  /* ROUND */
-        case 0x6B:  /* ROUND */
-          DO_ROUND
-          break;
-
-        case 0x6C:  /* NROUND */
-        case 0x6D:  /* NROUND */
-        case 0x6E:  /* NRRUND */
-        case 0x6F:  /* NROUND */
-          DO_NROUND
-          break;
-
-        case 0x70:  /* WCVTF */
-          DO_WCVTF
-          break;
-
-        case 0x71:  /* DELTAP2 */
-        case 0x72:  /* DELTAP3 */
-          Ins_DELTAP( EXEC_ARG_ args );
-          break;
-
-        case 0x73:  /* DELTAC0 */
-        case 0x74:  /* DELTAC1 */
-        case 0x75:  /* DELTAC2 */
-          Ins_DELTAC( EXEC_ARG_ args );
-          break;
-
-        case 0x76:  /* SROUND */
-          DO_SROUND
-          break;
-
-        case 0x77:  /* S45Round */
-          DO_S45ROUND
-          break;
-
-        case 0x78:  /* JROT */
-          DO_JROT
-          break;
-
-        case 0x79:  /* JROF */
-          DO_JROF
-          break;
-
-        case 0x7A:  /* ROFF */
-          DO_ROFF
-          break;
-
-        case 0x7B:  /* ???? */
-          Ins_UNKNOWN( EXEC_ARG_ args );
-          break;
-
-        case 0x7C:  /* RUTG */
-          DO_RUTG
-          break;
-
-        case 0x7D:  /* RDTG */
-          DO_RDTG
-          break;
-
-        case 0x7E:  /* SANGW */
-        case 0x7F:  /* AA    */
-          /* nothing - obsolete */
-          break;
-
-        case 0x80:  /* FLIPPT */
-          Ins_FLIPPT( EXEC_ARG_ args );
-          break;
-
-        case 0x81:  /* FLIPRGON */
-          Ins_FLIPRGON( EXEC_ARG_ args );
-          break;
-
-        case 0x82:  /* FLIPRGOFF */
-          Ins_FLIPRGOFF( EXEC_ARG_ args );
-          break;
-
-        case 0x83:  /* UNKNOWN */
-        case 0x84:  /* UNKNOWN */
-          Ins_UNKNOWN( EXEC_ARG_ args );
-          break;
-
-        case 0x85:  /* SCANCTRL */
-          Ins_SCANCTRL( EXEC_ARG_ args );
-          break;
-
-        case 0x86:  /* SDPVTL */
-        case 0x87:  /* SDPVTL */
-          Ins_SDPVTL( EXEC_ARG_ args );
-          break;
-
-        case 0x88:  /* GETINFO */
-          Ins_GETINFO( EXEC_ARG_ args );
-          break;
-
-        case 0x89:  /* IDEF */
-          Ins_IDEF( EXEC_ARG_ args );
-          break;
-
-        case 0x8A:  /* ROLL */
-          Ins_ROLL( EXEC_ARG_ args );
-          break;
-
-        case 0x8B:  /* MAX */
-          DO_MAX
-          break;
-
-        case 0x8C:  /* MIN */
-          DO_MIN
-          break;
-
-        case 0x8D:  /* SCANTYPE */
-          Ins_SCANTYPE( EXEC_ARG_ args );
-          break;
-
-        case 0x8E:  /* INSTCTRL */
-          Ins_INSTCTRL( EXEC_ARG_ args );
-          break;
-
-        case 0x8F:
-          Ins_UNKNOWN( EXEC_ARG_ args );
-          break;
-
-        default:
-          if ( opcode >= 0xE0 )
-            Ins_MIRP( EXEC_ARG_ args );
-          else if ( opcode >= 0xC0 )
-            Ins_MDRP( EXEC_ARG_ args );
-          else if ( opcode >= 0xB8 )
-            Ins_PUSHW( EXEC_ARG_ args );
-          else if ( opcode >= 0xB0 )
-            Ins_PUSHB( EXEC_ARG_ args );
-          else
-            Ins_UNKNOWN( EXEC_ARG_ args );
-        }
-
-      }
-
-#else
-
-      Instruct_Dispatch[CUR.opcode]( EXEC_ARG_ &CUR.stack[CUR.args] );
-
-#endif /* TT_CONFIG_OPTION_INTERPRETER_SWITCH */
-
-      if ( CUR.error != TT_Err_Ok )
-      {
-        switch ( CUR.error )
-        {
-        case TT_Err_Invalid_Opcode: /* looking for redefined instructions */
-          {
-            TT_DefRecord*  def   = CUR.IDefs;
-            TT_DefRecord*  limit = def + CUR.numIDefs;
-
-
-            for ( ; def < limit; def++ )
-            {
-              if ( def->active && CUR.opcode == (FT_Byte)def->opc )
-              {
-                TT_CallRec*  callrec;
-
-
-                if ( CUR.callTop >= CUR.callSize )
-                {
-                  CUR.error = TT_Err_Invalid_Reference;
-                  goto LErrorLabel_;
-                }
-
-                callrec = &CUR.callStack[CUR.callTop];
-
-                callrec->Caller_Range = CUR.curRange;
-                callrec->Caller_IP    = CUR.IP + 1;
-                callrec->Cur_Count    = 1;
-                callrec->Cur_Restart  = def->start;
-
-                if ( INS_Goto_CodeRange( def->range, def->start ) == FAILURE )
-                  goto LErrorLabel_;
-
-                goto LSuiteLabel_;
-              }
-            }
-          }
-
-          CUR.error = TT_Err_Invalid_Opcode;
-          goto LErrorLabel_;
-
-#if 0
-          break;   /* Unreachable code warning suppression.             */
-                   /* Leave to remind in case a later change the editor */
-                   /* to consider break;                                */
-#endif
-
-        default:
-          goto LErrorLabel_;
-
-#if 0
-        break;
-#endif
-        }
-      }
-
-      CUR.top = CUR.new_top;
-
-      if ( CUR.step_ins )
-        CUR.IP += CUR.length;
-
-      /* increment instruction counter and check if we didn't */
-      /* run this program for too long (e.g. infinite loops). */
-      if ( ++ins_counter > MAX_RUNNABLE_OPCODES )
-        return TT_Err_Execution_Too_Long;
-
-    LSuiteLabel_:
-      if ( CUR.IP >= CUR.codeSize )
-      {
-        if ( CUR.callTop > 0 )
-        {
-          CUR.error = TT_Err_Code_Overflow;
-          goto LErrorLabel_;
-        }
-        else
-          goto LNo_Error_;
-      }
-    } while ( !CUR.instruction_trap );
-
-  LNo_Error_:
-
-#ifdef TT_CONFIG_OPTION_STATIC_RASTER
-    *exc = cur;
-#endif
-
-    return TT_Err_Ok;
-
-  LErrorCodeOverflow_:
-    CUR.error = TT_Err_Code_Overflow;
-
-  LErrorLabel_:
-
-#ifdef TT_CONFIG_OPTION_STATIC_RASTER
-    *exc = cur;
-#endif
-
-    return CUR.error;
-  }
-
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttinterp.h b/nx-X11/extras/freetype2/src/truetype/ttinterp.h
deleted file mode 100644
index eb0bb0bb6..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttinterp.h
+++ /dev/null
@@ -1,318 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttinterp.h                                                             */
-/*                                                                         */
-/*    TrueType bytecode interpreter (specification).                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTINTERP_H__
-#define __TTINTERP_H__
-
-
-#include <ft2build.h>
-#include "ttobjs.h"
-
-
-FT_BEGIN_HEADER
-
-
-#ifndef TT_CONFIG_OPTION_STATIC_INTEPRETER  /* indirect implementation */
-
-#define EXEC_OP_   TT_ExecContext  exc,
-#define EXEC_OP    TT_ExecContext  exc
-#define EXEC_ARG_  exc,
-#define EXEC_ARG   exc
-
-#else                                       /* static implementation */
-
-#define EXEC_OP_   /* void */
-#define EXEC_OP    /* void */
-#define EXEC_ARG_  /* void */
-#define EXEC_ARG   /* void */
-
-#endif /* TT_CONFIG_OPTION_STATIC_INTERPRETER */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Rounding mode constants.                                              */
-  /*                                                                       */
-#define TT_Round_Off             5
-#define TT_Round_To_Half_Grid    0
-#define TT_Round_To_Grid         1
-#define TT_Round_To_Double_Grid  2
-#define TT_Round_Up_To_Grid      4
-#define TT_Round_Down_To_Grid    3
-#define TT_Round_Super           6
-#define TT_Round_Super_45        7
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Function types used by the interpreter, depending on various modes    */
-  /* (e.g. the rounding mode, whether to render a vertical or horizontal   */
-  /* line etc).                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-  /* Rounding function */
-  typedef FT_F26Dot6
-  (*TT_Round_Func)( EXEC_OP_ FT_F26Dot6  distance,
-                             FT_F26Dot6  compensation );
-
-  /* Point displacement along the freedom vector routine */
-  typedef void
-  (*TT_Move_Func)( EXEC_OP_ TT_GlyphZone  zone,
-                            FT_UShort     point,
-                            FT_F26Dot6    distance );
-
-  /* Distance projection along one of the projection vectors */
-  typedef FT_F26Dot6
-  (*TT_Project_Func)( EXEC_OP_ FT_Vector*  v1,
-                               FT_Vector*  v2 );
-
-  /* reading a cvt value.  Take care of non-square pixels if necessary */
-  typedef FT_F26Dot6
-  (*TT_Get_CVT_Func)( EXEC_OP_ FT_ULong  idx );
-
-  /* setting or moving a cvt value.  Take care of non-square pixels  */
-  /* if necessary                                                    */
-  typedef void
-  (*TT_Set_CVT_Func)( EXEC_OP_ FT_ULong    idx,
-                               FT_F26Dot6  value );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This structure defines a call record, used to manage function calls.  */
-  /*                                                                       */
-  typedef struct  TT_CallRec_
-  {
-    FT_Int   Caller_Range;
-    FT_Long  Caller_IP;
-    FT_Long  Cur_Count;
-    FT_Long  Cur_Restart;
-
-  } TT_CallRec, *TT_CallStack;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The main structure for the interpreter which collects all necessary   */
-  /* variables and states.                                                 */
-  /*                                                                       */
-  typedef struct  TT_ExecContextRec_
-  {
-    TT_Face            face;
-    TT_Size            size;
-    FT_Memory          memory;
-
-    /* instructions state */
-
-    FT_Error           error;      /* last execution error */
-
-    FT_Long            top;        /* top of exec. stack   */
-
-    FT_UInt            stackSize;  /* size of exec. stack  */
-    FT_Long*           stack;      /* current exec. stack  */
-
-    FT_Long            args;
-    FT_UInt            new_top;    /* new top after exec.  */
-
-    TT_GlyphZoneRec    zp0,        /* zone records */
-                       zp1,
-                       zp2,
-                       pts,
-                       twilight;
-
-    FT_Size_Metrics    metrics;
-    TT_Size_Metrics    tt_metrics; /* size metrics */
-
-    TT_GraphicsState   GS;         /* current graphics state */
-
-    FT_Int             curRange;  /* current code range number   */
-    FT_Byte*           code;      /* current code range          */
-    FT_Long            IP;        /* current instruction pointer */
-    FT_Long            codeSize;  /* size of current range       */
-
-    FT_Byte            opcode;    /* current opcode              */
-    FT_Int             length;    /* length of current opcode    */
-
-    FT_Bool            step_ins;  /* true if the interpreter must */
-                                  /* increment IP after ins. exec */
-    FT_Long            cvtSize;
-    FT_Long*           cvt;
-
-    FT_UInt            glyphSize; /* glyph instructions buffer size */
-    FT_Byte*           glyphIns;  /* glyph instructions buffer */
-
-    FT_UInt            numFDefs;  /* number of function defs         */
-    FT_UInt            maxFDefs;  /* maximum number of function defs */
-    TT_DefArray        FDefs;     /* table of FDefs entries          */
-
-    FT_UInt            numIDefs;  /* number of instruction defs */
-    FT_UInt            maxIDefs;  /* maximum number of ins defs */
-    TT_DefArray        IDefs;     /* table of IDefs entries     */
-
-    FT_UInt            maxFunc;   /* maximum function index     */
-    FT_UInt            maxIns;    /* maximum instruction index  */
-
-    FT_Int             callTop,    /* top of call stack during execution */
-                       callSize;   /* size of call stack */
-    TT_CallStack       callStack;  /* call stack */
-
-    FT_UShort          maxPoints;    /* capacity of this context's `pts' */
-    FT_Short           maxContours;  /* record, expressed in points and  */
-                                     /* contours.                        */
-
-    TT_CodeRangeTable  codeRangeTable;  /* table of valid code ranges */
-                                        /* useful for the debugger   */
-
-    FT_UShort          storeSize;  /* size of current storage */
-    FT_Long*           storage;    /* storage area            */
-
-    FT_F26Dot6         period;     /* values used for the */
-    FT_F26Dot6         phase;      /* `SuperRounding'     */
-    FT_F26Dot6         threshold;
-
-#if 0
-    /* this seems to be unused */
-    FT_Int             cur_ppem;   /* ppem along the current proj vector */
-#endif
-
-    FT_Bool            instruction_trap; /* If `True', the interpreter will */
-                                         /* exit after each instruction     */
-
-    TT_GraphicsState   default_GS;       /* graphics state resulting from   */
-                                         /* the prep program                */
-    FT_Bool            is_composite;     /* true if the glyph is composite  */
-    FT_Bool            pedantic_hinting; /* true if pedantic interpretation */
-
-    /* latest interpreter additions */
-
-    FT_Long            F_dot_P;    /* dot product of freedom and projection */
-                                   /* vectors                               */
-    TT_Round_Func      func_round; /* current rounding function             */
-
-    TT_Project_Func    func_project,   /* current projection function */
-                       func_dualproj,  /* current dual proj. function */
-                       func_freeProj;  /* current freedom proj. func  */
-
-    TT_Move_Func       func_move;      /* current point move function */
-    TT_Move_Func       func_move_orig; /* move original position function */
-
-    TT_Get_CVT_Func    func_read_cvt;  /* read a cvt entry              */
-    TT_Set_CVT_Func    func_write_cvt; /* write a cvt entry (in pixels) */
-    TT_Set_CVT_Func    func_move_cvt;  /* incr a cvt entry (in pixels)  */
-
-    FT_ULong           loadSize;
-    TT_SubGlyph_Stack  loadStack;      /* loading subglyph stack */
-
-  } TT_ExecContextRec;
-
-
-  extern const TT_GraphicsState  tt_default_graphics_state;
-
-
-  FT_LOCAL( FT_Error )
-  TT_Goto_CodeRange( TT_ExecContext  exec,
-                     FT_Int          range,
-                     FT_Long         IP );
-
-  FT_LOCAL( FT_Error )
-  TT_Set_CodeRange( TT_ExecContext  exec,
-                    FT_Int          range,
-                    void*           base,
-                    FT_Long         length );
-
-  FT_LOCAL( FT_Error )
-  TT_Clear_CodeRange( TT_ExecContext  exec,
-                      FT_Int          range );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_New_Context                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Queries the face context for a given font.  Note that there is     */
-  /*    now a _single_ execution context in the TrueType driver which is   */
-  /*    shared among faces.                                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A handle to the source face object.                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    A handle to the execution context.  Initialized for `face'.        */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the glyph loader and debugger should call this function.      */
-  /*                                                                       */
-  FT_EXPORT( TT_ExecContext )
-  TT_New_Context( TT_Face  face );
-
-
-  FT_LOCAL( FT_Error )
-  TT_Done_Context( TT_ExecContext  exec );
-
-  FT_LOCAL( FT_Error )
-  TT_Destroy_Context( TT_ExecContext  exec,
-                      FT_Memory       memory );
-
-  FT_LOCAL( FT_Error )
-  TT_Load_Context( TT_ExecContext  exec,
-                   TT_Face         face,
-                   TT_Size         size );
-
-  FT_LOCAL( FT_Error )
-  TT_Save_Context( TT_ExecContext  exec,
-                   TT_Size         ins );
-
-  FT_LOCAL( FT_Error )
-  TT_Run_Context( TT_ExecContext  exec,
-                  FT_Bool         debug );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    TT_RunIns                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Executes one or more instruction in the execution context.  This   */
-  /*    is the main function of the TrueType opcode interpreter.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    exec :: A handle to the target execution context.                  */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only the object manager and debugger should call this function.    */
-  /*                                                                       */
-  /*    This function is publicly exported because it is directly          */
-  /*    invoked by the TrueType debugger.                                  */
-  /*                                                                       */
-  FT_EXPORT( FT_Error )
-  TT_RunIns( TT_ExecContext  exec );
-
-
-FT_END_HEADER
-
-#endif /* __TTINTERP_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttobjs.c b/nx-X11/extras/freetype2/src/truetype/ttobjs.c
deleted file mode 100644
index 3914ba5da..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttobjs.c
+++ /dev/null
@@ -1,901 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttobjs.c                                                               */
-/*                                                                         */
-/*    Objects manager (body).                                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_IDS_H
-#include FT_TRUETYPE_TAGS_H
-#include FT_INTERNAL_SFNT_H
-
-#include "ttgload.h"
-#include "ttpload.h"
-
-#include "tterrors.h"
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-#include "ttinterp.h"
-#endif
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-#include FT_TRUETYPE_UNPATENTED_H
-#endif
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include "ttgxvar.h"
-#endif
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttobjs
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                       GLYPH ZONE FUNCTIONS                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_glyphzone_done                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Deallocates a glyph zone.                                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    zone :: A pointer to the target glyph zone.                        */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_glyphzone_done( TT_GlyphZone  zone )
-  {
-    FT_Memory  memory = zone->memory;
-
-
-    if ( memory )
-    {
-      FT_FREE( zone->contours );
-      FT_FREE( zone->tags );
-      FT_FREE( zone->cur );
-      FT_FREE( zone->org );
-
-      zone->max_points   = zone->n_points   = 0;
-      zone->max_contours = zone->n_contours = 0;
-      zone->memory       = NULL;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_glyphzone_new                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Allocates a new glyph zone.                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    memory      :: A handle to the current memory object.              */
-  /*                                                                       */
-  /*    maxPoints   :: The capacity of glyph zone in points.               */
-  /*                                                                       */
-  /*    maxContours :: The capacity of glyph zone in contours.             */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    zone        :: A pointer to the target glyph zone record.          */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_glyphzone_new( FT_Memory     memory,
-                    FT_UShort     maxPoints,
-                    FT_Short      maxContours,
-                    TT_GlyphZone  zone )
-  {
-    FT_Error  error;
-
-
-    if ( maxPoints > 0 )
-      maxPoints += 2;
-
-    FT_MEM_ZERO( zone, sizeof ( *zone ) );
-    zone->memory = memory;
-
-    if ( FT_NEW_ARRAY( zone->org,      maxPoints * 2 ) ||
-         FT_NEW_ARRAY( zone->cur,      maxPoints * 2 ) ||
-         FT_NEW_ARRAY( zone->tags,     maxPoints     ) ||
-         FT_NEW_ARRAY( zone->contours, maxContours   ) )
-    {
-      tt_glyphzone_done( zone );
-    }
-
-    return error;
-  }
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_init                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given TrueType face object.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream     :: The source font stream.                              */
-  /*                                                                       */
-  /*    face_index :: The index of the font face in the resource.          */
-  /*                                                                       */
-  /*    num_params :: Number of additional generic parameters.  Ignored.   */
-  /*                                                                       */
-  /*    params     :: Additional generic parameters.  Ignored.             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: The newly built face object.                         */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_init( FT_Stream      stream,
-                FT_Face        ttface,      /* TT_Face */
-                FT_Int         face_index,
-                FT_Int         num_params,
-                FT_Parameter*  params )
-  {
-    FT_Error      error;
-    FT_Library    library;
-    SFNT_Service  sfnt;
-    TT_Face       face = (TT_Face)ttface;
-
-
-    library = face->root.driver->root.library;
-    sfnt    = (SFNT_Service)FT_Get_Module_Interface( library, "sfnt" );
-    if ( !sfnt )
-      goto Bad_Format;
-
-    /* create input stream from resource */
-    if ( FT_STREAM_SEEK( 0 ) )
-      goto Exit;
-
-    /* check that we have a valid TrueType file */
-    error = sfnt->init_face( stream, face, face_index, num_params, params );
-    if ( error )
-      goto Exit;
-
-    /* We must also be able to accept Mac/GX fonts, as well as OT ones */
-    if ( face->format_tag != 0x00010000L &&    /* MS fonts  */
-         face->format_tag != TTAG_true   )     /* Mac fonts */
-    {
-      FT_TRACE2(( "[not a valid TTF font]\n" ));
-      goto Bad_Format;
-    }
-
-    /* If we are performing a simple font format check, exit immediately */
-    if ( face_index < 0 )
-      return TT_Err_Ok;
-
-    /* Load font directory */
-    error = sfnt->load_face( stream, face, face_index, num_params, params );
-    if ( error )
-      goto Exit;
-
-    if ( face->root.face_flags & FT_FACE_FLAG_SCALABLE )
-    {
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-      if ( !face->root.internal->incremental_interface )
-        error = tt_face_load_loca( face, stream );
-      if ( !error )
-        error = tt_face_load_cvt( face, stream ) ||
-                tt_face_load_fpgm( face, stream );
-
-#else
-
-      if ( !error )
-        error = tt_face_load_loca( face, stream ) ||
-                tt_face_load_cvt( face, stream )  ||
-                tt_face_load_fpgm( face, stream );
-
-#endif
-
-    }
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-
-    /* Determine whether unpatented hinting is to be used for this face. */
-    face->unpatented_hinting = FT_BOOL
-       ( library->debug_hooks[ FT_DEBUG_HOOK_UNPATENTED_HINTING ] != NULL );
-
-    {
-      int  i;
-
-
-      for ( i = 0; i < num_params && !face->unpatented_hinting; i++ )
-        if ( params[i].tag == FT_PARAM_TAG_UNPATENTED_HINTING )
-          face->unpatented_hinting = TRUE;
-    }
-
-#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
-
-    /* initialize standard glyph loading routines */
-    TT_Init_Glyph_Loading( face );
-
-  Exit:
-    return error;
-
-  Bad_Format:
-    error = TT_Err_Unknown_File_Format;
-    goto Exit;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_done                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given face object.                                     */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A pointer to the face object to destroy.                   */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_face_done( FT_Face  ttface )           /* TT_Face */
-  {
-    TT_Face       face   = (TT_Face)ttface;
-    FT_Memory     memory = face->root.memory;
-    FT_Stream     stream = face->root.stream;
-
-    SFNT_Service  sfnt   = (SFNT_Service)face->sfnt;
-
-
-    /* for `extended TrueType formats' (i.e. compressed versions) */
-    if ( face->extra.finalizer )
-      face->extra.finalizer( face->extra.data );
-
-    if ( sfnt )
-      sfnt->done_face( face );
-
-    /* freeing the locations table */
-    FT_FREE( face->glyph_locations );
-    face->num_locations = 0;
-
-    /* freeing the CVT */
-    FT_FREE( face->cvt );
-    face->cvt_size = 0;
-
-    /* freeing the programs */
-    FT_FRAME_RELEASE( face->font_program );
-    FT_FRAME_RELEASE( face->cvt_program );
-    face->font_program_size = 0;
-    face->cvt_program_size  = 0;
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-    tt_done_blend( memory, face->blend );
-    face->blend = NULL;
-#endif
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                           SIZE  FUNCTIONS                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_size_init                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a new TrueType size object.                            */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    size :: A handle to the size object.                               */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_size_init( FT_Size  ttsize )           /* TT_Size */
-  {
-    TT_Size   size  = (TT_Size)ttsize;
-    FT_Error  error = TT_Err_Ok;
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    TT_Face    face   = (TT_Face)size->root.face;
-    FT_Memory  memory = face->root.memory;
-    FT_Int     i;
-
-    TT_ExecContext  exec;
-    FT_UShort       n_twilight;
-    TT_MaxProfile*  maxp = &face->max_profile;
-
-
-    size->ttmetrics.valid = FALSE;
-
-    size->max_function_defs    = maxp->maxFunctionDefs;
-    size->max_instruction_defs = maxp->maxInstructionDefs;
-
-    size->num_function_defs    = 0;
-    size->num_instruction_defs = 0;
-
-    size->max_func = 0;
-    size->max_ins  = 0;
-
-    size->cvt_size     = face->cvt_size;
-    size->storage_size = maxp->maxStorage;
-
-    /* Set default metrics */
-    {
-      FT_Size_Metrics*  metrics  = &size->root.metrics;
-      TT_Size_Metrics*  metrics2 = &size->ttmetrics;
-
-
-      metrics->x_ppem = 0;
-      metrics->y_ppem = 0;
-
-      metrics2->rotated   = FALSE;
-      metrics2->stretched = FALSE;
-
-      /* set default compensation (all 0) */
-      for ( i = 0; i < 4; i++ )
-        metrics2->compensations[i] = 0;
-    }
-
-    /* allocate function defs, instruction defs, cvt, and storage area */
-    if ( FT_NEW_ARRAY( size->function_defs,    size->max_function_defs    ) ||
-         FT_NEW_ARRAY( size->instruction_defs, size->max_instruction_defs ) ||
-         FT_NEW_ARRAY( size->cvt,              size->cvt_size             ) ||
-         FT_NEW_ARRAY( size->storage,          size->storage_size         ) )
-
-      goto Fail_Memory;
-
-    /* reserve twilight zone */
-    n_twilight = maxp->maxTwilightPoints;
-    error = tt_glyphzone_new( memory, n_twilight, 0, &size->twilight );
-    if ( error )
-      goto Fail_Memory;
-
-    size->twilight.n_points = n_twilight;
-
-    /* set `face->interpreter' according to the debug hook present */
-    {
-      FT_Library  library = face->root.driver->root.library;
-
-
-      face->interpreter = (TT_Interpreter)
-                            library->debug_hooks[FT_DEBUG_HOOK_TRUETYPE];
-      if ( !face->interpreter )
-        face->interpreter = (TT_Interpreter)TT_RunIns;
-    }
-
-    /* Fine, now execute the font program! */
-    exec = size->context;
-    /* size objects used during debugging have their own context */
-    if ( !size->debug )
-      exec = TT_New_Context( face );
-
-    if ( !exec )
-    {
-      error = TT_Err_Could_Not_Find_Context;
-      goto Fail_Memory;
-    }
-
-    size->GS = tt_default_graphics_state;
-    TT_Load_Context( exec, face, size );
-
-    exec->callTop   = 0;
-    exec->top       = 0;
-
-    exec->period    = 64;
-    exec->phase     = 0;
-    exec->threshold = 0;
-
-    {
-      FT_Size_Metrics*  metrics    = &exec->metrics;
-      TT_Size_Metrics*  tt_metrics = &exec->tt_metrics;
-
-
-      metrics->x_ppem   = 0;
-      metrics->y_ppem   = 0;
-      metrics->x_scale  = 0;
-      metrics->y_scale  = 0;
-
-      tt_metrics->ppem  = 0;
-      tt_metrics->scale = 0;
-      tt_metrics->ratio = 0x10000L;
-    }
-
-    exec->instruction_trap = FALSE;
-
-    exec->cvtSize = size->cvt_size;
-    exec->cvt     = size->cvt;
-
-    exec->F_dot_P = 0x10000L;
-
-    /* allow font program execution */
-    TT_Set_CodeRange( exec,
-                      tt_coderange_font,
-                      face->font_program,
-                      face->font_program_size );
-
-    /* disable CVT and glyph programs coderange */
-    TT_Clear_CodeRange( exec, tt_coderange_cvt );
-    TT_Clear_CodeRange( exec, tt_coderange_glyph );
-
-    if ( face->font_program_size > 0 )
-    {
-      error = TT_Goto_CodeRange( exec, tt_coderange_font, 0 );
-      if ( !error )
-        error = face->interpreter( exec );
-
-      if ( error )
-        goto Fail_Exec;
-    }
-    else
-      error = TT_Err_Ok;
-
-    TT_Save_Context( exec, size );
-
-    if ( !size->debug )
-      TT_Done_Context( exec );
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    size->ttmetrics.valid = FALSE;
-    return error;
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  Fail_Exec:
-    if ( !size->debug )
-      TT_Done_Context( exec );
-
-  Fail_Memory:
-
-    tt_size_done( ttsize );
-    return error;
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_size_done                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The TrueType size object finalizer.                                */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    size :: A handle to the target size object.                        */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_size_done( FT_Size  ttsize )           /* TT_Size */
-  {
-    TT_Size    size = (TT_Size)ttsize;
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    FT_Memory  memory = size->root.face->memory;
-
-
-    if ( size->debug )
-    {
-      /* the debug context must be deleted by the debugger itself */
-      size->context = NULL;
-      size->debug   = FALSE;
-    }
-
-    FT_FREE( size->cvt );
-    size->cvt_size = 0;
-
-    /* free storage area */
-    FT_FREE( size->storage );
-    size->storage_size = 0;
-
-    /* twilight zone */
-    tt_glyphzone_done( &size->twilight );
-
-    FT_FREE( size->function_defs );
-    FT_FREE( size->instruction_defs );
-
-    size->num_function_defs    = 0;
-    size->max_function_defs    = 0;
-    size->num_instruction_defs = 0;
-    size->max_instruction_defs = 0;
-
-    size->max_func = 0;
-    size->max_ins  = 0;
-
-#endif
-
-    size->ttmetrics.valid = FALSE;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Reset_Outline_Size                                                 */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Resets a TrueType outline size when resolutions and character      */
-  /*    dimensions have been changed.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    size :: A handle to the target size object.                        */
-  /*                                                                       */
-  static FT_Error
-  Reset_Outline_Size( TT_Size  size )
-  {
-    TT_Face           face;
-    FT_Error          error = TT_Err_Ok;
-
-    FT_Size_Metrics*  metrics;
-
-
-    if ( size->ttmetrics.valid )
-      return TT_Err_Ok;
-
-    face = (TT_Face)size->root.face;
-
-    metrics = &size->metrics;
-
-    if ( metrics->x_ppem < 1 || metrics->y_ppem < 1 )
-      return TT_Err_Invalid_PPem;
-
-    /* compute new transformation */
-    if ( metrics->x_ppem >= metrics->y_ppem )
-    {
-      size->ttmetrics.scale   = metrics->x_scale;
-      size->ttmetrics.ppem    = metrics->x_ppem;
-      size->ttmetrics.x_ratio = 0x10000L;
-      size->ttmetrics.y_ratio = FT_MulDiv( metrics->y_ppem,
-                                           0x10000L,
-                                           metrics->x_ppem );
-    }
-    else
-    {
-      size->ttmetrics.scale   = metrics->y_scale;
-      size->ttmetrics.ppem    = metrics->y_ppem;
-      size->ttmetrics.x_ratio = FT_MulDiv( metrics->x_ppem,
-                                           0x10000L,
-                                           metrics->y_ppem );
-      size->ttmetrics.y_ratio = 0x10000L;
-    }
-
-    /* Compute root ascender, descender, text height, and max_advance */
-    metrics->ascender =
-      FT_PIX_ROUND( FT_MulFix( face->root.ascender, metrics->y_scale ) );
-    metrics->descender =
-      FT_PIX_ROUND( FT_MulFix( face->root.descender, metrics->y_scale ) );
-    metrics->height =
-      FT_PIX_ROUND( FT_MulFix( face->root.height, metrics->y_scale ) );
-    metrics->max_advance =
-      FT_PIX_ROUND( FT_MulFix( face->root.max_advance_width,
-                               metrics->x_scale ) );
-
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-    /* set to `invalid' by default */
-    size->strike_index = 0xFFFFU;
-#endif
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    {
-      TT_ExecContext  exec;
-      FT_UInt         i, j;
-
-
-      /* Scale the cvt values to the new ppem.          */
-      /* We use by default the y ppem to scale the CVT. */
-      for ( i = 0; i < size->cvt_size; i++ )
-        size->cvt[i] = FT_MulFix( face->cvt[i], size->ttmetrics.scale );
-
-      /* All twilight points are originally zero */
-      for ( j = 0; j < (FT_UInt)size->twilight.n_points; j++ )
-      {
-        size->twilight.org[j].x = 0;
-        size->twilight.org[j].y = 0;
-        size->twilight.cur[j].x = 0;
-        size->twilight.cur[j].y = 0;
-      }
-
-      /* clear storage area */
-      for ( i = 0; i < (FT_UInt)size->storage_size; i++ )
-        size->storage[i] = 0;
-
-      size->GS = tt_default_graphics_state;
-
-      /* get execution context and run prep program */
-      if ( size->debug )
-        exec = size->context;
-      else
-        exec = TT_New_Context( face );
-      /* debugging instances have their own context */
-
-      if ( !exec )
-        return TT_Err_Could_Not_Find_Context;
-
-      TT_Load_Context( exec, face, size );
-
-      TT_Set_CodeRange( exec,
-                        tt_coderange_cvt,
-                        face->cvt_program,
-                        face->cvt_program_size );
-
-      TT_Clear_CodeRange( exec, tt_coderange_glyph );
-
-      exec->instruction_trap = FALSE;
-
-      exec->top     = 0;
-      exec->callTop = 0;
-
-      if ( face->cvt_program_size > 0 )
-      {
-        error = TT_Goto_CodeRange( exec, tt_coderange_cvt, 0 );
-        if ( error )
-          goto End;
-
-        if ( !size->debug )
-          error = face->interpreter( exec );
-      }
-      else
-        error = TT_Err_Ok;
-
-      size->GS = exec->GS;
-      /* save default graphics state */
-
-    End:
-      TT_Save_Context( exec, size );
-
-      if ( !size->debug )
-        TT_Done_Context( exec );
-      /* debugging instances keep their context */
-    }
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-    if ( !error )
-      size->ttmetrics.valid = TRUE;
-
-    return error;
-  }
-
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Reset_SBit_Size                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Resets a TrueType sbit size when resolutions and character         */
-  /*    dimensions have been changed.                                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    size :: A handle to the target size object.                        */
-  /*                                                                       */
-  static FT_Error
-  Reset_SBit_Size( TT_Size  size )
-  {
-    TT_Face           face;
-    FT_Error          error = TT_Err_Ok;
-
-    FT_ULong          strike_index;
-    FT_Size_Metrics*  metrics;
-    FT_Size_Metrics*  sbit_metrics;
-    SFNT_Service      sfnt;
-
-
-    metrics = &size->metrics;
-
-    if ( size->strike_index != 0xFFFFU )
-      return TT_Err_Ok;
-
-    face = (TT_Face)size->root.face;
-    sfnt = (SFNT_Service)face->sfnt;
-
-    sbit_metrics = &size->strike_metrics;
-
-    error = sfnt->set_sbit_strike( face,
-                                   metrics->x_ppem, metrics->y_ppem,
-                                   &strike_index );
-
-    if ( !error )
-    {
-      TT_SBit_Strike  strike = face->sbit_strikes + strike_index;
-
-
-      sbit_metrics->x_ppem = metrics->x_ppem;
-      sbit_metrics->y_ppem = metrics->y_ppem;
-#if 0
-      /*
-       * sbit_metrics->?_scale
-       * are not used now.
-       */
-      sbit_metrics->x_scale = 1 << 16;
-      sbit_metrics->y_scale = 1 << 16;
-#endif
-
-      sbit_metrics->ascender  = strike->hori.ascender << 6;
-      sbit_metrics->descender = strike->hori.descender << 6;
-
-      /* XXX: Is this correct? */
-      sbit_metrics->height = sbit_metrics->ascender -
-                             sbit_metrics->descender;
-
-      /* XXX: Is this correct? */
-      sbit_metrics->max_advance = ( strike->hori.min_origin_SB  +
-                                    strike->hori.max_width      +
-                                    strike->hori.min_advance_SB ) << 6;
-
-      size->strike_index = (FT_UInt)strike_index;
-    }
-    else
-    {
-      size->strike_index = 0xFFFFU;
-
-      sbit_metrics->x_ppem      = 0;
-      sbit_metrics->y_ppem      = 0;
-      sbit_metrics->ascender    = 0;
-      sbit_metrics->descender   = 0;
-      sbit_metrics->height      = 0;
-      sbit_metrics->max_advance = 0;
-    }
-
-    return error;
-  }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_size_reset                                                      */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Resets a TrueType size when resolutions and character dimensions   */
-  /*    have been changed.                                                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    size :: A handle to the target size object.                        */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_size_reset( TT_Size  size )
-  {
-    FT_Face   face;
-    FT_Error  error = TT_Err_Ok;
-
-
-    face = size->root.face;
-
-    if ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-    {
-      if ( !size->ttmetrics.valid )
-        error = Reset_Outline_Size( size );
-
-      if ( error )
-        return error;
-    }
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    if ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
-    {
-      if ( size->strike_index == 0xFFFFU )
-        error = Reset_SBit_Size( size );
-
-      if ( !error && !( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
-        size->root.metrics = size->strike_metrics;
-    }
-
-#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
-
-    if ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-      return TT_Err_Ok;
-    else
-      return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_driver_init                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given TrueType driver object.                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target driver object.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_driver_init( FT_Module  driver )       /* TT_Driver */
-  {
-    FT_Error  error;
-
-
-    /* set `extra' in glyph loader */
-    error = FT_GlyphLoader_CreateExtra( FT_DRIVER( driver )->glyph_loader );
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_driver_done                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given TrueType driver.                                 */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target TrueType driver.                  */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  tt_driver_done( FT_Module  ttdriver )     /* TT_Driver */
-  {
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-    TT_Driver  driver = (TT_Driver)ttdriver;
-
-
-    /* destroy the execution context */
-    if ( driver->context )
-    {
-      TT_Destroy_Context( driver->context, driver->root.root.memory );
-      driver->context = NULL;
-    }
-#else
-    FT_UNUSED( ttdriver );
-#endif
-
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttobjs.h b/nx-X11/extras/freetype2/src/truetype/ttobjs.h
deleted file mode 100644
index 423d3f005..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttobjs.h
+++ /dev/null
@@ -1,437 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttobjs.h                                                               */
-/*                                                                         */
-/*    Objects manager (specification).                                     */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTOBJS_H__
-#define __TTOBJS_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    TT_Driver                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a TrueType driver object.                              */
-  /*                                                                       */
-  typedef struct TT_DriverRec_*  TT_Driver;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    TT_Instance                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a TrueType size object.                                */
-  /*                                                                       */
-  typedef struct TT_SizeRec_*  TT_Size;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    TT_GlyphSlot                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a TrueType glyph slot object.                          */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    This is a direct typedef of FT_GlyphSlot, as there is nothing      */
-  /*    specific about the TrueType glyph slot.                            */
-  /*                                                                       */
-  typedef FT_GlyphSlot  TT_GlyphSlot;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    TT_GraphicsState                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The TrueType graphics state used during bytecode interpretation.   */
-  /*                                                                       */
-  typedef struct  TT_GraphicsState_
-  {
-    FT_UShort      rp0;
-    FT_UShort      rp1;
-    FT_UShort      rp2;
-
-    FT_UnitVector  dualVector;
-    FT_UnitVector  projVector;
-    FT_UnitVector  freeVector;
-
-#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
-    FT_Bool        both_x_axis;
-#endif
-
-    FT_Long        loop;
-    FT_F26Dot6     minimum_distance;
-    FT_Int         round_state;
-
-    FT_Bool        auto_flip;
-    FT_F26Dot6     control_value_cutin;
-    FT_F26Dot6     single_width_cutin;
-    FT_F26Dot6     single_width_value;
-    FT_Short       delta_base;
-    FT_Short       delta_shift;
-
-    FT_Byte        instruct_control;
-    FT_Bool        scan_control;
-    FT_Int         scan_type;
-
-    FT_UShort      gep0;
-    FT_UShort      gep1;
-    FT_UShort      gep2;
-
-  } TT_GraphicsState;
-
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  FT_LOCAL( void )
-  tt_glyphzone_done( TT_GlyphZone  zone );
-
-  FT_LOCAL( FT_Error )
-  tt_glyphzone_new( FT_Memory     memory,
-                    FT_UShort     maxPoints,
-                    FT_Short      maxContours,
-                    TT_GlyphZone  zone );
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*  EXECUTION SUBTABLES                                                  */
-  /*                                                                       */
-  /*  These sub-tables relate to instruction execution.                    */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#define TT_MAX_CODE_RANGES  3
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* There can only be 3 active code ranges at once:                       */
-  /*   - the Font Program                                                  */
-  /*   - the CVT Program                                                   */
-  /*   - a glyph's instructions set                                        */
-  /*                                                                       */
-  typedef enum  TT_CodeRange_Tag_
-  {
-    tt_coderange_none = 0,
-    tt_coderange_font,
-    tt_coderange_cvt,
-    tt_coderange_glyph
-
-  } TT_CodeRange_Tag;
-
-
-  typedef struct  TT_CodeRange_
-  {
-    FT_Byte*  base;
-    FT_ULong  size;
-
-  } TT_CodeRange;
-
-  typedef TT_CodeRange  TT_CodeRangeTable[TT_MAX_CODE_RANGES];
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Defines a function/instruction definition record.                     */
-  /*                                                                       */
-  typedef struct  TT_DefRecord_
-  {
-    FT_Int   range;      /* in which code range is it located? */
-    FT_Long  start;      /* where does it start?               */
-    FT_UInt  opc;        /* function #, or instruction code    */
-    FT_Bool  active;     /* is it active?                      */
-
-  } TT_DefRecord, *TT_DefArray;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Subglyph transformation record.                                       */
-  /*                                                                       */
-  typedef struct  TT_Transform_
-  {
-    FT_Fixed    xx, xy;     /* transformation matrix coefficients */
-    FT_Fixed    yx, yy;
-    FT_F26Dot6  ox, oy;     /* offsets        */
-
-  } TT_Transform;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Subglyph loading record.  Used to load composite components.          */
-  /*                                                                       */
-  typedef struct  TT_SubglyphRec_
-  {
-    FT_Long          index;        /* subglyph index; initialized with -1 */
-    FT_Bool          is_scaled;    /* is the subglyph scaled?             */
-    FT_Bool          is_hinted;    /* should it be hinted?                */
-    FT_Bool          preserve_pps; /* preserve phantom points?            */
-
-    FT_Long          file_offset;
-
-    FT_BBox          bbox;
-    FT_Pos           left_bearing;
-    FT_Pos           advance;
-
-    TT_GlyphZoneRec  zone;
-
-    FT_Long          arg1;         /* first argument                      */
-    FT_Long          arg2;         /* second argument                     */
-
-    FT_UShort        element_flag; /* current load element flag           */
-
-    TT_Transform     transform;    /* transformation matrix               */
-
-    FT_Vector        pp1, pp2;     /* phantom points (horizontal)         */
-    FT_Vector        pp3, pp4;     /* phantom points (vertical)           */
-
-  } TT_SubGlyphRec, *TT_SubGlyph_Stack;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* A note regarding non-squared pixels:                                  */
-  /*                                                                       */
-  /* (This text will probably go into some docs at some time; for now, it  */
-  /*  is kept here to explain some definitions in the TIns_Metrics         */
-  /*  record).                                                             */
-  /*                                                                       */
-  /* The CVT is a one-dimensional array containing values that control     */
-  /* certain important characteristics in a font, like the height of all   */
-  /* capitals, all lowercase letter, default spacing or stem width/height. */
-  /*                                                                       */
-  /* These values are found in FUnits in the font file, and must be scaled */
-  /* to pixel coordinates before being used by the CVT and glyph programs. */
-  /* Unfortunately, when using distinct x and y resolutions (or distinct x */
-  /* and y pointsizes), there are two possible scalings.                   */
-  /*                                                                       */
-  /* A first try was to implement a `lazy' scheme where all values were    */
-  /* scaled when first used.  However, while some values are always used   */
-  /* in the same direction, some others are used under many different      */
-  /* circumstances and orientations.                                       */
-  /*                                                                       */
-  /* I have found a simpler way to do the same, and it even seems to work  */
-  /* in most of the cases:                                                 */
-  /*                                                                       */
-  /* - All CVT values are scaled to the maximum ppem size.                 */
-  /*                                                                       */
-  /* - When performing a read or write in the CVT, a ratio factor is used  */
-  /*   to perform adequate scaling.  Example:                              */
-  /*                                                                       */
-  /*     x_ppem = 14                                                       */
-  /*     y_ppem = 10                                                       */
-  /*                                                                       */
-  /*   We choose ppem = x_ppem = 14 as the CVT scaling size.  All cvt      */
-  /*   entries are scaled to it.                                           */
-  /*                                                                       */
-  /*     x_ratio = 1.0                                                     */
-  /*     y_ratio = y_ppem/ppem (< 1.0)                                     */
-  /*                                                                       */
-  /*   We compute the current ratio like:                                  */
-  /*                                                                       */
-  /*   - If projVector is horizontal,                                      */
-  /*       ratio = x_ratio = 1.0                                           */
-  /*                                                                       */
-  /*   - if projVector is vertical,                                        */
-  /*       ratio = y_ratio                                                 */
-  /*                                                                       */
-  /*   - else,                                                             */
-  /*       ratio = sqrt( (proj.x * x_ratio) ^ 2 + (proj.y * y_ratio) ^ 2 ) */
-  /*                                                                       */
-  /*   Reading a cvt value returns                                         */
-  /*     ratio * cvt[index]                                                */
-  /*                                                                       */
-  /*   Writing a cvt value in pixels:                                      */
-  /*     cvt[index] / ratio                                                */
-  /*                                                                       */
-  /*   The current ppem is simply                                          */
-  /*     ratio * ppem                                                      */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Metrics used by the TrueType size and context objects.                */
-  /*                                                                       */
-  typedef struct  TT_Size_Metrics_
-  {
-    /* for non-square pixels */
-    FT_Long     x_ratio;
-    FT_Long     y_ratio;
-
-    FT_UShort   ppem;               /* maximum ppem size              */
-    FT_Long     ratio;              /* current ratio                  */
-    FT_Fixed    scale;
-
-    FT_F26Dot6  compensations[4];   /* device-specific compensations  */
-
-    FT_Bool     valid;
-
-    FT_Bool     rotated;            /* `is the glyph rotated?'-flag   */
-    FT_Bool     stretched;          /* `is the glyph stretched?'-flag */
-
-  } TT_Size_Metrics;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TrueType size class.                                                  */
-  /*                                                                       */
-  typedef struct  TT_SizeRec_
-  {
-    FT_SizeRec         root;
-
-    FT_Size_Metrics    metrics; /* slightly different from the root metrics */
-    TT_Size_Metrics    ttmetrics;
-
-#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-    FT_UInt            strike_index;    /* 0xFFFF to indicate invalid */
-    FT_Size_Metrics    strike_metrics;  /* current strike's metrics   */
-
-#endif
-
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-    FT_UInt            num_function_defs; /* number of function definitions */
-    FT_UInt            max_function_defs;
-    TT_DefArray        function_defs;     /* table of function definitions  */
-
-    FT_UInt            num_instruction_defs;  /* number of ins. definitions */
-    FT_UInt            max_instruction_defs;
-    TT_DefArray        instruction_defs;      /* table of ins. definitions  */
-
-    FT_UInt            max_func;
-    FT_UInt            max_ins;
-
-    TT_CodeRangeTable  codeRangeTable;
-
-    TT_GraphicsState   GS;
-
-    FT_ULong           cvt_size;      /* the scaled control value table */
-    FT_Long*           cvt;
-
-    FT_UShort          storage_size; /* The storage area is now part of */
-    FT_Long*           storage;      /* the instance                    */
-
-    TT_GlyphZoneRec    twilight;     /* The instance's twilight zone    */
-
-    /* debugging variables */
-
-    /* When using the debugger, we must keep the */
-    /* execution context tied to the instance    */
-    /* object rather than asking it on demand.   */
-
-    FT_Bool            debug;
-    TT_ExecContext     context;
-
-#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
-  } TT_SizeRec;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* TrueType driver class.                                                */
-  /*                                                                       */
-  typedef struct  TT_DriverRec_
-  {
-    FT_DriverRec     root;
-    TT_ExecContext   context;  /* execution context        */
-    TT_GlyphZoneRec  zone;     /* glyph loader points zone */
-
-    void*            extension_component;
-
-  } TT_DriverRec;
-
-
-  /* Note: All of the functions below (except tt_size_reset()) are used    */
-  /* as function pointers in a FT_Driver_ClassRec.  Therefore their        */
-  /* parameters are of types FT_Face, FT_Size, etc., rather than TT_Face,  */
-  /* TT_Size, etc., so that the compiler can confirm that the types and    */
-  /* number of parameters are correct.  In all cases the FT_xxx types are  */
-  /* cast to their TT_xxx counterparts inside the functions since FreeType */
-  /* will always use the TT driver to create them.                         */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Face functions                                                        */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  tt_face_init( FT_Stream      stream,
-                FT_Face        ttface,      /* TT_Face */
-                FT_Int         face_index,
-                FT_Int         num_params,
-                FT_Parameter*  params );
-
-  FT_LOCAL( void )
-  tt_face_done( FT_Face  ttface );          /* TT_Face */
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Size functions                                                        */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  tt_size_init( FT_Size  ttsize );          /* TT_Size */
-
-  FT_LOCAL( void )
-  tt_size_done( FT_Size  ttsize );          /* TT_Size */
-
-  FT_LOCAL( FT_Error )
-  tt_size_reset( TT_Size  size );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Driver functions                                                      */
-  /*                                                                       */
-  FT_LOCAL( FT_Error )
-  tt_driver_init( FT_Module  ttdriver );    /* TT_Driver */
-
-  FT_LOCAL( void )
-  tt_driver_done( FT_Module  ttdriver );    /* TT_Driver */
-
-
-FT_END_HEADER
-
-#endif /* __TTOBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttpload.c b/nx-X11/extras/freetype2/src/truetype/ttpload.c
deleted file mode 100644
index 9cae477c5..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttpload.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttpload.c                                                              */
-/*                                                                         */
-/*    TrueType glyph data/program tables loader (body).                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_TAGS_H
-
-#include "ttpload.h"
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-#include "ttgxvar.h"
-#endif
-
-#include "tterrors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_ttpload
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_loca                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the locations table.                                         */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: The input stream.                                        */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_loca( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-    FT_Short   LongOffsets;
-    FT_ULong   table_len;
-
-
-    FT_TRACE2(( "Locations " ));
-    LongOffsets = face->header.Index_To_Loc_Format;
-
-    error = face->goto_table( face, TTAG_loca, stream, &table_len );
-    if ( error )
-    {
-      error = TT_Err_Locations_Missing;
-      goto Exit;
-    }
-
-    if ( LongOffsets != 0 )
-    {
-      face->num_locations = (FT_UShort)( table_len >> 2 );
-
-      FT_TRACE2(( "(32bit offsets): %12d ", face->num_locations ));
-
-      if ( FT_NEW_ARRAY( face->glyph_locations, face->num_locations ) )
-        goto Exit;
-
-      if ( FT_FRAME_ENTER( face->num_locations * 4L ) )
-        goto Exit;
-
-      {
-        FT_Long*  loc   = face->glyph_locations;
-        FT_Long*  limit = loc + face->num_locations;
-
-
-        for ( ; loc < limit; loc++ )
-          *loc = FT_GET_LONG();
-      }
-
-      FT_FRAME_EXIT();
-    }
-    else
-    {
-      face->num_locations = (FT_UShort)( table_len >> 1 );
-
-      FT_TRACE2(( "(16bit offsets): %12d ", face->num_locations ));
-
-      if ( FT_NEW_ARRAY( face->glyph_locations, face->num_locations ) )
-        goto Exit;
-
-      if ( FT_FRAME_ENTER( face->num_locations * 2L ) )
-        goto Exit;
-      {
-        FT_Long*  loc   = face->glyph_locations;
-        FT_Long*  limit = loc + face->num_locations;
-
-
-        for ( ; loc < limit; loc++ )
-          *loc = (FT_Long)( (FT_ULong)FT_GET_USHORT() * 2 );
-      }
-      FT_FRAME_EXIT();
-    }
-
-    FT_TRACE2(( "loaded\n" ));
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_cvt                                                   */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the control value table into a face object.                  */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_cvt( TT_Face    face,
-                    FT_Stream  stream )
-  {
-    FT_Error   error;
-    FT_Memory  memory = stream->memory;
-    FT_ULong   table_len;
-
-
-    FT_TRACE2(( "CVT " ));
-
-    error = face->goto_table( face, TTAG_cvt, stream, &table_len );
-    if ( error )
-    {
-      FT_TRACE2(( "is missing!\n" ));
-
-      face->cvt_size = 0;
-      face->cvt      = NULL;
-      error          = TT_Err_Ok;
-
-      goto Exit;
-    }
-
-    face->cvt_size = table_len / 2;
-
-    if ( FT_NEW_ARRAY( face->cvt, face->cvt_size ) )
-      goto Exit;
-
-    if ( FT_FRAME_ENTER( face->cvt_size * 2L ) )
-      goto Exit;
-
-    {
-      FT_Short*  cur   = face->cvt;
-      FT_Short*  limit = cur + face->cvt_size;
-
-
-      for ( ; cur <  limit; cur++ )
-        *cur = FT_GET_SHORT();
-    }
-
-    FT_FRAME_EXIT();
-    FT_TRACE2(( "loaded\n" ));
-
-#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
-    if ( face->doblend )
-      error = tt_face_vary_cvt( face, stream );
-#endif
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    tt_face_load_fpgm                                                  */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Loads the font program and the cvt program.                        */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face   :: A handle to the target face object.                      */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream :: A handle to the input stream.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  tt_face_load_fpgm( TT_Face    face,
-                     FT_Stream  stream )
-  {
-    FT_Error   error;
-    FT_ULong   table_len;
-
-
-    FT_TRACE2(( "Font program " ));
-
-    /* The font program is optional */
-    error = face->goto_table( face, TTAG_fpgm, stream, &table_len );
-    if ( error )
-    {
-      face->font_program      = NULL;
-      face->font_program_size = 0;
-
-      FT_TRACE2(( "is missing!\n" ));
-    }
-    else
-    {
-      face->font_program_size = table_len;
-      if ( FT_FRAME_EXTRACT( table_len, face->font_program ) )
-        goto Exit;
-
-      FT_TRACE2(( "loaded, %12d bytes\n", face->font_program_size ));
-    }
-
-    FT_TRACE2(( "Prep program " ));
-
-    error = face->goto_table( face, TTAG_prep, stream, &table_len );
-    if ( error )
-    {
-      face->cvt_program      = NULL;
-      face->cvt_program_size = 0;
-      error                  = TT_Err_Ok;
-
-      FT_TRACE2(( "is missing!\n" ));
-    }
-    else
-    {
-      face->cvt_program_size = table_len;
-      if ( FT_FRAME_EXTRACT( table_len, face->cvt_program ) )
-        goto Exit;
-
-      FT_TRACE2(( "loaded, %12d bytes\n", face->cvt_program_size ));
-    }
-
-  Exit:
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/truetype/ttpload.h b/nx-X11/extras/freetype2/src/truetype/ttpload.h
deleted file mode 100644
index 3f8cd64ff..000000000
--- a/nx-X11/extras/freetype2/src/truetype/ttpload.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttpload.h                                                              */
-/*                                                                         */
-/*    TrueType glyph data/program tables loader (specification).           */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __TTPLOAD_H__
-#define __TTPLOAD_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_TRUETYPE_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_loca( TT_Face    face,
-                     FT_Stream  stream );
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_cvt( TT_Face    face,
-                    FT_Stream  stream );
-
-  FT_LOCAL( FT_Error )
-  tt_face_load_fpgm( TT_Face    face,
-                     FT_Stream  stream );
-
-
-FT_END_HEADER
-
-#endif /* __TTPLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/Jamfile b/nx-X11/extras/freetype2/src/type1/Jamfile
deleted file mode 100644
index 4d966f3d6..000000000
--- a/nx-X11/extras/freetype2/src/type1/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/type1 Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) type1 ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = t1afm t1driver t1objs t1load t1gload t1parse ;
-  }
-  else
-  {
-    _sources = type1 ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/type1 Jamfile
diff --git a/nx-X11/extras/freetype2/src/type1/module.mk b/nx-X11/extras/freetype2/src/type1/module.mk
deleted file mode 100644
index 82d9355ba..000000000
--- a/nx-X11/extras/freetype2/src/type1/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 Type1 module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_type1_driver
-
-add_type1_driver:
-	$(OPEN_DRIVER)t1_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)type1     $(ECHO_DRIVER_DESC)Postscript font files with extension *.pfa or *.pfb$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/type1/rules.mk b/nx-X11/extras/freetype2/src/type1/rules.mk
deleted file mode 100644
index 15087b030..000000000
--- a/nx-X11/extras/freetype2/src/type1/rules.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# FreeType 2 Type1 driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Type1 driver directory
-#
-T1_DIR := $(SRC_DIR)/type1
-
-
-# compilation flags for the driver
-#
-T1_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(T1_DIR))
-
-
-# Type1 driver sources (i.e., C files)
-#
-T1_DRV_SRC := $(T1_DIR)/t1parse.c  \
-              $(T1_DIR)/t1load.c   \
-              $(T1_DIR)/t1driver.c \
-              $(T1_DIR)/t1afm.c    \
-              $(T1_DIR)/t1gload.c  \
-              $(T1_DIR)/t1objs.c
-
-# Type1 driver headers
-#
-T1_DRV_H := $(T1_DRV_SRC:%.c=%.h) \
-            $(T1_DIR)/t1tokens.h  \
-            $(T1_DIR)/t1errors.h
-
-
-# Type1 driver object(s)
-#
-#   T1_DRV_OBJ_M is used during `multi' builds
-#   T1_DRV_OBJ_S is used during `single' builds
-#
-T1_DRV_OBJ_M := $(T1_DRV_SRC:$(T1_DIR)/%.c=$(OBJ_DIR)/%.$O)
-T1_DRV_OBJ_S := $(OBJ_DIR)/type1.$O
-
-# Type1 driver source file for single build
-#
-T1_DRV_SRC_S := $(T1_DIR)/type1.c
-
-
-# Type1 driver - single object
-#
-$(T1_DRV_OBJ_S): $(T1_DRV_SRC_S) $(T1_DRV_SRC) $(FREETYPE_H) $(T1_DRV_H)
-	$(T1_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(T1_DRV_SRC_S))
-
-
-# Type1 driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(T1_DIR)/%.c $(FREETYPE_H) $(T1_DRV_H)
-	$(T1_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(T1_DRV_OBJ_S)
-DRV_OBJS_M += $(T1_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/type1/t1afm.c b/nx-X11/extras/freetype2/src/type1/t1afm.c
deleted file mode 100644
index 9945ebdf6..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1afm.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1afm.c                                                                */
-/*                                                                         */
-/*    AFM support for Type 1 fonts (body).                                 */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "t1afm.h"
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1afm
-
-
-  FT_LOCAL_DEF( void )
-  T1_Done_AFM( FT_Memory  memory,
-               T1_AFM*    afm )
-  {
-    FT_FREE( afm->kern_pairs );
-    afm->num_pairs = 0;
-    FT_FREE( afm );
-  }
-
-
-#undef  IS_KERN_PAIR
-#define IS_KERN_PAIR( p )  ( p[0] == 'K' && p[1] == 'P' )
-
-#define IS_ALPHANUM( c )  ( ft_isalnum( c ) || \
-                            c == '_'        || \
-                            c == '.'        )
-
-
-  /* read a glyph name and return the equivalent glyph index */
-  static FT_UInt
-  afm_atoindex( FT_Byte**  start,
-                FT_Byte*   limit,
-                T1_Font    type1 )
-  {
-    FT_Byte*    p = *start;
-    FT_PtrDist  len;
-    FT_UInt     result = 0;
-    char        temp[64];
-
-
-    /* skip whitespace */
-    while ( ( *p == ' ' || *p == '\t' || *p == ':' || *p == ';' ) &&
-            p < limit                                             )
-      p++;
-    *start = p;
-
-    /* now, read glyph name */
-    while ( IS_ALPHANUM( *p ) && p < limit )
-      p++;
-
-    len = p - *start;
-
-    if ( len > 0 && len < 64 )
-    {
-      FT_Int  n;
-
-
-      /* copy glyph name to intermediate array */
-      FT_MEM_COPY( temp, *start, len );
-      temp[len] = 0;
-
-      /* lookup glyph name in face array */
-      for ( n = 0; n < type1->num_glyphs; n++ )
-      {
-        char*  gname = (char*)type1->glyph_names[n];
-
-
-        if ( gname && gname[0] == temp[0] && ft_strcmp( gname, temp ) == 0 )
-        {
-          result = n;
-          break;
-        }
-      }
-    }
-    *start = p;
-    return result;
-  }
-
-
-  /* read an integer */
-  static int
-  afm_atoi( FT_Byte**  start,
-            FT_Byte*   limit )
-  {
-    FT_Byte*  p    = *start;
-    int       sum  = 0;
-    int       sign = 1;
-
-
-    /* skip everything that is not a number */
-    while ( p < limit && !isdigit( *p ) )
-    {
-      sign = 1;
-      if ( *p == '-' )
-        sign = -1;
-
-      p++;
-    }
-
-    while ( p < limit && isdigit( *p ) )
-    {
-      sum = sum * 10 + ( *p - '0' );
-      p++;
-    }
-    *start = p;
-
-    return sum * sign;
-  }
-
-
-#undef  KERN_INDEX
-#define KERN_INDEX( g1, g2 )  ( ( (FT_ULong)g1 << 16 ) | g2 )
-
-
-  /* compare two kerning pairs */
-  FT_CALLBACK_DEF( int )
-  compare_kern_pairs( const void*  a,
-                      const void*  b )
-  {
-    T1_Kern_Pair*  pair1 = (T1_Kern_Pair*)a;
-    T1_Kern_Pair*  pair2 = (T1_Kern_Pair*)b;
-
-    FT_ULong  index1 = KERN_INDEX( pair1->glyph1, pair1->glyph2 );
-    FT_ULong  index2 = KERN_INDEX( pair2->glyph1, pair2->glyph2 );
-
-
-    return (int)( index1 - index2 );
-  }
-
-
-  /* parse an AFM file -- for now, only read the kerning pairs */
-  FT_LOCAL_DEF( FT_Error )
-  T1_Read_AFM( FT_Face    t1_face,
-               FT_Stream  stream )
-  {
-    FT_Error       error;
-    FT_Memory      memory = stream->memory;
-    FT_Byte*       start;
-    FT_Byte*       limit;
-    FT_Byte*       p;
-    FT_Int         count = 0;
-    T1_Kern_Pair*  pair;
-    T1_Font        type1 = &((T1_Face)t1_face)->type1;
-    T1_AFM*        afm   = 0;
-
-
-    if ( FT_FRAME_ENTER( stream->size ) )
-      return error;
-
-    start = (FT_Byte*)stream->cursor;
-    limit = (FT_Byte*)stream->limit;
-    p     = start;
-
-    /* we are now going to count the occurences of `KP' or `KPX' in */
-    /* the AFM file                                                 */
-    count = 0;
-    for ( p = start; p < limit - 3; p++ )
-    {
-      if ( IS_KERN_PAIR( p ) )
-        count++;
-    }
-
-    /* Actually, kerning pairs are simply optional! */
-    if ( count == 0 )
-      goto Exit;
-
-    /* allocate the pairs */
-    if ( FT_NEW( afm ) || FT_NEW_ARRAY( afm->kern_pairs, count ) )
-      goto Exit;
-
-    /* now, read each kern pair */
-    pair           = afm->kern_pairs;
-    afm->num_pairs = count;
-
-    /* save in face object */
-    ((T1_Face)t1_face)->afm_data = afm;
-
-    t1_face->face_flags |= FT_FACE_FLAG_KERNING;
-
-    for ( p = start; p < limit - 3; p++ )
-    {
-      if ( IS_KERN_PAIR( p ) )
-      {
-        FT_Byte*  q;
-
-
-        /* skip keyword (KP or KPX) */
-        q = p + 2;
-        if ( *q == 'X' )
-          q++;
-
-        pair->glyph1    = afm_atoindex( &q, limit, type1 );
-        pair->glyph2    = afm_atoindex( &q, limit, type1 );
-        pair->kerning.x = afm_atoi( &q, limit );
-
-        pair->kerning.y = 0;
-        if ( p[2] != 'X' )
-          pair->kerning.y = afm_atoi( &q, limit );
-
-        pair++;
-      }
-    }
-
-    /* now, sort the kern pairs according to their glyph indices */
-    ft_qsort( afm->kern_pairs, count, sizeof ( T1_Kern_Pair ),
-              compare_kern_pairs );
-
-  Exit:
-    if ( error )
-      FT_FREE( afm );
-
-    FT_FRAME_EXIT();
-
-    return error;
-  }
-
-
-  /* find the kerning for a given glyph pair */
-  FT_LOCAL_DEF( void )
-  T1_Get_Kerning( T1_AFM*     afm,
-                  FT_UInt     glyph1,
-                  FT_UInt     glyph2,
-                  FT_Vector*  kerning )
-  {
-    T1_Kern_Pair  *min, *mid, *max;
-    FT_ULong      idx = KERN_INDEX( glyph1, glyph2 );
-
-
-    /* simple binary search */
-    min = afm->kern_pairs;
-    max = min + afm->num_pairs - 1;
-
-    while ( min <= max )
-    {
-      FT_ULong  midi;
-
-
-      mid  = min + ( max - min ) / 2;
-      midi = KERN_INDEX( mid->glyph1, mid->glyph2 );
-
-      if ( midi == idx )
-      {
-        *kerning = mid->kerning;
-        return;
-      }
-
-      if ( midi < idx )
-        min = mid + 1;
-      else
-        max = mid - 1;
-    }
-
-    kerning->x = 0;
-    kerning->y = 0;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1afm.h b/nx-X11/extras/freetype2/src/type1/t1afm.h
deleted file mode 100644
index 77cc6a6e9..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1afm.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1afm.h                                                                */
-/*                                                                         */
-/*    AFM support for Type 1 fonts (specification).                        */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1AFM_H__
-#define __T1AFM_H__
-
-#include <ft2build.h>
-#include "t1objs.h"
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct  T1_Kern_Pair_
-  {
-    FT_UInt    glyph1;
-    FT_UInt    glyph2;
-    FT_Vector  kerning;
-
-  } T1_Kern_Pair;
-
-
-  typedef struct  T1_AFM_
-  {
-    FT_Int         num_pairs;
-    T1_Kern_Pair*  kern_pairs;
-
-  } T1_AFM;
-
-
-  FT_LOCAL( FT_Error )
-  T1_Read_AFM( FT_Face    face,
-               FT_Stream  stream );
-
-  FT_LOCAL( void )
-  T1_Done_AFM( FT_Memory  memory,
-               T1_AFM*    afm );
-
-  FT_LOCAL( void )
-  T1_Get_Kerning( T1_AFM*     afm,
-                  FT_UInt     glyph1,
-                  FT_UInt     glyph2,
-                  FT_Vector*  kerning );
-
-
-FT_END_HEADER
-
-#endif /* __T1AFM_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1driver.c b/nx-X11/extras/freetype2/src/type1/t1driver.c
deleted file mode 100644
index b37ae77c5..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1driver.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1driver.c                                                             */
-/*                                                                         */
-/*    Type 1 driver interface (body).                                      */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "t1driver.h"
-#include "t1gload.h"
-#include "t1load.h"
-
-#include "t1errors.h"
-
-#ifndef T1_CONFIG_OPTION_NO_AFM
-#include "t1afm.h"
-#endif
-
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-
-#include FT_SERVICE_MULTIPLE_MASTERS_H
-#include FT_SERVICE_GLYPH_DICT_H
-#include FT_SERVICE_XFREE86_NAME_H
-#include FT_SERVICE_POSTSCRIPT_NAME_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1driver
-
- /*
-  *  GLYPH DICT SERVICE
-  *
-  */
-
-  static FT_Error
-  t1_get_glyph_name( T1_Face     face,
-                     FT_UInt     glyph_index,
-                     FT_Pointer  buffer,
-                     FT_UInt     buffer_max )
-  {
-    FT_String*  gname;
-
-
-    gname = face->type1.glyph_names[glyph_index];
-
-    if ( buffer_max > 0 )
-    {
-      FT_UInt  len = (FT_UInt)( ft_strlen( gname ) );
-
-
-      if (len >= buffer_max)
-        len = buffer_max - 1;
-
-      FT_MEM_COPY( buffer, gname, len );
-      ((FT_Byte*)buffer)[len] = 0;
-    }
-
-    return T1_Err_Ok;
-  }
-
-
-  static FT_UInt
-  t1_get_name_index( T1_Face     face,
-                     FT_String*  glyph_name )
-  {
-    FT_Int      i;
-    FT_String*  gname;
-
-
-    for ( i = 0; i < face->type1.num_glyphs; i++ )
-    {
-      gname = face->type1.glyph_names[i];
-
-      if ( !ft_strcmp( glyph_name, gname ) )
-        return (FT_UInt)i;
-    }
-
-    return 0;
-  }
-
-  static const FT_Service_GlyphDictRec  t1_service_glyph_dict =
-  {
-    (FT_GlyphDict_GetNameFunc)  t1_get_glyph_name,
-    (FT_GlyphDict_NameIndexFunc)t1_get_name_index
-  };
-
-
- /*
-  *  POSTSCRIPT NAME SERVICE
-  *
-  */
-
-  static const char*
-  t1_get_ps_name( T1_Face  face )
-  {
-    return (const char*) face->type1.font_name;
-  }
-
-  static const FT_Service_PsFontNameRec  t1_service_ps_name =
-  {
-    (FT_PsName_GetFunc)t1_get_ps_name
-  };
-
-
- /*
-  *  MULTIPLE MASTERS SERVICE
-  *
-  */
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-  static const FT_Service_MultiMastersRec  t1_service_multi_masters =
-  {
-    (FT_Get_MM_Func)        T1_Get_Multi_Master,
-    (FT_Set_MM_Design_Func) T1_Set_MM_Design,
-    (FT_Set_MM_Blend_Func)  T1_Set_MM_Blend,
-    (FT_Get_MM_Var_Func)    T1_Get_MM_Var,
-    (FT_Set_Var_Design_Func)T1_Set_Var_Design
-  };
-#endif
-
-
- /*
-  *  POSTSCRIPT INFO SERVICE
-  *
-  */
-
-  static FT_Error
-  t1_ps_get_font_info( FT_Face          face,
-                       PS_FontInfoRec*  afont_info )
-  {
-    *afont_info = ((T1_Face)face)->type1.font_info;
-    return 0;
-  }
-
-
-  static FT_Int
-  t1_ps_has_glyph_names( FT_Face  face )
-  {
-    FT_UNUSED( face );
-    return 1;
-  }
-
-
-  static const FT_Service_PsInfoRec  t1_service_ps_info =
-  {
-    (PS_GetFontInfoFunc)  t1_ps_get_font_info,
-    (PS_HasGlyphNamesFunc)t1_ps_has_glyph_names
-  };
-
-
- /*
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  t1_services[] =
-  {
-    { FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &t1_service_ps_name },
-    { FT_SERVICE_ID_GLYPH_DICT,           &t1_service_glyph_dict },
-    { FT_SERVICE_ID_XF86_NAME,            FT_XF86_FORMAT_TYPE_1 },
-    { FT_SERVICE_ID_POSTSCRIPT_INFO,      &t1_service_ps_info },
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-    { FT_SERVICE_ID_MULTI_MASTERS,        &t1_service_multi_masters },
-#endif
-    { NULL, NULL }
-  };
-
-
-  static FT_Module_Interface
-  Get_Interface( FT_Driver         driver,
-                 const FT_String*  t1_interface )
-  {
-    FT_UNUSED( driver );
-
-    return ft_service_list_lookup( t1_services, t1_interface );
-  }
-
-
-#ifndef T1_CONFIG_OPTION_NO_AFM
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    Get_Kerning                                                        */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A driver method used to return the kerning vector between two      */
-  /*    glyphs of the same face.                                           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face        :: A handle to the source face object.                 */
-  /*                                                                       */
-  /*    left_glyph  :: The index of the left glyph in the kern pair.       */
-  /*                                                                       */
-  /*    right_glyph :: The index of the right glyph in the kern pair.      */
-  /*                                                                       */
-  /* <Output>                                                              */
-  /*    kerning     :: The kerning vector.  This is in font units for      */
-  /*                   scalable formats, and in pixels for fixed-sizes     */
-  /*                   formats.                                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    Only horizontal layouts (left-to-right & right-to-left) are        */
-  /*    supported by this function.  Other layouts, or more sophisticated  */
-  /*    kernings are out of scope of this method (the basic driver         */
-  /*    interface is meant to be simple).                                  */
-  /*                                                                       */
-  /*    They can be implemented by format-specific interfaces.             */
-  /*                                                                       */
-  static FT_Error
-  Get_Kerning( T1_Face     face,
-               FT_UInt     left_glyph,
-               FT_UInt     right_glyph,
-               FT_Vector*  kerning )
-  {
-    T1_AFM*  afm;
-
-
-    kerning->x = 0;
-    kerning->y = 0;
-
-    afm = (T1_AFM*)face->afm_data;
-    if ( afm )
-      T1_Get_Kerning( afm, left_glyph, right_glyph, kerning );
-
-    return T1_Err_Ok;
-  }
-
-
-#endif /* T1_CONFIG_OPTION_NO_AFM */
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  t1_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER       |
-      FT_MODULE_DRIVER_SCALABLE   |
-      FT_MODULE_DRIVER_HAS_HINTER,
-
-      sizeof( FT_DriverRec ),
-
-      "type1",
-      0x10000L,
-      0x20000L,
-
-      0,   /* format interface */
-
-      (FT_Module_Constructor)T1_Driver_Init,
-      (FT_Module_Destructor) T1_Driver_Done,
-      (FT_Module_Requester)  Get_Interface,
-    },
-
-    sizeof( T1_FaceRec ),
-    sizeof( T1_SizeRec ),
-    sizeof( T1_GlyphSlotRec ),
-
-    (FT_Face_InitFunc)        T1_Face_Init,
-    (FT_Face_DoneFunc)        T1_Face_Done,
-    (FT_Size_InitFunc)        T1_Size_Init,
-    (FT_Size_DoneFunc)        T1_Size_Done,
-    (FT_Slot_InitFunc)        T1_GlyphSlot_Init,
-    (FT_Slot_DoneFunc)        T1_GlyphSlot_Done,
-
-    (FT_Size_ResetPointsFunc) T1_Size_Reset,
-    (FT_Size_ResetPixelsFunc) T1_Size_Reset,
-    (FT_Slot_LoadFunc)        T1_Load_Glyph,
-
-#ifdef T1_CONFIG_OPTION_NO_AFM
-    (FT_Face_GetKerningFunc)  0,
-    (FT_Face_AttachFunc)      0,
-#else
-    (FT_Face_GetKerningFunc)  Get_Kerning,
-    (FT_Face_AttachFunc)      T1_Read_AFM,
-#endif
-    (FT_Face_GetAdvancesFunc) 0
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1driver.h b/nx-X11/extras/freetype2/src/type1/t1driver.h
deleted file mode 100644
index ad429440d..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1driver.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1driver.h                                                             */
-/*                                                                         */
-/*    High-level Type 1 driver interface (specification).                  */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1DRIVER_H__
-#define __T1DRIVER_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  t1_driver_class;
-
-
-FT_END_HEADER
-
-#endif /* __T1DRIVER_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1errors.h b/nx-X11/extras/freetype2/src/type1/t1errors.h
deleted file mode 100644
index 81221c343..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1errors.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1errors.h                                                             */
-/*                                                                         */
-/*    Type 1 error codes (specification only).                             */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the Type 1 error enumeration constants.   */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __T1ERRORS_H__
-#define __T1ERRORS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  T1_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Type1
-
-#include FT_ERRORS_H
-
-#endif /* __T1ERRORS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1gload.c b/nx-X11/extras/freetype2/src/type1/t1gload.c
deleted file mode 100644
index f45a83b40..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1gload.c
+++ /dev/null
@@ -1,431 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1gload.c                                                              */
-/*                                                                         */
-/*    Type 1 Glyph Loader (body).                                          */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include "t1gload.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_OUTLINE_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-#include "t1errors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1gload
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********            COMPUTE THE MAXIMUM ADVANCE WIDTH         *********/
-  /**********                                                      *********/
-  /**********    The following code is in charge of computing      *********/
-  /**********    the maximum advance width of the font.  It        *********/
-  /**********    quickly processes each glyph charstring to        *********/
-  /**********    extract the value from either a `sbw' or `seac'   *********/
-  /**********    operator.                                         *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Parse_Glyph_And_Get_Char_String( T1_Decoder  decoder,
-                                      FT_UInt     glyph_index,
-                                      FT_Data*    char_string )
-  {
-    T1_Face   face  = (T1_Face)decoder->builder.face;
-    T1_Font   type1 = &face->type1;
-    FT_Error  error = T1_Err_Ok;
-
-
-    decoder->font_matrix = type1->font_matrix;
-    decoder->font_offset = type1->font_offset;
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* For incremental fonts get the character data using the */
-    /* callback function.                                     */
-    if ( face->root.internal->incremental_interface )
-      error = face->root.internal->incremental_interface->funcs->get_glyph_data(
-                face->root.internal->incremental_interface->object,
-                glyph_index, char_string );
-    else
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    /* For ordinary fonts get the character data stored in the face record. */
-    {
-      char_string->pointer = type1->charstrings[glyph_index];
-      char_string->length  = (FT_Int)type1->charstrings_len[glyph_index];
-    }
-
-    if ( !error )
-      error = decoder->funcs.parse_charstrings(
-                decoder, (FT_Byte*)char_string->pointer,
-                char_string->length );
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    /* Incremental fonts can optionally override the metrics. */
-    if ( !error && face->root.internal->incremental_interface                 &&
-         face->root.internal->incremental_interface->funcs->get_glyph_metrics )
-    {
-      FT_Incremental_MetricsRec  metrics;
-
-
-      metrics.bearing_x = decoder->builder.left_bearing.x;
-      metrics.bearing_y = decoder->builder.left_bearing.y;
-      metrics.advance   = decoder->builder.advance.x;
-      error = face->root.internal->incremental_interface->funcs->get_glyph_metrics(
-                face->root.internal->incremental_interface->object,
-                glyph_index, FALSE, &metrics );
-      decoder->builder.left_bearing.x = metrics.bearing_x;
-      decoder->builder.left_bearing.y = metrics.bearing_y;
-      decoder->builder.advance.x      = metrics.advance;
-      decoder->builder.advance.y      = 0;
-    }
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    return error;
-  }
-
-
-  FT_CALLBACK_DEF( FT_Error )
-  T1_Parse_Glyph( T1_Decoder  decoder,
-                  FT_UInt     glyph_index )
-  {
-    FT_Data   glyph_data;
-    FT_Error  error = T1_Parse_Glyph_And_Get_Char_String(
-                        decoder, glyph_index, &glyph_data );
-
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-
-    if ( !error )
-    {
-      T1_Face  face = (T1_Face)decoder->builder.face;
-
-
-      if ( face->root.internal->incremental_interface )
-        face->root.internal->incremental_interface->funcs->free_glyph_data(
-          face->root.internal->incremental_interface->object,
-          &glyph_data );
-    }
-
-#endif /* FT_CONFIG_OPTION_INCREMENTAL */
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Compute_Max_Advance( T1_Face  face,
-                          FT_Pos*  max_advance )
-  {
-    FT_Error       error;
-    T1_DecoderRec  decoder;
-    FT_Int         glyph_index;
-    T1_Font        type1 = &face->type1;
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-
-
-    *max_advance = 0;
-
-    /* initialize load decoder */
-    error = psaux->t1_decoder_funcs->init( &decoder,
-                                           (FT_Face)face,
-                                           0, /* size       */
-                                           0, /* glyph slot */
-                                           (FT_Byte**)type1->glyph_names,
-                                           face->blend,
-                                           0,
-                                           FT_RENDER_MODE_NORMAL,
-                                           T1_Parse_Glyph );
-    if ( error )
-      return error;
-
-    decoder.builder.metrics_only = 1;
-    decoder.builder.load_points  = 0;
-
-    decoder.num_subrs = type1->num_subrs;
-    decoder.subrs     = type1->subrs;
-    decoder.subrs_len = type1->subrs_len;
-
-    *max_advance = 0;
-
-    /* for each glyph, parse the glyph charstring and extract */
-    /* the advance width                                      */
-    for ( glyph_index = 0; glyph_index < type1->num_glyphs; glyph_index++ )
-    {
-      /* now get load the unscaled outline */
-      error = T1_Parse_Glyph( &decoder, glyph_index );
-      if ( glyph_index == 0 || decoder.builder.advance.x > *max_advance )
-        *max_advance = decoder.builder.advance.x;
-
-      /* ignore the error if one occurred - skip to next glyph */
-    }
-
-    return T1_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /**********                                                      *********/
-  /**********               UNHINTED GLYPH LOADER                  *********/
-  /**********                                                      *********/
-  /**********    The following code is in charge of loading a      *********/
-  /**********    single outline.  It completely ignores hinting    *********/
-  /**********    and is used when FT_LOAD_NO_HINTING is set.       *********/
-  /**********                                                      *********/
-  /**********      The Type 1 hinter is located in `t1hint.c'      *********/
-  /**********                                                      *********/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Load_Glyph( T1_GlyphSlot  glyph,
-                 T1_Size       size,
-                 FT_UInt       glyph_index,
-                 FT_Int32      load_flags )
-  {
-    FT_Error                error;
-    T1_DecoderRec           decoder;
-    T1_Face                 face = (T1_Face)glyph->root.face;
-    FT_Bool                 hinting;
-    T1_Font                 type1         = &face->type1;
-    PSAux_Service           psaux         = (PSAux_Service)face->psaux;
-    const T1_Decoder_Funcs  decoder_funcs = psaux->t1_decoder_funcs;
-
-    FT_Matrix               font_matrix;
-    FT_Vector               font_offset;
-    FT_Data                 glyph_data;
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    FT_Bool                 glyph_data_loaded = 0;
-#endif
-
-
-    if ( load_flags & FT_LOAD_NO_RECURSE )
-      load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
-
-    glyph->x_scale = size->root.metrics.x_scale;
-    glyph->y_scale = size->root.metrics.y_scale;
-
-    glyph->root.outline.n_points   = 0;
-    glyph->root.outline.n_contours = 0;
-
-    hinting = FT_BOOL( ( load_flags & FT_LOAD_NO_SCALE   ) == 0 &&
-                       ( load_flags & FT_LOAD_NO_HINTING ) == 0 );
-
-    glyph->root.format = FT_GLYPH_FORMAT_OUTLINE;
-
-    error = decoder_funcs->init( &decoder,
-                                 (FT_Face)face,
-                                 (FT_Size)size,
-                                 (FT_GlyphSlot)glyph,
-                                 (FT_Byte**)type1->glyph_names,
-                                 face->blend,
-                                 FT_BOOL( hinting ),
-                                 FT_LOAD_TARGET_MODE( load_flags ),
-                                 T1_Parse_Glyph );
-    if ( error )
-      goto Exit;
-
-    decoder.builder.no_recurse = FT_BOOL(
-                                   ( load_flags & FT_LOAD_NO_RECURSE ) != 0 );
-
-    decoder.num_subrs = type1->num_subrs;
-    decoder.subrs     = type1->subrs;
-    decoder.subrs_len = type1->subrs_len;
-
-    /* now load the unscaled outline */
-    error = T1_Parse_Glyph_And_Get_Char_String( &decoder, glyph_index,
-                                                &glyph_data );
-    if ( error )
-      goto Exit;
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    glyph_data_loaded = 1;
-#endif
-
-    font_matrix = decoder.font_matrix;
-    font_offset = decoder.font_offset;
-
-    /* save new glyph tables */
-    decoder_funcs->done( &decoder );
-
-    /* now, set the metrics -- this is rather simple, as   */
-    /* the left side bearing is the xMin, and the top side */
-    /* bearing the yMax                                    */
-    if ( !error )
-    {
-      glyph->root.outline.flags &= FT_OUTLINE_OWNER;
-      glyph->root.outline.flags |= FT_OUTLINE_REVERSE_FILL;
-
-      /* for composite glyphs, return only left side bearing and */
-      /* advance width                                           */
-      if ( load_flags & FT_LOAD_NO_RECURSE )
-      {
-        FT_Slot_Internal  internal = glyph->root.internal;
-
-
-        glyph->root.metrics.horiBearingX = decoder.builder.left_bearing.x;
-        glyph->root.metrics.horiAdvance  = decoder.builder.advance.x;
-        internal->glyph_matrix           = font_matrix;
-        internal->glyph_delta            = font_offset;
-        internal->glyph_transformed      = 1;
-      }
-      else
-      {
-        FT_BBox            cbox;
-        FT_Glyph_Metrics*  metrics = &glyph->root.metrics;
-        FT_Vector          advance;
-
-
-        /* copy the _unscaled_ advance width */
-        metrics->horiAdvance                    = decoder.builder.advance.x;
-        glyph->root.linearHoriAdvance           = decoder.builder.advance.x;
-        glyph->root.internal->glyph_transformed = 0;
-
-        /* make up vertical metrics */
-        metrics->vertBearingX = 0;
-        metrics->vertBearingY = 0;
-        metrics->vertAdvance  = 0;
-
-        glyph->root.linearVertAdvance = 0;
-
-        glyph->root.format = FT_GLYPH_FORMAT_OUTLINE;
-
-        if ( size && size->root.metrics.y_ppem < 24 )
-          glyph->root.outline.flags |= FT_OUTLINE_HIGH_PRECISION;
-
-#if 1
-        /* apply the font matrix, if any */
-        FT_Outline_Transform( &glyph->root.outline, &font_matrix );
-
-        FT_Outline_Translate( &glyph->root.outline,
-                              font_offset.x,
-                              font_offset.y );
-
-        advance.x = metrics->horiAdvance;
-        advance.y = 0;
-        FT_Vector_Transform( &advance, &font_matrix );
-        metrics->horiAdvance = advance.x + font_offset.x;
-        advance.x = 0;
-        advance.y = metrics->vertAdvance;
-        FT_Vector_Transform( &advance, &font_matrix );
-        metrics->vertAdvance = advance.y + font_offset.y;
-#endif
-
-        if ( ( load_flags & FT_LOAD_NO_SCALE ) == 0 )
-        {
-          /* scale the outline and the metrics */
-          FT_Int       n;
-          FT_Outline*  cur = decoder.builder.base;
-          FT_Vector*   vec = cur->points;
-          FT_Fixed     x_scale = glyph->x_scale;
-          FT_Fixed     y_scale = glyph->y_scale;
-
-
-          /* First of all, scale the points, if we are not hinting */
-          if ( !hinting )
-            for ( n = cur->n_points; n > 0; n--, vec++ )
-            {
-              vec->x = FT_MulFix( vec->x, x_scale );
-              vec->y = FT_MulFix( vec->y, y_scale );
-            }
-
-          FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
-          /* Then scale the metrics */
-          metrics->horiAdvance  = FT_MulFix( metrics->horiAdvance,  x_scale );
-          metrics->vertAdvance  = FT_MulFix( metrics->vertAdvance,  y_scale );
-
-          metrics->vertBearingX = FT_MulFix( metrics->vertBearingX, x_scale );
-          metrics->vertBearingY = FT_MulFix( metrics->vertBearingY, y_scale );
-
-          if ( hinting )
-          {
-            metrics->horiAdvance = FT_PIX_ROUND( metrics->horiAdvance );
-            metrics->vertAdvance = FT_PIX_ROUND( metrics->vertAdvance );
-
-            metrics->vertBearingX = FT_PIX_ROUND( metrics->vertBearingX );
-            metrics->vertBearingY = FT_PIX_ROUND( metrics->vertBearingY );
-          }
-        }
-
-        /* compute the other metrics */
-        FT_Outline_Get_CBox( &glyph->root.outline, &cbox );
-
-        /* grid fit the bounding box if necessary */
-        if ( hinting )
-        {
-          cbox.xMin = FT_PIX_FLOOR( cbox.xMin );
-          cbox.yMin = FT_PIX_FLOOR( cbox.yMin );
-          cbox.xMax = FT_PIX_CEIL( cbox.xMax );
-          cbox.yMax = FT_PIX_CEIL( cbox.yMax );
-        }
-
-        metrics->width  = cbox.xMax - cbox.xMin;
-        metrics->height = cbox.yMax - cbox.yMin;
-
-        metrics->horiBearingX = cbox.xMin;
-        metrics->horiBearingY = cbox.yMax;
-      }
-
-      /* Set control data to the glyph charstrings.  Note that this is */
-      /* _not_ zero-terminated.                                        */
-      glyph->root.control_data = (FT_Byte*)glyph_data.pointer;
-      glyph->root.control_len  = glyph_data.length;
-    }
-
-
-  Exit:
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    if ( glyph_data_loaded && face->root.internal->incremental_interface )
-    {
-      face->root.internal->incremental_interface->funcs->free_glyph_data(
-        face->root.internal->incremental_interface->object,
-        &glyph_data );
-
-      /* Set the control data to null - it is no longer available if   */
-      /* loaded incrementally.                                         */
-      glyph->root.control_data = 0;
-      glyph->root.control_len  = 0;
-    }
-#endif
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1gload.h b/nx-X11/extras/freetype2/src/type1/t1gload.h
deleted file mode 100644
index de87896dc..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1gload.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1gload.h                                                              */
-/*                                                                         */
-/*    Type 1 Glyph Loader (specification).                                 */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1GLOAD_H__
-#define __T1GLOAD_H__
-
-
-#include <ft2build.h>
-#include "t1objs.h"
-
-
-FT_BEGIN_HEADER
-
-
-  FT_LOCAL( FT_Error )
-  T1_Compute_Max_Advance( T1_Face  face,
-                          FT_Pos*  max_advance );
-
-  FT_LOCAL( FT_Error )
-  T1_Load_Glyph( T1_GlyphSlot  glyph,
-                 T1_Size       size,
-                 FT_UInt       glyph_index,
-                 FT_Int32      load_flags );
-
-
-FT_END_HEADER
-
-#endif /* __T1GLOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1load.c b/nx-X11/extras/freetype2/src/type1/t1load.c
deleted file mode 100644
index 7ec163ad5..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1load.c
+++ /dev/null
@@ -1,2094 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1load.c                                                               */
-/*                                                                         */
-/*    Type 1 font loader (body).                                           */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This is the new and improved Type 1 data loader for FreeType 2.  The  */
-  /* old loader has several problems: it is slow, complex, difficult to    */
-  /* maintain, and contains incredible hacks to make it accept some        */
-  /* ill-formed Type 1 fonts without hiccup-ing.  Moreover, about 5% of    */
-  /* the Type 1 fonts on my machine still aren't loaded correctly by it.   */
-  /*                                                                       */
-  /* This version is much simpler, much faster and also easier to read and */
-  /* maintain by a great order of magnitude.  The idea behind it is to     */
-  /* _not_ try to read the Type 1 token stream with a state machine (i.e.  */
-  /* a Postscript-like interpreter) but rather to perform simple pattern   */
-  /* matching.                                                             */
-  /*                                                                       */
-  /* Indeed, nearly all data definitions follow a simple pattern like      */
-  /*                                                                       */
-  /*  ... /Field <data> ...                                                */
-  /*                                                                       */
-  /* where <data> can be a number, a boolean, a string, or an array of     */
-  /* numbers.  There are a few exceptions, namely the encoding, font name, */
-  /* charstrings, and subrs; they are handled with a special pattern       */
-  /* matching routine.                                                     */
-  /*                                                                       */
-  /* All other common cases are handled very simply.  The matching rules   */
-  /* are defined in the file `t1tokens.h' through the use of several       */
-  /* macros calls PARSE_XXX.  This file is included twice here; the first  */
-  /* time to generate parsing callback functions, the second time to       */
-  /* generate a table of keywords (with pointers to the associated         */
-  /* callback functions).                                                  */
-  /*                                                                       */
-  /* The function `parse_dict' simply scans *linearly* a given dictionary  */
-  /* (either the top-level or private one) and calls the appropriate       */
-  /* callback when it encounters an immediate keyword.                     */
-  /*                                                                       */
-  /* This is by far the fastest way one can find to parse and read all     */
-  /* data.                                                                 */
-  /*                                                                       */
-  /* This led to tremendous code size reduction.  Note that later, the     */
-  /* glyph loader will also be _greatly_ simplified, and the automatic     */
-  /* hinter will replace the clumsy `t1hinter'.                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_CONFIG_CONFIG_H
-#include FT_MULTIPLE_MASTERS_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-#include "t1load.h"
-#include "t1errors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1load
-
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                    MULTIPLE MASTERS SUPPORT                   *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static FT_Error
-  t1_allocate_blend( T1_Face  face,
-                     FT_UInt  num_designs,
-                     FT_UInt  num_axis )
-  {
-    PS_Blend   blend;
-    FT_Memory  memory = face->root.memory;
-    FT_Error   error  = T1_Err_Ok;
-
-
-    blend = face->blend;
-    if ( !blend )
-    {
-      if ( FT_NEW( blend ) )
-        goto Exit;
-
-      face->blend = blend;
-    }
-
-    /* allocate design data if needed */
-    if ( num_designs > 0 )
-    {
-      if ( blend->num_designs == 0 )
-      {
-        FT_UInt  nn;
-
-
-        /* allocate the blend `private' and `font_info' dictionaries */
-        if ( FT_NEW_ARRAY( blend->font_infos[1], num_designs     ) ||
-             FT_NEW_ARRAY( blend->privates[1], num_designs       ) ||
-             FT_NEW_ARRAY( blend->bboxes[1], num_designs         ) ||
-             FT_NEW_ARRAY( blend->weight_vector, num_designs * 2 ) )
-          goto Exit;
-
-        blend->default_weight_vector = blend->weight_vector + num_designs;
-
-        blend->font_infos[0] = &face->type1.font_info;
-        blend->privates  [0] = &face->type1.private_dict;
-        blend->bboxes    [0] = &face->type1.font_bbox;
-
-        for ( nn = 2; nn <= num_designs; nn++ )
-        {
-          blend->privates[nn]   = blend->privates  [nn - 1] + 1;
-          blend->font_infos[nn] = blend->font_infos[nn - 1] + 1;
-          blend->bboxes[nn]     = blend->bboxes    [nn - 1] + 1;
-        }
-
-        blend->num_designs   = num_designs;
-      }
-      else if ( blend->num_designs != num_designs )
-        goto Fail;
-    }
-
-    /* allocate axis data if needed */
-    if ( num_axis > 0 )
-    {
-      if ( blend->num_axis != 0 && blend->num_axis != num_axis )
-        goto Fail;
-
-      blend->num_axis = num_axis;
-    }
-
-    /* allocate the blend design pos table if needed */
-    num_designs = blend->num_designs;
-    num_axis    = blend->num_axis;
-    if ( num_designs && num_axis && blend->design_pos[0] == 0 )
-    {
-      FT_UInt  n;
-
-
-      if ( FT_NEW_ARRAY( blend->design_pos[0], num_designs * num_axis ) )
-        goto Exit;
-
-      for ( n = 1; n < num_designs; n++ )
-        blend->design_pos[n] = blend->design_pos[0] + num_axis * n;
-    }
-
-  Exit:
-    return error;
-
-  Fail:
-    error = T1_Err_Invalid_File_Format;
-    goto Exit;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Get_Multi_Master( T1_Face           face,
-                       FT_Multi_Master*  master )
-  {
-    PS_Blend  blend = face->blend;
-    FT_UInt   n;
-    FT_Error  error;
-
-
-    error = T1_Err_Invalid_Argument;
-
-    if ( blend )
-    {
-      master->num_axis    = blend->num_axis;
-      master->num_designs = blend->num_designs;
-
-      for ( n = 0; n < blend->num_axis; n++ )
-      {
-        FT_MM_Axis*   axis = master->axis + n;
-        PS_DesignMap  map = blend->design_map + n;
-
-
-        axis->name    = blend->axis_names[n];
-        axis->minimum = map->design_points[0];
-        axis->maximum = map->design_points[map->num_points - 1];
-      }
-
-      error = T1_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-#define FT_INT_TO_FIXED( a )  ( (a) << 16 )
-#define FT_FIXED_TO_INT( a )  ( FT_RoundFix( a ) >> 16 )
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Given a normalized (blend) coordinate, figure out the design          */
-  /* coordinate appropriate for that value.                                */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Fixed )
-  mm_axis_unmap( PS_DesignMap  axismap,
-                 FT_Fixed      ncv )
-  {
-    int  j;
-
-
-    if ( ncv <= axismap->blend_points[0] )
-      return axismap->design_points[0];
-
-    for ( j = 1; j < axismap->num_points; ++j )
-    {
-      if ( ncv <= axismap->blend_points[j] )
-      {
-        FT_Fixed  t = FT_MulDiv( ncv - axismap->blend_points[j - 1],
-                                 0x10000L,
-                                 axismap->blend_points[j] -
-                                   axismap->blend_points[j - 1] );
-
-
-        return axismap->design_points[j - 1] +
-                 FT_MulDiv( t,
-                            axismap->design_points[j] - 
-                              axismap->design_points[j - 1],
-                            1L );
-      }
-    }
-
-    return axismap->design_points[axismap->num_points - 1];
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Given a vector of weights, one for each design, figure out the        */
-  /* normalized axis coordinates which gave rise to those weights.         */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  mm_weights_unmap( FT_Fixed*  weights,
-                    FT_Fixed*  axiscoords,
-                    FT_UInt    axis_count )
-  {
-    FT_ASSERT( axis_count <= T1_MAX_MM_AXIS );
-
-    if ( axis_count == 1 )
-      axiscoords[0] = weights[1];
-
-    else if ( axis_count == 2 )
-    {
-      axiscoords[0] = weights[3] + weights[1];
-      axiscoords[1] = weights[3] + weights[2];
-    }
-
-    else if ( axis_count == 3 )
-    {
-      axiscoords[0] = weights[7] + weights[5] + weights[3] + weights[1];
-      axiscoords[1] = weights[7] + weights[6] + weights[3] + weights[2];
-      axiscoords[2] = weights[7] + weights[6] + weights[5] + weights[4];
-    }
-
-    else
-    {
-      axiscoords[0] = weights[15] + weights[13] + weights[11] + weights[9] +
-                        weights[7] + weights[5] + weights[3] + weights[1];
-      axiscoords[1] = weights[15] + weights[14] + weights[11] + weights[10] +
-                        weights[7] + weights[6] + weights[3] + weights[2];
-      axiscoords[2] = weights[15] + weights[14] + weights[13] + weights[12] +
-                        weights[7] + weights[6] + weights[5] + weights[4];
-      axiscoords[3] = weights[15] + weights[14] + weights[13] + weights[12] +
-                        weights[11] + weights[10] + weights[9] + weights[8];
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Just a wrapper around T1_Get_Multi_Master to support the different    */
-  /*  arguments needed by the GX var distortable fonts.                    */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  T1_Get_MM_Var( T1_Face      face,
-                 FT_MM_Var*  *master )
-  {
-    FT_Memory        memory = face->root.memory;
-    FT_MM_Var       *mmvar;
-    FT_Multi_Master  mmaster;
-    FT_Error         error;
-    FT_UInt          i;
-    FT_Fixed         axiscoords[T1_MAX_MM_AXIS];
-    PS_Blend         blend = face->blend;
-
-
-    error = T1_Get_Multi_Master( face, &mmaster );
-    if ( error )
-      goto Exit;
-    if ( FT_ALLOC( mmvar,
-                   sizeof ( FT_MM_Var ) +
-                     mmaster.num_axis * sizeof ( FT_Var_Axis ) ) )
-      goto Exit;
-
-    mmvar->num_axis        = mmaster.num_axis;
-    mmvar->num_designs     = mmaster.num_designs;
-    mmvar->num_namedstyles = (FT_UInt)-1;                /* Does not apply */
-    mmvar->axis            = (FT_Var_Axis*)&mmvar[1];
-                                      /* Point to axes after MM_Var struct */
-    mmvar->namedstyle      = NULL;
-
-    for ( i = 0 ; i < mmaster.num_axis; ++i )
-    {
-      mmvar->axis[i].name    = mmaster.axis[i].name;
-      mmvar->axis[i].minimum = FT_INT_TO_FIXED( mmaster.axis[i].minimum);
-      mmvar->axis[i].maximum = FT_INT_TO_FIXED( mmaster.axis[i].maximum);
-      mmvar->axis[i].def     = ( mmvar->axis[i].minimum +
-                                   mmvar->axis[i].maximum ) / 2;
-                            /* Does not apply.  But this value is in range */
-      mmvar->axis[i].strid   = 0xFFFFFFFFLU;   /* Does not apply */
-      mmvar->axis[i].tag     = 0xFFFFFFFFLU;   /* Does not apply */
-
-      if ( ft_strcmp( mmvar->axis[i].name, "Weight" ) == 0 )
-        mmvar->axis[i].tag = FT_MAKE_TAG( 'w', 'g', 'h', 't' );
-      else if ( ft_strcmp( mmvar->axis[i].name, "Width" ) == 0 )
-        mmvar->axis[i].tag = FT_MAKE_TAG( 'w', 'd', 't', 'h' );
-      else if ( ft_strcmp( mmvar->axis[i].name, "OpticalSize" ) == 0 )
-        mmvar->axis[i].tag = FT_MAKE_TAG( 'o', 'p', 's', 'z' );
-    }
-
-    if ( blend->num_designs == 1U << blend->num_axis )
-    {
-      mm_weights_unmap( blend->default_weight_vector,
-                        axiscoords,
-                        blend->num_axis );
-
-      for ( i = 0; i < mmaster.num_axis; ++i )
-        mmvar->axis[i].def = mm_axis_unmap( &blend->design_map[i],
-                                            axiscoords[i] );
-    }
-
-    *master = mmvar;
-
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Set_MM_Blend( T1_Face    face,
-                   FT_UInt    num_coords,
-                   FT_Fixed*  coords )
-  {
-    PS_Blend  blend = face->blend;
-    FT_Error  error;
-    FT_UInt   n, m;
-
-
-    error = T1_Err_Invalid_Argument;
-
-    if ( blend && blend->num_axis == num_coords )
-    {
-      /* recompute the weight vector from the blend coordinates */
-      error = T1_Err_Ok;
-
-      for ( n = 0; n < blend->num_designs; n++ )
-      {
-        FT_Fixed  result = 0x10000L;  /* 1.0 fixed */
-
-
-        for ( m = 0; m < blend->num_axis; m++ )
-        {
-          FT_Fixed  factor;
-
-
-          /* get current blend axis position */
-          factor = coords[m];
-          if ( factor < 0 )        factor = 0;
-          if ( factor > 0x10000L ) factor = 0x10000L;
-
-          if ( ( n & ( 1 << m ) ) == 0 )
-            factor = 0x10000L - factor;
-
-          result = FT_MulFix( result, factor );
-        }
-        blend->weight_vector[n] = result;
-      }
-
-      error = T1_Err_Ok;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Set_MM_Design( T1_Face   face,
-                    FT_UInt   num_coords,
-                    FT_Long*  coords )
-  {
-    PS_Blend  blend = face->blend;
-    FT_Error  error;
-    FT_UInt   n, p;
-
-
-    error = T1_Err_Invalid_Argument;
-    if ( blend && blend->num_axis == num_coords )
-    {
-      /* compute the blend coordinates through the blend design map */
-      FT_Fixed  final_blends[T1_MAX_MM_DESIGNS];
-
-
-      for ( n = 0; n < blend->num_axis; n++ )
-      {
-        FT_Long       design  = coords[n];
-        FT_Fixed      the_blend;
-        PS_DesignMap  map     = blend->design_map + n;
-        FT_Long*      designs = map->design_points;
-        FT_Fixed*     blends  = map->blend_points;
-        FT_Int        before  = -1, after = -1;
-
-
-        for ( p = 0; p < (FT_UInt)map->num_points; p++ )
-        {
-          FT_Long  p_design = designs[p];
-
-
-          /* exact match? */
-          if ( design == p_design )
-          {
-            the_blend = blends[p];
-            goto Found;
-          }
-
-          if ( design < p_design )
-          {
-            after = p;
-            break;
-          }
-
-          before = p;
-        }
-
-        /* now interpolate if necessary */
-        if ( before < 0 )
-          the_blend = blends[0];
-
-        else if ( after < 0 )
-          the_blend = blends[map->num_points - 1];
-
-        else
-          the_blend = FT_MulDiv( design         - designs[before],
-                                 blends [after] - blends [before],
-                                 designs[after] - designs[before] );
-
-      Found:
-        final_blends[n] = the_blend;
-      }
-
-      error = T1_Set_MM_Blend( face, num_coords, final_blends );
-    }
-
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Just a wrapper around T1_Set_MM_Design to support the different       */
-  /* arguments needed by the GX var distortable fonts.                     */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  T1_Set_Var_Design( T1_Face    face,
-                     FT_UInt    num_coords,
-                     FT_Fixed*  coords )
-  {
-     FT_Long   lcoords[4];          /* maximum axis count is 4 */
-     FT_UInt   i;
-     FT_Error  error;
-
-
-     error = T1_Err_Invalid_Argument;
-     if ( num_coords <= 4 && num_coords > 0 )
-     {
-       for ( i = 0; i < num_coords; ++i )
-         lcoords[i] = FT_FIXED_TO_INT( coords[i] );
-       error = T1_Set_MM_Design( face, num_coords, lcoords );
-     }
-
-     return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T1_Done_Blend( T1_Face  face )
-  {
-    FT_Memory  memory = face->root.memory;
-    PS_Blend   blend  = face->blend;
-
-
-    if ( blend )
-    {
-      FT_UInt  num_designs = blend->num_designs;
-      FT_UInt  num_axis    = blend->num_axis;
-      FT_UInt  n;
-
-
-      /* release design pos table */
-      FT_FREE( blend->design_pos[0] );
-      for ( n = 1; n < num_designs; n++ )
-        blend->design_pos[n] = 0;
-
-      /* release blend `private' and `font info' dictionaries */
-      FT_FREE( blend->privates[1] );
-      FT_FREE( blend->font_infos[1] );
-      FT_FREE( blend->bboxes[1] );
-
-      for ( n = 0; n < num_designs; n++ )
-      {
-        blend->privates  [n] = 0;
-        blend->font_infos[n] = 0;
-        blend->bboxes    [n] = 0;
-      }
-
-      /* release weight vectors */
-      FT_FREE( blend->weight_vector );
-      blend->default_weight_vector = 0;
-
-      /* release axis names */
-      for ( n = 0; n < num_axis; n++ )
-        FT_FREE( blend->axis_names[n] );
-
-      /* release design map */
-      for ( n = 0; n < num_axis; n++ )
-      {
-        PS_DesignMap  dmap = blend->design_map + n;
-
-
-        FT_FREE( dmap->design_points );
-        dmap->num_points = 0;
-      }
-
-      FT_FREE( face->blend );
-    }
-  }
-
-
-  static void
-  parse_blend_axis_types( T1_Face    face,
-                          T1_Loader  loader )
-  {
-    T1_TokenRec  axis_tokens[T1_MAX_MM_AXIS];
-    FT_Int       n, num_axis;
-    FT_Error     error = T1_Err_Ok;
-    PS_Blend     blend;
-    FT_Memory    memory;
-
-
-    /* take an array of objects */
-    T1_ToTokenArray( &loader->parser, axis_tokens,
-                     T1_MAX_MM_AXIS, &num_axis );
-    if ( num_axis < 0 )
-    {
-      error = T1_Err_Ignore;
-      goto Exit;
-    }
-    if ( num_axis == 0 || num_axis > T1_MAX_MM_AXIS )
-    {
-      FT_ERROR(( "parse_blend_axis_types: incorrect number of axes: %d\n",
-                 num_axis ));
-      error = T1_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    /* allocate blend if necessary */
-    error = t1_allocate_blend( face, 0, (FT_UInt)num_axis );
-    if ( error )
-      goto Exit;
-
-    blend  = face->blend;
-    memory = face->root.memory;
-
-    /* each token is an immediate containing the name of the axis */
-    for ( n = 0; n < num_axis; n++ )
-    {
-      T1_Token    token = axis_tokens + n;
-      FT_Byte*    name;
-      FT_PtrDist  len;
-
-
-      /* skip first slash, if any */
-      if ( token->start[0] == '/' )
-        token->start++;
-
-      len = token->limit - token->start;
-      if ( len == 0 )
-      {
-        error = T1_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      if ( FT_ALLOC( blend->axis_names[n], len + 1 ) )
-        goto Exit;
-
-      name = (FT_Byte*)blend->axis_names[n];
-      FT_MEM_COPY( name, token->start, len );
-      name[len] = 0;
-    }
-
-  Exit:
-    loader->parser.root.error = error;
-  }
-
-
-  static void
-  parse_blend_design_positions( T1_Face    face,
-                                T1_Loader  loader )
-  {
-    T1_TokenRec  design_tokens[T1_MAX_MM_DESIGNS];
-    FT_Int       num_designs;
-    FT_Int       num_axis;
-    T1_Parser    parser = &loader->parser;
-
-    FT_Error     error = T1_Err_Ok;
-    PS_Blend     blend;
-
-
-    /* get the array of design tokens -- compute number of designs */
-    T1_ToTokenArray( parser, design_tokens,
-                     T1_MAX_MM_DESIGNS, &num_designs );
-    if ( num_designs < 0 )
-    {
-      error = T1_Err_Ignore;
-      goto Exit;
-    }
-    if ( num_designs == 0 || num_designs > T1_MAX_MM_DESIGNS )
-    {
-      FT_ERROR(( "parse_blend_design_positions:" ));
-      FT_ERROR(( " incorrect number of designs: %d\n",
-                 num_designs ));
-      error = T1_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    {
-      FT_Byte*  old_cursor = parser->root.cursor;
-      FT_Byte*  old_limit  = parser->root.limit;
-      FT_Int    n;
-
-
-      blend    = face->blend;
-      num_axis = 0;  /* make compiler happy */
-
-      for ( n = 0; n < num_designs; n++ )
-      {
-        T1_TokenRec  axis_tokens[T1_MAX_MM_DESIGNS];
-        T1_Token     token;
-        FT_Int       axis, n_axis;
-
-
-        /* read axis/coordinates tokens */
-        token = design_tokens + n;
-        parser->root.cursor = token->start;
-        parser->root.limit  = token->limit;
-        T1_ToTokenArray( parser, axis_tokens, T1_MAX_MM_AXIS, &n_axis );
-
-        if ( n == 0 )
-        {
-          num_axis = n_axis;
-          error = t1_allocate_blend( face, num_designs, num_axis );
-          if ( error )
-            goto Exit;
-          blend = face->blend;
-        }
-        else if ( n_axis != num_axis )
-        {
-          FT_ERROR(( "parse_blend_design_positions: incorrect table\n" ));
-          error = T1_Err_Invalid_File_Format;
-          goto Exit;
-        }
-
-        /* now read each axis token into the design position */
-        for ( axis = 0; axis < n_axis; axis++ )
-        {
-          T1_Token  token2 = axis_tokens + axis;
-
-
-          parser->root.cursor = token2->start;
-          parser->root.limit  = token2->limit;
-          blend->design_pos[n][axis] = T1_ToFixed( parser, 0 );
-        }
-      }
-
-      loader->parser.root.cursor = old_cursor;
-      loader->parser.root.limit  = old_limit;
-    }
-
-  Exit:
-    loader->parser.root.error = error;
-  }
-
-
-  static void
-  parse_blend_design_map( T1_Face    face,
-                          T1_Loader  loader )
-  {
-    FT_Error     error  = T1_Err_Ok;
-    T1_Parser    parser = &loader->parser;
-    PS_Blend     blend;
-    T1_TokenRec  axis_tokens[T1_MAX_MM_AXIS];
-    FT_Int       n, num_axis;
-    FT_Byte*     old_cursor;
-    FT_Byte*     old_limit;
-    FT_Memory    memory = face->root.memory;
-
-
-    T1_ToTokenArray( parser, axis_tokens, 
-                     T1_MAX_MM_AXIS, &num_axis );
-    if ( num_axis < 0 )
-    {
-      error = T1_Err_Ignore;
-      goto Exit;
-    }
-    if ( num_axis == 0 || num_axis > T1_MAX_MM_AXIS )
-    {
-      FT_ERROR(( "parse_blend_design_map: incorrect number of axes: %d\n",
-                 num_axis ));
-      error = T1_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    old_cursor = parser->root.cursor;
-    old_limit  = parser->root.limit;
-
-    error = t1_allocate_blend( face, 0, num_axis );
-    if ( error )
-      goto Exit;
-    blend = face->blend;
-
-    /* now read each axis design map */
-    for ( n = 0; n < num_axis; n++ )
-    {
-      PS_DesignMap  map = blend->design_map + n;
-      T1_Token      axis_token;
-      T1_TokenRec   point_tokens[T1_MAX_MM_MAP_POINTS];
-      FT_Int        p, num_points;
-
-
-      axis_token = axis_tokens + n;
-
-      parser->root.cursor = axis_token->start;
-      parser->root.limit  = axis_token->limit;
-      T1_ToTokenArray( parser, point_tokens,
-                       T1_MAX_MM_MAP_POINTS, &num_points );
-
-      if ( num_points <= 0 || num_points > T1_MAX_MM_MAP_POINTS )
-      {
-        FT_ERROR(( "parse_blend_design_map: incorrect table\n" ));
-        error = T1_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      /* allocate design map data */
-      if ( FT_NEW_ARRAY( map->design_points, num_points * 2 ) )
-        goto Exit;
-      map->blend_points = map->design_points + num_points;
-      map->num_points   = (FT_Byte)num_points;
-
-      for ( p = 0; p < num_points; p++ )
-      {
-        T1_Token  point_token;
-
-
-        point_token = point_tokens + p;
-
-        /* don't include delimiting brackets */
-        parser->root.cursor = point_token->start + 1;
-        parser->root.limit  = point_token->limit - 1;
-
-        map->design_points[p] = T1_ToInt( parser );
-        map->blend_points [p] = T1_ToFixed( parser, 0 );
-      }
-    }
-
-    parser->root.cursor = old_cursor;
-    parser->root.limit  = old_limit;
-
-  Exit:
-    parser->root.error = error;
-  }
-
-
-  static void
-  parse_weight_vector( T1_Face    face,
-                       T1_Loader  loader )
-  {
-    T1_TokenRec  design_tokens[T1_MAX_MM_DESIGNS];
-    FT_Int       num_designs;
-    FT_Error     error  = T1_Err_Ok;
-    T1_Parser    parser = &loader->parser;
-    PS_Blend     blend  = face->blend;
-    T1_Token     token;
-    FT_Int       n;
-    FT_Byte*     old_cursor;
-    FT_Byte*     old_limit;
-
-
-    T1_ToTokenArray( parser, design_tokens,
-                     T1_MAX_MM_DESIGNS, &num_designs );
-    if ( num_designs < 0 )
-    {
-      error = T1_Err_Ignore;
-      goto Exit;
-    }
-    if ( num_designs == 0 || num_designs > T1_MAX_MM_DESIGNS )
-    {
-      FT_ERROR(( "parse_weight_vector:" ));
-      FT_ERROR(( " incorrect number of designs: %d\n",
-                 num_designs ));
-      error = T1_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    if ( !blend || !blend->num_designs )
-    {
-      error = t1_allocate_blend( face, num_designs, 0 );
-      if ( error )
-        goto Exit;
-      blend = face->blend;
-    }
-    else if ( blend->num_designs != (FT_UInt)num_designs )
-    {
-      FT_ERROR(( "parse_weight_vector:"
-                 " /BlendDesignPosition and /WeightVector have\n" ));
-      FT_ERROR(( "                    "
-                 " different number of elements!\n" ));
-      error = T1_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    old_cursor = parser->root.cursor;
-    old_limit  = parser->root.limit;
-
-    for ( n = 0; n < num_designs; n++ )
-    {
-      token = design_tokens + n;
-      parser->root.cursor = token->start;
-      parser->root.limit  = token->limit;
-
-      blend->default_weight_vector[n] =
-      blend->weight_vector[n]         = T1_ToFixed( parser, 0 );
-    }
-
-    parser->root.cursor = old_cursor;
-    parser->root.limit  = old_limit;
-
-  Exit:
-    parser->root.error = error;
-  }
-
-
-#endif /* T1_CONFIG_OPTION_NO_MM_SUPPORT */
-
-
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                      TYPE 1 SYMBOL PARSING                    *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-
-  static FT_Error
-  t1_load_keyword( T1_Face         face,
-                   T1_Loader       loader,
-                   const T1_Field  field )
-  {
-    FT_Error  error;
-    void*     dummy_object;
-    void**    objects;
-    FT_UInt   max_objects;
-    PS_Blend  blend = face->blend;
-
-
-    /* if the keyword has a dedicated callback, call it */
-    if ( field->type == T1_FIELD_TYPE_CALLBACK )
-    {
-      field->reader( (FT_Face)face, loader );
-      error = loader->parser.root.error;
-      goto Exit;
-    }
-
-    /* now, the keyword is either a simple field, or a table of fields; */
-    /* we are now going to take care of it                              */
-    switch ( field->location )
-    {
-    case T1_FIELD_LOCATION_FONT_INFO:
-      dummy_object = &face->type1.font_info;
-      objects      = &dummy_object;
-      max_objects  = 0;
-
-      if ( blend )
-      {
-        objects     = (void**)blend->font_infos;
-        max_objects = blend->num_designs;
-      }
-      break;
-
-    case T1_FIELD_LOCATION_PRIVATE:
-      dummy_object = &face->type1.private_dict;
-      objects      = &dummy_object;
-      max_objects  = 0;
-
-      if ( blend )
-      {
-        objects     = (void**)blend->privates;
-        max_objects = blend->num_designs;
-      }
-      break;
-
-    case T1_FIELD_LOCATION_BBOX:
-      dummy_object = &face->type1.font_bbox;
-      objects      = &dummy_object;
-      max_objects  = 0;
-
-      if ( blend )
-      {
-        objects     = (void**)blend->bboxes;
-        max_objects = blend->num_designs;
-      }
-      break;
-
-    default:
-      dummy_object = &face->type1;
-      objects      = &dummy_object;
-      max_objects  = 0;
-    }
-
-    if ( field->type == T1_FIELD_TYPE_INTEGER_ARRAY ||
-         field->type == T1_FIELD_TYPE_FIXED_ARRAY   )
-      error = T1_Load_Field_Table( &loader->parser, field,
-                                   objects, max_objects, 0 );
-    else
-      error = T1_Load_Field( &loader->parser, field,
-                             objects, max_objects, 0 );
-
-  Exit:
-    return error;
-  }
-
-
-  static int
-  is_space( FT_Byte  c )
-  {
-    return ( c == ' '  || c == '\t'              ||
-             c == '\r' || c == '\n' || c == '\f' ||
-             c == '\0'                           );
-  }
-
-
-  static int
-  read_binary_data( T1_Parser  parser,
-                    FT_Long*   size,
-                    FT_Byte**  base )
-  {
-    FT_Byte*  cur;
-    FT_Byte*  limit = parser->root.limit;
-
-
-    /* the binary data has one of the following formats */
-    /*                                                  */
-    /*   `size' [white*] RD white ....... ND            */
-    /*   `size' [white*] -| white ....... |-            */
-    /*                                                  */
-
-    T1_Skip_Spaces( parser );
-
-    cur = parser->root.cursor;
-
-    if ( cur < limit && ft_isdigit( *cur ) )
-    {
-      *size = T1_ToInt( parser );
-
-      T1_Skip_PS_Token( parser );   /* `RD' or `-|' or something else */
-
-      /* there is only one whitespace char after the */
-      /* `RD' or `-|' token                          */
-      *base = parser->root.cursor + 1;
-
-      parser->root.cursor += *size + 1;
-      return 1;
-    }
-
-    FT_ERROR(( "read_binary_data: invalid size field\n" ));
-    parser->root.error = T1_Err_Invalid_File_Format;
-    return 0;
-  }
-
-
-  /* We now define the routines to handle the `/Encoding', `/Subrs', */
-  /* and `/CharStrings' dictionaries.                                */
-
-  static void
-  parse_font_matrix( T1_Face    face,
-                     T1_Loader  loader )
-  {
-    T1_Parser   parser = &loader->parser;
-    FT_Matrix*  matrix = &face->type1.font_matrix;
-    FT_Vector*  offset = &face->type1.font_offset;
-    FT_Face     root   = (FT_Face)&face->root;
-    FT_Fixed    temp[6];
-    FT_Fixed    temp_scale;
-
-
-    (void)T1_ToFixedArray( parser, 6, temp, 3 );
-
-    temp_scale = FT_ABS( temp[3] );
-
-    /* Set Units per EM based on FontMatrix values.  We set the value to */
-    /* 1000 / temp_scale, because temp_scale was already multiplied by   */
-    /* 1000 (in t1_tofixed, from psobjs.c).                              */
-
-    root->units_per_EM = (FT_UShort)( FT_DivFix( 1000 * 0x10000L,
-                                                 temp_scale ) >> 16 );
-
-    /* we need to scale the values by 1.0/temp_scale */
-    if ( temp_scale != 0x10000L )
-    {
-      temp[0] = FT_DivFix( temp[0], temp_scale );
-      temp[1] = FT_DivFix( temp[1], temp_scale );
-      temp[2] = FT_DivFix( temp[2], temp_scale );
-      temp[4] = FT_DivFix( temp[4], temp_scale );
-      temp[5] = FT_DivFix( temp[5], temp_scale );
-      temp[3] = 0x10000L;
-    }
-
-    matrix->xx = temp[0];
-    matrix->yx = temp[1];
-    matrix->xy = temp[2];
-    matrix->yy = temp[3];
-
-    /* note that the offsets must be expressed in integer font units */
-    offset->x = temp[4] >> 16;
-    offset->y = temp[5] >> 16;
-  }
-
-
-  static void
-  parse_encoding( T1_Face    face,
-                  T1_Loader  loader )
-  {
-    T1_Parser  parser = &loader->parser;
-    FT_Byte*   cur;
-    FT_Byte*   limit  = parser->root.limit;
-
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-
-
-    T1_Skip_Spaces( parser );
-    cur = parser->root.cursor;
-    if ( cur >= limit )
-    {
-      FT_ERROR(( "parse_encoding: out of bounds!\n" ));
-      parser->root.error = T1_Err_Invalid_File_Format;
-      return;
-    }
-
-    /* if we have a number or `[', the encoding is an array, */
-    /* and we must load it now                               */
-    if ( ft_isdigit( *cur ) || *cur == '[' )
-    {
-      T1_Encoding  encode          = &face->type1.encoding;
-      FT_Int       count, n;
-      PS_Table     char_table      = &loader->encoding_table;
-      FT_Memory    memory          = parser->root.memory;
-      FT_Error     error;
-      FT_Bool      only_immediates = 0;
-
-
-      /* read the number of entries in the encoding; should be 256 */
-      if ( *cur == '[' )
-      {
-        count           = 256;
-        only_immediates = 1;
-        parser->root.cursor++;
-      }
-      else
-        count = (FT_Int)T1_ToInt( parser );
-
-      T1_Skip_Spaces( parser );
-      if ( parser->root.cursor >= limit )
-        return;
-
-      /* we use a T1_Table to store our charnames */
-      loader->num_chars = encode->num_chars = count;
-      if ( FT_NEW_ARRAY( encode->char_index, count )     ||
-           FT_NEW_ARRAY( encode->char_name,  count )     ||
-           FT_SET_ERROR( psaux->ps_table_funcs->init(
-                           char_table, count, memory ) ) )
-      {
-        parser->root.error = error;
-        return;
-      }
-
-      /* We need to `zero' out encoding_table.elements */
-      for ( n = 0; n < count; n++ )
-      {
-        char*  notdef = (char *)".notdef";
-
-
-        T1_Add_Table( char_table, n, notdef, 8 );
-      }
-
-      /* Now we need to read records of the form                */
-      /*                                                        */
-      /*   ... charcode /charname ...                           */
-      /*                                                        */
-      /* for each entry in our table.                           */
-      /*                                                        */
-      /* We simply look for a number followed by an immediate   */
-      /* name.  Note that this ignores correctly the sequence   */
-      /* that is often seen in type1 fonts:                     */
-      /*                                                        */
-      /*   0 1 255 { 1 index exch /.notdef put } for dup        */
-      /*                                                        */
-      /* used to clean the encoding array before anything else. */
-      /*                                                        */
-      /* Alternatively, if the array is directly given as       */
-      /*                                                        */
-      /*   /Encoding [ ... ]                                    */
-      /*                                                        */
-      /* we only read immediates.                               */
-
-      n = 0;
-      T1_Skip_Spaces( parser );
-
-      while ( parser->root.cursor < limit )
-      {
-        cur = parser->root.cursor;
-
-        /* we stop when we encounter a `def' or `]' */
-        if ( *cur == 'd' && cur + 3 < limit )
-        {
-          if ( cur[1] == 'e'      &&
-               cur[2] == 'f'      &&
-               is_space( cur[3] ) )
-          {
-            FT_TRACE6(( "encoding end\n" ));
-            cur += 3;
-            break;
-          }
-        }
-        if ( *cur == ']' )
-        {
-          FT_TRACE6(( "encoding end\n" ));
-          cur++;
-          break;
-        }
-
-        /* check whether we've found an entry */
-        if ( ft_isdigit( *cur ) || only_immediates )
-        {
-          FT_Int  charcode;
-
-
-          if ( only_immediates )
-            charcode = n;
-          else
-          {
-            charcode = (FT_Int)T1_ToInt( parser );
-            T1_Skip_Spaces( parser );
-          }
-
-          cur = parser->root.cursor;
-
-          if ( *cur == '/' && cur + 2 < limit && n < count )
-          {
-            FT_PtrDist  len;
-
-
-            cur++;
-
-            parser->root.cursor = cur;
-            T1_Skip_PS_Token( parser );
-
-            len = parser->root.cursor - cur;
-
-            parser->root.error = T1_Add_Table( char_table, charcode,
-                                               cur, len + 1 );
-            if ( parser->root.error )
-              return;
-            char_table->elements[charcode][len] = '\0';
-
-            n++;
-          }
-        }
-        else
-          T1_Skip_PS_Token( parser );
-
-        T1_Skip_Spaces( parser );
-      }
-
-      face->type1.encoding_type = T1_ENCODING_TYPE_ARRAY;
-      parser->root.cursor       = cur;
-    }
-
-    /* Otherwise, we should have either `StandardEncoding', */
-    /* `ExpertEncoding', or `ISOLatin1Encoding'             */
-    else
-    {
-      if ( cur + 17 < limit                                            &&
-           ft_strncmp( (const char*)cur, "StandardEncoding", 16 ) == 0 )
-        face->type1.encoding_type = T1_ENCODING_TYPE_STANDARD;
-
-      else if ( cur + 15 < limit                                          &&
-                ft_strncmp( (const char*)cur, "ExpertEncoding", 14 ) == 0 )
-        face->type1.encoding_type = T1_ENCODING_TYPE_EXPERT;
-
-      else if ( cur + 18 < limit                                             &&
-                ft_strncmp( (const char*)cur, "ISOLatin1Encoding", 17 ) == 0 )
-        face->type1.encoding_type = T1_ENCODING_TYPE_ISOLATIN1;
-
-      else
-        parser->root.error = T1_Err_Ignore;
-    }
-  }
-
-
-  static void
-  parse_subrs( T1_Face    face,
-               T1_Loader  loader )
-  {
-    T1_Parser  parser = &loader->parser;
-    PS_Table   table  = &loader->subrs;
-    FT_Memory  memory = parser->root.memory;
-    FT_Error   error;
-    FT_Int     n, num_subrs;
-
-    PSAux_Service  psaux  = (PSAux_Service)face->psaux;
-
-
-    T1_Skip_Spaces( parser );
-
-    /* test for empty array */
-    if ( parser->root.cursor < parser->root.limit &&
-         *parser->root.cursor == '['              )
-    {
-      T1_Skip_PS_Token( parser );
-      T1_Skip_Spaces  ( parser );
-      if ( parser->root.cursor >= parser->root.limit ||
-           *parser->root.cursor != ']'               )
-        parser->root.error = T1_Err_Invalid_File_Format;
-      return;
-    }
-
-    num_subrs = (FT_Int)T1_ToInt( parser );
-
-    /* position the parser right before the `dup' of the first subr */
-    T1_Skip_PS_Token( parser );         /* `array' */
-    T1_Skip_Spaces  ( parser );
-
-    /* initialize subrs array -- with synthetic fonts it is possible */
-    /* we get here twice                                             */
-    if ( !loader->num_subrs )
-    {
-      error = psaux->ps_table_funcs->init( table, num_subrs, memory );
-      if ( error )
-        goto Fail;
-    }
-
-    /* the format is simple:                                 */
-    /*                                                       */
-    /*   `index' + binary data                               */
-    /*                                                       */
-    for ( n = 0; n < num_subrs; n++ )
-    {
-      FT_Long   idx, size;
-      FT_Byte*  base;
-
-
-      /* If the next token isn't `dup', we are also done.  This */
-      /* happens when there are `holes' in the Subrs array.     */
-      if ( ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 )
-        break;
-
-      T1_Skip_PS_Token( parser );       /* `dup' */
-
-      idx = T1_ToInt( parser );
-
-      if ( !read_binary_data( parser, &size, &base ) )
-        return;
-
-      /* The binary string is followed by one token, e.g. `NP' */
-      /* (bound to `noaccess put') or by two separate tokens:  */
-      /* `noaccess' & `put'.  We position the parser right     */
-      /* before the next `dup', if any.                        */
-      T1_Skip_PS_Token( parser );   /* `NP' or `|' or `noaccess' */
-      T1_Skip_Spaces  ( parser );
-
-      if ( ft_strncmp( (char*)parser->root.cursor, "put", 3 ) == 0 )
-      {
-        T1_Skip_PS_Token( parser ); /* skip `put' */
-        T1_Skip_Spaces  ( parser );
-      }
-
-      /* with synthetic fonts it is possible we get here twice */
-      if ( loader->num_subrs )
-        continue;
-
-      /* some fonts use a value of -1 for lenIV to indicate that */
-      /* the charstrings are unencoded                           */
-      /*                                                         */
-      /* thanks to Tom Kacvinsky for pointing this out           */
-      /*                                                         */
-      if ( face->type1.private_dict.lenIV >= 0 )
-      {
-        FT_Byte*  temp;
-
-
-        /* t1_decrypt() shouldn't write to base -- make temporary copy */
-        if ( FT_ALLOC( temp, size ) )
-          goto Fail;
-        FT_MEM_COPY( temp, base, size );
-        psaux->t1_decrypt( temp, size, 4330 );
-        size -= face->type1.private_dict.lenIV;
-        error = T1_Add_Table( table, (FT_Int)idx,
-                              temp + face->type1.private_dict.lenIV, size );
-        FT_FREE( temp );
-      }
-      else
-        error = T1_Add_Table( table, (FT_Int)idx, base, size );
-      if ( error )
-        goto Fail;
-    }
-
-    if ( !loader->num_subrs )
-      loader->num_subrs = num_subrs;
-
-    return;
-
-  Fail:
-    parser->root.error = error;
-  }
-
-
-#define TABLE_EXTEND  5
-
-
-  static void
-  parse_charstrings( T1_Face    face,
-                     T1_Loader  loader )
-  {
-    T1_Parser      parser       = &loader->parser;
-    PS_Table       code_table   = &loader->charstrings;
-    PS_Table       name_table   = &loader->glyph_names;
-    PS_Table       swap_table   = &loader->swap_table;
-    FT_Memory      memory       = parser->root.memory;
-    FT_Error       error;
-
-    PSAux_Service  psaux        = (PSAux_Service)face->psaux;
-
-    FT_Byte*       cur;
-    FT_Byte*       limit        = parser->root.limit;
-    FT_Int         n, num_glyphs;
-    FT_UInt        notdef_index = 0;
-    FT_Byte        notdef_found = 0;
-
-
-    num_glyphs = (FT_Int)T1_ToInt( parser );
-    /* some fonts like Optima-Oblique not only define the /CharStrings */
-    /* array but access it also                                        */
-    if ( num_glyphs == 0 || parser->root.error )
-      return;
-
-    /* initialize tables, leaving space for addition of .notdef, */
-    /* if necessary, and a few other glyphs to handle buggy      */
-    /* fonts which have more glyphs than specified.              */
-
-    /* for some non-standard fonts like `Optima' which provides  */
-    /* different outlines depending on the resolution it is      */
-    /* possible to get here twice                                */
-    if ( !loader->num_glyphs )
-    {
-      error = psaux->ps_table_funcs->init(
-                code_table, num_glyphs + 1 + TABLE_EXTEND, memory );
-      if ( error )
-        goto Fail;
-
-      error = psaux->ps_table_funcs->init(
-                name_table, num_glyphs + 1 + TABLE_EXTEND, memory );
-      if ( error )
-        goto Fail;
-
-      /* Initialize table for swapping index notdef_index and */
-      /* index 0 names and codes (if necessary).              */
-
-      error = psaux->ps_table_funcs->init( swap_table, 4, memory );
-      if ( error )
-        goto Fail;
-    }
-
-    n = 0;
-
-    for (;;)
-    {
-      FT_Long   size;
-      FT_Byte*  base;
-
-
-      /* the format is simple:        */
-      /*   `/glyphname' + binary data */
-
-      T1_Skip_Spaces( parser );
-
-      cur = parser->root.cursor;
-      if ( cur >= limit )
-        break;
-
-      /* we stop when we find a `def' or `end' keyword */
-      if ( cur + 3 < limit && is_space( cur[3] ) )
-      {
-        if ( cur[0] == 'd' &&
-             cur[1] == 'e' &&
-             cur[2] == 'f' )
-          break;
-
-        if ( cur[0] == 'e' &&
-             cur[1] == 'n' &&
-             cur[2] == 'd' )
-          break;
-      }
-
-      T1_Skip_PS_Token( parser );
-
-      if ( *cur == '/' )
-      {
-        FT_PtrDist  len;
-
-
-        if ( cur + 1 >= limit )
-        {
-          error = T1_Err_Invalid_File_Format;
-          goto Fail;
-        }
-
-        cur++;                              /* skip `/' */
-        len = parser->root.cursor - cur;
-
-        if ( !read_binary_data( parser, &size, &base ) )
-          return;
-
-        /* for some non-standard fonts like `Optima' which provides */
-        /* different outlines depending on the resolution it is     */
-        /* possible to get here twice                               */
-        if ( loader->num_glyphs )
-          continue;
-
-        error = T1_Add_Table( name_table, n, cur, len + 1 );
-        if ( error )
-          goto Fail;
-
-        /* add a trailing zero to the name table */
-        name_table->elements[n][len] = '\0';
-
-        /* record index of /.notdef */
-        if ( *cur == '.'                                              &&
-             ft_strcmp( ".notdef",
-                        (const char*)(name_table->elements[n]) ) == 0 )
-        {
-          notdef_index = n;
-          notdef_found = 1;
-        }
-
-        if ( face->type1.private_dict.lenIV >= 0   &&
-             n < num_glyphs + TABLE_EXTEND )
-        {
-          FT_Byte*  temp;
-
-
-          /* t1_decrypt() shouldn't write to base -- make temporary copy */
-          if ( FT_ALLOC( temp, size ) )
-            goto Fail;
-          FT_MEM_COPY( temp, base, size );
-          psaux->t1_decrypt( temp, size, 4330 );
-          size -= face->type1.private_dict.lenIV;
-          error = T1_Add_Table( code_table, n,
-                                temp + face->type1.private_dict.lenIV, size );
-          FT_FREE( temp );
-        }
-        else
-          error = T1_Add_Table( code_table, n, base, size );
-        if ( error )
-          goto Fail;
-
-        n++;
-      }
-    }
-
-    if ( loader->num_glyphs )
-      return;
-    else
-      loader->num_glyphs = n;
-
-    /* if /.notdef is found but does not occupy index 0, do our magic. */
-    if ( ft_strcmp( (const char*)".notdef",
-                    (const char*)name_table->elements[0] ) &&
-         notdef_found                                      )
-    {
-      /* Swap glyph in index 0 with /.notdef glyph.  First, add index 0  */
-      /* name and code entries to swap_table.  Then place notdef_index   */
-      /* name and code entries into swap_table.  Then swap name and code */
-      /* entries at indices notdef_index and 0 using values stored in    */
-      /* swap_table.                                                     */
-
-      /* Index 0 name */
-      error = T1_Add_Table( swap_table, 0,
-                            name_table->elements[0],
-                            name_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      /* Index 0 code */
-      error = T1_Add_Table( swap_table, 1,
-                            code_table->elements[0],
-                            code_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      /* Index notdef_index name */
-      error = T1_Add_Table( swap_table, 2,
-                            name_table->elements[notdef_index],
-                            name_table->lengths [notdef_index] );
-      if ( error )
-        goto Fail;
-
-      /* Index notdef_index code */
-      error = T1_Add_Table( swap_table, 3,
-                            code_table->elements[notdef_index],
-                            code_table->lengths [notdef_index] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( name_table, notdef_index,
-                            swap_table->elements[0],
-                            swap_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( code_table, notdef_index,
-                            swap_table->elements[1],
-                            swap_table->lengths [1] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( name_table, 0,
-                            swap_table->elements[2],
-                            swap_table->lengths [2] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( code_table, 0,
-                            swap_table->elements[3],
-                            swap_table->lengths [3] );
-      if ( error )
-        goto Fail;
-
-    }
-    else if ( !notdef_found )
-    {
-      /* notdef_index is already 0, or /.notdef is undefined in   */
-      /* charstrings dictionary.  Worry about /.notdef undefined. */
-      /* We take index 0 and add it to the end of the table(s)    */
-      /* and add our own /.notdef glyph to index 0.               */
-
-      /* 0 333 hsbw endchar */
-      FT_Byte  notdef_glyph[] = {0x8B, 0xF7, 0xE1, 0x0D, 0x0E};
-      char*    notdef_name    = (char *)".notdef";
-
-
-      error = T1_Add_Table( swap_table, 0,
-                            name_table->elements[0],
-                            name_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( swap_table, 1,
-                            code_table->elements[0],
-                            code_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( name_table, 0, notdef_name, 8 );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( code_table, 0, notdef_glyph, 5 );
-
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( name_table, n,
-                            swap_table->elements[0],
-                            swap_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( code_table, n,
-                            swap_table->elements[1],
-                            swap_table->lengths [1] );
-      if ( error )
-        goto Fail;
-
-      /* we added a glyph. */
-      loader->num_glyphs = n + 1;
-    }
-
-    return;
-
-  Fail:
-    parser->root.error = error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define the token field static variables.  This is a set of            */
-  /* T1_FieldRec variables.                                                */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static
-  const T1_FieldRec  t1_keywords[] =
-  {
-
-#include "t1tokens.h"
-
-    /* now add the special functions... */
-    T1_FIELD_CALLBACK( "FontMatrix", parse_font_matrix )
-    T1_FIELD_CALLBACK( "Encoding", parse_encoding )
-    T1_FIELD_CALLBACK( "Subrs", parse_subrs )
-    T1_FIELD_CALLBACK( "CharStrings", parse_charstrings )
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-    T1_FIELD_CALLBACK( "BlendDesignPositions", parse_blend_design_positions )
-    T1_FIELD_CALLBACK( "BlendDesignMap", parse_blend_design_map )
-    T1_FIELD_CALLBACK( "BlendAxisTypes", parse_blend_axis_types )
-    T1_FIELD_CALLBACK( "WeightVector", parse_weight_vector )
-#endif
-
-    { 0, T1_FIELD_LOCATION_CID_INFO, T1_FIELD_TYPE_NONE, 0, 0, 0, 0, 0 }
-  };
-
-
-#define T1_FIELD_COUNT                                           \
-          ( sizeof ( t1_keywords ) / sizeof ( t1_keywords[0] ) )
-
-
-  static FT_Error
-  parse_dict( T1_Face    face,
-              T1_Loader  loader,
-              FT_Byte*   base,
-              FT_Long    size,
-              FT_Byte*   keyword_flags )
-  {
-    T1_Parser  parser = &loader->parser;
-    FT_Byte   *limit, *start_binary = NULL;
-    FT_Bool    have_integer = 0;
-
-
-    parser->root.cursor = base;
-    parser->root.limit  = base + size;
-    parser->root.error  = T1_Err_Ok;
-
-    limit = parser->root.limit;
-
-    T1_Skip_Spaces( parser );
-
-    while ( parser->root.cursor < limit )
-    {
-      FT_Byte*  cur;
-
-
-      cur = parser->root.cursor;
-
-      /* look for `FontDirectory' which causes problems for some fonts */
-      if ( *cur == 'F' && cur + 25 < limit                    &&
-           ft_strncmp( (char*)cur, "FontDirectory", 13 ) == 0 )
-      {
-        FT_Byte*  cur2;
-
-
-        /* skip the `FontDirectory' keyword */
-        T1_Skip_PS_Token( parser );
-        T1_Skip_Spaces  ( parser );
-        cur = cur2 = parser->root.cursor;
-
-        /* look up the `known' keyword */
-        while ( cur < limit )
-        {
-          if ( *cur == 'k' && cur + 5 < limit            &&
-               ft_strncmp( (char*)cur, "known", 5 ) == 0 )
-            break;
-
-          T1_Skip_PS_Token( parser );
-          T1_Skip_Spaces  ( parser );
-          cur = parser->root.cursor;
-        }
-
-        if ( cur < limit )
-        {
-          T1_TokenRec  token;
-
-
-          /* skip the `known' keyword and the token following it */
-          T1_Skip_PS_Token( parser );
-          T1_ToToken( parser, &token );
-
-          /* if the last token was an array, skip it! */
-          if ( token.type == T1_TOKEN_TYPE_ARRAY )
-            cur2 = parser->root.cursor;
-        }
-        parser->root.cursor = cur2;
-        have_integer = 0;
-      }
-
-      /* look for `eexec' */
-      else if ( *cur == 'e' && cur + 5 < limit &&
-                ft_strncmp( (char*)cur, "eexec", 5 ) == 0 )
-        break;
-
-      /* look for `closefile' which ends the eexec section */
-      else if ( *cur == 'c' && cur + 9 < limit &&
-                ft_strncmp( (char*)cur, "closefile", 9 ) == 0 )
-        break;
-
-      /* check whether we have an integer */
-      else if ( ft_isdigit( *cur ) )
-      {
-        start_binary = cur;
-        T1_Skip_PS_Token( parser );
-        have_integer = 1;
-      }
-
-      /* in valid Type 1 fonts we don't see `RD' or `-|' directly */
-      /* since those tokens are handled by parse_subrs and        */
-      /* parse_charstrings                                        */
-      else if ( *cur == 'R' && cur + 6 < limit && *(cur + 1) == 'D' &&
-                have_integer )
-      {
-        FT_Long   s;
-        FT_Byte*  b;
-
-
-        parser->root.cursor = start_binary;
-        if ( !read_binary_data( parser, &s, &b ) )
-          return T1_Err_Invalid_File_Format;
-        have_integer = 0;
-      }
-
-      else if ( *cur == '-' && cur + 6 < limit && *(cur + 1) == '|' &&
-                have_integer )
-      {
-        FT_Long   s;
-        FT_Byte*  b;
-
-
-        parser->root.cursor = start_binary;
-        if ( !read_binary_data( parser, &s, &b ) )
-          return T1_Err_Invalid_File_Format;
-        have_integer = 0;
-      }
-
-      /* look for immediates */
-      else if ( *cur == '/' && cur + 2 < limit )
-      {
-        FT_PtrDist  len;
-
-
-        cur++;
-
-        parser->root.cursor = cur;
-        T1_Skip_PS_Token( parser );
-
-        len = parser->root.cursor - cur;
-
-        if ( len > 0 && len < 22 && parser->root.cursor < limit )
-        {
-          /* now compare the immediate name to the keyword table */
-          T1_Field  keyword      = (T1_Field)t1_keywords;
-          FT_Byte*  keyword_flag = keyword_flags;
-
-
-          for (;;)
-          {
-            FT_Byte*  name;
-
-
-            name = (FT_Byte*)keyword->ident;
-            if ( !name )
-              break;
-
-            if ( cur[0] == name[0]                      &&
-                 len == ft_strlen( (const char *)name ) &&
-                 ft_memcmp( cur, name, len ) == 0       )
-            {
-              /* We found it -- run the parsing callback! */
-              /* We only record the first instance of any */
-              /* field to deal adequately with synthetic  */
-              /* fonts; /Subrs and /CharStrings are       */
-              /* handled specially.                       */
-              if ( keyword_flag[0] == 0                              ||
-                   ft_strcmp( (const char*)name, "Subrs" ) == 0      ||
-                   ft_strcmp( (const char*)name, "CharStrings") == 0 )
-              {
-                parser->root.error = t1_load_keyword( face,
-                                                      loader,
-                                                      keyword );
-                if ( parser->root.error == T1_Err_Ok )
-                  keyword_flag[0] = 1;
-                else
-                {
-                  if ( FT_ERROR_BASE( parser->root.error ) == FT_Err_Ignore )
-                    parser->root.error = T1_Err_Ok;
-                  else
-                    return parser->root.error;
-                }
-              }
-              break;
-            }
-
-            keyword++;
-            keyword_flag++;
-          }
-        }
-
-        have_integer = 0;
-      }
-      else
-      {
-        T1_Skip_PS_Token( parser );
-        if ( parser->root.error )
-          goto Exit;
-        have_integer = 0;
-      }
-
-      T1_Skip_Spaces( parser );
-    }
-
-  Exit:
-    return parser->root.error;
-  }
-
-
-  static void
-  t1_init_loader( T1_Loader  loader,
-                  T1_Face    face )
-  {
-    FT_UNUSED( face );
-
-    FT_MEM_ZERO( loader, sizeof ( *loader ) );
-    loader->num_glyphs = 0;
-    loader->num_chars  = 0;
-
-    /* initialize the tables -- simply set their `init' field to 0 */
-    loader->encoding_table.init = 0;
-    loader->charstrings.init    = 0;
-    loader->glyph_names.init    = 0;
-    loader->subrs.init          = 0;
-    loader->swap_table.init     = 0;
-    loader->fontdata            = 0;
-  }
-
-
-  static void
-  t1_done_loader( T1_Loader  loader )
-  {
-    T1_Parser  parser = &loader->parser;
-
-
-    /* finalize tables */
-    T1_Release_Table( &loader->encoding_table );
-    T1_Release_Table( &loader->charstrings );
-    T1_Release_Table( &loader->glyph_names );
-    T1_Release_Table( &loader->swap_table );
-    T1_Release_Table( &loader->subrs );
-
-    /* finalize parser */
-    T1_Finalize_Parser( parser );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Open_Face( T1_Face  face )
-  {
-    T1_LoaderRec   loader;
-    T1_Parser      parser;
-    T1_Font        type1 = &face->type1;
-    PS_Private     priv  = &type1->private_dict;
-    FT_Error       error;
-    FT_Byte        keyword_flags[T1_FIELD_COUNT];
-
-    PSAux_Service  psaux = (PSAux_Service)face->psaux;
-
-
-    t1_init_loader( &loader, face );
-
-    /* default values */
-    priv->blue_shift       = 7;
-    priv->blue_fuzz        = 1;
-    priv->lenIV            = 4;
-    priv->expansion_factor = (FT_Fixed)( 0.06 * 0x10000L );
-    priv->blue_scale       = (FT_Fixed)( 0.039625 * 0x10000L * 1000 );
-
-    parser = &loader.parser;
-    error  = T1_New_Parser( parser,
-                            face->root.stream,
-                            face->root.memory,
-                            psaux );
-    if ( error )
-      goto Exit;
-
-    {
-      FT_UInt  n;
-      
-
-      for ( n = 0; n < T1_FIELD_COUNT; n++ )
-        keyword_flags[n] = 0;
-    }
-
-    error = parse_dict( face, &loader, parser->base_dict, parser->base_len,
-                        keyword_flags );
-    if ( error )
-      goto Exit;
-
-    error = T1_Get_Private_Dict( parser, psaux );
-    if ( error )
-      goto Exit;
-
-    error = parse_dict( face, &loader, parser->private_dict,
-                        parser->private_len,
-                        keyword_flags );
-    if ( error )
-      goto Exit;
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
-    /* the following can happen for MM instances; we then treat the */
-    /* font as a normal PS font                                     */
-    if ( face->blend                                             &&
-         ( !face->blend->num_designs || !face->blend->num_axis ) )
-      T1_Done_Blend( face );
-
-    /* another safety check */
-    if ( face->blend )
-    {
-      FT_UInt  i;
-
-
-      for ( i = 0; i < face->blend->num_axis; i++ )
-        if ( !face->blend->design_map[i].num_points )
-        {
-          T1_Done_Blend( face );
-          break;
-        }
-    }
-
-#endif /* T1_CONFIG_OPTION_NO_MM_SUPPORT */
-
-    /* now, propagate the subrs, charstrings, and glyphnames tables */
-    /* to the Type1 data                                            */
-    type1->num_glyphs = loader.num_glyphs;
-
-    if ( loader.subrs.init )
-    {
-      loader.subrs.init  = 0;
-      type1->num_subrs   = loader.num_subrs;
-      type1->subrs_block = loader.subrs.block;
-      type1->subrs       = loader.subrs.elements;
-      type1->subrs_len   = loader.subrs.lengths;
-    }
-
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
-    if ( !face->root.internal->incremental_interface )
-#endif
-      if ( !loader.charstrings.init )
-      {
-        FT_ERROR(( "T1_Open_Face: no `/CharStrings' array in face!\n" ));
-        error = T1_Err_Invalid_File_Format;
-      }
-
-    loader.charstrings.init  = 0;
-    type1->charstrings_block = loader.charstrings.block;
-    type1->charstrings       = loader.charstrings.elements;
-    type1->charstrings_len   = loader.charstrings.lengths;
-
-    /* we copy the glyph names `block' and `elements' fields; */
-    /* the `lengths' field must be released later             */
-    type1->glyph_names_block    = loader.glyph_names.block;
-    type1->glyph_names          = (FT_String**)loader.glyph_names.elements;
-    loader.glyph_names.block    = 0;
-    loader.glyph_names.elements = 0;
-
-    /* we must now build type1.encoding when we have a custom array */
-    if ( type1->encoding_type == T1_ENCODING_TYPE_ARRAY )
-    {
-      FT_Int    charcode, idx, min_char, max_char;
-      FT_Byte*  char_name;
-      FT_Byte*  glyph_name;
-
-
-      /* OK, we do the following: for each element in the encoding  */
-      /* table, look up the index of the glyph having the same name */
-      /* the index is then stored in type1.encoding.char_index, and */
-      /* a the name to type1.encoding.char_name                     */
-
-      min_char = +32000;
-      max_char = -32000;
-
-      charcode = 0;
-      for ( ; charcode < loader.encoding_table.max_elems; charcode++ )
-      {
-        type1->encoding.char_index[charcode] = 0;
-        type1->encoding.char_name [charcode] = (char *)".notdef";
-
-        char_name = loader.encoding_table.elements[charcode];
-        if ( char_name )
-          for ( idx = 0; idx < type1->num_glyphs; idx++ )
-          {
-            glyph_name = (FT_Byte*)type1->glyph_names[idx];
-            if ( ft_strcmp( (const char*)char_name,
-                            (const char*)glyph_name ) == 0 )
-            {
-              type1->encoding.char_index[charcode] = (FT_UShort)idx;
-              type1->encoding.char_name [charcode] = (char*)glyph_name;
-
-              /* Change min/max encoded char only if glyph name is */
-              /* not /.notdef                                      */
-              if ( ft_strcmp( (const char*)".notdef",
-                              (const char*)glyph_name ) != 0 )
-              {
-                if ( charcode < min_char )
-                  min_char = charcode;
-                if ( charcode > max_char )
-                  max_char = charcode;
-              }
-              break;
-            }
-          }
-      }
-
-      /*
-       *  Yes, this happens: Certain PDF-embedded fonts have only a
-       *  `.notdef' glyph defined!
-       */
-
-      if ( min_char > max_char )
-      {
-        min_char = 0;
-        max_char = loader.encoding_table.max_elems;
-      }
-
-      type1->encoding.code_first = min_char;
-      type1->encoding.code_last  = max_char;
-      type1->encoding.num_chars  = loader.num_chars;
-    }
-
-  Exit:
-    t1_done_loader( &loader );
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1load.h b/nx-X11/extras/freetype2/src/type1/t1load.h
deleted file mode 100644
index 9823f53e0..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1load.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1load.h                                                               */
-/*                                                                         */
-/*    Type 1 font loader (specification).                                  */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2004 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1LOAD_H__
-#define __T1LOAD_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-#include FT_MULTIPLE_MASTERS_H
-
-#include "t1parse.h"
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct  T1_Loader_
-  {
-    T1_ParserRec  parser;          /* parser used to read the stream */
-
-    FT_Int        num_chars;       /* number of characters in encoding */
-    PS_TableRec   encoding_table;  /* PS_Table used to store the       */
-                                   /* encoding character names         */
-
-    FT_Int        num_glyphs;
-    PS_TableRec   glyph_names;
-    PS_TableRec   charstrings;
-    PS_TableRec   swap_table;      /* For moving .notdef glyph to index 0. */
-
-    FT_Int        num_subrs;
-    PS_TableRec   subrs;
-    FT_Bool       fontdata;
-
-  } T1_LoaderRec, *T1_Loader;
-
-
-  FT_LOCAL( FT_Error )
-  T1_Open_Face( T1_Face  face );
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-
-  FT_LOCAL( FT_Error )
-  T1_Get_Multi_Master( T1_Face           face,
-                       FT_Multi_Master*  master );
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Get_MM_Var( T1_Face      face,
-                 FT_MM_Var*  *master );
-
-  FT_LOCAL( FT_Error )
-  T1_Set_MM_Blend( T1_Face    face,
-                   FT_UInt    num_coords,
-                   FT_Fixed*  coords );
-
-  FT_LOCAL( FT_Error )
-  T1_Set_MM_Design( T1_Face   face,
-                    FT_UInt   num_coords,
-                    FT_Long*  coords );
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Set_Var_Design( T1_Face    face,
-                     FT_UInt    num_coords,
-                     FT_Fixed*  coords );
-
-  FT_LOCAL( void )
-  T1_Done_Blend( T1_Face  face );
-
-#endif /* !T1_CONFIG_OPTION_NO_MM_SUPPORT */
-
-
-FT_END_HEADER
-
-#endif /* __T1LOAD_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1objs.c b/nx-X11/extras/freetype2/src/type1/t1objs.c
deleted file mode 100644
index a832ee000..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1objs.c
+++ /dev/null
@@ -1,552 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1objs.c                                                               */
-/*                                                                         */
-/*    Type 1 objects manager (body).                                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_TRUETYPE_IDS_H
-
-#include "t1gload.h"
-#include "t1load.h"
-
-#include "t1errors.h"
-
-#ifndef T1_CONFIG_OPTION_NO_AFM
-#include "t1afm.h"
-#endif
-
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1objs
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            SIZE FUNCTIONS                             */
-  /*                                                                       */
-  /*  note that we store the global hints in the size's "internal" root    */
-  /*  field                                                                */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  static PSH_Globals_Funcs
-  T1_Size_Get_Globals_Funcs( T1_Size  size )
-  {
-    T1_Face           face     = (T1_Face)size->root.face;
-    PSHinter_Service  pshinter = (PSHinter_Service)face->pshinter;
-    FT_Module         module;
-
-
-    module = FT_Get_Module( size->root.face->driver->root.library,
-                            "pshinter" );
-    return ( module && pshinter && pshinter->get_globals_funcs )
-           ? pshinter->get_globals_funcs( module )
-           : 0 ;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T1_Size_Done( T1_Size  size )
-  {
-    if ( size->root.internal )
-    {
-      PSH_Globals_Funcs  funcs;
-
-
-      funcs = T1_Size_Get_Globals_Funcs( size );
-      if ( funcs )
-        funcs->destroy( (PSH_Globals)size->root.internal );
-
-      size->root.internal = 0;
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Size_Init( T1_Size  size )
-  {
-    FT_Error           error = 0;
-    PSH_Globals_Funcs  funcs = T1_Size_Get_Globals_Funcs( size );
-
-
-    if ( funcs )
-    {
-      PSH_Globals  globals;
-      T1_Face      face = (T1_Face)size->root.face;
-
-
-      error = funcs->create( size->root.face->memory,
-                             &face->type1.private_dict, &globals );
-      if ( !error )
-        size->root.internal = (FT_Size_Internal)(void*)globals;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Size_Reset( T1_Size  size )
-  {
-    PSH_Globals_Funcs  funcs = T1_Size_Get_Globals_Funcs( size );
-    FT_Error           error = 0;
-
-
-    if ( funcs )
-      error = funcs->set_scale( (PSH_Globals)size->root.internal,
-                                size->root.metrics.x_scale,
-                                size->root.metrics.y_scale,
-                                0, 0 );
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            SLOT  FUNCTIONS                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-  FT_LOCAL_DEF( void )
-  T1_GlyphSlot_Done( T1_GlyphSlot  slot )
-  {
-    slot->root.internal->glyph_hints = 0;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_GlyphSlot_Init( T1_GlyphSlot  slot )
-  {
-    T1_Face           face;
-    PSHinter_Service  pshinter;
-
-
-    face     = (T1_Face)slot->root.face;
-    pshinter = (PSHinter_Service)face->pshinter;
-
-    if ( pshinter )
-    {
-      FT_Module  module;
-
-
-      module = FT_Get_Module( slot->root.face->driver->root.library, "pshinter" );
-      if (module)
-      {
-        T1_Hints_Funcs  funcs;
-
-        funcs = pshinter->get_t1_funcs( module );
-        slot->root.internal->glyph_hints = (void*)funcs;
-      }
-    }
-    return 0;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                            FACE  FUNCTIONS                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    T1_Face_Done                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The face object destructor.                                        */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    face :: A typeless pointer to the face object to destroy.          */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  T1_Face_Done( T1_Face  face )
-  {
-    FT_Memory  memory;
-    T1_Font    type1 = &face->type1;
-
-
-    if ( face )
-    {
-      memory = face->root.memory;
-
-#ifndef T1_CONFIG_OPTION_NO_MM_SUPPORT
-      /* release multiple masters information */
-      T1_Done_Blend( face );
-      face->blend = 0;
-#endif
-
-      /* release font info strings */
-      {
-        PS_FontInfo  info = &type1->font_info;
-
-
-        FT_FREE( info->version );
-        FT_FREE( info->notice );
-        FT_FREE( info->full_name );
-        FT_FREE( info->family_name );
-        FT_FREE( info->weight );
-      }
-
-      /* release top dictionary */
-      FT_FREE( type1->charstrings_len );
-      FT_FREE( type1->charstrings );
-      FT_FREE( type1->glyph_names );
-
-      FT_FREE( type1->subrs );
-      FT_FREE( type1->subrs_len );
-
-      FT_FREE( type1->subrs_block );
-      FT_FREE( type1->charstrings_block );
-      FT_FREE( type1->glyph_names_block );
-
-      FT_FREE( type1->encoding.char_index );
-      FT_FREE( type1->encoding.char_name );
-      FT_FREE( type1->font_name );
-
-#ifndef T1_CONFIG_OPTION_NO_AFM
-      /* release afm data if present */
-      if ( face->afm_data )
-        T1_Done_AFM( memory, (T1_AFM*)face->afm_data );
-#endif
-
-      /* release unicode map, if any */
-      FT_FREE( face->unicode_map.maps );
-      face->unicode_map.num_maps = 0;
-
-      face->root.family_name = 0;
-      face->root.style_name  = 0;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    T1_Face_Init                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    The face object constructor.                                       */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    stream     ::  input stream where to load font data.               */
-  /*                                                                       */
-  /*    face_index :: The index of the font face in the resource.          */
-  /*                                                                       */
-  /*    num_params :: Number of additional generic parameters.  Ignored.   */
-  /*                                                                       */
-  /*    params     :: Additional generic parameters.  Ignored.             */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    face       :: The face record to build.                            */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  T1_Face_Init( FT_Stream      stream,
-                T1_Face        face,
-                FT_Int         face_index,
-                FT_Int         num_params,
-                FT_Parameter*  params )
-  {
-    FT_Error            error;
-    FT_Service_PsCMaps  psnames;
-    PSAux_Service       psaux;
-    T1_Font             type1 = &face->type1;
-    PS_FontInfo         info = &type1->font_info;
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-    FT_UNUSED( face_index );
-    FT_UNUSED( stream );
-
-
-    face->root.num_faces = 1;
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-    face->psnames = psnames;
-
-    face->psaux = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),
-                                           "psaux" );
-    psaux = (PSAux_Service)face->psaux;
-
-    face->pshinter = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),
-                                              "pshinter" );
-
-    /* open the tokenizer; this will also check the font format */
-    error = T1_Open_Face( face );
-    if ( error )
-      goto Exit;
-
-    /* if we just wanted to check the format, leave successfully now */
-    if ( face_index < 0 )
-      goto Exit;
-
-    /* check the face index */
-    if ( face_index != 0 )
-    {
-      FT_ERROR(( "T1_Face_Init: invalid face index\n" ));
-      error = T1_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* now load the font program into the face object */
-
-    /* initialize the face object fields */
-
-    /* set up root face fields */
-    {
-      FT_Face  root = (FT_Face)&face->root;
-
-
-      root->num_glyphs = type1->num_glyphs;
-      root->face_index = face_index;
-
-      root->face_flags  = FT_FACE_FLAG_SCALABLE;
-      root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-      root->face_flags |= FT_FACE_FLAG_GLYPH_NAMES;
-
-      if ( info->is_fixed_pitch )
-        root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      if ( face->blend )
-        root->face_flags |= FT_FACE_FLAG_MULTIPLE_MASTERS;
-
-      /* XXX: TODO -- add kerning with .afm support */
-
-      /* get style name -- be careful, some broken fonts only */
-      /* have a `/FontName' dictionary entry!                 */
-      root->family_name = info->family_name;
-      /* assume "Regular" style if we don't know better */
-      root->style_name = (char *)"Regular";
-      if ( root->family_name )
-      {
-        char*  full   = info->full_name;
-        char*  family = root->family_name;
-
-
-        if ( full )
-        {
-          while ( *full )
-          {
-            if ( *full == *family )
-            {
-              family++;
-              full++;
-            }
-            else
-            {
-              if ( *full == ' ' || *full == '-' )
-                full++;
-              else if ( *family == ' ' || *family == '-' )
-                family++;
-              else
-              {
-                if ( !*family )
-                  root->style_name = full;
-                break;
-              }
-            }
-          }
-        }
-      }
-      else
-      {
-        /* do we have a `/FontName'? */
-        if ( type1->font_name )
-          root->family_name = type1->font_name;
-      }
-
-      /* compute style flags */
-      root->style_flags = 0;
-      if ( info->italic_angle )
-        root->style_flags |= FT_STYLE_FLAG_ITALIC;
-      if ( info->weight )
-      {
-        if ( !ft_strcmp( info->weight, "Bold"  ) ||
-             !ft_strcmp( info->weight, "Black" ) )
-          root->style_flags |= FT_STYLE_FLAG_BOLD;
-      }
-
-      /* no embedded bitmap support */
-      root->num_fixed_sizes = 0;
-      root->available_sizes = 0;
-
-      root->bbox.xMin =   type1->font_bbox.xMin             >> 16;
-      root->bbox.yMin =   type1->font_bbox.yMin             >> 16;
-      root->bbox.xMax = ( type1->font_bbox.xMax + 0xFFFFU ) >> 16;
-      root->bbox.yMax = ( type1->font_bbox.yMax + 0xFFFFU ) >> 16;
-
-      /* Set units_per_EM if we didn't set it in parse_font_matrix. */
-      if ( !root->units_per_EM )
-        root->units_per_EM = 1000;
-
-      root->ascender  = (FT_Short)( root->bbox.yMax );
-      root->descender = (FT_Short)( root->bbox.yMin );
-      root->height    = (FT_Short)(
-        ( ( root->ascender - root->descender ) * 12 ) / 10 );
-
-      /* now compute the maximum advance width */
-      root->max_advance_width =
-        (FT_Short)( root->bbox.xMax );
-      {
-        FT_Pos  max_advance;
-
-
-        error = T1_Compute_Max_Advance( face, &max_advance );
-
-        /* in case of error, keep the standard width */
-        if ( !error )
-          root->max_advance_width = (FT_Short)max_advance;
-        else
-          error = 0;   /* clear error */
-      }
-
-      root->max_advance_height = root->height;
-
-      root->underline_position  = (FT_Short)info->underline_position;
-      root->underline_thickness = (FT_Short)info->underline_thickness;
-
-      root->internal->max_points   = 0;
-      root->internal->max_contours = 0;
-    }
-
-    {
-      FT_Face  root = &face->root;
-
-
-      if ( psnames && psaux )
-      {
-        FT_CharMapRec    charmap;
-        T1_CMap_Classes  cmap_classes = psaux->t1_cmap_classes;
-        FT_CMap_Class    clazz;
-
-
-        charmap.face = root;
-
-        /* first of all, try to synthetize a Unicode charmap */
-        charmap.platform_id = 3;
-        charmap.encoding_id = 1;
-        charmap.encoding    = FT_ENCODING_UNICODE;
-
-        FT_CMap_New( cmap_classes->unicode, NULL, &charmap, NULL );
-
-        /* now, generate an Adobe Standard encoding when appropriate */
-        charmap.platform_id = 7;
-        clazz               = NULL;
-
-        switch ( type1->encoding_type )
-        {
-        case T1_ENCODING_TYPE_STANDARD:
-          charmap.encoding    = FT_ENCODING_ADOBE_STANDARD;
-          charmap.encoding_id = TT_ADOBE_ID_STANDARD;
-          clazz               = cmap_classes->standard;
-          break;
-
-        case T1_ENCODING_TYPE_EXPERT:
-          charmap.encoding    = FT_ENCODING_ADOBE_EXPERT;
-          charmap.encoding_id = TT_ADOBE_ID_EXPERT;
-          clazz               = cmap_classes->expert;
-          break;
-
-        case T1_ENCODING_TYPE_ARRAY:
-          charmap.encoding    = FT_ENCODING_ADOBE_CUSTOM;
-          charmap.encoding_id = TT_ADOBE_ID_CUSTOM;
-          clazz               = cmap_classes->custom;
-          break;
-
-        case T1_ENCODING_TYPE_ISOLATIN1:
-          charmap.encoding    = FT_ENCODING_ADOBE_LATIN_1;
-          charmap.encoding_id = TT_ADOBE_ID_LATIN_1;
-          clazz               = cmap_classes->unicode;
-          break;
-
-        default:
-          ;
-        }
-
-        if ( clazz )
-          FT_CMap_New( clazz, NULL, &charmap, NULL );
-
-#if 0
-        /* Select default charmap */
-        if (root->num_charmaps)
-          root->charmap = root->charmaps[0];
-#endif
-      }
-    }
-
-  Exit:
-    return error;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    T1_Driver_Init                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given Type 1 driver object.                          */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target driver object.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  T1_Driver_Init( T1_Driver  driver )
-  {
-    FT_UNUSED( driver );
-
-    return T1_Err_Ok;
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    T1_Driver_Done                                                     */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Finalizes a given Type 1 driver.                                   */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target Type 1 driver.                    */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  T1_Driver_Done( T1_Driver  driver )
-  {
-    FT_UNUSED( driver );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1objs.h b/nx-X11/extras/freetype2/src/type1/t1objs.h
deleted file mode 100644
index 9aeb10dd2..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1objs.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1objs.h                                                               */
-/*                                                                         */
-/*    Type 1 objects manager (specification).                              */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002 by                                           */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1OBJS_H__
-#define __T1OBJS_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_OBJECTS_H
-#include FT_CONFIG_CONFIG_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* The following structures must be defined by the hinter */
-  typedef struct T1_Size_Hints_   T1_Size_Hints;
-  typedef struct T1_Glyph_Hints_  T1_Glyph_Hints;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    T1_Driver                                                          */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 driver object.                                */
-  /*                                                                       */
-  typedef struct T1_DriverRec_   *T1_Driver;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    T1_Size                                                            */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 size object.                                  */
-  /*                                                                       */
-  typedef struct T1_SizeRec_*  T1_Size;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    T1_GlyphSlot                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 glyph slot object.                            */
-  /*                                                                       */
-  typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    T1_CharMap                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A handle to a Type 1 character mapping object.                     */
-  /*                                                                       */
-  /* <Note>                                                                */
-  /*    The Type 1 format doesn't use a charmap but an encoding table.     */
-  /*    The driver is responsible for making up charmap objects            */
-  /*    corresponding to these tables.                                     */
-  /*                                                                       */
-  typedef struct T1_CharMapRec_*   T1_CharMap;
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /*                  HERE BEGINS THE TYPE1 SPECIFIC STUFF                 */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    T1_SizeRec                                                         */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Type 1 size record.                                                */
-  /*                                                                       */
-  typedef struct  T1_SizeRec_
-  {
-    FT_SizeRec  root;
-
-  } T1_SizeRec;
-
-
-  FT_LOCAL( void )
-  T1_Size_Done( T1_Size  size );
-
-  FT_LOCAL( FT_Error )
-  T1_Size_Reset( T1_Size  size );
-
-  FT_LOCAL( FT_Error )
-  T1_Size_Init( T1_Size  size );
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Type>                                                                */
-  /*    T1_GlyphSlotRec                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Type 1 glyph slot record.                                          */
-  /*                                                                       */
-  typedef struct  T1_GlyphSlotRec_
-  {
-    FT_GlyphSlotRec  root;
-
-    FT_Bool          hint;
-    FT_Bool          scaled;
-
-    FT_Int           max_points;
-    FT_Int           max_contours;
-
-    FT_Fixed         x_scale;
-    FT_Fixed         y_scale;
-
-  } T1_GlyphSlotRec;
-
-
-  FT_LOCAL( FT_Error )
-  T1_Face_Init( FT_Stream      stream,
-                T1_Face        face,
-                FT_Int         face_index,
-                FT_Int         num_params,
-                FT_Parameter*  params );
-
-  FT_LOCAL( void )
-  T1_Face_Done( T1_Face  face );
-
-  FT_LOCAL( FT_Error )
-  T1_GlyphSlot_Init( T1_GlyphSlot  slot );
-  
-  FT_LOCAL( void )
-  T1_GlyphSlot_Done( T1_GlyphSlot  slot );
-
-  FT_LOCAL( FT_Error )
-  T1_Driver_Init( T1_Driver  driver );
-
-  FT_LOCAL( void )
-  T1_Driver_Done( T1_Driver  driver );
-
-
-FT_END_HEADER
-
-#endif /* __T1OBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1parse.c b/nx-X11/extras/freetype2/src/type1/t1parse.c
deleted file mode 100644
index 544aa093f..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1parse.c
+++ /dev/null
@@ -1,443 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1parse.c                                                              */
-/*                                                                         */
-/*    Type 1 parser (body).                                                */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The Type 1 parser is in charge of the following:                      */
-  /*                                                                       */
-  /*  - provide an implementation of a growing sequence of objects called  */
-  /*    a `T1_Table' (used to build various tables needed by the loader).  */
-  /*                                                                       */
-  /*  - opening .pfb and .pfa files to extract their top-level and private */
-  /*    dictionaries.                                                      */
-  /*                                                                       */
-  /*  - read numbers, arrays & strings from any dictionary.                */
-  /*                                                                       */
-  /* See `t1load.c' to see how data is loaded from the font file.          */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_CALC_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-#include "t1parse.h"
-
-#include "t1errors.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t1parse
-
-
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*****                                                               *****/
-  /*****                   INPUT STREAM PARSER                         *****/
-  /*****                                                               *****/
-  /*************************************************************************/
-  /*************************************************************************/
-  /*************************************************************************/
-
-
-  static FT_Error
-  read_pfb_tag( FT_Stream   stream,
-                FT_UShort  *atag,
-                FT_Long    *asize )
-  {
-    FT_Error   error;
-    FT_UShort  tag;
-    FT_Long    size;
-
-
-    *atag  = 0;
-    *asize = 0;
-
-    if ( !FT_READ_USHORT( tag ) )
-    {
-      if ( tag == 0x8001U || tag == 0x8002U )
-      {
-        if ( !FT_READ_LONG_LE( size ) )
-          *asize = size;
-      }
-
-      *atag = tag;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_New_Parser( T1_Parser      parser,
-                 FT_Stream      stream,
-                 FT_Memory      memory,
-                 PSAux_Service  psaux )
-  {
-    FT_Error   error;
-    FT_UShort  tag;
-    FT_Long    size;
-
-
-    psaux->ps_parser_funcs->init( &parser->root, 0, 0, memory );
-
-    parser->stream       = stream;
-    parser->base_len     = 0;
-    parser->base_dict    = 0;
-    parser->private_len  = 0;
-    parser->private_dict = 0;
-    parser->in_pfb       = 0;
-    parser->in_memory    = 0;
-    parser->single_block = 0;
-
-    /******************************************************************/
-    /*                                                                */
-    /* Here a short summary of what is going on:                      */
-    /*                                                                */
-    /*   When creating a new Type 1 parser, we try to locate and load */
-    /*   the base dictionary if this is possible (i.e. for PFB        */
-    /*   files).  Otherwise, we load the whole font into memory.      */
-    /*                                                                */
-    /*   When `loading' the base dictionary, we only setup pointers   */
-    /*   in the case of a memory-based stream.  Otherwise, we         */
-    /*   allocate and load the base dictionary in it.                 */
-    /*                                                                */
-    /*   parser->in_pfb is set if we are in a binary (".pfb") font.   */
-    /*   parser->in_memory is set if we have a memory stream.         */
-    /*                                                                */
-
-    /* try to compute the size of the base dictionary;   */
-    /* look for a Postscript binary file tag, i.e 0x8001 */
-    if ( FT_STREAM_SEEK( 0L ) )
-      goto Exit;
-
-    error = read_pfb_tag( stream, &tag, &size );
-    if ( error )
-      goto Exit;
-
-    if ( tag != 0x8001U )
-    {
-      /* assume that this is a PFA file for now; an error will */
-      /* be produced later when more things are checked        */
-      if ( FT_STREAM_SEEK( 0L ) )
-        goto Exit;
-      size = stream->size;
-    }
-    else
-      parser->in_pfb = 1;
-
-    /* now, try to load `size' bytes of the `base' dictionary we */
-    /* found previously                                          */
-
-    /* if it is a memory-based resource, set up pointers */
-    if ( !stream->read )
-    {
-      parser->base_dict = (FT_Byte*)stream->base + stream->pos;
-      parser->base_len  = size;
-      parser->in_memory = 1;
-
-      /* check that the `size' field is valid */
-      if ( FT_STREAM_SKIP( size ) )
-        goto Exit;
-    }
-    else
-    {
-      /* read segment in memory */
-      if ( FT_ALLOC( parser->base_dict, size )     ||
-           FT_STREAM_READ( parser->base_dict, size ) )
-        goto Exit;
-      parser->base_len = size;
-    }
-
-    /* Now check font format; we must see `%!PS-AdobeFont-1' */
-    /* or `%!FontType'                                       */
-    {
-      if ( size <= 16                                       ||
-           ( ft_strncmp( (const char*)parser->base_dict,
-                         "%!PS-AdobeFont-1", 16 )        &&
-             ft_strncmp( (const char*)parser->base_dict,
-                         "%!FontType", 10 )              )  )
-      {
-        FT_TRACE2(( "[not a Type1 font]\n" ));
-        error = T1_Err_Unknown_File_Format;
-      }
-      else
-      {
-        parser->root.base   = parser->base_dict;
-        parser->root.cursor = parser->base_dict;
-        parser->root.limit  = parser->root.cursor + parser->base_len;
-      }
-    }
-
-  Exit:
-    if ( error && !parser->in_memory )
-      FT_FREE( parser->base_dict );
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T1_Finalize_Parser( T1_Parser  parser )
-  {
-    FT_Memory  memory = parser->root.memory;
-
-
-    /* always free the private dictionary */
-    FT_FREE( parser->private_dict );
-
-    /* free the base dictionary only when we have a disk stream */
-    if ( !parser->in_memory )
-      FT_FREE( parser->base_dict );
-
-    parser->root.funcs.done( &parser->root );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T1_Get_Private_Dict( T1_Parser      parser,
-                       PSAux_Service  psaux )
-  {
-    FT_Stream  stream = parser->stream;
-    FT_Memory  memory = parser->root.memory;
-    FT_Error   error  = T1_Err_Ok;
-    FT_Long    size;
-
-
-    if ( parser->in_pfb )
-    {
-      /* in the case of the PFB format, the private dictionary can be  */
-      /* made of several segments.  We thus first read the number of   */
-      /* segments to compute the total size of the private dictionary  */
-      /* then re-read them into memory.                                */
-      FT_Long    start_pos = FT_STREAM_POS();
-      FT_UShort  tag;
-
-
-      parser->private_len = 0;
-      for (;;)
-      {
-        error = read_pfb_tag( stream, &tag, &size );
-        if ( error )
-          goto Fail;
-
-        if ( tag != 0x8002U )
-          break;
-
-        parser->private_len += size;
-
-        if ( FT_STREAM_SKIP( size ) )
-          goto Fail;
-      }
-
-      /* Check that we have a private dictionary there */
-      /* and allocate private dictionary buffer        */
-      if ( parser->private_len == 0 )
-      {
-        FT_ERROR(( "T1_Get_Private_Dict:" ));
-        FT_ERROR(( " invalid private dictionary section\n" ));
-        error = T1_Err_Invalid_File_Format;
-        goto Fail;
-      }
-
-      if ( FT_STREAM_SEEK( start_pos )                             ||
-           FT_ALLOC( parser->private_dict, parser->private_len ) )
-        goto Fail;
-
-      parser->private_len = 0;
-      for (;;)
-      {
-        error = read_pfb_tag( stream, &tag, &size );
-        if ( error || tag != 0x8002U )
-        {
-          error = T1_Err_Ok;
-          break;
-        }
-
-        if ( FT_STREAM_READ( parser->private_dict + parser->private_len,
-                             size ) )
-          goto Fail;
-
-        parser->private_len += size;
-      }
-    }
-    else
-    {
-      /* We have already `loaded' the whole PFA font file into memory; */
-      /* if this is a memory resource, allocate a new block to hold    */
-      /* the private dict.  Otherwise, simply overwrite into the base  */
-      /* dictionary block in the heap.                                 */
-
-      /* first of all, look at the `eexec' keyword */
-      FT_Byte*  cur   = parser->base_dict;
-      FT_Byte*  limit = cur + parser->base_len;
-      FT_Byte   c;
-
-
-    Again:
-      for (;;)
-      {
-        c = cur[0];
-        if ( c == 'e' && cur + 9 < limit )  /* 9 = 5 letters for `eexec' + */
-                                            /* newline + 4 chars           */
-        {
-          if ( cur[1] == 'e' &&
-               cur[2] == 'x' &&
-               cur[3] == 'e' &&
-               cur[4] == 'c' )
-            break;
-        }
-        cur++;
-        if ( cur >= limit )
-        {
-          FT_ERROR(( "T1_Get_Private_Dict:" ));
-          FT_ERROR(( " could not find `eexec' keyword\n" ));
-          error = T1_Err_Invalid_File_Format;
-          goto Exit;
-        }
-      }
-
-      /* check whether `eexec' was real -- it could be in a comment */
-      /* or string (as e.g. in u003043t.gsf from ghostscript)       */
-
-      parser->root.cursor = parser->base_dict;
-      parser->root.limit  = cur + 9;
-
-      cur   = parser->root.cursor;
-      limit = parser->root.limit;
-
-      while ( cur < limit )
-      {
-        if ( *cur == 'e' && ft_strncmp( (char*)cur, "eexec", 5 ) == 0 )
-          goto Found;
-
-        T1_Skip_PS_Token( parser );
-        T1_Skip_Spaces  ( parser );
-        cur = parser->root.cursor;
-      }
-
-      /* we haven't found the correct `eexec'; go back and continue */
-      /* searching                                                  */
-
-      cur   = limit;
-      limit = parser->base_dict + parser->base_len;
-      goto Again;
-
-      /* now determine where to write the _encrypted_ binary private  */
-      /* dictionary.  We overwrite the base dictionary for disk-based */
-      /* resources and allocate a new block otherwise                 */
-
-    Found:
-      parser->root.limit = parser->base_dict + parser->base_len;
-
-      T1_Skip_PS_Token( parser );
-      cur = parser->root.cursor;
-      if ( *cur == '\r' )
-      {
-        cur++;
-        if ( *cur == '\n' )
-          cur++;
-      }
-      else if ( *cur == '\n' )
-        cur++;
-      else
-      {
-        FT_ERROR(( "T1_Get_Private_Dict:" ));
-        FT_ERROR(( " `eexec' not properly terminated\n" ));
-        error = T1_Err_Invalid_File_Format;
-        goto Exit;
-      }
-
-      size = (FT_Long)( parser->base_len - ( cur - parser->base_dict ) );
-
-      if ( parser->in_memory )
-      {
-        /* note that we allocate one more byte to put a terminating `0' */
-        if ( FT_ALLOC( parser->private_dict, size + 1 ) )
-          goto Fail;
-        parser->private_len = size;
-      }
-      else
-      {
-        parser->single_block = 1;
-        parser->private_dict = parser->base_dict;
-        parser->private_len  = size;
-        parser->base_dict    = 0;
-        parser->base_len     = 0;
-      }
-
-      /* now determine whether the private dictionary is encoded in binary */
-      /* or hexadecimal ASCII format -- decode it accordingly              */
-
-      /* we need to access the next 4 bytes (after the final \r following */
-      /* the `eexec' keyword); if they all are hexadecimal digits, then   */
-      /* we have a case of ASCII storage                                  */
-
-      if ( ft_isxdigit( cur[0] ) && ft_isxdigit( cur[1] ) &&
-           ft_isxdigit( cur[2] ) && ft_isxdigit( cur[3] ) )
-      {
-        /* ASCII hexadecimal encoding */
-        FT_Long  len;
-
-
-        parser->root.cursor = cur;
-        (void)psaux->ps_parser_funcs->to_bytes( &parser->root,
-                                                parser->private_dict,
-                                                parser->private_len,
-                                                &len,
-                                                0 );
-        parser->private_len = len;
-
-        /* put a safeguard */
-        parser->private_dict[len] = '\0';
-      }
-      else
-        /* binary encoding -- copy the private dict */
-        FT_MEM_MOVE( parser->private_dict, cur, size );
-    }
-
-    /* we now decrypt the encoded binary private dictionary */
-    psaux->t1_decrypt( parser->private_dict, parser->private_len, 55665U );
-
-    /* replace the four random bytes at the beginning with whitespace */
-    parser->private_dict[0] = ' ';
-    parser->private_dict[1] = ' ';
-    parser->private_dict[2] = ' ';
-    parser->private_dict[3] = ' ';
-
-    parser->root.base   = parser->private_dict;
-    parser->root.cursor = parser->private_dict;
-    parser->root.limit  = parser->root.cursor + parser->private_len;
-
-  Fail:
-  Exit:
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1parse.h b/nx-X11/extras/freetype2/src/type1/t1parse.h
deleted file mode 100644
index 6fa4ca624..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1parse.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1parse.h                                                              */
-/*                                                                         */
-/*    Type 1 parser (specification).                                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003 by                                     */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T1PARSE_H__
-#define __T1PARSE_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_STREAM_H
-
-
-FT_BEGIN_HEADER
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Struct>                                                              */
-  /*    T1_ParserRec                                                       */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    A PS_ParserRec is an object used to parse a Type 1 fonts very      */
-  /*    quickly.                                                           */
-  /*                                                                       */
-  /* <Fields>                                                              */
-  /*    root         :: The root parser.                                   */
-  /*                                                                       */
-  /*    stream       :: The current input stream.                          */
-  /*                                                                       */
-  /*    base_dict    :: A pointer to the top-level dictionary.             */
-  /*                                                                       */
-  /*    base_len     :: The length in bytes of the top dictionary.         */
-  /*                                                                       */
-  /*    private_dict :: A pointer to the private dictionary.               */
-  /*                                                                       */
-  /*    private_len  :: The length in bytes of the private dictionary.     */
-  /*                                                                       */
-  /*    in_pfb       :: A boolean.  Indicates that we are handling a PFB   */
-  /*                    file.                                              */
-  /*                                                                       */
-  /*    in_memory    :: A boolean.  Indicates a memory-based stream.       */
-  /*                                                                       */
-  /*    single_block :: A boolean.  Indicates that the private dictionary  */
-  /*                    is stored in lieu of the base dictionary.          */
-  /*                                                                       */
-  typedef struct  T1_ParserRec_
-  {
-    PS_ParserRec  root;
-    FT_Stream     stream;
-
-    FT_Byte*      base_dict;
-    FT_Long       base_len;
-
-    FT_Byte*      private_dict;
-    FT_Long       private_len;
-
-    FT_Bool       in_pfb;
-    FT_Bool       in_memory;
-    FT_Bool       single_block;
-
-  } T1_ParserRec, *T1_Parser;
-
-
-#define T1_Add_Table( p, i, o, l )  (p)->funcs.add( (p), i, o, l )
-#define T1_Done_Table( p )          \
-          do                        \
-          {                         \
-            if ( (p)->funcs.done )  \
-              (p)->funcs.done( p ); \
-          } while ( 0 )
-#define T1_Release_Table( p )          \
-          do                           \
-          {                            \
-            if ( (p)->funcs.release )  \
-              (p)->funcs.release( p ); \
-          } while ( 0 )
-
-
-#define T1_Skip_Spaces( p )    (p)->root.funcs.skip_spaces( &(p)->root )
-#define T1_Skip_PS_Token( p )  (p)->root.funcs.skip_PS_token( &(p)->root )
-
-#define T1_ToInt( p )       (p)->root.funcs.to_int( &(p)->root )
-#define T1_ToFixed( p, t )  (p)->root.funcs.to_fixed( &(p)->root, t )
-
-#define T1_ToCoordArray( p, m, c )                           \
-          (p)->root.funcs.to_coord_array( &(p)->root, m, c )
-#define T1_ToFixedArray( p, m, f, t )                           \
-          (p)->root.funcs.to_fixed_array( &(p)->root, m, f, t )
-#define T1_ToToken( p, t )                          \
-          (p)->root.funcs.to_token( &(p)->root, t )
-#define T1_ToTokenArray( p, t, m, c )                           \
-          (p)->root.funcs.to_token_array( &(p)->root, t, m, c )
-
-#define T1_Load_Field( p, f, o, m, pf )                         \
-          (p)->root.funcs.load_field( &(p)->root, f, o, m, pf )
-
-#define T1_Load_Field_Table( p, f, o, m, pf )                         \
-          (p)->root.funcs.load_field_table( &(p)->root, f, o, m, pf )
-
-
-  FT_LOCAL( FT_Error )
-  T1_New_Parser( T1_Parser      parser,
-                 FT_Stream      stream,
-                 FT_Memory      memory,
-                 PSAux_Service  psaux );
-
-  FT_LOCAL( FT_Error )
-  T1_Get_Private_Dict( T1_Parser      parser,
-                       PSAux_Service  psaux );
-
-  FT_LOCAL( void )
-  T1_Finalize_Parser( T1_Parser  parser );
-
-
-FT_END_HEADER
-
-#endif /* __T1PARSE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/t1tokens.h b/nx-X11/extras/freetype2/src/type1/t1tokens.h
deleted file mode 100644
index a3cc952e0..000000000
--- a/nx-X11/extras/freetype2/src/type1/t1tokens.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t1tokens.h                                                             */
-/*                                                                         */
-/*    Type 1 tokenizer (specification).                                    */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PS_FontInfoRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_FONT_INFO
-
-  T1_FIELD_STRING( "version", version )
-  T1_FIELD_STRING( "Notice", notice )
-  T1_FIELD_STRING( "FullName", full_name )
-  T1_FIELD_STRING( "FamilyName", family_name )
-  T1_FIELD_STRING( "Weight", weight )
-
-  /* we use pointers to detect modifications made by synthetic fonts */
-  T1_FIELD_NUM   ( "ItalicAngle", italic_angle )
-  T1_FIELD_BOOL  ( "isFixedPitch", is_fixed_pitch )
-  T1_FIELD_NUM   ( "UnderlinePosition", underline_position )
-  T1_FIELD_NUM   ( "UnderlineThickness", underline_thickness )
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  PS_PrivateRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_PRIVATE
-
-  T1_FIELD_NUM       ( "UniqueID", unique_id )
-  T1_FIELD_NUM       ( "lenIV", lenIV )
-  T1_FIELD_NUM       ( "LanguageGroup", language_group )
-  T1_FIELD_NUM       ( "password", password )
-
-  T1_FIELD_FIXED_1000( "BlueScale", blue_scale )
-  T1_FIELD_NUM       ( "BlueShift", blue_shift )
-  T1_FIELD_NUM       ( "BlueFuzz",  blue_fuzz )
-
-  T1_FIELD_NUM_TABLE ( "BlueValues", blue_values, 14 )
-  T1_FIELD_NUM_TABLE ( "OtherBlues", other_blues, 10 )
-  T1_FIELD_NUM_TABLE ( "FamilyBlues", family_blues, 14 )
-  T1_FIELD_NUM_TABLE ( "FamilyOtherBlues", family_other_blues, 10 )
-
-  T1_FIELD_NUM_TABLE2( "StdHW", standard_width,  1 )
-  T1_FIELD_NUM_TABLE2( "StdVW", standard_height, 1 )
-  T1_FIELD_NUM_TABLE2( "MinFeature", min_feature, 2 )
-
-  T1_FIELD_NUM_TABLE ( "StemSnapH", snap_widths, 12 )
-  T1_FIELD_NUM_TABLE ( "StemSnapV", snap_heights, 12 )
-
-  T1_FIELD_FIXED     ( "ExpansionFactor", expansion_factor )
-
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  T1_FontRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_FONT_DICT
-
-  T1_FIELD_KEY  ( "FontName", font_name )
-  T1_FIELD_NUM  ( "PaintType", paint_type )
-  T1_FIELD_NUM  ( "FontType", font_type )
-  T1_FIELD_FIXED( "StrokeWidth", stroke_width )
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  FT_BBox
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_BBOX
-
-  T1_FIELD_BBOX("FontBBox", xMin )
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type1/type1.c b/nx-X11/extras/freetype2/src/type1/type1.c
deleted file mode 100644
index ccc12be10..000000000
--- a/nx-X11/extras/freetype2/src/type1/type1.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  type1.c                                                                */
-/*                                                                         */
-/*    FreeType Type 1 driver component (body only).                        */
-/*                                                                         */
-/*  Copyright 1996-2001 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "t1parse.c"
-#include "t1load.c"
-#include "t1objs.c"
-#include "t1driver.c"
-#include "t1gload.c"
-
-#ifndef T1_CONFIG_OPTION_NO_AFM
-#include "t1afm.c"
-#endif
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/Jamfile b/nx-X11/extras/freetype2/src/type42/Jamfile
deleted file mode 100644
index 032ac7179..000000000
--- a/nx-X11/extras/freetype2/src/type42/Jamfile
+++ /dev/null
@@ -1,21 +0,0 @@
-# FreeType 2 src/type42 Jamfile (c) 2002 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) type42 ;
-
-{
-  local  _sources ;
-
-  if $(FT2_MULTI)
-  {
-    _sources = t42objs t42parse t42drivr ;
-  }
-  else
-  {
-    _sources = type42 ;
-  }
-
-  Library  $(FT2_LIB) : $(_sources).c ;
-}
-
-# end of src/type42 Jamfile
diff --git a/nx-X11/extras/freetype2/src/type42/descrip.mms b/nx-X11/extras/freetype2/src/type42/descrip.mms
deleted file mode 100644
index a52ba06fb..000000000
--- a/nx-X11/extras/freetype2/src/type42/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 Type 42 driver compilation rules for VMS
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type42])
-
-OBJS=type42.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/type42/module.mk b/nx-X11/extras/freetype2/src/type42/module.mk
deleted file mode 100644
index ceaea41b0..000000000
--- a/nx-X11/extras/freetype2/src/type42/module.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# FreeType 2 Type42 module definition
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_type42_driver
-
-add_type42_driver:
-	$(OPEN_DRIVER)t42_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)type42     $(ECHO_DRIVER_DESC)Type 42 font files with no known extension$(ECHO_DRIVER_DONE)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/type42/rules.mk b/nx-X11/extras/freetype2/src/type42/rules.mk
deleted file mode 100644
index 556306195..000000000
--- a/nx-X11/extras/freetype2/src/type42/rules.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# FreeType 2 Type42 driver configuration rules
-#
-
-
-# Copyright 2002, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Type42 driver directory
-#
-T42_DIR := $(SRC_DIR)/type42
-
-
-# compilation flags for the driver
-#
-T42_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(T42_DIR))
-
-
-# Type42 driver source
-#
-T42_DRV_SRC := $(T42_DIR)/t42objs.c  \
-               $(T42_DIR)/t42parse.c \
-               $(T42_DIR)/t42drivr.c
-
-# Type42 driver headers
-#
-T42_DRV_H := $(T42_DRV_SRC:%.c=%.h) \
-             $(T42_DIR)/t42error.h
-
-
-# Type42 driver object(s)
-#
-#   T42_DRV_OBJ_M is used during `multi' builds
-#   T42_DRV_OBJ_S is used during `single' builds
-#
-T42_DRV_OBJ_M := $(T42_DRV_SRC:$(T42_DIR)/%.c=$(OBJ_DIR)/%.$O)
-T42_DRV_OBJ_S := $(OBJ_DIR)/type42.$O
-
-# Type42 driver source file for single build
-#
-T42_DRV_SRC_S := $(T42_DIR)/type42.c
-
-
-# Type42 driver - single object
-#
-$(T42_DRV_OBJ_S): $(T42_DRV_SRC_S) $(T42_DRV_SRC) $(FREETYPE_H) $(T42_DRV_H)
-	$(T42_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(T42_DRV_SRC_S))
-
-
-# Type42 driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(T42_DIR)/%.c $(FREETYPE_H) $(T42_DRV_H)
-	$(T42_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(T42_DRV_OBJ_S)
-DRV_OBJS_M += $(T42_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/type42/t42drivr.c b/nx-X11/extras/freetype2/src/type42/t42drivr.c
deleted file mode 100644
index 2afe2db84..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42drivr.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42drivr.c                                                             */
-/*                                                                         */
-/*    High-level Type 42 driver interface (body).                          */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by Roberto Alameda.                         */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This driver implements Type42 fonts as described in the               */
-  /* Technical Note #5012 from Adobe, with these limitations:              */
-  /*                                                                       */
-  /* 1) CID Fonts are not currently supported.                             */
-  /* 2) Incremental fonts making use of the GlyphDirectory keyword         */
-  /*    will be loaded, but the rendering will be using the TrueType       */
-  /*    tables.                                                            */
-  /* 3) As for Type1 fonts, CDevProc is not supported.                     */
-  /* 4) The Metrics dictionary is not supported.                           */
-  /* 5) AFM metrics are not supported.                                     */
-  /*                                                                       */
-  /* In other words, this driver supports Type42 fonts derived from        */
-  /* TrueType fonts in a non-CID manner, as done by usual conversion       */
-  /* programs.                                                             */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#include "t42drivr.h"
-#include "t42objs.h"
-#include "t42error.h"
-#include FT_INTERNAL_DEBUG_H
-
-#include FT_SERVICE_XFREE86_NAME_H
-#include FT_SERVICE_GLYPH_DICT_H
-#include FT_SERVICE_POSTSCRIPT_NAME_H
-#include FT_SERVICE_POSTSCRIPT_INFO_H
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t42
-
-
- /*
-  *
-  *  GLYPH DICT SERVICE
-  *
-  */
-
-  static FT_Error
-  t42_get_glyph_name( T42_Face    face,
-                      FT_UInt     glyph_index,
-                      FT_Pointer  buffer,
-                      FT_UInt     buffer_max )
-  {
-    FT_String*  gname;
-
-
-    gname = face->type1.glyph_names[glyph_index];
-
-    if ( buffer_max > 0 )
-    {
-      FT_UInt  len = (FT_UInt)( ft_strlen( gname ) );
-
-
-      if ( len >= buffer_max )
-        len = buffer_max - 1;
-
-      FT_MEM_COPY( buffer, gname, len );
-      ((FT_Byte*)buffer)[len] = 0;
-    }
-
-    return T42_Err_Ok;
-  }
-
-
-  static FT_UInt
-  t42_get_name_index( T42_Face    face,
-                      FT_String*  glyph_name )
-  {
-    FT_Int      i;
-    FT_String*  gname;
-
-
-    for ( i = 0; i < face->type1.num_glyphs; i++ )
-    {
-      gname = face->type1.glyph_names[i];
-
-      if ( !ft_strcmp( glyph_name, gname ) )
-        return (FT_UInt)ft_atol( (const char *)face->type1.charstrings[i] );
-    }
-
-    return 0;
-  }
-
-
-  static const FT_Service_GlyphDictRec  t42_service_glyph_dict =
-  {
-    (FT_GlyphDict_GetNameFunc)  t42_get_glyph_name,
-    (FT_GlyphDict_NameIndexFunc)t42_get_name_index
-  };
-
-
- /*
-  *
-  *  POSTSCRIPT NAME SERVICE
-  *
-  */
-
-  static const char*
-  t42_get_ps_font_name( T42_Face  face )
-  {
-    return (const char*)face->type1.font_name;
-  }
-
-
-  static const FT_Service_PsFontNameRec  t42_service_ps_font_name =
-  {
-    (FT_PsName_GetFunc)t42_get_ps_font_name
-  };
-
-
- /*
-  *
-  *  POSTSCRIPT INFO SERVICE
-  *
-  */
-
-  static FT_Error
-  t42_ps_get_font_info( FT_Face          face,
-                        PS_FontInfoRec*  afont_info )
-  {
-    *afont_info = ((T42_Face)face)->type1.font_info;
-    return 0;
-  }
-
-
-  static FT_Int
-  t42_ps_has_glyph_names( FT_Face  face )
-  {
-    FT_UNUSED( face );
-    return 1;
-  }
-
-
-  static const FT_Service_PsInfoRec  t42_service_ps_info =
-  {
-    (PS_GetFontInfoFunc)  t42_ps_get_font_info,
-    (PS_HasGlyphNamesFunc)t42_ps_has_glyph_names
-  };
-
-
- /*
-  *
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  t42_services[] =
-  {
-    { FT_SERVICE_ID_GLYPH_DICT,           &t42_service_glyph_dict },
-    { FT_SERVICE_ID_POSTSCRIPT_FONT_NAME, &t42_service_ps_font_name },
-    { FT_SERVICE_ID_POSTSCRIPT_INFO,      &t42_service_ps_info },
-    { FT_SERVICE_ID_XF86_NAME,            FT_XF86_FORMAT_TYPE_42 },
-    { NULL, NULL }
-  };
-
-
-  static FT_Module_Interface
-  T42_Get_Interface( FT_Driver         driver,
-                     const FT_String*  t42_interface )
-  {
-    FT_UNUSED( driver );
-
-    return ft_service_list_lookup( t42_services, t42_interface );
-  }
-
-
-  const FT_Driver_ClassRec  t42_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER       |
-      FT_MODULE_DRIVER_SCALABLE   |
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-      FT_MODULE_DRIVER_HAS_HINTER,
-#else
-      0,
-#endif
-
-      sizeof ( T42_DriverRec ),
-
-      "type42",
-      0x10000L,
-      0x20000L,
-
-      0,    /* format interface */
-
-      (FT_Module_Constructor)T42_Driver_Init,
-      (FT_Module_Destructor) T42_Driver_Done,
-      (FT_Module_Requester)  T42_Get_Interface,
-    },
-
-    sizeof ( T42_FaceRec ),
-    sizeof ( T42_SizeRec ),
-    sizeof ( T42_GlyphSlotRec ),
-
-    (FT_Face_InitFunc)        T42_Face_Init,
-    (FT_Face_DoneFunc)        T42_Face_Done,
-    (FT_Size_InitFunc)        T42_Size_Init,
-    (FT_Size_DoneFunc)        T42_Size_Done,
-    (FT_Slot_InitFunc)        T42_GlyphSlot_Init,
-    (FT_Slot_DoneFunc)        T42_GlyphSlot_Done,
-
-    (FT_Size_ResetPointsFunc) T42_Size_SetChars,
-    (FT_Size_ResetPixelsFunc) T42_Size_SetPixels,
-    (FT_Slot_LoadFunc)        T42_GlyphSlot_Load,
-
-    (FT_Face_GetKerningFunc)  0,
-    (FT_Face_AttachFunc)      0,
-
-    (FT_Face_GetAdvancesFunc) 0
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42drivr.h b/nx-X11/extras/freetype2/src/type42/t42drivr.h
deleted file mode 100644
index 98b7410b6..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42drivr.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42drivr.h                                                             */
-/*                                                                         */
-/*    High-level Type 42 driver interface (specification).                 */
-/*                                                                         */
-/*  Copyright 2002 by Roberto Alameda.                                     */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T42DRIVR_H__
-#define __T42DRIVR_H__
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  t42_driver_class;
-
-
-FT_END_HEADER
-
-
-#endif /* __T42DRIVR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42error.h b/nx-X11/extras/freetype2/src/type42/t42error.h
deleted file mode 100644
index b23091001..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42error.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42error.h                                                             */
-/*                                                                         */
-/*    Type 42 error codes (specification only).                            */
-/*                                                                         */
-/*  Copyright 2002, 2003 by                                                */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the Type 42 error enumeration constants.  */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __T42ERROR_H__
-#define __T42ERROR_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  T42_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Type42
-
-#include FT_ERRORS_H
-
-#endif /* __T42ERROR_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42objs.c b/nx-X11/extras/freetype2/src/type42/t42objs.c
deleted file mode 100644
index 8837136ff..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42objs.c
+++ /dev/null
@@ -1,643 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42objs.c                                                              */
-/*                                                                         */
-/*    Type 42 objects manager (body).                                      */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by Roberto Alameda.                         */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "t42objs.h"
-#include "t42parse.h"
-#include "t42error.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_LIST_H
-
-
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t42
-
-
-  static FT_Error
-  T42_Open_Face( T42_Face  face )
-  {
-    T42_LoaderRec  loader;
-    T42_Parser     parser;
-    T1_Font        type1 = &face->type1;
-    FT_Memory      memory = face->root.memory;
-    FT_Error       error;
-
-    PSAux_Service  psaux  = (PSAux_Service)face->psaux;
-
-
-    t42_loader_init( &loader, face );
-
-    parser = &loader.parser;
-
-    if ( FT_ALLOC( face->ttf_data, 12 ) )
-      goto Exit;
-
-    error = t42_parser_init( parser,
-                             face->root.stream,
-                             memory,
-                             psaux);
-    if ( error )
-      goto Exit;
-
-    error = t42_parse_dict( face, &loader,
-                            parser->base_dict, parser->base_len );
-
-    if ( type1->font_type != 42 )
-    {
-      error = T42_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* now, propagate the charstrings and glyphnames tables */
-    /* to the Type1 data                                    */
-    type1->num_glyphs = loader.num_glyphs;
-
-    if ( !loader.charstrings.init )
-    {
-      FT_ERROR(( "T42_Open_Face: no charstrings array in face!\n" ));
-      error = T42_Err_Invalid_File_Format;
-    }
-
-    loader.charstrings.init  = 0;
-    type1->charstrings_block = loader.charstrings.block;
-    type1->charstrings       = loader.charstrings.elements;
-    type1->charstrings_len   = loader.charstrings.lengths;
-
-    /* we copy the glyph names `block' and `elements' fields; */
-    /* the `lengths' field must be released later             */
-    type1->glyph_names_block    = loader.glyph_names.block;
-    type1->glyph_names          = (FT_String**)loader.glyph_names.elements;
-    loader.glyph_names.block    = 0;
-    loader.glyph_names.elements = 0;
-
-    /* we must now build type1.encoding when we have a custom array */
-    if ( type1->encoding_type == T1_ENCODING_TYPE_ARRAY )
-    {
-      FT_Int    charcode, idx, min_char, max_char;
-      FT_Byte*  char_name;
-      FT_Byte*  glyph_name;
-
-
-      /* OK, we do the following: for each element in the encoding   */
-      /* table, look up the index of the glyph having the same name  */
-      /* as defined in the CharStrings array.                        */
-      /* The index is then stored in type1.encoding.char_index, and  */
-      /* the name in type1.encoding.char_name                        */
-
-      min_char = +32000;
-      max_char = -32000;
-
-      charcode = 0;
-      for ( ; charcode < loader.encoding_table.max_elems; charcode++ )
-      {
-        type1->encoding.char_index[charcode] = 0;
-        type1->encoding.char_name [charcode] = (char *)".notdef";
-
-        char_name = loader.encoding_table.elements[charcode];
-        if ( char_name )
-          for ( idx = 0; idx < type1->num_glyphs; idx++ )
-          {
-            glyph_name = (FT_Byte*)type1->glyph_names[idx];
-            if ( ft_strcmp( (const char*)char_name,
-                            (const char*)glyph_name ) == 0 )
-            {
-              type1->encoding.char_index[charcode] = (FT_UShort)idx;
-              type1->encoding.char_name [charcode] = (char*)glyph_name;
-
-              /* Change min/max encoded char only if glyph name is */
-              /* not /.notdef                                      */
-              if ( ft_strcmp( (const char*)".notdef",
-                              (const char*)glyph_name ) != 0 )
-              {
-                if ( charcode < min_char )
-                  min_char = charcode;
-                if ( charcode > max_char )
-                  max_char = charcode;
-              }
-              break;
-            }
-          }
-      }
-      type1->encoding.code_first = min_char;
-      type1->encoding.code_last  = max_char;
-      type1->encoding.num_chars  = loader.num_chars;
-    }
-
-  Exit:
-    t42_loader_done( &loader );
-    return error;
-  }
-
-
-  /***************** Driver Functions *************/
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T42_Face_Init( FT_Stream      stream,
-                 T42_Face       face,
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    FT_Error            error;
-    FT_Service_PsCMaps  psnames;
-    PSAux_Service       psaux;
-    FT_Face             root  = (FT_Face)&face->root;
-    T1_Font             type1 = &face->type1;
-    PS_FontInfo         info  = &type1->font_info;
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-    FT_UNUSED( face_index );
-    FT_UNUSED( stream );
-
-
-    face->ttf_face       = NULL;
-    face->root.num_faces = 1;
-
-    FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
-    face->psnames = psnames;
-
-    face->psaux = FT_Get_Module_Interface( FT_FACE_LIBRARY( face ),
-                                           "psaux" );
-    psaux = (PSAux_Service)face->psaux;
-
-    /* open the tokenizer, this will also check the font format */
-    error = T42_Open_Face( face );
-    if ( error )
-      goto Exit;
-
-    /* if we just wanted to check the format, leave successfully now */
-    if ( face_index < 0 )
-      goto Exit;
-
-    /* check the face index */
-    if ( face_index != 0 )
-    {
-      FT_ERROR(( "T42_Face_Init: invalid face index\n" ));
-      error = T42_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    /* Now load the font program into the face object */
-
-    /* Init the face object fields */
-    /* Now set up root face fields */
-
-    root->num_glyphs   = type1->num_glyphs;
-    root->num_charmaps = 0;
-    root->face_index   = face_index;
-
-    root->face_flags  = FT_FACE_FLAG_SCALABLE;
-    root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
-    root->face_flags |= FT_FACE_FLAG_GLYPH_NAMES;
-
-    if ( info->is_fixed_pitch )
-      root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-    /* XXX: TODO -- add kerning with .afm support */
-
-    /* get style name -- be careful, some broken fonts only */
-    /* have a `/FontName' dictionary entry!                 */
-    root->family_name = info->family_name;
-    /* assume "Regular" style if we don't know better */
-    root->style_name = (char *)"Regular";
-    if ( root->family_name )
-    {
-      char*  full   = info->full_name;
-      char*  family = root->family_name;
-
-
-      if ( full )
-      {
-        while ( *full )
-        {
-          if ( *full == *family )
-          {
-            family++;
-            full++;
-          }
-          else
-          {
-            if ( *full == ' ' || *full == '-' )
-              full++;
-            else if ( *family == ' ' || *family == '-' )
-              family++;
-            else
-            {
-              if ( !*family )
-                root->style_name = full;
-              break;
-            }
-          }
-        }
-      }
-    }
-    else
-    {
-      /* do we have a `/FontName'? */
-      if ( type1->font_name )
-        root->family_name = type1->font_name;
-    }
-
-    /* no embedded bitmap support */
-    root->num_fixed_sizes = 0;
-    root->available_sizes = 0;
-
-    /* Load the TTF font embedded in the T42 font */
-    error = FT_New_Memory_Face( FT_FACE_LIBRARY( face ),
-                                face->ttf_data,
-                                face->ttf_size,
-                                0,
-                                &face->ttf_face );
-    if ( error )
-      goto Exit;
-
-    FT_Done_Size( face->ttf_face->size );
-
-    /* Ignore info in FontInfo dictionary and use the info from the  */
-    /* loaded TTF font.  The PostScript interpreter also ignores it. */
-    root->bbox         = face->ttf_face->bbox;
-    root->units_per_EM = face->ttf_face->units_per_EM;
-
-    root->ascender  = face->ttf_face->ascender;
-    root->descender = face->ttf_face->descender;
-    root->height    = face->ttf_face->height;
-
-    root->max_advance_width  = face->ttf_face->max_advance_width;
-    root->max_advance_height = face->ttf_face->max_advance_height;
-
-    root->underline_position  = (FT_Short)info->underline_position;
-    root->underline_thickness = (FT_Short)info->underline_thickness;
-
-    root->internal->max_points   = 0;
-    root->internal->max_contours = 0;
-
-    /* compute style flags */
-    root->style_flags = 0;
-    if ( info->italic_angle )
-      root->style_flags |= FT_STYLE_FLAG_ITALIC;
-
-    if ( face->ttf_face->style_flags & FT_STYLE_FLAG_BOLD )
-      root->style_flags |= FT_STYLE_FLAG_BOLD;
-
-    if ( face->ttf_face->face_flags & FT_FACE_FLAG_VERTICAL )
-      root->face_flags |= FT_FACE_FLAG_VERTICAL;
-
-    {
-      if ( psnames && psaux )
-      {
-        FT_CharMapRec    charmap;
-        T1_CMap_Classes  cmap_classes = psaux->t1_cmap_classes;
-        FT_CMap_Class    clazz;
-
-
-        charmap.face = root;
-
-        /* first of all, try to synthetize a Unicode charmap */
-        charmap.platform_id = 3;
-        charmap.encoding_id = 1;
-        charmap.encoding    = FT_ENCODING_UNICODE;
-
-        FT_CMap_New( cmap_classes->unicode, NULL, &charmap, NULL );
-
-        /* now, generate an Adobe Standard encoding when appropriate */
-        charmap.platform_id = 7;
-        clazz               = NULL;
-
-        switch ( type1->encoding_type )
-        {
-        case T1_ENCODING_TYPE_STANDARD:
-          charmap.encoding    = FT_ENCODING_ADOBE_STANDARD;
-          charmap.encoding_id = 0;
-          clazz               = cmap_classes->standard;
-          break;
-
-        case T1_ENCODING_TYPE_EXPERT:
-          charmap.encoding    = FT_ENCODING_ADOBE_EXPERT;
-          charmap.encoding_id = 1;
-          clazz               = cmap_classes->expert;
-          break;
-
-        case T1_ENCODING_TYPE_ARRAY:
-          charmap.encoding    = FT_ENCODING_ADOBE_CUSTOM;
-          charmap.encoding_id = 2;
-          clazz               = cmap_classes->custom;
-          break;
-
-        case T1_ENCODING_TYPE_ISOLATIN1:
-          charmap.encoding    = FT_ENCODING_ADOBE_LATIN_1;
-          charmap.encoding_id = 3;
-          clazz               = cmap_classes->unicode;
-          break;
-
-        default:
-          ;
-        }
-
-        if ( clazz )
-          FT_CMap_New( clazz, NULL, &charmap, NULL );
-
-#if 0
-        /* Select default charmap */
-        if ( root->num_charmaps )
-          root->charmap = root->charmaps[0];
-#endif
-      }
-    }
-  Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T42_Face_Done( T42_Face  face )
-  {
-    T1_Font      type1;
-    PS_FontInfo  info;
-    FT_Memory    memory;
-
-
-    if ( face )
-    {
-      type1  = &face->type1;
-      info   = &type1->font_info;
-      memory = face->root.memory;
-
-      /* delete internal ttf face prior to freeing face->ttf_data */
-      if ( face->ttf_face )
-        FT_Done_Face( face->ttf_face );
-
-      /* release font info strings */
-      FT_FREE( info->version );
-      FT_FREE( info->notice );
-      FT_FREE( info->full_name );
-      FT_FREE( info->family_name );
-      FT_FREE( info->weight );
-
-      /* release top dictionary */
-      FT_FREE( type1->charstrings_len );
-      FT_FREE( type1->charstrings );
-      FT_FREE( type1->glyph_names );
-
-      FT_FREE( type1->charstrings_block );
-      FT_FREE( type1->glyph_names_block );
-
-      FT_FREE( type1->encoding.char_index );
-      FT_FREE( type1->encoding.char_name );
-      FT_FREE( type1->font_name );
-
-      FT_FREE( face->ttf_data );
-
-#if 0
-      /* release afm data if present */
-      if ( face->afm_data )
-        T1_Done_AFM( memory, (T1_AFM*)face->afm_data );
-#endif
-
-      /* release unicode map, if any */
-      FT_FREE( face->unicode_map.maps );
-      face->unicode_map.num_maps = 0;
-
-      face->root.family_name = 0;
-      face->root.style_name  = 0;
-    }
-  }
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    T42_Driver_Init                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Initializes a given Type 42 driver object.                         */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*    driver :: A handle to the target driver object.                    */
-  /*                                                                       */
-  /* <Return>                                                              */
-  /*    FreeType error code.  0 means success.                             */
-  /*                                                                       */
-  FT_LOCAL_DEF( FT_Error )
-  T42_Driver_Init( T42_Driver  driver )
-  {
-    FT_Module  ttmodule;
-
-
-    ttmodule = FT_Get_Module( FT_MODULE(driver)->library, "truetype" );
-    driver->ttclazz = (FT_Driver_Class)ttmodule->clazz;
-
-    return T42_Err_Ok;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T42_Driver_Done( T42_Driver  driver )
-  {
-    FT_UNUSED( driver );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T42_Size_Init( T42_Size  size )
-  {
-    FT_Face   face = size->root.face;
-    T42_Face  t42face = (T42_Face)face;
-    FT_Size   ttsize;
-    FT_Error  error   = T42_Err_Ok;
-
-
-    error = FT_New_Size( t42face->ttf_face, &ttsize );
-    size->ttsize = ttsize;
-
-    FT_Activate_Size( ttsize );
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T42_Size_Done( T42_Size  size )
-  {
-    FT_Face      face    = size->root.face;
-    T42_Face     t42face = (T42_Face)face;
-    FT_ListNode  node;
-
-
-    node = FT_List_Find( &t42face->ttf_face->sizes_list, size->ttsize );
-    if ( node )
-    {
-      FT_Done_Size( size->ttsize );
-      size->ttsize = NULL;
-    }
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T42_GlyphSlot_Init( T42_GlyphSlot  slot )
-  {
-    FT_Face       face    = slot->root.face;
-    T42_Face      t42face = (T42_Face)face;
-    FT_GlyphSlot  ttslot;
-    FT_Error      error   = T42_Err_Ok;
-
-
-    if ( face->glyph == NULL )
-    {
-      /* First glyph slot for this face */
-      slot->ttslot = t42face->ttf_face->glyph;
-    }
-    else
-    {
-      error = FT_New_GlyphSlot( t42face->ttf_face, &ttslot );
-      slot->ttslot = ttslot;
-    }
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  T42_GlyphSlot_Done( T42_GlyphSlot slot )
-  {
-    FT_Face       face    = slot->root.face;
-    T42_Face      t42face = (T42_Face)face;
-    FT_GlyphSlot  cur     = t42face->ttf_face->glyph;
-
-
-    while ( cur )
-    {
-      if ( cur == slot->ttslot )
-      {
-        FT_Done_GlyphSlot( slot->ttslot );
-        break;
-      }
-
-      cur = cur->next;
-    }
-  }
-
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T42_Size_SetChars( T42_Size    size,
-                     FT_F26Dot6  char_width,
-                     FT_F26Dot6  char_height,
-                     FT_UInt     horz_resolution,
-                     FT_UInt     vert_resolution )
-  {
-    FT_Face   face    = size->root.face;
-    T42_Face  t42face = (T42_Face)face;
-
-
-    FT_Activate_Size( size->ttsize );
-
-    return FT_Set_Char_Size( t42face->ttf_face,
-                             char_width,
-                             char_height,
-                             horz_resolution,
-                             vert_resolution );
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T42_Size_SetPixels( T42_Size  size,
-                      FT_UInt   pixel_width,
-                      FT_UInt   pixel_height )
-  {
-    FT_Face   face    = size->root.face;
-    T42_Face  t42face = (T42_Face)face;
-
-
-    FT_Activate_Size( size->ttsize );
-
-    return FT_Set_Pixel_Sizes( t42face->ttf_face,
-                               pixel_width,
-                               pixel_height );
-  }
-
-
-  static void
-  t42_glyphslot_clear( FT_GlyphSlot  slot )
-  {
-    /* free bitmap if needed */
-    ft_glyphslot_free_bitmap( slot );
-
-    /* clear all public fields in the glyph slot */
-    FT_ZERO( &slot->metrics );
-    FT_ZERO( &slot->outline );
-    FT_ZERO( &slot->bitmap );
-
-    slot->bitmap_left   = 0;
-    slot->bitmap_top    = 0;
-    slot->num_subglyphs = 0;
-    slot->subglyphs     = 0;
-    slot->control_data  = 0;
-    slot->control_len   = 0;
-    slot->other         = 0;
-    slot->format        = FT_GLYPH_FORMAT_NONE;
-
-    slot->linearHoriAdvance = 0;
-    slot->linearVertAdvance = 0;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  T42_GlyphSlot_Load( FT_GlyphSlot  glyph,
-                      FT_Size       size,
-                      FT_UInt       glyph_index,
-                      FT_Int32      load_flags )
-  {
-    FT_Error         error;
-    T42_GlyphSlot    t42slot = (T42_GlyphSlot)glyph;
-    T42_Size         t42size = (T42_Size)size;
-    FT_Driver_Class  ttclazz = ((T42_Driver)glyph->face->driver)->ttclazz;
-
-
-    t42_glyphslot_clear( t42slot->ttslot );
-    error = ttclazz->load_glyph( t42slot->ttslot,
-                                 t42size->ttsize,
-                                 glyph_index,
-                                 load_flags | FT_LOAD_NO_BITMAP );
-
-    if ( !error )
-    {
-      glyph->metrics = t42slot->ttslot->metrics;
-
-      glyph->linearHoriAdvance = t42slot->ttslot->linearHoriAdvance;
-      glyph->linearVertAdvance = t42slot->ttslot->linearVertAdvance;
-
-      glyph->format  = t42slot->ttslot->format;
-      glyph->outline = t42slot->ttslot->outline;
-
-      glyph->bitmap      = t42slot->ttslot->bitmap;
-      glyph->bitmap_left = t42slot->ttslot->bitmap_left;
-      glyph->bitmap_top  = t42slot->ttslot->bitmap_top;
-
-      glyph->num_subglyphs = t42slot->ttslot->num_subglyphs;
-      glyph->subglyphs     = t42slot->ttslot->subglyphs;
-
-      glyph->control_data  = t42slot->ttslot->control_data;
-      glyph->control_len   = t42slot->ttslot->control_len;
-    }
-
-    return error;
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42objs.h b/nx-X11/extras/freetype2/src/type42/t42objs.h
deleted file mode 100644
index 623809573..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42objs.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42objs.h                                                              */
-/*                                                                         */
-/*    Type 42 objects manager (specification).                             */
-/*                                                                         */
-/*  Copyright 2002, 2003 by Roberto Alameda.                               */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T42OBJS_H__
-#define __T42OBJS_H__
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include "t42types.h"
-#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_DRIVER_H
-#include FT_SERVICE_POSTSCRIPT_CMAPS_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-
-
-FT_BEGIN_HEADER
-
-
-  /* Type42 size */
-  typedef struct  T42_SizeRec_
-  {
-    FT_SizeRec  root;
-    FT_Size     ttsize;
-
-  } T42_SizeRec, *T42_Size;
-
-
-  /* Type42 slot */
-  typedef struct  T42_GlyphSlotRec_
-  {
-    FT_GlyphSlotRec  root;
-    FT_GlyphSlot     ttslot;
-
-  } T42_GlyphSlotRec, *T42_GlyphSlot;
-
-
-  /* Type 42 driver */
-  typedef struct  T42_DriverRec_
-  {
-    FT_DriverRec     root;
-    FT_Driver_Class  ttclazz;
-    void*            extension_component;
-
-  } T42_DriverRec, *T42_Driver;
-
-
-  /* */
-
-
-  FT_LOCAL( FT_Error )
-  T42_Face_Init( FT_Stream      stream,
-                 T42_Face       face,
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params );
-
-
-  FT_LOCAL( void )
-  T42_Face_Done( T42_Face  face );
-
-
-  FT_LOCAL( FT_Error )
-  T42_Size_Init( T42_Size  size );
-
-
-  FT_LOCAL( FT_Error )
-  T42_Size_SetChars( T42_Size    size,
-                     FT_F26Dot6  char_width,
-                     FT_F26Dot6  char_height,
-                     FT_UInt     horz_resolution,
-                     FT_UInt     vert_resolution );
-
-  FT_LOCAL( FT_Error )
-  T42_Size_SetPixels( T42_Size  size,
-                      FT_UInt   pixel_width,
-                      FT_UInt   pixel_height );
-
-  FT_LOCAL( void )
-  T42_Size_Done( T42_Size  size );
-
-
-  FT_LOCAL( FT_Error )
-  T42_GlyphSlot_Init( T42_GlyphSlot  slot );
-
-
-  FT_LOCAL( FT_Error )
-  T42_GlyphSlot_Load( FT_GlyphSlot  glyph,
-                      FT_Size       size,
-                      FT_UInt       glyph_index,
-                      FT_Int32      load_flags );
-
-  FT_LOCAL( void )
-  T42_GlyphSlot_Done( T42_GlyphSlot slot );
-
-
-  FT_LOCAL( FT_Error )
-  T42_Driver_Init( T42_Driver  driver );
-
-  FT_LOCAL( void )
-  T42_Driver_Done( T42_Driver  driver );
-
- /* */
-
-FT_END_HEADER
-
-
-#endif /* __T42OBJS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42parse.c b/nx-X11/extras/freetype2/src/type42/t42parse.c
deleted file mode 100644
index ff53a3eb4..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42parse.c
+++ /dev/null
@@ -1,1115 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42parse.c                                                             */
-/*                                                                         */
-/*    Type 42 font parser (body).                                          */
-/*                                                                         */
-/*  Copyright 2002, 2003, 2004 by Roberto Alameda.                         */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include "t42parse.h"
-#include "t42error.h"
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_LIST_H
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_t42
-
-
-  static void
-  t42_parse_font_matrix( T42_Face    face,
-                         T42_Loader  loader );
-  static void
-  t42_parse_encoding( T42_Face    face,
-                      T42_Loader  loader );
-
-  static void
-  t42_parse_charstrings( T42_Face    face,
-                         T42_Loader  loader );
-
-  static void
-  t42_parse_sfnts( T42_Face    face,
-                   T42_Loader  loader );
-
-
-  static const
-  T1_FieldRec  t42_keywords[] = {
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  T1_FontInfo
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_FONT_INFO
-
-    T1_FIELD_STRING( "version",            version )
-    T1_FIELD_STRING( "Notice",             notice )
-    T1_FIELD_STRING( "FullName",           full_name )
-    T1_FIELD_STRING( "FamilyName",         family_name )
-    T1_FIELD_STRING( "Weight",             weight )
-    T1_FIELD_NUM   ( "ItalicAngle",        italic_angle )
-    T1_FIELD_BOOL  ( "isFixedPitch",       is_fixed_pitch )
-    T1_FIELD_NUM   ( "UnderlinePosition",  underline_position )
-    T1_FIELD_NUM   ( "UnderlineThickness", underline_thickness )
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  T1_FontRec
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_FONT_DICT
-
-    T1_FIELD_KEY  ( "FontName",    font_name )
-    T1_FIELD_NUM  ( "PaintType",   paint_type )
-    T1_FIELD_NUM  ( "FontType",    font_type )
-    T1_FIELD_FIXED( "StrokeWidth", stroke_width )
-
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  FT_BBox
-#undef  T1CODE
-#define T1CODE        T1_FIELD_LOCATION_BBOX
-
-    T1_FIELD_BBOX("FontBBox", xMin )
-
-    T1_FIELD_CALLBACK( "FontMatrix",  t42_parse_font_matrix )
-    T1_FIELD_CALLBACK( "Encoding",    t42_parse_encoding )
-    T1_FIELD_CALLBACK( "CharStrings", t42_parse_charstrings )
-    T1_FIELD_CALLBACK( "sfnts",       t42_parse_sfnts )
-
-    { 0, T1_FIELD_LOCATION_CID_INFO, T1_FIELD_TYPE_NONE, 0, 0, 0, 0, 0 }
-  };
-
-
-#define T1_Add_Table( p, i, o, l )  (p)->funcs.add( (p), i, o, l )
-#define T1_Done_Table( p )          \
-          do                        \
-          {                         \
-            if ( (p)->funcs.done )  \
-              (p)->funcs.done( p ); \
-          } while ( 0 )
-#define T1_Release_Table( p )          \
-          do                           \
-          {                            \
-            if ( (p)->funcs.release )  \
-              (p)->funcs.release( p ); \
-          } while ( 0 )
-
-#define T1_Skip_Spaces( p )    (p)->root.funcs.skip_spaces( &(p)->root )
-#define T1_Skip_PS_Token( p )  (p)->root.funcs.skip_PS_token( &(p)->root )
-
-#define T1_ToInt( p )                          \
-          (p)->root.funcs.to_int( &(p)->root )
-#define T1_ToBytes( p, b, m, n, d )                          \
-          (p)->root.funcs.to_bytes( &(p)->root, b, m, n, d )
-
-#define T1_ToFixedArray( p, m, f, t )                           \
-          (p)->root.funcs.to_fixed_array( &(p)->root, m, f, t )
-#define T1_ToToken( p, t )                          \
-          (p)->root.funcs.to_token( &(p)->root, t )
-
-#define T1_Load_Field( p, f, o, m, pf )                         \
-          (p)->root.funcs.load_field( &(p)->root, f, o, m, pf )
-#define T1_Load_Field_Table( p, f, o, m, pf )                         \
-          (p)->root.funcs.load_field_table( &(p)->root, f, o, m, pf )
-
-
-  /********************* Parsing Functions ******************/
-
-  FT_LOCAL_DEF( FT_Error )
-  t42_parser_init( T42_Parser     parser,
-                   FT_Stream      stream,
-                   FT_Memory      memory,
-                   PSAux_Service  psaux )
-  {
-    FT_Error  error = T42_Err_Ok;
-    FT_Long   size;
-
-
-    psaux->ps_parser_funcs->init( &parser->root, 0, 0, memory );
-
-    parser->stream    = stream;
-    parser->base_len  = 0;
-    parser->base_dict = 0;
-    parser->in_memory = 0;
-
-    /*******************************************************************/
-    /*                                                                 */
-    /* Here a short summary of what is going on:                       */
-    /*                                                                 */
-    /*   When creating a new Type 42 parser, we try to locate and load */
-    /*   the base dictionary, loading the whole font into memory.      */
-    /*                                                                 */
-    /*   When `loading' the base dictionary, we only set up pointers   */
-    /*   in the case of a memory-based stream.  Otherwise, we allocate */
-    /*   and load the base dictionary in it.                           */
-    /*                                                                 */
-    /*   parser->in_memory is set if we have a memory stream.          */
-    /*                                                                 */
-
-    if ( FT_STREAM_SEEK( 0L ) )
-      goto Exit;
-
-    size = stream->size;
-
-    /* now, try to load `size' bytes of the `base' dictionary we */
-    /* found previously                                          */
-
-    /* if it is a memory-based resource, set up pointers */
-    if ( !stream->read )
-    {
-      parser->base_dict = (FT_Byte*)stream->base + stream->pos;
-      parser->base_len  = size;
-      parser->in_memory = 1;
-
-      /* check that the `size' field is valid */
-      if ( FT_STREAM_SKIP( size ) )
-        goto Exit;
-    }
-    else
-    {
-      /* read segment in memory */
-      if ( FT_ALLOC( parser->base_dict, size )       ||
-           FT_STREAM_READ( parser->base_dict, size ) )
-        goto Exit;
-
-      parser->base_len = size;
-    }
-
-    /* Now check font format; we must see `%!PS-TrueTypeFont' */
-    if ( size <= 17                                    ||
-         ( ft_strncmp( (const char*)parser->base_dict,
-                       "%!PS-TrueTypeFont", 17 ) )     )
-      error = T42_Err_Unknown_File_Format;
-    else
-    {
-      parser->root.base   = parser->base_dict;
-      parser->root.cursor = parser->base_dict;
-      parser->root.limit  = parser->root.cursor + parser->base_len;
-    }
-
-  Exit:
-    if ( error && !parser->in_memory )
-      FT_FREE( parser->base_dict );
-
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  t42_parser_done( T42_Parser  parser )
-  {
-    FT_Memory  memory = parser->root.memory;
-
-
-    /* free the base dictionary only when we have a disk stream */
-    if ( !parser->in_memory )
-      FT_FREE( parser->base_dict );
-
-    parser->root.funcs.done( &parser->root );
-  }
-
-
-  static int
-  t42_is_space( FT_Byte  c )
-  {
-    return ( c == ' '  || c == '\t'              ||
-             c == '\r' || c == '\n' || c == '\f' ||
-             c == '\0'                           );
-  }
-
-
-  static void
-  t42_parse_font_matrix( T42_Face    face,
-                         T42_Loader  loader )
-  {
-    T42_Parser  parser = &loader->parser;
-    FT_Matrix*  matrix = &face->type1.font_matrix;
-    FT_Vector*  offset = &face->type1.font_offset;
-    FT_Face     root   = (FT_Face)&face->root;
-    FT_Fixed    temp[6];
-    FT_Fixed    temp_scale;
-
-
-    (void)T1_ToFixedArray( parser, 6, temp, 3 );
-
-    temp_scale = FT_ABS( temp[3] );
-
-    /* Set Units per EM based on FontMatrix values.  We set the value to */
-    /* 1000 / temp_scale, because temp_scale was already multiplied by   */
-    /* 1000 (in t1_tofixed, from psobjs.c).                              */
-
-    root->units_per_EM = (FT_UShort)( FT_DivFix( 1000 * 0x10000L,
-                                                 temp_scale ) >> 16 );
-
-    /* we need to scale the values by 1.0/temp_scale */
-    if ( temp_scale != 0x10000L ) {
-      temp[0] = FT_DivFix( temp[0], temp_scale );
-      temp[1] = FT_DivFix( temp[1], temp_scale );
-      temp[2] = FT_DivFix( temp[2], temp_scale );
-      temp[4] = FT_DivFix( temp[4], temp_scale );
-      temp[5] = FT_DivFix( temp[5], temp_scale );
-      temp[3] = 0x10000L;
-    }
-
-    matrix->xx = temp[0];
-    matrix->yx = temp[1];
-    matrix->xy = temp[2];
-    matrix->yy = temp[3];
-
-    /* note that the offsets must be expressed in integer font units */
-    offset->x = temp[4] >> 16;
-    offset->y = temp[5] >> 16;
-  }
-
-
-  static void
-  t42_parse_encoding( T42_Face    face,
-                      T42_Loader  loader )
-  {
-    T42_Parser  parser = &loader->parser;
-    FT_Byte*    cur;
-    FT_Byte*    limit  = parser->root.limit;
-
-    PSAux_Service  psaux  = (PSAux_Service)face->psaux;
-
-
-    T1_Skip_Spaces( parser );
-    cur = parser->root.cursor;
-    if ( cur >= limit )
-    {
-      FT_ERROR(( "t42_parse_encoding: out of bounds!\n" ));
-      parser->root.error = T42_Err_Invalid_File_Format;
-      return;
-    }
-
-    /* if we have a number or `[', the encoding is an array, */
-    /* and we must load it now                               */
-    if ( ft_isdigit( *cur ) || *cur == '[' )
-    {
-      T1_Encoding  encode          = &face->type1.encoding;
-      FT_UInt      count, n;
-      PS_Table     char_table      = &loader->encoding_table;
-      FT_Memory    memory          = parser->root.memory;
-      FT_Error     error;
-      FT_Bool      only_immediates = 0;
-
-
-      /* read the number of entries in the encoding; should be 256 */
-      if ( *cur == '[' )
-      {
-        count           = 256;
-        only_immediates = 1;
-        parser->root.cursor++;
-      }
-      else
-        count = (FT_UInt)T1_ToInt( parser );
-
-      T1_Skip_Spaces( parser );
-      if ( parser->root.cursor >= limit )
-        return;
-
-      /* we use a T1_Table to store our charnames */
-      loader->num_chars = encode->num_chars = count;
-      if ( FT_NEW_ARRAY( encode->char_index, count )     ||
-           FT_NEW_ARRAY( encode->char_name,  count )     ||
-           FT_SET_ERROR( psaux->ps_table_funcs->init(
-                           char_table, count, memory ) ) )
-      {
-        parser->root.error = error;
-        return;
-      }
-
-      /* We need to `zero' out encoding_table.elements */
-      for ( n = 0; n < count; n++ )
-      {
-        char*  notdef = (char *)".notdef";
-
-
-        T1_Add_Table( char_table, n, notdef, 8 );
-      }
-
-      /* Now we need to read records of the form                */
-      /*                                                        */
-      /*   ... charcode /charname ...                           */
-      /*                                                        */
-      /* for each entry in our table.                           */
-      /*                                                        */
-      /* We simply look for a number followed by an immediate   */
-      /* name.  Note that this ignores correctly the sequence   */
-      /* that is often seen in type42 fonts:                    */
-      /*                                                        */
-      /*   0 1 255 { 1 index exch /.notdef put } for dup        */
-      /*                                                        */
-      /* used to clean the encoding array before anything else. */
-      /*                                                        */
-      /* Alternatively, if the array is directly given as       */
-      /*                                                        */
-      /*   /Encoding [ ... ]                                    */
-      /*                                                        */
-      /* we only read immediates.                               */
-
-      n = 0;
-      T1_Skip_Spaces( parser );
-
-      while ( parser->root.cursor < limit )
-      {
-        cur = parser->root.cursor;
-
-        /* we stop when we encounter `def' or `]' */
-        if ( *cur == 'd' && cur + 3 < limit )
-        {
-          if ( cur[1] == 'e'          &&
-               cur[2] == 'f'          &&
-               t42_is_space( cur[3] ) )
-          {
-            FT_TRACE6(( "encoding end\n" ));
-            cur += 3;
-            break;
-          }
-        }
-        if ( *cur == ']' )
-        {
-          FT_TRACE6(( "encoding end\n" ));
-          cur++;
-          break;
-        }
-
-        /* check whether we've found an entry */
-        if ( ft_isdigit( *cur ) || only_immediates )
-        {
-          FT_Int  charcode;
-
-
-          if ( only_immediates )
-            charcode = n;
-          else
-          {
-            charcode = (FT_Int)T1_ToInt( parser );
-            T1_Skip_Spaces( parser );
-          }
-
-          cur = parser->root.cursor;
-
-          if ( *cur == '/' && cur + 2 < limit && n < count )
-          {
-            FT_PtrDist  len;
-
-
-            cur++;
-
-            parser->root.cursor = cur;
-            T1_Skip_PS_Token( parser );
-
-            len = parser->root.cursor - cur;
-
-            parser->root.error = T1_Add_Table( char_table, charcode,
-                                               cur, len + 1 );
-            char_table->elements[charcode][len] = '\0';
-            if ( parser->root.error )
-              return;
-
-            n++;
-          }
-        }
-        else
-          T1_Skip_PS_Token( parser );
-
-        T1_Skip_Spaces( parser );
-      }
-
-      face->type1.encoding_type  = T1_ENCODING_TYPE_ARRAY;
-      parser->root.cursor        = cur;
-    }
-
-    /* Otherwise, we should have either `StandardEncoding', */
-    /* `ExpertEncoding', or `ISOLatin1Encoding'             */
-    else
-    {
-      if ( cur + 17 < limit                                            &&
-           ft_strncmp( (const char*)cur, "StandardEncoding", 16 ) == 0 )
-        face->type1.encoding_type = T1_ENCODING_TYPE_STANDARD;
-
-      else if ( cur + 15 < limit                                          &&
-                ft_strncmp( (const char*)cur, "ExpertEncoding", 14 ) == 0 )
-        face->type1.encoding_type = T1_ENCODING_TYPE_EXPERT;
-
-      else if ( cur + 18 < limit                                             &&
-                ft_strncmp( (const char*)cur, "ISOLatin1Encoding", 17 ) == 0 )
-        face->type1.encoding_type = T1_ENCODING_TYPE_ISOLATIN1;
-
-      else
-      {
-        FT_ERROR(( "t42_parse_encoding: invalid token!\n" ));
-        parser->root.error = T42_Err_Invalid_File_Format;
-      }
-    }
-  }
-
-
-  typedef enum
-  {
-    BEFORE_START,
-    BEFORE_TABLE_DIR,
-    OTHER_TABLES
-
-  } T42_Load_Status;
-
-
-  static void
-  t42_parse_sfnts( T42_Face    face,
-                   T42_Loader  loader )
-  {
-    T42_Parser  parser = &loader->parser;
-    FT_Memory   memory = parser->root.memory;
-    FT_Byte*    cur;
-    FT_Byte*    limit  = parser->root.limit;
-    FT_Error    error;
-    FT_Int      num_tables = 0;
-    FT_ULong    count, ttf_size = 0;
-
-    FT_Long     n, string_size, old_string_size, real_size;
-    FT_Byte*    string_buf = NULL;
-    FT_Bool     alloc      = 0;
-
-    T42_Load_Status  status;
-
-
-    /* The format is                                */
-    /*                                              */
-    /*   /sfnts [ <hexstring> <hexstring> ... ] def */
-    /*                                              */
-    /* or                                           */
-    /*                                              */
-    /*   /sfnts [                                   */
-    /*      <num_bin_bytes> RD <binary data>        */
-    /*      <num_bin_bytes> RD <binary data>        */
-    /*      ...                                     */
-    /*   ] def                                      */
-    /*                                              */
-    /* with exactly one space after the `RD' token. */
-
-    T1_Skip_Spaces( parser );
-
-    if ( parser->root.cursor >= limit || *parser->root.cursor++ != '[' )
-    {
-      FT_ERROR(( "t42_parse_sfnts: can't find begin of sfnts vector!\n" ));
-      error = T42_Err_Invalid_File_Format;
-      goto Fail;
-    }
-
-    T1_Skip_Spaces( parser );
-    status          = BEFORE_START;
-    string_size     = 0;
-    old_string_size = 0;
-    count           = 0;
-
-    while ( parser->root.cursor < limit )
-    {
-      cur = parser->root.cursor;
-
-      if ( *cur == ']' )
-      {
-        parser->root.cursor++;
-        goto Exit;
-      }
-
-      else if ( *cur == '<' )
-      {
-        T1_Skip_PS_Token( parser );
-        if ( parser->root.error )
-          goto Exit;
-
-        /* don't include delimiters */
-        string_size = (FT_Long)( ( parser->root.cursor - cur - 2 + 1 ) / 2 );
-        if ( FT_REALLOC( string_buf, old_string_size, string_size ) )
-          goto Fail;
-
-        alloc = 1;
-
-        parser->root.cursor = cur;
-        (void)T1_ToBytes( parser, string_buf, string_size, &real_size, 1 );
-        old_string_size = string_size;
-        string_size = real_size;
-      }
-
-      else if ( ft_isdigit( *cur ) )
-      {
-        string_size = T1_ToInt( parser );
-
-        T1_Skip_PS_Token( parser );             /* `RD' */
-
-        string_buf = parser->root.cursor + 1;   /* one space after `RD' */
-
-        parser->root.cursor += string_size + 1;
-        if ( parser->root.cursor >= limit )
-        {
-          FT_ERROR(( "t42_parse_sfnts: too many binary data!\n" ));
-          error = T42_Err_Invalid_File_Format;
-          goto Fail;
-        }
-      }
-
-      /* A string can have a trailing zero byte for padding.  Ignore it. */
-      if ( string_buf[string_size - 1] == 0 && ( string_size % 2 == 1 ) )
-        string_size--;
-
-      for ( n = 0; n < string_size; n++ )
-      {
-        switch ( status )
-        {
-        case BEFORE_START:
-          /* load offset table, 12 bytes */
-          if ( count < 12 )
-          {
-            face->ttf_data[count++] = string_buf[n];
-            continue;
-          }
-          else
-          {
-            num_tables = 16 * face->ttf_data[4] + face->ttf_data[5];
-            status     = BEFORE_TABLE_DIR;
-            ttf_size   = 12 + 16 * num_tables;
-
-            if ( FT_REALLOC( face->ttf_data, 12, ttf_size ) )
-              goto Fail;
-          }
-          /* fall through */
-
-        case BEFORE_TABLE_DIR:
-          /* the offset table is read; read the table directory */
-          if ( count < ttf_size )
-          {
-            face->ttf_data[count++] = string_buf[n];
-            continue;
-          }
-          else
-          {
-            int       i;
-            FT_ULong  len;
-
-
-            for ( i = 0; i < num_tables; i++ )
-            {
-              FT_Byte*  p = face->ttf_data + 12 + 16 * i + 12;
-
-
-              len = FT_PEEK_ULONG( p );
-
-              /* Pad to a 4-byte boundary length */
-              ttf_size += ( len + 3 ) & ~3;
-            }
-
-            status         = OTHER_TABLES;
-            face->ttf_size = ttf_size;
-
-            if ( FT_REALLOC( face->ttf_data, 12 + 16 * num_tables,
-                             ttf_size + 1 ) )
-              goto Fail;
-          }
-          /* fall through */
-
-        case OTHER_TABLES:
-          /* all other tables are just copied */
-          if ( count >= ttf_size )
-          {
-            FT_ERROR(( "t42_parse_sfnts: too many binary data!\n" ));
-            error = T42_Err_Invalid_File_Format;
-            goto Fail;
-          }
-          face->ttf_data[count++] = string_buf[n];
-        }
-      }
-
-      T1_Skip_Spaces( parser );
-    }
-
-    /* if control reaches this point, the format was not valid */
-    error = T42_Err_Invalid_File_Format;
-
-  Fail:
-    parser->root.error = error;
-
-  Exit:
-    if ( alloc )
-      FT_FREE( string_buf );
-  }
-
-
-  static void
-  t42_parse_charstrings( T42_Face    face,
-                         T42_Loader  loader )
-  {
-    T42_Parser     parser       = &loader->parser;
-    PS_Table       code_table   = &loader->charstrings;
-    PS_Table       name_table   = &loader->glyph_names;
-    PS_Table       swap_table   = &loader->swap_table;
-    FT_Memory      memory       = parser->root.memory;
-    FT_Error       error;
-
-    PSAux_Service  psaux        = (PSAux_Service)face->psaux;
-
-    FT_Byte*       cur;
-    FT_Byte*       limit        = parser->root.limit;
-    FT_UInt        n;
-    FT_UInt        notdef_index = 0;
-    FT_Byte        notdef_found = 0;
-
-
-    T1_Skip_Spaces( parser );
-
-    if ( parser->root.cursor >= limit )
-    {
-      FT_ERROR(( "t42_parse_charstrings: out of bounds!\n" ));
-      error = T42_Err_Invalid_File_Format;
-      goto Fail;
-    }
-
-    if ( ft_isdigit( *parser->root.cursor ) )
-    {
-      loader->num_glyphs = (FT_UInt)T1_ToInt( parser );
-      if ( parser->root.error )
-        return;
-    }
-    else if ( *parser->root.cursor == '<' )
-    {
-      /* We have `<< ... >>'.  Count the number of `/' in the dictionary */
-      /* to get its size.                                                */
-      FT_UInt  count = 0;
-
-
-      T1_Skip_PS_Token( parser );
-      T1_Skip_Spaces( parser );
-      cur = parser->root.cursor;
-
-      while ( parser->root.cursor < limit )
-      {
-        if ( *parser->root.cursor == '/' )
-          count++;
-        else if ( *parser->root.cursor == '>' )
-        {
-          loader->num_glyphs  = count;
-          parser->root.cursor = cur;        /* rewind */
-          break;
-        }
-        T1_Skip_PS_Token( parser );
-        T1_Skip_Spaces( parser );
-      }
-    }
-    else
-    {
-      FT_ERROR(( "t42_parse_charstrings: invalid token!\n" ));
-      error = T42_Err_Invalid_File_Format;
-      goto Fail;
-    }
-
-    if ( parser->root.cursor >= limit )
-    {
-      FT_ERROR(( "t42_parse_charstrings: out of bounds!\n" ));
-      error = T42_Err_Invalid_File_Format;
-      goto Fail;
-    }
-
-    /* initialize tables */
-
-    error = psaux->ps_table_funcs->init( code_table,
-                                         loader->num_glyphs,
-                                         memory );
-    if ( error )
-      goto Fail;
-
-    error = psaux->ps_table_funcs->init( name_table,
-                                         loader->num_glyphs,
-                                         memory );
-    if ( error )
-      goto Fail;
-
-    /* Initialize table for swapping index notdef_index and */
-    /* index 0 names and codes (if necessary).              */
-
-    error = psaux->ps_table_funcs->init( swap_table, 4, memory );
-    if ( error )
-      goto Fail;
-
-    n = 0;
-
-    for (;;)
-    {
-      /* The format is simple:                   */
-      /*   `/glyphname' + index [+ def]          */
-
-      T1_Skip_Spaces( parser );
-
-      cur = parser->root.cursor;
-      if ( cur >= limit )
-        break;
-
-      /* We stop when we find an `end' keyword or '>' */
-      if ( *cur   == 'e'          &&
-           cur + 3 < limit        &&
-           cur[1] == 'n'          &&
-           cur[2] == 'd'          &&
-           t42_is_space( cur[3] ) )
-        break;
-      if ( *cur == '>' )
-        break;
-
-      T1_Skip_PS_Token( parser );
-
-      if ( *cur == '/' )
-      {
-        FT_PtrDist  len;
-
-
-        if ( cur + 1 >= limit )
-        {
-          FT_ERROR(( "t42_parse_charstrings: out of bounds!\n" ));
-          error = T42_Err_Invalid_File_Format;
-          goto Fail;
-        }
-
-        cur++;                              /* skip `/' */
-        len = parser->root.cursor - cur;
-
-        error = T1_Add_Table( name_table, n, cur, len + 1 );
-        if ( error )
-          goto Fail;
-
-        /* add a trailing zero to the name table */
-        name_table->elements[n][len] = '\0';
-
-        /* record index of /.notdef */
-        if ( *cur == '.'                                              &&
-             ft_strcmp( ".notdef",
-                        (const char*)(name_table->elements[n]) ) == 0 )
-        {
-          notdef_index = n;
-          notdef_found = 1;
-        }
-
-        T1_Skip_Spaces( parser );
-
-        cur = parser->root.cursor;
-
-        (void)T1_ToInt( parser );
-        if ( parser->root.cursor >= limit )
-        {
-          FT_ERROR(( "t42_parse_charstrings: out of bounds!\n" ));
-          error = T42_Err_Invalid_File_Format;
-          goto Fail;
-        }
-
-        len = parser->root.cursor - cur;
-
-        error = T1_Add_Table( code_table, n, cur, len + 1 );
-        if ( error )
-          goto Fail;
-
-        code_table->elements[n][len] = '\0';
-
-        n++;
-        if ( n >= loader->num_glyphs )
-          break;
-      }
-    }
-
-    loader->num_glyphs = n;
-
-    if ( !notdef_found )
-    {
-      FT_ERROR(( "t42_parse_charstrings: no /.notdef glyph!\n" ));
-      error = T42_Err_Invalid_File_Format;
-      goto Fail;
-    }
-
-    /* if /.notdef does not occupy index 0, do our magic. */
-    if ( ft_strcmp( (const char*)".notdef",
-                    (const char*)name_table->elements[0] ) )
-    {
-      /* Swap glyph in index 0 with /.notdef glyph.  First, add index 0  */
-      /* name and code entries to swap_table.  Then place notdef_index   */
-      /* name and code entries into swap_table.  Then swap name and code */
-      /* entries at indices notdef_index and 0 using values stored in    */
-      /* swap_table.                                                     */
-
-      /* Index 0 name */
-      error = T1_Add_Table( swap_table, 0,
-                            name_table->elements[0],
-                            name_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      /* Index 0 code */
-      error = T1_Add_Table( swap_table, 1,
-                            code_table->elements[0],
-                            code_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      /* Index notdef_index name */
-      error = T1_Add_Table( swap_table, 2,
-                            name_table->elements[notdef_index],
-                            name_table->lengths [notdef_index] );
-      if ( error )
-        goto Fail;
-
-      /* Index notdef_index code */
-      error = T1_Add_Table( swap_table, 3,
-                            code_table->elements[notdef_index],
-                            code_table->lengths [notdef_index] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( name_table, notdef_index,
-                            swap_table->elements[0],
-                            swap_table->lengths [0] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( code_table, notdef_index,
-                            swap_table->elements[1],
-                            swap_table->lengths [1] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( name_table, 0,
-                            swap_table->elements[2],
-                            swap_table->lengths [2] );
-      if ( error )
-        goto Fail;
-
-      error = T1_Add_Table( code_table, 0,
-                            swap_table->elements[3],
-                            swap_table->lengths [3] );
-      if ( error )
-        goto Fail;
-
-    }
-
-    return;
-
-  Fail:
-    parser->root.error = error;
-  }
-
-
-  static FT_Error
-  t42_load_keyword( T42_Face    face,
-                    T42_Loader  loader,
-                    T1_Field    field )
-  {
-    FT_Error  error;
-    void*     dummy_object;
-    void**    objects;
-    FT_UInt   max_objects = 0;
-
-
-    /* if the keyword has a dedicated callback, call it */
-    if ( field->type == T1_FIELD_TYPE_CALLBACK )
-    {
-      field->reader( (FT_Face)face, loader );
-      error = loader->parser.root.error;
-      goto Exit;
-    }
-
-    /* now the keyword is either a simple field or a table of fields; */
-    /* we are now going to take care of it                            */
-
-    switch ( field->location )
-    {
-    case T1_FIELD_LOCATION_FONT_INFO:
-      dummy_object = &face->type1.font_info;
-      break;
-
-    case T1_FIELD_LOCATION_BBOX:
-      dummy_object = &face->type1.font_bbox;
-      break;
-
-    default:
-      dummy_object = &face->type1;
-    }
-
-    objects = &dummy_object;
-
-    if ( field->type == T1_FIELD_TYPE_INTEGER_ARRAY ||
-         field->type == T1_FIELD_TYPE_FIXED_ARRAY   )
-      error = T1_Load_Field_Table( &loader->parser, field,
-                                   objects, max_objects, 0 );
-    else
-      error = T1_Load_Field( &loader->parser, field,
-                             objects, max_objects, 0 );
-
-   Exit:
-    return error;
-  }
-
-
-  FT_LOCAL_DEF( FT_Error )
-  t42_parse_dict( T42_Face    face,
-                  T42_Loader  loader,
-                  FT_Byte*    base,
-                  FT_Long     size )
-  {
-    T42_Parser  parser     = &loader->parser;
-    FT_Byte*    limit;
-    FT_Int      n_keywords = (FT_Int)( sizeof ( t42_keywords ) /
-                                         sizeof ( t42_keywords[0] ) );
-
-
-    parser->root.cursor = base;
-    parser->root.limit  = base + size;
-    parser->root.error  = T42_Err_Ok;
-
-    limit = parser->root.limit;
-
-    T1_Skip_Spaces( parser );
-
-    while ( parser->root.cursor < limit )
-    {
-      FT_Byte*  cur;
-
-
-      cur = parser->root.cursor;
-
-      /* look for `FontDirectory' which causes problems for some fonts */
-      if ( *cur == 'F' && cur + 25 < limit                    &&
-           ft_strncmp( (char*)cur, "FontDirectory", 13 ) == 0 )
-      {
-        FT_Byte*  cur2;
-
-
-        /* skip the `FontDirectory' keyword */
-        T1_Skip_PS_Token( parser );
-        T1_Skip_Spaces  ( parser );
-        cur = cur2 = parser->root.cursor;
-
-        /* look up the `known' keyword */
-        while ( cur < limit )
-        {
-          if ( *cur == 'k' && cur + 5 < limit             &&
-                ft_strncmp( (char*)cur, "known", 5 ) == 0 )
-            break;
-
-          T1_Skip_PS_Token( parser );
-          T1_Skip_Spaces  ( parser );
-          cur = parser->root.cursor;
-        }
-
-        if ( cur < limit )
-        {
-          T1_TokenRec  token;
-
-
-          /* skip the `known' keyword and the token following it */
-          T1_Skip_PS_Token( parser );
-          T1_ToToken( parser, &token );
-
-          /* if the last token was an array, skip it! */
-          if ( token.type == T1_TOKEN_TYPE_ARRAY )
-            cur2 = parser->root.cursor;
-        }
-        parser->root.cursor = cur2;
-      }
-
-      /* look for immediates */
-      else if ( *cur == '/' && cur + 2 < limit )
-      {
-        FT_PtrDist  len;
-
-
-        cur++;
-
-        parser->root.cursor = cur;
-        T1_Skip_PS_Token( parser );
-
-        len = parser->root.cursor - cur;
-
-        if ( len > 0 && len < 22 && parser->root.cursor < limit )
-        {
-          int  i;
-
-
-          /* now compare the immediate name to the keyword table */
-
-          /* loop through all known keywords */
-          for ( i = 0; i < n_keywords; i++ )
-          {
-            T1_Field  keyword = (T1_Field)&t42_keywords[i];
-            FT_Byte   *name   = (FT_Byte*)keyword->ident;
-
-
-            if ( !name )
-              continue;
-
-            if ( cur[0] == name[0]                      && 
-                 len == ft_strlen( (const char *)name ) &&
-                 ft_memcmp( cur, name, len ) == 0       )
-            {
-              /* we found it -- run the parsing callback! */
-              parser->root.error = t42_load_keyword( face,
-                                                     loader,
-                                                     keyword );
-              if ( parser->root.error )
-                return parser->root.error;
-              break;
-            }
-          }
-        }
-      }
-      else
-        T1_Skip_PS_Token( parser );
-
-      T1_Skip_Spaces( parser );
-    }
-
-    return parser->root.error;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  t42_loader_init( T42_Loader  loader,
-                   T42_Face    face )
-  {
-    FT_UNUSED( face );
-
-    FT_MEM_ZERO( loader, sizeof ( *loader ) );
-    loader->num_glyphs = 0;
-    loader->num_chars  = 0;
-
-    /* initialize the tables -- simply set their `init' field to 0 */
-    loader->encoding_table.init = 0;
-    loader->charstrings.init    = 0;
-    loader->glyph_names.init    = 0;
-  }
-
-
-  FT_LOCAL_DEF( void )
-  t42_loader_done( T42_Loader  loader )
-  {
-    T42_Parser  parser = &loader->parser;
-
-
-    /* finalize tables */
-    T1_Release_Table( &loader->encoding_table );
-    T1_Release_Table( &loader->charstrings );
-    T1_Release_Table( &loader->glyph_names );
-    T1_Release_Table( &loader->swap_table );
-
-    /* finalize parser */
-    t42_parser_done( parser );
-  }
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42parse.h b/nx-X11/extras/freetype2/src/type42/t42parse.h
deleted file mode 100644
index f77ec4af4..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42parse.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42parse.h                                                             */
-/*                                                                         */
-/*    Type 42 font parser (specification).                                 */
-/*                                                                         */
-/*  Copyright 2002, 2003 by Roberto Alameda.                               */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T42PARSE_H__
-#define __T42PARSE_H__
-
-
-#include "t42objs.h"
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-
-FT_BEGIN_HEADER
-
-  typedef struct  T42_ParserRec_
-  {
-    PS_ParserRec  root;
-    FT_Stream     stream;
-
-    FT_Byte*      base_dict;
-    FT_Long       base_len;
-
-    FT_Bool       in_memory;
-
-  } T42_ParserRec, *T42_Parser;
-
-
-  typedef struct  T42_Loader_
-  {
-    T42_ParserRec  parser;          /* parser used to read the stream */
-
-    FT_UInt        num_chars;       /* number of characters in encoding */
-    PS_TableRec    encoding_table;  /* PS_Table used to store the       */
-                                    /* encoding character names         */
-
-    FT_UInt        num_glyphs;
-    PS_TableRec    glyph_names;
-    PS_TableRec    charstrings;
-    PS_TableRec    swap_table;      /* For moving .notdef glyph to index 0. */
-
-  } T42_LoaderRec, *T42_Loader;
-
-
-  FT_LOCAL( FT_Error )
-  t42_parser_init( T42_Parser     parser,
-                   FT_Stream      stream,
-                   FT_Memory      memory,
-                   PSAux_Service  psaux );
-
-  FT_LOCAL( void )
-  t42_parser_done( T42_Parser  parser );
-
-
-  FT_LOCAL( FT_Error )
-  t42_parse_dict( T42_Face    face,
-                  T42_Loader  loader,
-                  FT_Byte*    base,
-                  FT_Long     size );
-
-
-  FT_LOCAL( void )
-  t42_loader_init( T42_Loader  loader,
-                   T42_Face    face );
-
-  FT_LOCAL( void )
-  t42_loader_done( T42_Loader  loader );
-
-
- /* */
-
-FT_END_HEADER
-
-
-#endif /* __T42PARSE_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/t42types.h b/nx-X11/extras/freetype2/src/type42/t42types.h
deleted file mode 100644
index d44ac4e67..000000000
--- a/nx-X11/extras/freetype2/src/type42/t42types.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  t42types.h                                                             */
-/*                                                                         */
-/*    Type 42 font data types (specification only).                        */
-/*                                                                         */
-/*  Copyright 2002, 2003 by Roberto Alameda.                               */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __T42TYPES_H__
-#define __T42TYPES_H__
-
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-#include FT_TYPE1_TABLES_H
-#include FT_INTERNAL_TYPE1_TYPES_H
-#include FT_INTERNAL_POSTSCRIPT_HINTS_H
-
-
-FT_BEGIN_HEADER
-
-
-  typedef struct  T42_FaceRec_
-  {
-    FT_FaceRec     root;
-    T1_FontRec     type1;
-    const void*    psnames;
-    const void*    psaux;
-    const void*    afm_data;
-    FT_Byte*       ttf_data;
-    FT_ULong       ttf_size;
-    FT_Face        ttf_face;
-    FT_CharMapRec  charmaprecs[2];
-    FT_CharMap     charmaps[2];
-    PS_Unicodes    unicode_map;
-
-  } T42_FaceRec, *T42_Face;
-
-
-FT_END_HEADER
-
-#endif /* __T1TYPES_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/type42/type42.c b/nx-X11/extras/freetype2/src/type42/type42.c
deleted file mode 100644
index d13df56b1..000000000
--- a/nx-X11/extras/freetype2/src/type42/type42.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  type42.c                                                               */
-/*                                                                         */
-/*    FreeType Type 42 driver component.                                   */
-/*                                                                         */
-/*  Copyright 2002 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-#define FT_MAKE_OPTION_SINGLE_OBJECT
-
-#include <ft2build.h>
-#include "t42objs.c"
-#include "t42parse.c"
-#include "t42drivr.c"
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/winfonts/Jamfile b/nx-X11/extras/freetype2/src/winfonts/Jamfile
deleted file mode 100644
index a903f8938..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/Jamfile
+++ /dev/null
@@ -1,8 +0,0 @@
-# FreeType 2 src/winfonts Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP $(FT2_SRC_DIR) winfonts ;
-
-Library  $(FT2_LIB) : winfnt.c ;
-
-# end of src/winfonts Jamfile
diff --git a/nx-X11/extras/freetype2/src/winfonts/descrip.mms b/nx-X11/extras/freetype2/src/winfonts/descrip.mms
deleted file mode 100644
index 475cdbb6b..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/descrip.mms
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# FreeType 2 Windows FNT/FON driver compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.winfonts])
-
-OBJS=winfnt.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/winfonts/fnterrs.h b/nx-X11/extras/freetype2/src/winfonts/fnterrs.h
deleted file mode 100644
index ea8090971..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/fnterrs.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  fnterrs.h                                                              */
-/*                                                                         */
-/*    Win FNT/FON error codes (specification only).                        */
-/*                                                                         */
-/*  Copyright 2001 by                                                      */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to define the Windows FNT/FON error enumeration     */
-  /* constants.                                                            */
-  /*                                                                       */
-  /*************************************************************************/
-
-#ifndef __FNTERRS_H__
-#define __FNTERRS_H__
-
-#include FT_MODULE_ERRORS_H
-
-#undef __FTERRORS_H__
-
-#define FT_ERR_PREFIX  FNT_Err_
-#define FT_ERR_BASE    FT_Mod_Err_Winfonts
-
-#include FT_ERRORS_H
-
-#endif /* __FNTERRS_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/winfonts/module.mk b/nx-X11/extras/freetype2/src/winfonts/module.mk
deleted file mode 100644
index 99be845c1..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/module.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# FreeType 2 Windows FNT/FON module definition
-#
-
-
-# Copyright 1996-2000 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-make_module_list: add_windows_driver
-
-add_windows_driver:
-	$(OPEN_DRIVER)winfnt_driver_class$(CLOSE_DRIVER)
-	$(ECHO_DRIVER)winfnt    $(ECHO_DRIVER_DESC)Windows bitmap fonts with extension *.fnt or *.fon$(ECHO_DRIVER_DONE)
-
diff --git a/nx-X11/extras/freetype2/src/winfonts/rules.mk b/nx-X11/extras/freetype2/src/winfonts/rules.mk
deleted file mode 100644
index 71a7df2d8..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/rules.mk
+++ /dev/null
@@ -1,65 +0,0 @@
-#
-# FreeType 2 Windows FNT/FON driver configuration rules
-#
-
-
-# Copyright 1996-2000, 2001, 2003 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-# Windows driver directory
-#
-FNT_DIR := $(SRC_DIR)/winfonts
-
-
-FNT_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(FNT_DIR))
-
-
-# Windows driver sources (i.e., C files)
-#
-FNT_DRV_SRC := $(FNT_DIR)/winfnt.c
-
-# Windows driver headers
-#
-FNT_DRV_H := $(FNT_DRV_SRC:%.c=%.h) \
-             $(FNT_DIR)/fnterrs.h
-
-
-# Windows driver object(s)
-#
-#   FNT_DRV_OBJ_M is used during `multi' builds
-#   FNT_DRV_OBJ_S is used during `single' builds
-#
-FNT_DRV_OBJ_M := $(FNT_DRV_SRC:$(FNT_DIR)/%.c=$(OBJ_DIR)/%.$O)
-FNT_DRV_OBJ_S := $(OBJ_DIR)/winfnt.$O
-
-# Windows driver source file for single build
-#
-FNT_DRV_SRC_S := $(FNT_DIR)/winfnt.c
-
-
-# Windows driver - single object
-#
-$(FNT_DRV_OBJ_S): $(FNT_DRV_SRC_S) $(FNT_DRV_SRC) $(FREETYPE_H) $(FNT_DRV_H)
-	$(FNT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(FNT_DRV_SRC_S))
-
-
-# Windows driver - multiple objects
-#
-$(OBJ_DIR)/%.$O: $(FNT_DIR)/%.c $(FREETYPE_H) $(FNT_DRV_H)
-	$(FNT_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
-
-
-# update main driver object lists
-#
-DRV_OBJS_S += $(FNT_DRV_OBJ_S)
-DRV_OBJS_M += $(FNT_DRV_OBJ_M)
-
-
-# EOF
diff --git a/nx-X11/extras/freetype2/src/winfonts/winfnt.c b/nx-X11/extras/freetype2/src/winfonts/winfnt.c
deleted file mode 100644
index 92174aedb..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/winfnt.c
+++ /dev/null
@@ -1,754 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  winfnt.c                                                               */
-/*                                                                         */
-/*    FreeType font driver for Windows FNT/FON files                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#include <ft2build.h>
-#include FT_WINFONTS_H
-#include FT_INTERNAL_DEBUG_H
-#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_OBJECTS_H
-
-#include "winfnt.h"
-#include "fnterrs.h"
-#include FT_SERVICE_WINFNT_H
-#include FT_SERVICE_XFREE86_NAME_H
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
-  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
-  /* messages during execution.                                            */
-  /*                                                                       */
-#undef  FT_COMPONENT
-#define FT_COMPONENT  trace_winfnt
-
-
-  static const FT_Frame_Field  winmz_header_fields[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  WinMZ_HeaderRec
-
-    FT_FRAME_START( 64 ),
-      FT_FRAME_USHORT_LE ( magic ),
-      FT_FRAME_SKIP_BYTES( 29 * 2 ),
-      FT_FRAME_ULONG_LE  ( lfanew ),
-    FT_FRAME_END
-  };
-
-  static const FT_Frame_Field  winne_header_fields[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  WinNE_HeaderRec
-
-    FT_FRAME_START( 40 ),
-      FT_FRAME_USHORT_LE ( magic ),
-      FT_FRAME_SKIP_BYTES( 34 ),
-      FT_FRAME_USHORT_LE ( resource_tab_offset ),
-      FT_FRAME_USHORT_LE ( rname_tab_offset ),
-    FT_FRAME_END
-  };
-
-  static const FT_Frame_Field  winfnt_header_fields[] =
-  {
-#undef  FT_STRUCTURE
-#define FT_STRUCTURE  FT_WinFNT_HeaderRec
-
-    FT_FRAME_START( 148 ),
-      FT_FRAME_USHORT_LE( version ),
-      FT_FRAME_ULONG_LE ( file_size ),
-      FT_FRAME_BYTES    ( copyright, 60 ),
-      FT_FRAME_USHORT_LE( file_type ),
-      FT_FRAME_USHORT_LE( nominal_point_size ),
-      FT_FRAME_USHORT_LE( vertical_resolution ),
-      FT_FRAME_USHORT_LE( horizontal_resolution ),
-      FT_FRAME_USHORT_LE( ascent ),
-      FT_FRAME_USHORT_LE( internal_leading ),
-      FT_FRAME_USHORT_LE( external_leading ),
-      FT_FRAME_BYTE     ( italic ),
-      FT_FRAME_BYTE     ( underline ),
-      FT_FRAME_BYTE     ( strike_out ),
-      FT_FRAME_USHORT_LE( weight ),
-      FT_FRAME_BYTE     ( charset ),
-      FT_FRAME_USHORT_LE( pixel_width ),
-      FT_FRAME_USHORT_LE( pixel_height ),
-      FT_FRAME_BYTE     ( pitch_and_family ),
-      FT_FRAME_USHORT_LE( avg_width ),
-      FT_FRAME_USHORT_LE( max_width ),
-      FT_FRAME_BYTE     ( first_char ),
-      FT_FRAME_BYTE     ( last_char ),
-      FT_FRAME_BYTE     ( default_char ),
-      FT_FRAME_BYTE     ( break_char ),
-      FT_FRAME_USHORT_LE( bytes_per_row ),
-      FT_FRAME_ULONG_LE ( device_offset ),
-      FT_FRAME_ULONG_LE ( face_name_offset ),
-      FT_FRAME_ULONG_LE ( bits_pointer ),
-      FT_FRAME_ULONG_LE ( bits_offset ),
-      FT_FRAME_BYTE     ( reserved ),
-      FT_FRAME_ULONG_LE ( flags ),
-      FT_FRAME_USHORT_LE( A_space ),
-      FT_FRAME_USHORT_LE( B_space ),
-      FT_FRAME_USHORT_LE( C_space ),
-      FT_FRAME_ULONG_LE ( color_table_offset ),
-      FT_FRAME_BYTES    ( reserved1, 16 ),
-    FT_FRAME_END
-  };
-
-
-  static void
-  fnt_font_done( FNT_Face face )
-  {
-    FT_Memory  memory = FT_FACE( face )->memory;
-    FT_Stream  stream = FT_FACE( face )->stream;
-    FNT_Font   font   = face->font;
-
-
-    if ( !font )
-      return;
-
-    if ( font->fnt_frame )
-      FT_FRAME_RELEASE( font->fnt_frame );
-    FT_FREE( font->family_name );
-
-    FT_FREE( font );
-    face->font = 0;
-  }
-
-
-  static FT_Error
-  fnt_font_load( FNT_Font   font,
-                 FT_Stream  stream )
-  {
-    FT_Error          error;
-    FT_WinFNT_Header  header = &font->header;
-    FT_Bool           new_format;
-    FT_UInt           size;
-
-
-    /* first of all, read the FNT header */
-    if ( FT_STREAM_SEEK( font->offset )                        ||
-         FT_STREAM_READ_FIELDS( winfnt_header_fields, header ) )
-      goto Exit;
-
-    /* check header */
-    if ( header->version != 0x200 &&
-         header->version != 0x300 )
-    {
-      FT_TRACE2(( "[not a valid FNT file]\n" ));
-      error = FNT_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    new_format = FT_BOOL( font->header.version == 0x300 );
-    size       = new_format ? 148 : 118;
-
-    if ( header->file_size < size )
-    {
-      FT_TRACE2(( "[not a valid FNT file]\n" ));
-      error = FNT_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* Version 2 doesn't have these fields */
-    if ( header->version == 0x200 )
-    {
-      header->flags   = 0;
-      header->A_space = 0;
-      header->B_space = 0;
-      header->C_space = 0;
-
-      header->color_table_offset = 0;
-    }
-
-    if ( header->file_type & 1 )
-    {
-      FT_TRACE2(( "[can't handle vector FNT fonts]\n" ));
-      error = FNT_Err_Unknown_File_Format;
-      goto Exit;
-    }
-
-    /* this is a FNT file/table; extract its frame */
-    if ( FT_STREAM_SEEK( font->offset )                         ||
-         FT_FRAME_EXTRACT( header->file_size, font->fnt_frame ) )
-      goto Exit;
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  fnt_face_get_dll_font( FNT_Face  face,
-                         FT_Int    face_index )
-  {
-    FT_Error         error;
-    FT_Stream        stream = FT_FACE( face )->stream;
-    FT_Memory        memory = FT_FACE( face )->memory;
-    WinMZ_HeaderRec  mz_header;
-
-
-    face->font = 0;
-
-    /* does it begin with an MZ header? */
-    if ( FT_STREAM_SEEK( 0 )                                      ||
-         FT_STREAM_READ_FIELDS( winmz_header_fields, &mz_header ) )
-      goto Exit;
-
-    error = FNT_Err_Unknown_File_Format;
-    if ( mz_header.magic == WINFNT_MZ_MAGIC )
-    {
-      /* yes, now look for an NE header in the file */
-      WinNE_HeaderRec  ne_header;
-
-
-      if ( FT_STREAM_SEEK( mz_header.lfanew )                       ||
-           FT_STREAM_READ_FIELDS( winne_header_fields, &ne_header ) )
-        goto Exit;
-
-      error = FNT_Err_Unknown_File_Format;
-      if ( ne_header.magic == WINFNT_NE_MAGIC )
-      {
-        /* good, now look into the resource table for each FNT resource */
-        FT_ULong   res_offset  = mz_header.lfanew +
-                                   ne_header.resource_tab_offset;
-        FT_UShort  size_shift;
-        FT_UShort  font_count  = 0;
-        FT_ULong   font_offset = 0;
-
-
-        if ( FT_STREAM_SEEK( res_offset )                    ||
-             FT_FRAME_ENTER( ne_header.rname_tab_offset -
-                             ne_header.resource_tab_offset ) )
-          goto Exit;
-
-        size_shift = FT_GET_USHORT_LE();
-
-        for (;;)
-        {
-          FT_UShort  type_id, count;
-
-
-          type_id = FT_GET_USHORT_LE();
-          if ( !type_id )
-            break;
-
-          count = FT_GET_USHORT_LE();
-
-          if ( type_id == 0x8008U )
-          {
-            font_count  = count;
-            font_offset = (FT_ULong)( FT_STREAM_POS() + 4 +
-                                      ( stream->cursor - stream->limit ) );
-            break;
-          }
-
-          stream->cursor += 4 + count * 12;
-        }
-
-        FT_FRAME_EXIT();
-
-        if ( !font_count || !font_offset )
-        {
-          FT_TRACE2(( "this file doesn't contain any FNT resources!\n" ));
-          error = FNT_Err_Unknown_File_Format;
-          goto Exit;
-        }
-
-        face->root.num_faces = font_count;
-
-        if ( face_index >= font_count )
-        {
-          error = FNT_Err_Bad_Argument;
-          goto Exit;
-        }
-
-        if ( FT_NEW( face->font ) )
-          goto Exit;
-
-        if ( FT_STREAM_SEEK( font_offset + face_index * 12 ) ||
-             FT_FRAME_ENTER( 12 )                            )
-          goto Fail;
-
-        face->font->offset     = (FT_ULong)FT_GET_USHORT_LE() << size_shift;
-        face->font->fnt_size   = (FT_ULong)FT_GET_USHORT_LE() << size_shift;
-        face->font->size_shift = size_shift;
-
-        stream->cursor += 8;
-
-        FT_FRAME_EXIT();
-
-        error = fnt_font_load( face->font, stream );
-      }
-    }
-
-  Fail:
-    if ( error )
-      fnt_font_done( face );
-
-  Exit:
-    return error;
-  }
-
-
-  typedef struct  FNT_CMapRec_
-  {
-    FT_CMapRec  cmap;
-    FT_UInt32   first;
-    FT_UInt32   count;
-
-  } FNT_CMapRec, *FNT_CMap;
-
-
-  static FT_Error
-  fnt_cmap_init( FNT_CMap  cmap )
-  {
-    FNT_Face  face = (FNT_Face)FT_CMAP_FACE( cmap );
-    FNT_Font  font = face->font;
-
-
-    cmap->first = (FT_UInt32)  font->header.first_char;
-    cmap->count = (FT_UInt32)( font->header.last_char - cmap->first + 1 );
-
-    return 0;
-  }
-
-
-  static FT_UInt
-  fnt_cmap_char_index( FNT_CMap   cmap,
-                       FT_UInt32  char_code )
-  {
-    FT_UInt  gindex = 0;
-
-
-    char_code -= cmap->first;
-    if ( char_code < cmap->count )
-      gindex = char_code + 1; /* we artificially increase the glyph index; */
-                              /* FNT_Load_Glyph reverts to the right one   */
-    return gindex;
-  }
-
-
-  static FT_UInt
-  fnt_cmap_char_next( FNT_CMap    cmap,
-                      FT_UInt32  *pchar_code )
-  {
-    FT_UInt    gindex = 0;
-    FT_UInt32  result = 0;
-    FT_UInt32  char_code = *pchar_code + 1;
-
-
-    if ( char_code <= cmap->first )
-    {
-      result = cmap->first;
-      gindex = 1;
-    }
-    else
-    {
-      char_code -= cmap->first;
-      if ( char_code < cmap->count )
-      {
-        result = cmap->first + char_code;
-        gindex = char_code + 1;
-      }
-    }
-
-    *pchar_code = result;
-    return gindex;
-  }
-
-
-  static const FT_CMap_ClassRec  fnt_cmap_class_rec =
-  {
-    sizeof ( FNT_CMapRec ),
-
-    (FT_CMap_InitFunc)     fnt_cmap_init,
-    (FT_CMap_DoneFunc)     NULL,
-    (FT_CMap_CharIndexFunc)fnt_cmap_char_index,
-    (FT_CMap_CharNextFunc) fnt_cmap_char_next
-  };
-
-  static FT_CMap_Class const  fnt_cmap_class = &fnt_cmap_class_rec;
-
-
-  static void
-  FNT_Face_Done( FNT_Face  face )
-  {
-    FT_Memory  memory = FT_FACE_MEMORY( face );
-
-
-    fnt_font_done( face );
-
-    FT_FREE( face->root.available_sizes );
-    face->root.num_fixed_sizes = 0;
-  }
-
-
-  static FT_Error
-  FNT_Face_Init( FT_Stream      stream,
-                 FNT_Face       face,
-                 FT_Int         face_index,
-                 FT_Int         num_params,
-                 FT_Parameter*  params )
-  {
-    FT_Error   error;
-    FT_Memory  memory = FT_FACE_MEMORY( face );
-
-    FT_UNUSED( num_params );
-    FT_UNUSED( params );
-
-
-    /* try to load font from a DLL */
-    error = fnt_face_get_dll_font( face, face_index );
-    if ( error )
-    {
-      /* this didn't work; try to load a single FNT font */
-      FNT_Font  font;
-
-
-      if ( FT_NEW( face->font ) )
-        goto Exit;
-
-      face->root.num_faces = 1;
-
-      font           = face->font;
-      font->offset   = 0;
-      font->fnt_size = stream->size;
-
-      error = fnt_font_load( font, stream );
-      if ( error )
-        goto Fail;
-    }
-
-    /* we now need to fill the root FT_Face fields */
-    /* with relevant information                   */
-    {
-      FT_Face     root = FT_FACE( face );
-      FNT_Font    font = face->font;
-      FT_PtrDist  family_size;
-
-
-      root->face_flags = FT_FACE_FLAG_FIXED_SIZES |
-                         FT_FACE_FLAG_HORIZONTAL;
-
-      if ( font->header.avg_width == font->header.max_width )
-        root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
-
-      if ( font->header.italic )
-        root->style_flags |= FT_STYLE_FLAG_ITALIC;
-
-      if ( font->header.weight >= 800 )
-        root->style_flags |= FT_STYLE_FLAG_BOLD;
-
-      /* set up the `fixed_sizes' array */
-      if ( FT_NEW_ARRAY( root->available_sizes, 1 ) )
-        goto Fail;
-
-      root->num_fixed_sizes = 1;
-
-      {
-        FT_Bitmap_Size*  bsize = root->available_sizes;
-
-
-        bsize->width  = font->header.avg_width;
-        bsize->height = (FT_Short)(
-          font->header.pixel_height + font->header.external_leading );
-        bsize->size   = font->header.nominal_point_size << 6;
-        bsize->x_ppem = font->header.pixel_width << 6;
-        bsize->y_ppem = font->header.pixel_height << 6;
-      }
-
-      {
-        FT_CharMapRec  charmap;
-
-
-        charmap.encoding    = FT_ENCODING_NONE;
-        charmap.platform_id = 0;
-        charmap.encoding_id = 0;
-        charmap.face        = root;
-
-        if ( font->header.charset == FT_WinFNT_ID_MAC )
-        {
-          charmap.encoding    = FT_ENCODING_APPLE_ROMAN;
-          charmap.platform_id = 1;
-/*        charmap.encoding_id = 0; */
-        }
-
-        error = FT_CMap_New( fnt_cmap_class,
-                             NULL,
-                             &charmap,
-                             NULL );
-        if ( error )
-          goto Fail;
-
-        /* Select default charmap */
-        if ( root->num_charmaps )
-          root->charmap = root->charmaps[0];
-      }
-
-      /* setup remaining flags */
-
-      /* reserve one slot for the .notdef glyph at index 0 */
-      root->num_glyphs = font->header.last_char -
-                           font->header.first_char + 1 + 1;
-
-      /* Some broken fonts don't delimit the face name with a final */
-      /* NULL byte -- the frame is erroneously one byte too small.  */
-      /* We thus allocate one more byte, setting it explicitly to   */
-      /* zero.                                                      */
-      family_size = font->header.file_size - font->header.face_name_offset;
-      if ( FT_ALLOC( font->family_name, family_size + 1 ) )
-        goto Fail;
-      FT_MEM_COPY( font->family_name,
-                   font->fnt_frame + font->header.face_name_offset,
-                   family_size );
-      font->family_name[family_size] = '\0';
-      if ( FT_REALLOC( font->family_name,
-                       family_size,
-                       ft_strlen( font->family_name ) + 1 ) )
-        goto Fail;
-      root->family_name = font->family_name;
-      root->style_name  = (char *)"Regular";
-
-      if ( root->style_flags & FT_STYLE_FLAG_BOLD )
-      {
-        if ( root->style_flags & FT_STYLE_FLAG_ITALIC )
-          root->style_name = (char *)"Bold Italic";
-        else
-          root->style_name = (char *)"Bold";
-      }
-      else if ( root->style_flags & FT_STYLE_FLAG_ITALIC )
-        root->style_name = (char *)"Italic";
-    }
-    goto Exit;
-
-  Fail:
-    FNT_Face_Done( face );
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  FNT_Size_Set_Pixels( FT_Size  size )
-  {
-    FNT_Face  face = (FNT_Face)FT_SIZE_FACE( size );
-    FT_Face   root = FT_FACE( face );
-
-
-    if ( size->metrics.y_ppem == root->available_sizes->y_ppem >> 6 )
-    {
-      FNT_Font  font = face->font;
-
-
-      size->metrics.ascender    = font->header.ascent * 64;
-      size->metrics.descender   = -( font->header.pixel_height -
-                                       font->header.ascent ) * 64;
-      size->metrics.height      = font->header.pixel_height * 64;
-      size->metrics.max_advance = font->header.max_width * 64;
-
-      return FNT_Err_Ok;
-    }
-    else
-      return FNT_Err_Invalid_Pixel_Size;
-  }
-
-
-  static FT_Error
-  FNT_Load_Glyph( FT_GlyphSlot  slot,
-                  FT_Size       size,
-                  FT_UInt       glyph_index,
-                  FT_Int32      load_flags )
-  {
-    FNT_Face    face   = (FNT_Face)FT_SIZE_FACE( size );
-    FNT_Font    font   = face->font;
-    FT_Error    error  = FNT_Err_Ok;
-    FT_Byte*    p;
-    FT_Int      len;
-    FT_Bitmap*  bitmap = &slot->bitmap;
-    FT_ULong    offset;
-    FT_Bool     new_format;
-
-    FT_UNUSED( load_flags );
-
-
-    if ( !face || !font )
-    {
-      error = FNT_Err_Invalid_Argument;
-      goto Exit;
-    }
-
-    if ( glyph_index > 0 )
-      glyph_index--;                           /* revert to real index */
-    else
-      glyph_index = font->header.default_char; /* the .notdef glyph */
-
-    new_format = FT_BOOL( font->header.version == 0x300 );
-    len        = new_format ? 6 : 4;
-
-    /* jump to glyph entry */
-    p = font->fnt_frame + ( new_format ? 148 : 118 ) + len * glyph_index;
-
-    bitmap->width = FT_NEXT_SHORT_LE( p );
-
-    if ( new_format )
-      offset = FT_NEXT_ULONG_LE( p );
-    else
-      offset = FT_NEXT_USHORT_LE( p );
-
-    if ( offset >= font->header.file_size )
-    {
-      FT_TRACE2(( "invalid FNT offset!\n" ));
-      error = FNT_Err_Invalid_File_Format;
-      goto Exit;
-    }
-
-    /* jump to glyph data */
-    p = font->fnt_frame + /* font->header.bits_offset */ + offset;
-
-    /* allocate and build bitmap */
-    {
-      FT_Memory  memory = FT_FACE_MEMORY( slot->face );
-      FT_Int     pitch  = ( bitmap->width + 7 ) >> 3;
-      FT_Byte*   column;
-      FT_Byte*   write;
-
-
-      bitmap->pitch      = pitch;
-      bitmap->rows       = font->header.pixel_height;
-      bitmap->pixel_mode = FT_PIXEL_MODE_MONO;
-
-      /* note: since glyphs are stored in columns and not in rows we */
-      /*       can't use ft_glyphslot_set_bitmap                     */
-      if ( FT_ALLOC( bitmap->buffer, pitch * bitmap->rows ) )
-        goto Exit;
-
-      column = (FT_Byte*)bitmap->buffer;
-
-      for ( ; pitch > 0; pitch--, column++ )
-      {
-        FT_Byte*  limit = p + bitmap->rows;
-
-
-        for ( write = column; p < limit; p++, write += bitmap->pitch )
-          *write = *p;
-      }
-    }
-
-    slot->internal->flags = FT_GLYPH_OWN_BITMAP;
-    slot->bitmap_left     = 0;
-    slot->bitmap_top      = font->header.ascent;
-    slot->format          = FT_GLYPH_FORMAT_BITMAP;
-
-    /* now set up metrics */
-    slot->metrics.width        = bitmap->width << 6;
-    slot->metrics.height       = bitmap->rows << 6;
-    slot->metrics.horiAdvance  = bitmap->width << 6;
-    slot->metrics.horiBearingX = 0;
-    slot->metrics.horiBearingY = slot->bitmap_top << 6;
-
-    slot->linearHoriAdvance    = (FT_Fixed)bitmap->width << 16;
-    slot->format               = FT_GLYPH_FORMAT_BITMAP;
-
-  Exit:
-    return error;
-  }
-
-
-  static FT_Error
-  winfnt_get_header( FT_Face               face,
-                     FT_WinFNT_HeaderRec  *aheader )
-  {
-    FNT_Font  font = ((FNT_Face)face)->font;
-
-
-    *aheader = font->header;
-
-    return 0;
-  }
-
-
-  static const FT_Service_WinFntRec  winfnt_service_rec =
-  {
-    winfnt_get_header
-  };
-
- /*
-  *  SERVICE LIST
-  *
-  */
-
-  static const FT_ServiceDescRec  winfnt_services[] =
-  {
-    { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_WINFNT },
-    { FT_SERVICE_ID_WINFNT,    &winfnt_service_rec },
-    { NULL, NULL }
-  };
-
-
-  static FT_Module_Interface
-  winfnt_get_service( FT_Driver         driver,
-                      const FT_String*  service_id )
-  {
-    FT_UNUSED( driver );
-
-    return ft_service_list_lookup( winfnt_services, service_id );
-  }
-
-
-
-
-  FT_CALLBACK_TABLE_DEF
-  const FT_Driver_ClassRec  winfnt_driver_class =
-  {
-    {
-      FT_MODULE_FONT_DRIVER        |
-      FT_MODULE_DRIVER_NO_OUTLINES,
-      sizeof ( FT_DriverRec ),
-
-      "winfonts",
-      0x10000L,
-      0x20000L,
-
-      0,
-
-      (FT_Module_Constructor)0,
-      (FT_Module_Destructor) 0,
-      (FT_Module_Requester)  winfnt_get_service
-    },
-
-    sizeof( FNT_FaceRec ),
-    sizeof( FT_SizeRec ),
-    sizeof( FT_GlyphSlotRec ),
-
-    (FT_Face_InitFunc)        FNT_Face_Init,
-    (FT_Face_DoneFunc)        FNT_Face_Done,
-    (FT_Size_InitFunc)        0,
-    (FT_Size_DoneFunc)        0,
-    (FT_Slot_InitFunc)        0,
-    (FT_Slot_DoneFunc)        0,
-
-    (FT_Size_ResetPointsFunc) FNT_Size_Set_Pixels,
-    (FT_Size_ResetPixelsFunc) FNT_Size_Set_Pixels,
-    (FT_Slot_LoadFunc)        FNT_Load_Glyph,
-
-    (FT_Face_GetKerningFunc)  0,
-    (FT_Face_AttachFunc)      0,
-    (FT_Face_GetAdvancesFunc) 0
-  };
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/src/winfonts/winfnt.h b/nx-X11/extras/freetype2/src/winfonts/winfnt.h
deleted file mode 100644
index 32ab6daf0..000000000
--- a/nx-X11/extras/freetype2/src/winfonts/winfnt.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  winfnt.h                                                               */
-/*                                                                         */
-/*    FreeType font driver for Windows FNT/FON files                       */
-/*                                                                         */
-/*  Copyright 1996-2001, 2002, 2003, 2004 by                               */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used,       */
-/*  modified, and distributed under the terms of the FreeType project      */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-#ifndef __WINFNT_H__
-#define __WINFNT_H__
-
-
-#include <ft2build.h>
-#include FT_WINFONTS_H
-#include FT_INTERNAL_DRIVER_H
-
-
-FT_BEGIN_HEADER
-
-  typedef struct  WinMZ_HeaderRec_
-  {
-    FT_UShort  magic;
-    /* skipped content */
-    FT_UShort  lfanew;
-
-  } WinMZ_HeaderRec;
-
-
-  typedef struct  WinNE_HeaderRec_
-  {
-    FT_UShort  magic;
-    /* skipped content */
-    FT_UShort  resource_tab_offset;
-    FT_UShort  rname_tab_offset;
-
-  } WinNE_HeaderRec;
-
-
-  typedef struct  WinNameInfoRec_
-  {
-    FT_UShort  offset;
-    FT_UShort  length;
-    FT_UShort  flags;
-    FT_UShort  id;
-    FT_UShort  handle;
-    FT_UShort  usage;
-
-  } WinNameInfoRec;
-
-
-  typedef struct  WinResourceInfoRec_
-  {
-    FT_UShort  type_id;
-    FT_UShort  count;
-
-  } WinResourceInfoRec;
-
-
-#define WINFNT_MZ_MAGIC  0x5A4D
-#define WINFNT_NE_MAGIC  0x454E
-
-
-  typedef struct  FNT_FontRec_
-  {
-    FT_ULong             offset;
-    FT_Int               size_shift;
-
-    FT_WinFNT_HeaderRec  header;
-
-    FT_Byte*             fnt_frame;
-    FT_ULong             fnt_size;
-    FT_String*           family_name;
-
-  } FNT_FontRec, *FNT_Font;
-
-
-  typedef struct  FNT_FaceRec_
-  {
-    FT_FaceRec     root;
-    FNT_Font       font;
-
-    FT_CharMap     charmap_handle;
-    FT_CharMapRec  charmap;  /* a single charmap per face */
-
-  } FNT_FaceRec, *FNT_Face;
-
-
-  FT_EXPORT_VAR( const FT_Driver_ClassRec )  winfnt_driver_class;
-
-
-FT_END_HEADER
-
-
-#endif /* __WINFNT_H__ */
-
-
-/* END */
diff --git a/nx-X11/extras/freetype2/tests/Jamfile b/nx-X11/extras/freetype2/tests/Jamfile
deleted file mode 100644
index 0470922de..000000000
--- a/nx-X11/extras/freetype2/tests/Jamfile
+++ /dev/null
@@ -1,41 +0,0 @@
-# FreeType 2 src Jamfile (c) 2001 David Turner
-#
-
-SubDir  FT2_TOP tests ;
-
-test_programs = gview ;
-
-SubDirHdrs [ FT2_SubDir  .. nirvana include ] ;
-
-NV_TOP = [ FT2_SubDir .. .. nirvana ] ;
-
-NIRVANA_LINKLIBS = $(NV_TOP)/objs/libnirvana$(SUFLIB) ;
-
-{
-  local t ;
-
-  for t in $(test_programs)
-  {
-    Main  $(t) : $(t).c ;
-
-    LinkLibraries $(t) : $(FT2_LIB) ;
-
-    if $(WIN)
-    {
-      if $(TOOLSET) = MINGW
-      {
-        LINKKLIBS on $(t)$(SUFEXE) = "-luser32 -lgdi32" ;
-      }
-      else
-      {
-        LINKLIBS on $(t)$(SUFEXE) = user32.lib gdi32.lib ;
-      }
-    }
-    else
-    {
-      LINKLIBS on $(t)$(SUFEXE) = -L/usr/X11R6/lib -lX11 -lm ;
-    }
-
-    NEEDLIBS on $(t)$(SUFEXE) += $(NIRVANA_LINKLIBS) ;
-  }
-}
diff --git a/nx-X11/extras/freetype2/tests/gview.c b/nx-X11/extras/freetype2/tests/gview.c
deleted file mode 100644
index f68598512..000000000
--- a/nx-X11/extras/freetype2/tests/gview.c
+++ /dev/null
@@ -1,1292 +0,0 @@
-#include <nirvana.h>
-#include NV_VIEWPORT_H
-#include <stdio.h>
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-/* include FreeType internals to debug hints */
-#include <../src/pshinter/pshrec.h>
-#include <../src/pshinter/pshalgo.h>
-
-#include <../src/autohint/ahtypes.h>
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                     ROOT DEFINITIONS                         *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-
-#include <time.h>    /* for clock() */
-
-  /* SunOS 4.1.* does not define CLOCKS_PER_SEC, so include <sys/param.h> */
-  /* to get the HZ macro which is the equivalent.                         */
-#if defined( __sun__ ) && !defined( SVR4 ) && !defined( __SVR4 )
-#include <sys/param.h>
-#define CLOCKS_PER_SEC HZ
-#endif
-
-static int  first_glyph = 0;
-
-static NV_Renderer   renderer;
-static NV_Painter    painter;
-static NV_Pixmap     target;
-static NV_Error      error;
-static NV_Memory     memory;
-static NVV_Display   display;
-static NVV_Surface   surface;
-
-static FT_Library    freetype;
-static FT_Face       face;
-
-
-static  NV_Pos        glyph_scale;
-static  NV_Pos        glyph_org_x;
-static  NV_Pos        glyph_org_y;
-static  NV_Transform  glyph_transform;  /* font units -> device pixels */
-static  NV_Transform  size_transform;   /* subpixels  -> device pixels */
-
-static  NV_Scale      grid_scale = 1.0;
-
-static  int   glyph_index;
-static  int   pixel_size = 12;
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****                 OPTIONS, COLORS and OTHERS                   *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-static  int   option_show_axis     = 1;
-static  int   option_show_dots     = 1;
-static  int   option_show_stroke   = 0;
-static  int   option_show_glyph    = 1;
-static  int   option_show_grid     = 1;
-static  int   option_show_em       = 0;
-static  int   option_show_smooth   = 1;
-static  int   option_show_blues    = 0;
-static  int   option_show_edges    = 0;
-static  int   option_show_segments = 1;
-static  int   option_show_links    = 1;
-static  int   option_show_indices  = 0;
-
-static  int   option_show_ps_hints   = 1;
-static  int   option_show_horz_hints = 1;
-static  int   option_show_vert_hints = 1;
-
-
-static  int   option_hinting = 1;
-
-static  char  temp_message[1024];
-
-static  NV_Path   symbol_dot     = NULL;
-static  NV_Path   symbol_circle  = NULL;
-static  NV_Path   symbol_square  = NULL;
-static  NV_Path   symbol_rect_h  = NULL;
-static  NV_Path   symbol_rect_v  = NULL;
-
-
-
-#define  AXIS_COLOR        0xFFFF0000
-#define  GRID_COLOR        0xFFD0D0D0
-#define  ON_COLOR          0xFFFF2000
-#define  OFF_COLOR         0xFFFF0080
-#define  STRONG_COLOR      0xFF404040
-#define  INTERP_COLOR      0xFF206040
-#define  SMOOTH_COLOR      0xF000B040
-#define  BACKGROUND_COLOR  0xFFFFFFFF
-#define  TEXT_COLOR        0xFF000000
-#define  EM_COLOR          0x80008000
-#define  BLUES_TOP_COLOR   0x4000008F
-#define  BLUES_BOT_COLOR   0x40008F00
-
-#define  GHOST_HINT_COLOR  0xE00000FF
-#define  STEM_HINT_COLOR   0xE02020FF
-#define  STEM_JOIN_COLOR   0xE020FF20
-
-#define  EDGE_COLOR        0xF0704070
-#define  SEGMENT_COLOR     0xF0206040
-#define  LINK_COLOR        0xF0FFFF00
-#define  SERIF_LINK_COLOR  0xF0FF808F
-
-
-/* print message and abort program */
-static void
-Panic( const char*  message )
-{
-  fprintf( stderr, "PANIC: %s\n", message );
-  exit(1);
-}
-
-
-static void
-init_symbols( void )
-{
-  nv_path_new_rectangle( renderer, -1, -1, 3, 3, 0, 0, &symbol_square );
-  nv_path_new_rectangle( renderer, -1, -6, 2, 12, 0, 0, &symbol_rect_v );
-  nv_path_new_rectangle( renderer, -6, -1, 12, 2, 0, 0, &symbol_rect_h );
-
-  nv_path_new_circle( renderer, 0, 0, 3., &symbol_dot );
-
-  nv_path_stroke( symbol_dot, 0.6,
-                  nv_path_linecap_butt,
-                  nv_path_linejoin_miter, 1.,
-                  &symbol_circle );
-
-  nv_path_destroy( symbol_dot );
-
-  nv_path_new_circle( renderer, 0, 0, 2., &symbol_dot );
- }
-
-
-static void
-done_symbols( void )
-{
-  nv_path_destroy( symbol_circle );
-  nv_path_destroy( symbol_dot );
-  nv_path_destroy( symbol_rect_v );
-  nv_path_destroy( symbol_rect_h );
-  nv_path_destroy( symbol_square );
-}
-
-
-  /************************************************************************/
-  /************************************************************************/
-  /*****                                                              *****/
-  /*****               COMMON GRID DRAWING ROUTINES                   *****/
-  /*****                                                              *****/
-  /************************************************************************/
-  /************************************************************************/
-
-static void
-reset_scale( NV_Scale  scale )
-{
-  /* compute font units -> grid pixels scale factor */
-  glyph_scale = target->width*0.75 / face->units_per_EM * scale;
-
-  /* setup font units -> grid pixels transform */
-  nv_transform_set_scale( &glyph_transform, glyph_scale, -glyph_scale );
-  glyph_org_x = glyph_transform.delta.x = target->width*0.125;
-  glyph_org_y = glyph_transform.delta.y = target->height*0.875;
-
-  /* setup subpixels -> grid pixels transform */
-  nv_transform_set_scale(
-    &size_transform,
-    glyph_scale / nv_fromfixed( face->size->metrics.x_scale ),
-    -glyph_scale / nv_fromfixed( face->size->metrics.y_scale ) );
-
-  size_transform.delta = glyph_transform.delta;
-}
-
-
-static void
-reset_size( int       pixel_size,
-            NV_Scale  scale )
-{
-  FT_Set_Pixel_Sizes( face, pixel_size, pixel_size );
-  reset_scale( scale );
-}
-
-
-static void
-clear_background( void )
-{
-  nv_pixmap_fill_rect( target, 0, 0, target->width, target->height,
-                       BACKGROUND_COLOR );
-}
-
-
-static void
-draw_grid( void )
-{
-  int  x = (int)glyph_org_x;
-  int  y = (int)glyph_org_y;
-
-
-  /* draw grid */
-  if ( option_show_grid )
-  {
-    NV_Scale  min, max, x, step;
-
-
-    /* draw vertical grid bars */
-    step = 64. * size_transform.matrix.xx;
-    if ( step > 1. )
-    {
-      min = max = glyph_org_x;
-      while ( min - step >= 0 )             min -= step;
-      while ( max + step < target->width )  max += step;
-
-      for ( x = min; x <= max; x += step )
-        nv_pixmap_fill_rect( target, (NV_Int)(x + .5), 0,
-                             1, target->height, GRID_COLOR );
-    }
-
-    /* draw horizontal grid bars */
-    step = -64. * size_transform.matrix.yy;
-    if ( step > 1. )
-    {
-      min = max = glyph_org_y;
-      while ( min - step >= 0 )              min -= step;
-      while ( max + step < target->height )  max += step;
-
-      for ( x = min; x <= max; x += step )
-        nv_pixmap_fill_rect( target, 0, (NV_Int)(x + .5),
-                             target->width, 1, GRID_COLOR );
-    }
-  }
-
-  /* draw axis */
-  if ( option_show_axis )
-  {
-    nv_pixmap_fill_rect( target, x, 0, 1, target->height, AXIS_COLOR );
-    nv_pixmap_fill_rect( target, 0, y, target->width, 1, AXIS_COLOR );
-  }
-
-  if ( option_show_em )
-  {
-    NV_Path  path;
-    NV_Path  stroke;
-    NV_UInt  units = (NV_UInt)face->units_per_EM;
-
-
-    nv_path_new_rectangle( renderer, 0, 0, units, units, 0, 0, &path );
-    nv_path_transform( path, &glyph_transform );
-
-    nv_path_stroke( path, 1.5, nv_path_linecap_butt, nv_path_linejoin_miter,
-                    4.0, &stroke );
-
-    nv_painter_set_color( painter, EM_COLOR, 256 );
-    nv_painter_fill_path( painter, NULL, 0, stroke );
-
-    nv_path_destroy( stroke );
-    nv_path_destroy( path );
-  }
-
-}
-
-
-  /************************************************************************/
-  /************************************************************************/
-  /*****                                                              *****/
-  /*****                 POSTSCRIPT GLOBALS ROUTINES                  *****/
-  /*****                                                              *****/
-  /************************************************************************/
-  /************************************************************************/
-
-#include <../src/pshinter/pshglob.h>
-
-static void
-draw_ps_blue_zones( void )
-{
-  if ( option_show_blues && ps_debug_globals )
-  {
-    PSH_Blues       blues = &ps_debug_globals->blues;
-    PSH_Blue_Table  table;
-    NV_Vector       v;
-    FT_Int          y1, y2;
-    FT_UInt         count;
-    PSH_Blue_Zone   zone;
-
-
-    /* draw top zones */
-    table = &blues->normal_top;
-    count = table->count;
-    zone  = table->zones;
-
-    for ( ; count > 0; count--, zone++ )
-    {
-      v.x = 0;
-      if ( !ps_debug_no_horz_hints )
-      {
-        v.y = zone->cur_ref + zone->cur_delta;
-        nv_vector_transform( &v, &size_transform );
-      }
-      else
-      {
-        v.y = zone->org_ref + zone->org_delta;
-        nv_vector_transform( &v, &glyph_transform );
-      }
-      y1  = (int)(v.y + 0.5);
-
-      v.x = 0;
-      if ( !ps_debug_no_horz_hints )
-      {
-        v.y = zone->cur_ref;
-        nv_vector_transform( &v, &size_transform );
-      }
-      else
-      {
-        v.y = zone->org_ref;
-        nv_vector_transform( &v, &glyph_transform );
-      }
-      y2 = (int)(v.y + 0.5);
-
-      nv_pixmap_fill_rect( target, 0, y1,
-                           target->width, y2-y1+1,
-                           BLUES_TOP_COLOR );
-
-#if 0
-      printf( "top [%.3f %.3f]\n", zone->cur_bottom/64.0, zone->cur_top/64.0 );
-#endif
-    }
-
-
-    /* draw bottom zones */
-    table = &blues->normal_bottom;
-    count = table->count;
-    zone  = table->zones;
-
-    for ( ; count > 0; count--, zone++ )
-    {
-      v.x = 0;
-      v.y = zone->cur_ref;
-      nv_vector_transform( &v, &size_transform );
-      y1  = (int)(v.y + 0.5);
-
-      v.x = 0;
-      v.y = zone->cur_ref + zone->cur_delta;
-      nv_vector_transform( &v, &size_transform );
-      y2 = (int)(v.y + 0.5);
-
-      nv_pixmap_fill_rect( target, 0, y1,
-                           target->width, y2 - y1 + 1,
-                           BLUES_BOT_COLOR );
-
-#if 0
-      printf( "bot [%.3f %.3f]\n", zone->cur_bottom/64.0, zone->cur_top/64.0 );
-#endif
-    }
-  }
-}
-
-
- /************************************************************************/
- /************************************************************************/
- /*****                                                              *****/
- /*****            POSTSCRIPT HINTER ALGORITHM ROUTINES              *****/
- /*****                                                              *****/
- /************************************************************************/
- /************************************************************************/
-
-#include <../src/pshinter/pshalgo.h>
-
-static void
-draw_ps_hint( PSH_Hint  hint, 
-              FT_Bool   vertical )
-{
-  int        x1, x2;
-  NV_Vector  v;
-
-
-  if ( pshint_vertical != vertical )
-  {
-    if ( vertical )
-      pshint_cpos = 40;
-    else
-      pshint_cpos = 10;
-
-    pshint_vertical = vertical;
-  }
-
-  if ( !vertical )
-  {
-    if ( !option_show_vert_hints )
-      return;
-
-    v.x = hint->cur_pos;
-    v.y = 0;
-    nv_vector_transform( &v, &size_transform );
-    x1 = (int)(v.x + 0.5);
-
-    v.x = hint->cur_pos + hint->cur_len;
-    v.y = 0;
-    nv_vector_transform( &v, &size_transform );
-    x2 = (int)(v.x + 0.5);
-
-    nv_pixmap_fill_rect( target, x1, 0, 1, target->height,
-                         psh_hint_is_ghost( hint )
-                         ? GHOST_HINT_COLOR : STEM_HINT_COLOR );
-
-    if ( psh_hint_is_ghost( hint ) )
-    {
-      x1 --;
-      x2 = x1 + 2;
-    }
-    else
-      nv_pixmap_fill_rect( target, x2, 0, 1, target->height,
-                           psh_hint_is_ghost( hint )
-                           ? GHOST_HINT_COLOR : STEM_HINT_COLOR );
-
-    nv_pixmap_fill_rect( target, x1, pshint_cpos, x2 + 1 - x1, 1,
-                         STEM_JOIN_COLOR );
-  }
-  else
-  {
-    if ( !option_show_horz_hints )
-      return;
-
-    v.y = hint->cur_pos;
-    v.x = 0;
-    nv_vector_transform( &v, &size_transform );
-    x1 = (int)(v.y + 0.5);
-
-    v.y = hint->cur_pos + hint->cur_len;
-    v.x = 0;
-    nv_vector_transform( &v, &size_transform );
-    x2 = (int)(v.y + 0.5);
-
-    nv_pixmap_fill_rect( target, 0, x1, target->width, 1,
-                         psh_hint_is_ghost( hint )
-                         ? GHOST_HINT_COLOR : STEM_HINT_COLOR );
-
-    if ( psh_hint_is_ghost( hint ) )
-    {
-      x1 --;
-      x2 = x1 + 2;
-    }
-    else
-      nv_pixmap_fill_rect( target, 0, x2, target->width, 1,
-                           psh_hint_is_ghost(hint)
-                           ? GHOST_HINT_COLOR : STEM_HINT_COLOR );
-
-    nv_pixmap_fill_rect( target, pshint_cpos, x2, 1, x1 + 1 - x2,
-                         STEM_JOIN_COLOR );
-  }
-
-#if 0
-  printf( "[%7.3f %7.3f] %c\n", hint->cur_pos/64.0, (hint->cur_pos+hint->cur_len)/64.0, vertical ? 'v' : 'h' );
-#endif
-
-  pshint_cpos += 10;
-}
-
-
-static void
-ps_draw_control_points( void )
-{
-  if ( ps_debug_glyph )
-  {
-    PSH_Glyph     glyph = ps_debug_glyph;
-    PSH_Point     point = glyph->points;
-    FT_UInt       count = glyph->num_points;
-    NV_Transform  transform, *trans = &transform;
-    NV_Path       vert_rect;
-    NV_Path       horz_rect;
-    NV_Path       dot, circle;
-
-
-    for ( ; count > 0; count--, point++ )
-    {
-      NV_Vector  vec;
-
-
-      vec.x = point->cur_x;
-      vec.y = point->cur_y;
-      nv_vector_transform( &vec, &size_transform );
-
-      nv_transform_set_translate( trans, vec.x, vec.y );
-
-      if ( option_show_smooth && !psh_point_is_smooth(point) )
-      {
-        nv_painter_set_color( painter, SMOOTH_COLOR, 256 );
-        nv_painter_fill_path( painter, trans, 0, symbol_circle );
-      }
-
-      if ( option_show_horz_hints )
-      {
-        if ( point->flags_y & PSH_POINT_STRONG )
-        {
-          nv_painter_set_color( painter, STRONG_COLOR, 256 );
-          nv_painter_fill_path( painter, trans, 0, symbol_rect_h );
-        }
-      }
-
-      if ( option_show_vert_hints )
-      {
-        if ( point->flags_x & PSH_POINT_STRONG )
-        {
-          nv_painter_set_color( painter, STRONG_COLOR, 256 );
-          nv_painter_fill_path( painter, trans, 0, symbol_rect_v );
-        }
-      }
-    }
-  }
-}
-
-
-static void
-ps_print_hints( void )
-{
-  if ( ps_debug_hints )
-  {
-    FT_Int         dimension;
-
-
-    for ( dimension = 1; dimension >= 0; dimension-- )
-    {
-      PS_Dimension  dim   = &ps_debug_hints->dimension[ dimension ];
-      PS_Mask       mask  = dim->masks.masks;
-      FT_UInt       count = dim->masks.num_masks;
-
-
-      printf( "%s hints -------------------------\n",
-              dimension ? "vertical" : "horizontal" );
-
-      for ( ; count > 0; count--, mask++ )
-      {
-        FT_UInt  index;
-
-
-        printf( "mask -> %d\n", mask->end_point );
-        for ( index = 0; index < mask->num_bits; index++ )
-        {
-          if ( mask->bytes[ index >> 3 ] & (0x80 >> (index & 7)) )
-          {
-            PS_Hint  hint = dim->hints.hints + index;
-
-
-            printf( "%c [%3d %3d (%4d)]\n", dimension ? "v" : "h",
-                    hint->pos, hint->pos + hint->len, hint->len );
-          }
-        }
-      }
-    }
-  }
-}
-
-
-  /************************************************************************/
-  /************************************************************************/
-  /*****                                                              *****/
-  /*****            AUTOHINTER DRAWING ROUTINES                       *****/
-  /*****                                                              *****/
-  /************************************************************************/
-  /************************************************************************/
-
-static NV_Path
-ah_link_path( NV_Vector*  p1,
-              NV_Vector*  p4,
-              NV_Bool     vertical )
-{
-  NV_PathWriter  writer;
-  NV_Vector      p2, p3;
-  NV_Path        path, stroke;
-
-
-  if ( vertical )
-  {
-    p2.x = p4->x;
-    p2.y = p1->y;
-
-    p3.x = p1->x;
-    p3.y = p4->y;
-  }
-  else
-  {
-    p2.x = p1->x;
-    p2.y = p4->y;
-
-    p3.x = p4->x;
-    p3.y = p1->y;
-  }
-
-  nv_path_writer_new( renderer, &writer );
-  nv_path_writer_moveto( writer, p1 );
-  nv_path_writer_cubicto( writer, &p2, &p3, p4 );
-  nv_path_writer_end( writer );
-
-  path = nv_path_writer_get_path( writer );
-  nv_path_writer_destroy( writer );
-
-  nv_path_stroke( path, 1.,
-                  nv_path_linecap_butt, nv_path_linejoin_round,
-                  1., &stroke );
-
-  nv_path_destroy( path );
-
-  return stroke;
-}
-
-
-static void
-ah_draw_smooth_points( void )
-{
-  if ( ah_debug_hinter && option_show_smooth )
-  {
-    AH_Outline   glyph = ah_debug_hinter->glyph;
-    FT_UInt      count = glyph->num_points;
-    AH_Point     point = glyph->points;
-
-
-    nv_painter_set_color( painter, SMOOTH_COLOR, 256 );
-
-    for ( ; count > 0; count--, point++ )
-    {
-      if ( !( point->flags & AH_FLAG_WEAK_INTERPOLATION ) )
-      {
-        NV_Transform  transform, *trans = &transform;
-        NV_Vector     vec;
-
-
-        vec.x = point->x - ah_debug_hinter->pp1.x;
-        vec.y = point->y;
-        nv_vector_transform( &vec, &size_transform );
-
-        nv_transform_set_translate( &transform, vec.x, vec.y );
-        nv_painter_fill_path( painter, trans, 0, symbol_circle );
-      }
-    }
-  }
-}
-
-
-static void
-ah_draw_edges( void )
-{
-  if ( ah_debug_hinter )
-  {
-    AH_Outline  glyph = ah_debug_hinter->glyph;
-    FT_UInt     count;
-    AH_Edge     edge;
-    FT_Pos      pp1 = ah_debug_hinter->pp1.x;
-
-
-    nv_painter_set_color( painter, EDGE_COLOR, 256 );
-
-    if ( option_show_edges )
-    {
-      /* draw vertical edges */
-      if ( option_show_vert_hints )
-      {
-        count = glyph->num_vedges;
-        edge  = glyph->vert_edges;
-        for ( ; count > 0; count--, edge++ )
-        {
-          NV_Vector  vec;
-          NV_Pos     x;
-
-
-          vec.x = edge->pos - pp1;
-          vec.y = 0;
-
-          nv_vector_transform( &vec, &size_transform );
-          x = (FT_Pos)( vec.x + 0.5 );
-
-          nv_pixmap_fill_rect( target, x, 0, 1, target->height, EDGE_COLOR );
-        }
-      }
-
-      /* draw horizontal edges */
-      if ( option_show_horz_hints )
-      {
-        count = glyph->num_hedges;
-        edge  = glyph->horz_edges;
-        for ( ; count > 0; count--, edge++ )
-        {
-          NV_Vector  vec;
-          NV_Pos     x;
-
-
-          vec.x = 0;
-          vec.y = edge->pos;
-
-          nv_vector_transform( &vec, &size_transform );
-          x = (FT_Pos)( vec.y + 0.5 );
-
-          nv_pixmap_fill_rect( target, 0, x, target->width, 1, EDGE_COLOR );
-        }
-      }
-    }
-
-    if ( option_show_segments )
-    {
-      /* draw vertical segments */
-      if ( option_show_vert_hints )
-      {
-        AH_Segment  seg   = glyph->vert_segments;
-        FT_UInt     count = glyph->num_vsegments;
-
-
-        for ( ; count > 0; count--, seg++ )
-        {
-          AH_PointRec  *first, *last;
-          NV_Vector  v1, v2;
-          NV_Pos     y1, y2, x;
-
-
-          first = seg->first;
-          last  = seg->last;
-
-          v1.x = v2.x = first->x - pp1;
-
-          if ( first->y <= last->y )
-          {
-            v1.y = first->y;
-            v2.y = last->y;
-          }
-          else
-          {
-            v1.y = last->y;
-            v2.y = first->y;
-          }
-
-          nv_vector_transform( &v1, &size_transform );
-          nv_vector_transform( &v2, &size_transform );
-
-          y1 = (NV_Pos)( v1.y + 0.5 );
-          y2 = (NV_Pos)( v2.y + 0.5 );
-          x  = (NV_Pos)( v1.x + 0.5 );
-
-          nv_pixmap_fill_rect( target, x - 1, y2, 3,
-                               FT_ABS( y1 - y2 ) + 1, SEGMENT_COLOR );
-        }
-      }
-
-      /* draw horizontal segments */
-      if ( option_show_horz_hints )
-      {
-        AH_Segment  seg   = glyph->horz_segments;
-        FT_UInt     count = glyph->num_hsegments;
-
-
-        for ( ; count > 0; count--, seg++ )
-        {
-          AH_PointRec  *first, *last;
-          NV_Vector    v1, v2;
-          NV_Pos       y1, y2, x;
-
-
-          first = seg->first;
-          last  = seg->last;
-
-          v1.y = v2.y = first->y;
-
-          if ( first->x <= last->x )
-          {
-            v1.x = first->x - pp1;
-            v2.x = last->x - pp1;
-          }
-          else
-          {
-            v1.x = last->x - pp1;
-            v2.x = first->x - pp1;
-          }
-
-          nv_vector_transform( &v1, &size_transform );
-          nv_vector_transform( &v2, &size_transform );
-
-          y1 = (NV_Pos)( v1.x + 0.5 );
-          y2 = (NV_Pos)( v2.x + 0.5 );
-          x  = (NV_Pos)( v1.y + 0.5 );
-
-          nv_pixmap_fill_rect( target, y1, x - 1,
-                               FT_ABS( y1 - y2 ) + 1, 3, SEGMENT_COLOR );
-        }
-      }
-
-      if ( option_show_vert_hints && option_show_links )
-      {
-        AH_Segment  seg   = glyph->vert_segments;
-        FT_UInt     count = glyph->num_vsegments;
-
-
-        for ( ; count > 0; count--, seg++ )
-        {
-          AH_Segment  seg2 = NULL;
-          NV_Path     link;
-          NV_Vector   v1, v2;
-
-
-          if ( seg->link )
-          {
-            if ( seg->link > seg )
-              seg2 = seg->link;
-          }
-          else if ( seg->serif )
-            seg2 = seg->serif;
-
-          if ( seg2 )
-          {
-            v1.x = seg->first->x  - pp1;
-            v2.x = seg2->first->x - pp1;
-            v1.y = ( seg->first->y + seg->last->y ) / 2;
-            v2.y = ( seg2->first->y + seg2->last->y ) / 2;
-
-            link = ah_link_path( &v1, &v2, 1 );
-
-            nv_painter_set_color( painter,
-                                  seg->serif ? SERIF_LINK_COLOR : LINK_COLOR,
-                                  256 );
-            nv_painter_fill_path( painter, &size_transform, 0, link );
-
-            nv_path_destroy( link );
-          }
-        }
-      }
-
-      if ( option_show_horz_hints && option_show_links )
-      {
-        AH_Segment  seg   = glyph->horz_segments;
-        FT_UInt     count = glyph->num_hsegments;
-
-
-        for ( ; count > 0; count--, seg++ )
-        {
-          AH_Segment  seg2 = NULL;
-          NV_Path     link;
-          NV_Vector   v1, v2;
-
-
-          if ( seg->link )
-          {
-            if ( seg->link > seg )
-              seg2 = seg->link;
-          }
-          else if ( seg->serif )
-            seg2 = seg->serif;
-
-          if ( seg2 )
-          {
-            v1.y = seg->first->y;
-            v2.y = seg2->first->y;
-            v1.x = ( seg->first->x + seg->last->x ) / 2 - pp1;
-            v2.x = ( seg2->first->x + seg2->last->x ) / 2 - pp1;
-
-            link = ah_link_path( &v1, &v2, 0 );
-
-            nv_painter_set_color( painter,
-                                  seg->serif ? SERIF_LINK_COLOR : LINK_COLOR,
-                                  256 );
-            nv_painter_fill_path( painter, &size_transform, 0, link );
-
-            nv_path_destroy( link );
-          }
-        }
-      }
-    }
-  }
-}
-
-
-  /************************************************************************/
-  /************************************************************************/
-  /*****                                                              *****/
-  /*****                        MAIN LOOP(S)                          *****/
-  /*****                                                              *****/
-  /************************************************************************/
-  /************************************************************************/
-
-static void
-draw_glyph( int  glyph_index )
-{
-  NV_Path   path;
-
-
-  pshint_vertical = -1;
-
-  ps_debug_hint_func = option_show_ps_hints ? draw_ps_hint : 0;
-
-  ah_debug_hinter = NULL;
-
-  error = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_BITMAP );
-  if ( error )
-    Panic( "could not load glyph" );
-
-  if ( face->glyph->format != FT_GLYPH_FORMAT_OUTLINE )
-    Panic( "could not load glyph outline" );
-
-  error = nv_path_new_from_outline( renderer,
-                                    (NV_Outline*)&face->glyph->outline,
-                                    &size_transform,
-                                    &path );
-  if ( error )
-    Panic( "could not create glyph path" );
-
-  /* trac� du glyphe plein */
-  if ( option_show_glyph )
-  {
-    nv_painter_set_color( painter, 0xFF404080, 128 );
-    nv_painter_fill_path( painter, 0, 0, path );
-  }
-
-  if ( option_show_stroke )
-  {
-    NV_Path  stroke;
-
-
-    error = nv_path_stroke( path, 0.6,
-                            nv_path_linecap_butt,
-                            nv_path_linejoin_miter,
-                            1.0, &stroke );
-    if ( error )
-      Panic( "could not stroke glyph path" );
-
-    nv_painter_set_color( painter, 0xFF000040, 256 );
-    nv_painter_fill_path( painter, 0, 0, stroke );
-
-    nv_path_destroy( stroke );
-  }
-
-  /* trac� des points de controle */
-  if ( option_show_dots )
-  {
-    NV_Path     plot;
-    NV_Outline  out;
-    NV_Scale    r = 2;
-    NV_Int      n, first, last;
-
-
-    nv_path_get_outline( path, NULL, memory, &out );
-
-    first = 0;
-    for ( n = 0; n < out.n_contours; n++ )
-    {
-      int            m;
-      NV_Transform   trans;
-      NV_Color       color;
-      NV_SubVector*  vec;
-
-
-      last  = out.contours[n];
-
-      for ( m = first; m <= last; m++ )
-      {
-        color = (out.tags[m] & FT_CURVE_TAG_ON)
-              ? ON_COLOR
-              : OFF_COLOR;
-
-        vec = out.points + m;
-
-        nv_transform_set_translate( &trans, vec->x / 64.0, vec->y / 64.0 );
-
-        nv_painter_set_color( painter, color, 256 );
-        nv_painter_fill_path( painter, &trans, 0, symbol_dot );
-
-        if ( option_show_indices )
-        {
-          char  temp[5];
-
-
-          sprintf( temp, "%d", m );
-          nv_pixmap_cell_text( target, vec->x / 64 + 4, vec->y / 64 - 4,
-                               temp, TEXT_COLOR );
-        }
-      }
-
-      first = last + 1;
-    }
-  }
-
-  ah_draw_smooth_points();
-  ah_draw_edges();
-
-  nv_path_destroy( path );
-
-  /* autre infos */
-  {
-    char  temp[1024];
-    char  temp2[64];
-
-
-    sprintf( temp, "font name : %s (%s)", face->family_name,
-                                          face->style_name );
-    nv_pixmap_cell_text( target, 0, 0, temp, TEXT_COLOR );
-
-    FT_Get_Glyph_Name( face, glyph_index, temp2, 63 );
-    temp2[63] = 0;
-
-    sprintf( temp, "glyph %4d: %s", glyph_index, temp2 );
-    nv_pixmap_cell_text( target, 0, 8, temp, TEXT_COLOR );
-
-    if ( temp_message[0] )
-    {
-      nv_pixmap_cell_text( target, 0, 16, temp_message, TEXT_COLOR );
-      temp_message[0] = 0;
-    }
-  }
-}
-
-
-#define  TOGGLE_OPTION(var,prefix)                           \
-            do                                               \
-            {                                                \
-              var = !var;                                    \
-              sprintf( temp_message, prefix " is now %s",    \
-                       var ? "on" : "off" );                 \
-            }                                                \
-            while()
-
-
-#define  TOGGLE_OPTION_NEG(var,prefix)                       \
-            do                                               \
-            {                                                \
-              var = !var;                                    \
-              sprintf( temp_message, prefix " is now %s",    \
-                       !var ? "on" : "off" );                \
-            }                                                \
-            while
-
-
-static void
-handle_event( NVV_EventRec*  ev )
-{
-  switch ( ev->key )
-  {
-  case NVV_Key_Left:
-    if ( glyph_index > 0 )
-      glyph_index--;
-    break;
-
-  case NVV_Key_Right:
-    if ( glyph_index + 1 < face->num_glyphs )
-      glyph_index++;
-    break;
-
-  case NVV_KEY( 'x' ):
-    TOGGLE_OPTION( option_show_axis, "grid axis display" );
-    break;
-
-  case NVV_KEY( 's' ):
-    TOGGLE_OPTION( option_show_stroke, "glyph stroke display" );
-    break;
-
-  case NVV_KEY( 'g' ):
-    TOGGLE_OPTION( option_show_glyph, "glyph fill display" );
-    break;
-
-  case NVV_KEY( 'd' ):
-    TOGGLE_OPTION( option_show_dots, "control points display" );
-    break
-
-  case NVV_KEY( 'e' ):
-    TOGGLE_OPTION( option_show_em, "EM square display" );
-    break;
-
-  case NVV_KEY( '+' ):
-    grid_scale *= 1.2;
-    reset_scale( grid_scale );
-    break;
-
-  case NVV_KEY( '-' ):
-    if ( grid_scale > 0.3 )
-    {
-      grid_scale /= 1.2;
-      reset_scale( grid_scale );
-    }
-    break;
-
-  case NVV_Key_Up:
-    pixel_size++;
-    reset_size( pixel_size, grid_scale );
-    sprintf( temp_message, "pixel size = %d", pixel_size );
-    break;
-
-  case NVV_Key_Down:
-    if ( pixel_size > 1 )
-    {
-      pixel_size--;
-      reset_size( pixel_size, grid_scale );
-      sprintf( temp_message, "pixel size = %d", pixel_size );
-    }
-    break;
-
-  case NVV_KEY( 'z' ):
-    TOGGLE_OPTION_NEG( ps_debug_no_vert_hints, "vertical hints processing" );
-    break;
-
-  case NVV_KEY( 'a' ):
-    TOGGLE_OPTION_NEG( ps_debug_no_horz_hints, "horizontal hints processing" );
-    break;
-
-  case NVV_KEY( 'Z' ):
-    TOGGLE_OPTION( option_show_vert_hints, "vertical hints display" );
-    break;
-
-  case NVV_KEY( 'A' ):
-    TOGGLE_OPTION( option_show_horz_hints, "horizontal hints display" );
-    break;
-
-  case NVV_KEY( 'S' ):
-    TOGGLE_OPTION( option_show_smooth, "smooth points display" );
-    break;
-
-  case NVV_KEY( 'i' ):
-    TOGGLE_OPTION( option_show_indices, "point index display" );
-    break;
-
-  case NVV_KEY( 'b' ):
-    TOGGLE_OPTION( option_show_blues, "blue zones display" );
-    break;
-
-  case NVV_KEY( 'h' ):
-    ps_debug_no_horz_hints = option_hinting;
-    ps_debug_no_vert_hints = option_hinting;
-
-    TOGGLE_OPTION( option_hinting, "hinting" );
-    break;
-
-  case NVV_KEY( 'H' ):
-    ps_print_hints();
-    break;
-
-  default:
-    ;
-  }
-}
-
-
-static void
-usage()
-{
-  Panic( "no usage" );
-}
-
-
-#define  OPTION1(n,code)   \
-           case n :        \
-             code          \
-             argc--;       \
-             argv++;       \
-             break;
-
-#define  OPTION2(n,code)     \
-           case n :          \
-             code            \
-             argc -= 2;      \
-             argv += 2;      \
-             break;
-
-
-static void
-parse_options( int*     argc_p,
-               char***  argv_p )
-{
-  int     argc = *argc_p;
-  char**  argv = *argv_p;
-
-
-  while ( argc > 2 && argv[1][0] == '-' )
-  {
-    switch ( argv[1][1] )
-    {
-      OPTION2( 'f', first_glyph = atoi( argv[2] ); )
-
-      OPTION2( 's', pixel_size = atoi( argv[2] ); )
-
-      default:
-        usage();
-    }
-  }
-
-  *argc_p = argc;
-  *argv_p = argv;
-}
-
-
-int
-main( int     argc,
-      char**  argv )
-{
-  char*  filename = "/winnt/fonts/arial.ttf";
-
-
-  parse_options( &argc, &argv );
-
-  if ( argc >= 2 )
-    filename = argv[1];
-
-
-  /* create library */
-  error = nv_renderer_new( 0, &renderer );
-  if ( error )
-    Panic( "could not create Nirvana renderer" );
-
-  memory = nv_renderer_get_memory( renderer );
-  init_symbols();
-
-  error = nvv_display_new( renderer, &display );
-  if ( error )
-    Panic( "could not create display" );
-
-  error = nvv_surface_new( display, 460, 460, nv_pixmap_type_argb, &surface );
-  if ( error )
-    Panic( "could not create surface" );
-
-  target = nvv_surface_get_pixmap( surface );
-
-  error = nv_painter_new( renderer, &painter );
-  if ( error )
-    Panic( "could not create painter" );
-
-  nv_painter_set_target( painter, target );
-
-  clear_background();
-
-  error = FT_Init_FreeType( &freetype );
-  if ( error )
-    Panic( "could not initialize FreeType" );
-
-  error = FT_New_Face( freetype, filename, 0, &face );
-  if ( error )
-    Panic( "could not open font face" );
-
-  reset_size( pixel_size, grid_scale );
-
-  nvv_surface_set_title( surface, "FreeType Glyph Viewer" );
-
-  {
-    NVV_EventRec  event;
-
-
-    glyph_index = first_glyph;
-    for ( ;; )
-    {
-      clear_background();
-      draw_grid();
-
-      ps_debug_hints  = 0;
-      ah_debug_hinter = 0;
-
-      ah_debug_disable_vert = ps_debug_no_vert_hints;
-      ah_debug_disable_horz = ps_debug_no_horz_hints;
-
-      draw_ps_blue_zones();
-      draw_glyph( glyph_index );
-      ps_draw_control_points();
-
-      nvv_surface_refresh( surface, NULL );
-
-      nvv_surface_listen( surface, 0, &event );
-      if ( event.key == NVV_Key_Esc )
-        break;
-
-      handle_event( &event );
-      switch ( event.key )
-      {
-      case NVV_Key_Esc:
-        goto Exit;
-
-      default:
-        ;
-      }
-    }
-  }
-
-Exit:
-  /* wait for escape */
-
-  /* destroy display (and surface) */
-  nvv_display_unref( display );
-
-  done_symbols();
-  nv_renderer_unref( renderer );
-
-  return 0;
-}
diff --git a/nx-X11/extras/freetype2/vms_make.com b/nx-X11/extras/freetype2/vms_make.com
deleted file mode 100644
index 12152ad04..000000000
--- a/nx-X11/extras/freetype2/vms_make.com
+++ /dev/null
@@ -1,549 +0,0 @@
-$!---------------vms_make.com for Freetype2------------------------------------
-$! make Freetype2 under OpenVMS
-$!
-$! In case of problems with the build you might want to contact me at
-$! zinser@decus.de (preferred) or zinser@sysdev.deutsche-boerse.com (Work)
-$!
-$! This procedure currently does support the following commandline options
-$! in arbitrary order 
-$!
-$! * DEBUG - Compile modules with /noopt/debug and link shareable image 
-$!           with /debug
-$! * LOPTS - Options to be passed to the link command
-$! * CCOPT - Options to be passed to the C compiler
-$!------------------------------------------------------------------------------
-$! 
-$! Just some general constants
-$!
-$ true   = 1
-$ false  = 0
-$ Make   = ""
-$!
-$! Setup variables holding "config" information
-$!
-$ name    = "Freetype2"
-$ mapfile =  name + ".map"
-$ optfile =  name + ".opt"
-$ s_case  = false
-$ libdefs = ""
-$ libincs = ""
-$ liblist = ""
-$ ccopt   = ""
-$ lopts   = ""
-$!
-$! Check for MMK/MMS
-$!
-$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
-$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
-$!
-$! Which command parameters were given
-$!
-$ gosub check_opts
-$!
-$! Create option file
-$!
-$ open/write optf 'optfile'
-$!
-$! Pull in external libraries
-$!
-$ create libs.opt
-$ gosub check_create_vmslib
-$!
-$! Create objects
-$!
-$ if libdefs .nes. "" then ccopt = ccopt + "/define=(" + libdefs + ")"
-$!
-$ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) - 
-    then s_case = true
-$ gosub crea_mms
-$!
-$ 'Make' /macro=(comp_flags="''ccopt'")
-$ purge/nolog [...]descrip.mms
-$!
-$! Add them to options
-$!
-$FLOOP:
-$  file = f$edit(f$search("[...]*.obj"),"UPCASE")
-$  if (file .nes. "")
-$  then
-$    if f$locate("DEMOS",file) .eqs. f$length(file) then write optf file
-$    goto floop
-$  endif 
-$!
-$ close optf
-$!
-$!
-$! Alpha gets a shareable image
-$!
-$ If f$getsyi("HW_MODEL") .gt. 1024
-$ Then
-$   write sys$output "Creating freetype2shr.exe"
-$   call anal_obj_axp 'optfile' _link.opt
-$   open/append  optf 'optfile'
-$   if s_case then WRITE optf "case_sensitive=YES"
-$   close optf
-$   LINK_/NODEB/SHARE=[.lib]freetype2shr.exe - 
-                            'optfile'/opt,libs.opt/opt,_link.opt/opt
-$ endif
-$!
-$ exit
-$!
-$!------------------------------------------------------------------------------
-$!
-$! If MMS/MMK are available dump out the descrip.mms if required 
-$!
-$CREA_MMS:
-$ write sys$output "Creating descrip.mms files ..."
-$ write sys$output "... Main directory"
-$ create descrip.mms
-$ open/append out descrip.mms
-$ copy sys$input: out
-$ deck
-#
-# FreeType 2 build system -- top-level Makefile for OpenVMS
-#
-
-
-# Copyright 2001 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-$ EOD
-$ write out "CFLAGS = ", ccopt
-$ copy sys$input: out
-$ deck
- 
-
-all :
-        define freetype [--.include.freetype] 
-        define psaux [-.psaux] 
-        define autohint [-.autohint] 
-        define base [-.base] 
-        define cache [-.cache] 
-        define cff [-.cff] 
-        define cid [-.cid] 
-        define pcf [-.pcf] 
-        define psnames [-.psnames] 
-        define raster [-.raster] 
-        define sfnt [-.sfnt] 
-        define smooth [-.smooth] 
-        define truetype [-.truetype] 
-        define type1 [-.type1] 
-        define winfonts [-.winfonts] 
-        if f$search("lib.dir") .eqs. "" then create/directory [.lib]
-        set default [.builds.vms]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [--.src.autohint]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.base]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.bdf]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.cache]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.cff]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.cid]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.gzip]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.lzw]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.pcf]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.pfr]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.psaux]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.pshinter]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.psnames]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.raster]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.sfnt]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.smooth]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.truetype]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.type1]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.type42]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [-.winfonts]
-        $(MMS)$(MMSQUALIFIERS)
-        set default [--]
-
-# EOF
-$ eod
-$ close out
-$ write sys$output "... [.builds.vms] directory"
-$ create [.builds.vms]descrip.mms
-$ open/append out [.builds.vms]descrip.mms
-$ copy sys$input: out
-$ deck
-#
-# FreeType 2 system rules for VMS
-#
-
-
-# Copyright 2001 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([],[--.include],[--.src.base])
-
-OBJS=ftsystem.obj
-
-all : $(OBJS)
-        library/create [--.lib]freetype.olb $(OBJS)
-
-ftsystem.obj : ftsystem.c ftconfig.h
-
-# EOF
-$ eod
-$ close out
-$ write sys$output "... [.src.autohint] directory"
-$ create [.src.autohint]descrip.mms
-$ open/append out [.src.autohint]descrip.mms
-$ copy sys$input: out
-$ deck
-#
-# FreeType 2 auto-hinter module compilation rules for VMS
-#
-
-
-# Copyright 2001, 2002 Catharon Productions Inc.
-#
-# This file is part of the Catharon Typography Project and shall only
-# be used, modified, and distributed under the terms of the Catharon
-# Open Source License that should come with this file under the name
-# `CatharonLicense.txt'.  By continuing to use, modify, or distribute
-# this file you indicate that you have read the license and
-# understand and accept it fully.
-#
-# Note that this license is compatible with the FreeType license.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/incl=([--.include],[--.src.autohint])
-
-OBJS=autohint.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
-$ eod
-$ close out
-$ write sys$output "... [.src.gzip] directory"
-$ create [.src.gzip]descrip.mms
-$ open/append out [.src.gzip]descrip.mms
-$ copy sys$input: out
-$ deck
-#
-# FreeType 2 GZip support compilation rules for VMS
-#
-
-
-# Copyright 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-$EOD
-$ if libincs .nes. "" then write out "LIBINCS = ", libincs, ","
-$ copy sys$input: out
-$ deck
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.gzip])
-
-OBJS=ftgzip.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
-$ eod
-$ close out
-$ write sys$output "... [.src.lzw] directory"
-$ create [.src.lzw]descrip.mms
-$ open/append out [.src.lzw]descrip.mms
-$ copy sys$input: out
-$ deck
-#
-# FreeType 2 LZW support compilation rules for VMS
-#
-
-
-# Copyright 2004 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-$EOD
-$ if libincs .nes. "" then write out "LIBINCS = ", libincs, ","
-$ copy sys$input: out
-$ deck
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=($(LIBINCS)[--.include],[--.src.lzw])
-
-OBJS=ftlzw.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-# EOF
-$ eod
-$ close out
-$ write sys$output "... [.src.type1] directory"
-$ create [.src.type1]descrip.mms
-$ open/append out [.src.type1]descrip.mms
-$ copy sys$input: out
-$ deck
-#
-# FreeType 2 Type1 driver compilation rules for VMS
-#
-
-
-# Copyright 1996-2000, 2002 by
-# David Turner, Robert Wilhelm, and Werner Lemberg.
-#
-# This file is part of the FreeType project, and may only be used, modified,
-# and distributed under the terms of the FreeType project license,
-# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
-# indicate that you have read the license and understand and accept it
-# fully.
-
-
-CFLAGS=$(COMP_FLAGS)$(DEBUG)/include=([--.include],[--.src.type1])
-
-OBJS=type1.obj
-
-all : $(OBJS)
-        library [--.lib]freetype.olb $(OBJS)
-
-type1.obj : type1.c t1parse.c t1load.c t1objs.c t1driver.c t1gload.c t1afm.c
-
-# EOF
-$ eod
-$ close out
-$ return
-$!------------------------------------------------------------------------------
-$!
-$! Check command line options and set symbols accordingly
-$!
-$ CHECK_OPTS:
-$ i = 1
-$ OPT_LOOP:
-$ if i .lt. 9
-$ then
-$   cparm = f$edit(p'i',"upcase")
-$   if cparm .eqs. "DEBUG"
-$   then
-$     ccopt = ccopt + "/noopt/deb"
-$     lopts = lopts + "/deb"
-$   endif
-$!   if cparm .eqs. "LINK" then linkonly = true
-$   if f$locate("LOPTS",cparm) .lt. f$length(cparm)
-$   then
-$     start = f$locate("=",cparm) + 1
-$     len   = f$length(cparm) - start
-$     lopts = lopts + f$extract(start,len,cparm)
-$   endif
-$   if f$locate("CCOPT",cparm) .lt. f$length(cparm)
-$   then
-$     start = f$locate("=",cparm) + 1
-$     len   = f$length(cparm) - start
-$     ccopt = ccopt + f$extract(start,len,cparm)
-$   endif
-$   i = i + 1
-$   goto opt_loop
-$ endif
-$ return
-$!------------------------------------------------------------------------------
-$!
-$! Take care of driver file with information about external libraries
-$!
-$CHECK_CREATE_VMSLIB:
-$!
-$ if f$search("VMSLIB.DAT") .eqs. ""
-$ then
-$   type/out=vmslib.dat sys$input
-!
-! This is a simple driver file with information used by make.com to
-! check if external libraries (like t1lib and freetype) are available on
-! the system.
-!
-! Layout of the file:
-!
-!    - Lines starting with ! are treated as comments
-!    - Elements in a data line are separated by # signs
-!    - The elements need to be listed in the following order
-!      1.) Name of the Library 
-!      2.) Location where the object library can be found
-!      3.) Location where the include files for the library can be found
-!      4.) Include file used to verify library location
-!      5.) CPP define to pass to the build to indicate availability of
-!          the library
-!
-! Example: The following  lines show how definitions
-!          might look like. They are site specific and the locations of the
-!          library and include files need almost certainly to be changed.
-!
-! Location: All of the libaries can be found at the following addresses
-!
-!   ZLIB:     http://www.decus.de:8080/www/vms/sw/zlib.htmlx
-!
-!ZLIB # pubbin:libz.olb # public$Root:[util.libs.zlib] # zlib.h # FT_CONFIG_OPTION_SYSTEM_ZLIB
-$   write sys$output "New driver file vmslib.dat created."
-$   write sys$output "Please customize libary locations for your site"
-$   write sys$output "and afterwards re-execute vms_make.com"
-$   write sys$output "Exiting..."
-$   close/nolog optf
-$   exit
-$ endif
-$!
-$! Open data file with location of libraries
-$!
-$ open/read/end=end_lib/err=lib_err libdata VMSLIB.DAT
-$ open/append loptf libs.opt
-$LIB_LOOP:
-$ read/end=end_lib libdata libline
-$ libline = f$edit(libline, "UNCOMMENT,COLLAPSE")
-$ if libline .eqs. "" then goto LIB_LOOP ! Comment line
-$ libname = f$edit(f$element(0,"#",libline),"UPCASE")
-$ liblist = liblist + "#" + libname
-$ write sys$output "Processing ''libname' setup ..."
-$ libloc  = f$element(1,"#",libline)
-$ libsrc  = f$element(2,"#",libline)
-$ testinc = f$element(3,"#",libline)
-$ cppdef  = f$element(4,"#",libline)
-$ old_cpp = f$locate("=1",cppdef)
-$ if old_cpp.lt.f$length(cppdef) then cppdef = f$extract(0,old_cpp,cppdef)
-$ if f$search("''libloc'").eqs. ""
-$ then
-$   write sys$output "Can not find library ''libloc' - Skipping ''libname'"
-$   goto LIB_LOOP
-$ endif
-$ libsrc_elem = 0
-$ libsrc_found = false
-$LIBSRC_LOOP:
-$ libsrcdir = f$element(libsrc_elem,",",libsrc)
-$ if (libsrcdir .eqs. ",") then goto END_LIBSRC
-$ if f$search("''libsrcdir'''testinc'") .nes. "" then libsrc_found = true
-$ libsrc_elem = libsrc_elem + 1
-$ goto LIBSRC_LOOP
-$END_LIBSRC:
-$ if .not. libsrc_found
-$ then
-$   write sys$output "Can not find includes at ''libsrc' - Skipping ''libname'"
-$   goto LIB_LOOP
-$ endif
-$ if cppdef .nes. "" then libdefs = libdefs +  "," + cppdef
-$ libincs = libincs + "," + libsrc
-$ lqual = "/lib"
-$ libtype = f$parse(libloc,,,"TYPE")
-$ if f$locate("EXE",libtype) .lt. f$length(libtype) then lqual = "/share"
-$ write loptf libloc , lqual
-$ goto LIB_LOOP
-$END_LIB:
-$ close libdata
-$ close loptf
-$ libincs = libincs - ","
-$ libdefs = libdefs - ","
-$ return
-$!------------------------------------------------------------------------------
-$!
-$! Analyze Object files for OpenVMS AXP to extract Procedure and Data 
-$! information to build a symbol vector for a shareable image
-$! All the "brains" of this logic was suggested by Hartmut Becker
-$! (Hartmut.Becker@compaq.com). All the bugs were introduced by me
-$! (zinser@decus.de), so if you do have problem reports please do not
-$! bother Hartmut/HP, but get in touch with me
-$!
-$ ANAL_OBJ_AXP: Subroutine   
-$ V = 'F$Verify(0)
-$ SAY := "WRITE_ SYS$OUTPUT"
-$ 
-$ IF F$SEARCH("''P1'") .EQS. ""
-$ THEN
-$    SAY "ANAL_OBJ_AXP-E-NOSUCHFILE:  Error, inputfile ''p1' not available"
-$    goto exit_aa
-$ ENDIF
-$ IF "''P2'" .EQS. ""
-$ THEN
-$    SAY "ANAL_OBJ_AXP:  Error, no output file provided"
-$    goto exit_aa
-$ ENDIF
-$
-$ open/read in 'p1
-$ create a.tmp
-$ open/append atmp a.tmp
-$ loop:
-$ read/end=end_loop in line
-$ f= f$search(line)
-$ if f .eqs. ""
-$ then
-$	write sys$output "ANAL_OBJ_AXP-w-nosuchfile, ''line'"
-$	goto loop
-$ endif
-$ def/user sys$output nl:
-$ def/user sys$error nl:
-$ anal/obj/gsd 'f /out=x.tmp
-$ open/read xtmp x.tmp
-$ XLOOP:
-$ read/end=end_xloop xtmp xline
-$ xline = f$edit(xline,"compress")
-$ write atmp xline
-$ goto xloop
-$ END_XLOOP:
-$ close xtmp
-$ goto loop
-$ end_loop:
-$ close in
-$ close atmp
-$ if f$search("a.tmp") .eqs. "" -
-	then $ exit
-$ ! all global definitions
-$ search a.tmp "symbol:","EGSY$V_DEF 1","EGSY$V_NORM 1"/out=b.tmp
-$ ! all procedures
-$ search b.tmp "EGSY$V_NORM 1"/wind=(0,1) /out=c.tmp
-$ search c.tmp "symbol:"/out=d.tmp
-$ def/user sys$output nl:
-$ edito/edt/command=sys$input d.tmp
-sub/symbol: "/symbol_vector=(/whole
-sub/"/=procedure)/whole
-exit
-$ ! all data
-$ search b.tmp "EGSY$V_DEF 1"/wind=(0,1) /out=e.tmp
-$ search e.tmp "symbol:"/out=f.tmp
-$ def/user sys$output nl:
-$ edito/edt/command=sys$input f.tmp
-sub/symbol: "/symbol_vector=(/whole
-sub/"/=data)/whole
-exit
-$ sort/nodupl d.tmp,f.tmp 'p2'
-$ delete a.tmp;*,b.tmp;*,c.tmp;*,d.tmp;*,e.tmp;*,f.tmp;*
-$ if f$search("x.tmp") .nes. "" -
-	then $ delete x.tmp;*
-$!
-$ EXIT_AA:
-$ if V then set verify
-$ endsubroutine 
-- 
cgit v1.2.3